/* * Copyright 2017 Huy Cuong Nguyen * Copyright 2016 ZXing authors */ // SPDX-License-Identifier: Apache-2.0 #include "oned/ODCode39Writer.h" #include "BitMatrixIO.h" #include "gtest/gtest.h" using namespace ZXing; using namespace ZXing::OneD; namespace { std::string Encode(const std::wstring& input) { auto result = ToString(Code39Writer().encode(input, 0, 0), '1', '0', false); return result.substr(0, result.size() - 1); // remove the \n at the end } } TEST(ODCode39WriterTest, Encode) { EXPECT_EQ(Encode(L"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"), "000001001011011010110101001011010110100101101101101001010101011001011011010110010101" "011011001010101010011011011010100110101011010011010101011001101011010101001101011010" "100110110110101001010101101001101101011010010101101101001010101011001101101010110010" "101101011001010101101100101100101010110100110101011011001101010101001011010110110010" "110101010011011010101010011011010110100101011010110010101101101100101010101001101011" "01101001101010101100110101010100101101101101001011010101100101101010010110110100000"); } TEST(ODCode39WriterTest, EncodeExtended) { EXPECT_EQ(Encode(std::wstring(L"\x0\x1\x2\x3\x4\x5\x6\x7\x8\x9\xa\xb\xc\xd\xe\xf\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f", 0x20)), "000001001011011010101001001001011001010101101001001001010110101001011010010010010101" "011010010110100100100101011011010010101001001001010101011001011010010010010101101011" "001010100100100101010110110010101001001001010101010011011010010010010101101010011010" "100100100101010110100110101001001001010101011001101010010010010101101010100110100100" "100101010110101001101001001001010110110101001010010010010101010110100110100100100101" "011010110100101001001001010101101101001010010010010101010101100110100100100101011010" "101100101001001001010101101011001010010010010101010110110010100100100101011001010101" "101001001001010100110101011010010010010101100110101010100100100101010010110101101001" "001001010110010110101010010010010101001101101010101001001001011010100101101010010010" "010101101001011010100100100101101101001010101001001001010101100101101010010010010110" "101100101010010110110100000"); EXPECT_EQ(Encode(L" !\"#$%&'()*+,-./0123456789:;<=>?"), "000001001011011010100110101101010010010100101101010010110100100101001010110100101101" "001001010010110110100101010010010100101010110010110100100101001011010110010101001001" "010010101101100101010010010100101010100110110100100101001011010100110101001001010010" "101101001101010010010100101010110011010100100101001011010101001101001001010010101101" "010011010010101101101100101011010100100101001011010110100101010011011010110100101011" "010110010101101101100101010101001101011011010011010101011001101010101001011011011010" "010110101011001011010100100101001010011011010101010010010010101101100101010100100100" "101010100110110101001001001011010100110101010010010010101101001101010100100100101010" "11001101010010110110100000"); EXPECT_EQ(Encode(L"@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_"), "0000010010110110101010010010010100110101011011010100101101011010010110110110100101010" "101100101101101011001010101101100101010101001101101101010011010101101001101010101100" "110101101010100110101101010011011011010100101010110100110110101101001010110110100101" "010101100110110101011001010110101100101010110110010110010101011010011010101101100110" "101010100101101011011001011010101001101101010101001001001011010101001101010010010010" "101101010011010100100100101101101010010101001001001010101101001101010010010010110101" "101001010010110110100000"); EXPECT_EQ(Encode(L"`abcdefghijklmnopqrstuvwxyz{|}~"), "000001001011011010101001001001011001101010101001010010010110101001011010010100100101" "011010010110100101001001011011010010101001010010010101011001011010010100100101101011" "001010100101001001010110110010101001010010010101010011011010010100100101101010011010" "100101001001010110100110101001010010010101011001101010010100100101101010100110100101" "001001010110101001101001010010010110110101001010010100100101010110100110100101001001" "011010110100101001010010010101101101001010010100100101010101100110100101001001011010" "101100101001010010010101101011001010010100100101010110110010100101001001011001010101" "101001010010010100110101011010010100100101100110101010100101001001010010110101101001" "010010010110010110101010010100100101001101101010101001001001010110110100101010010010" "010101010110011010100100100101101010110010101001001001010110101100101010010010010101" "011011001010010110110100000"); }