From d9e8ae582db1ab3cf28b5cc123402dede484cb65 Mon Sep 17 00:00:00 2001 From: gitlost Date: Tue, 20 Apr 2021 11:49:14 +0100 Subject: [PATCH] tests: small additions for AZTEC READER_INIT, PDF417, Big5 --- backend/tests/test_aztec.c | 4 +++ backend/tests/test_big5.c | 72 +++++++++++++++++++++++++++++++++++++ backend/tests/test_pdf417.c | 69 +++++++++++++++++++---------------- 3 files changed, 115 insertions(+), 30 deletions(-) diff --git a/backend/tests/test_aztec.c b/backend/tests/test_aztec.c index 48e59135..edfa0018 100644 --- a/backend/tests/test_aztec.c +++ b/backend/tests/test_aztec.c @@ -56,6 +56,10 @@ static void test_options(int index, int debug) { /* 3*/ { BARCODE_AZTEC, -1, -1, -1, 36, "1234567890", 0, 151, 151 }, /* 4*/ { BARCODE_AZTEC, -1, -1, -1, 37, "1234567890", ZINT_ERROR_INVALID_OPTION, -1, -1 }, /* 5*/ { BARCODE_AZTEC, GS1_MODE, READER_INIT, -1, -1, "[91]A", ZINT_ERROR_INVALID_OPTION, -1, -1 }, + /* 6*/ { BARCODE_AZTEC, -1, READER_INIT, -1, 26, "A", 0, 109, 109 }, // 22 layers + /* 7*/ { BARCODE_AZTEC, -1, READER_INIT, -1, 27, "A", ZINT_ERROR_TOO_LONG, -1, -1 }, // 23 layers + /* 8*/ { BARCODE_AZTEC, -1, READER_INIT, -1, 1, "A", 0, 15, 15 }, // Compact 1 layer + /* 9*/ { BARCODE_AZTEC, -1, READER_INIT, -1, 2, "A", 0, 19, 19 }, // Compact 2 layers gets set to full 1 layer if READER_INIT set }; int data_size = ARRAY_SIZE(data); diff --git a/backend/tests/test_big5.c b/backend/tests/test_big5.c index 351be316..c1a053e7 100644 --- a/backend/tests/test_big5.c +++ b/backend/tests/test_big5.c @@ -73,10 +73,82 @@ static void test_big5_wctomb_zint(void) { testFinish(); } +/* Convert UTF-8 string to Big5 and place in array of ints */ +static int big5_utf8(struct zint_symbol *symbol, const unsigned char source[], int *p_length, + unsigned int *b5data) { + int error_number; + unsigned int i, length; +#ifndef _MSC_VER + unsigned int utfdata[*p_length + 1]; +#else + unsigned int *utfdata = (unsigned int *) _alloca((*p_length + 1) * sizeof(unsigned int)); +#endif + + error_number = utf8_to_unicode(symbol, source, utfdata, p_length, 0 /*disallow_4byte*/); + if (error_number != 0) { + return error_number; + } + + for (i = 0, length = *p_length; i < length; i++) { + if (!big5_wctomb_zint(b5data + i, utfdata[i])) { + strcpy(symbol->errtxt, "800: Invalid character in input data"); + return ZINT_ERROR_INVALID_DATA; + } + } + + return 0; +} +static void test_big5_utf8(int index) { + + testStart(""); + + int ret; + struct item { + char *data; + int length; + int ret; + int ret_length; + unsigned int expected_b5data[20]; + char *comment; + }; + // _ U+FF3F fullwidth low line, not in ISO/Win, in Big5 0xA1C4, UTF-8 EFBCBF + // ╴ U+2574 drawings box light left, not in ISO/Win, not in original Big5 but in "Big5-2003" as 0xA15A, UTF-8 E295B4 + // s/\/\*[ 0-9]*\*\//\=printf("\/*%3d*\/", line(".") - line("'<")) + struct item data[] = { + /* 0*/ { "_", -1, 0, 1, { 0xA1C4 }, "" }, + /* 1*/ { "╴", -1, ZINT_ERROR_INVALID_DATA, -1, {}, "" }, + }; + + int data_size = sizeof(data) / sizeof(struct item); + + struct zint_symbol symbol; + unsigned int b5data[20]; + + for (int i = 0; i < data_size; i++) { + + if (index != -1 && i != index) continue; + + int length = data[i].length == -1 ? (int) strlen(data[i].data) : data[i].length; + int ret_length = length; + + ret = big5_utf8(&symbol, (unsigned char *) data[i].data, &ret_length, b5data); + assert_equal(ret, data[i].ret, "i:%d ret %d != %d (%s)\n", i, ret, data[i].ret, symbol.errtxt); + if (ret == 0) { + assert_equal(ret_length, data[i].ret_length, "i:%d ret_length %d != %d\n", i, ret_length, data[i].ret_length); + for (int j = 0; j < (int) ret_length; j++) { + assert_equal(b5data[j], data[i].expected_b5data[j], "i:%d b5data[%d] %04X != %04X\n", i, j, b5data[j], data[i].expected_b5data[j]); + } + } + } + + testFinish(); +} + int main(int argc, char *argv[]) { testFunction funcs[] = { /* name, func, has_index, has_generate, has_debug */ { "test_big5_wctomb_zint", test_big5_wctomb_zint, 0, 0, 0 }, + { "test_big5_utf8", test_big5_utf8, 1, 0, 0 }, }; testRun(argc, argv, funcs, ARRAY_SIZE(funcs)); diff --git a/backend/tests/test_pdf417.c b/backend/tests/test_pdf417.c index 750eedd1..77d83f60 100644 --- a/backend/tests/test_pdf417.c +++ b/backend/tests/test_pdf417.c @@ -361,14 +361,23 @@ static void test_encode(int index, int generate, int debug) { "1111111101010100011101000011111010111111010001101001011000010011100010010101111000000111111101000101001" "1111111101010100011001011011100000110011001100001101100100101100000011110010100011110111111101000101001" }, - /* 6*/ { BARCODE_PDF417, -1, UNICODE_MODE, 2, 3, "12345678901234", 0, 5, 120, 1, "Numeric Compaction", + /* 6*/ { BARCODE_PDF417, -1, UNICODE_MODE, -1, -1, ";;;;;é;;;;;", 0, 7, 120, 0, "BWIPP different encodation", + "111111110101010001111101010111110011101011011110000100011101110010001110101011100000011111010101111100111111101000101001" + "111111110101010001111101010001100011111010101100000111110101110111101011111100100011011110101001000000111111101000101001" + "111111110101010001010100111100000010110010000001110110001111100100101000000110100111011010100011111000111111101000101001" + "111111110101010001101011110011111011101010111000000111010101110000001010111101111000011010111100111110111111101000101001" + "111111110101010001101011100001000010111111010110000111000011011101001100001011110110011110101110011100111111101000101001" + "111111110101010001111101011110110010111000110001110111011111100100101111101001111011011110101111000010111111101000101001" + "111111110101010001110100111011111010110011001000000100001100110001001001110011100100011101001110111110111111101000101001" + }, + /* 7*/ { BARCODE_PDF417, -1, UNICODE_MODE, 2, 3, "12345678901234", 0, 5, 120, 1, "Numeric Compaction", "111111110101010001111010101111000011101010001110000100111101111010001001011100001110011111010101111100111111101000101001" "111111110101010001111110101000111011010000001110010111111011010011001111010100000010011111101010111000111111101000101001" "111111110101010001010100111100000010111000110011100101110011000011101110001111110101011101010001111110111111101000101001" "111111110101010001010111100111100010001100001100010100001100011101101110101100111100011010111100111110111111101000101001" "111111110101010001110101110000110011000000101110010110001001110000101011001000111111011101011100110000111111101000101001" - }, - /* 7*/ { BARCODE_PDF417, -1, UNICODE_MODE, 2, 3, "1234567890123456789012345678901234567890123", 0, 9, 120, 1, "Numeric Compaction 43 consecutive", + }, + /* 8*/ { BARCODE_PDF417, -1, UNICODE_MODE, 2, 3, "1234567890123456789012345678901234567890123", 0, 9, 120, 1, "Numeric Compaction 43 consecutive", "111111110101010001111101010111110011010110001110000100111101111010001101001101110000011111010101111100111111101000101001" "111111110101010001111010100001000011010011100001000110100111101100001110000101100001011110101001000000111111101000101001" "111111110101010001010100111100000011111010111000010110010010011111001000011010000111010101000011110000111111101000101001" @@ -379,7 +388,7 @@ static void test_encode(int index, int generate, int debug) { "111111110101010001111110100101110010100111100001000110000101111001101110010110000100010101111110111000111111101000101001" "111111110101010001111110100110010011100100111110100100111110011000101001111000010001011111010011101000111111101000101001" }, - /* 8*/ { BARCODE_PDF417, -1, UNICODE_MODE, 2, 3, "12345678901234567890123456789012345678901234", 0, 9, 120, 1, "Numeric Compaction 44 consecutive", + /* 9*/ { BARCODE_PDF417, -1, UNICODE_MODE, 2, 3, "12345678901234567890123456789012345678901234", 0, 9, 120, 1, "Numeric Compaction 44 consecutive", "111111110101010001111101010111110011010110001110000100111101111010001000100011000011011111010101111100111111101000101001" "111111110101010001111010100001000011101001100100000111010001100001001110010000001101011110101001000000111111101000101001" "111111110101010001010100111100000011111100010110100101001100001111101010110011111000010101000011110000111111101000101001" @@ -390,7 +399,7 @@ static void test_encode(int index, int generate, int debug) { "111111110101010001111110100101110011100110011101000100110001011111101101001110000001010101111110111000111111101000101001" "111111110101010001111110100110010010111001100011100101000110111110001001100001000111011111010011101000111111101000101001" }, - /* 9*/ { BARCODE_PDF417, -1, UNICODE_MODE, 2, 3, "123456789012345678901234567890123456789012345", 0, 9, 120, 1, "Numeric Compaction 45 consecutive", + /* 10*/ { BARCODE_PDF417, -1, UNICODE_MODE, 2, 3, "123456789012345678901234567890123456789012345", 0, 9, 120, 1, "Numeric Compaction 45 consecutive", "111111110101010001111101010111110011010110001110000100111101111010001000100011000011011111010101111100111111101000101001" "111111110101010001111010100001000011101001100100000111010001100001001110010000001101011110101001000000111111101000101001" "111111110101010001010100111100000011111100010110100101001100001111101010110011111000010101000011110000111111101000101001" @@ -401,7 +410,7 @@ static void test_encode(int index, int generate, int debug) { "111111110101010001111110100101110011110001001101100111101001110011101101111010111110010101111110111000111111101000101001" "111111110101010001111110100110010011011110011001110110011100100011101100100100011111011111010011101000111111101000101001" }, - /* 10*/ { BARCODE_PDF417, -1, UNICODE_MODE, 2, 3, "123456789012345678901234567890123456789012345678901234567890123456789012345678901234567", 0, 14, 120, 1, "Numeric Compaction 87 consecutive", + /* 11*/ { BARCODE_PDF417, -1, UNICODE_MODE, 2, 3, "123456789012345678901234567890123456789012345678901234567890123456789012345678901234567", 0, 14, 120, 1, "Numeric Compaction 87 consecutive", "111111110101010001111010100111100011111010111111010100111101111010001000100011000011011111010101111100111111101000101001" "111111110101010001111110101000111011101001100100000111010001100001001110010000001101011111101010011100111111101000101001" "111111110101010001010100111100000011111100010110100101001100001111101010110011111000011101010001111110111111101000101001" @@ -417,7 +426,7 @@ static void test_encode(int index, int generate, int debug) { "111111110101010001010000010100000011110111001001100110100000100110001110111100011010011010000111011110111111101000101001" "111111110101010001111101000100011011100101110011000111100011001101001000001011110001011110100010010000111111101000101001" }, - /* 11*/ { BARCODE_PDF417, -1, UNICODE_MODE, 2, 3, "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678", 0, 14, 120, 1, "Numeric Compaction 88 consecutive", + /* 12*/ { BARCODE_PDF417, -1, UNICODE_MODE, 2, 3, "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678", 0, 14, 120, 1, "Numeric Compaction 88 consecutive", "111111110101010001111010100111100011111010111111010100111101111010001000100011000011011111010101111100111111101000101001" "111111110101010001111110101000111011101001100100000111010001100001001110010000001101011111101010011100111111101000101001" "111111110101010001010100111100000011111100010110100101001100001111101010110011111000011101010001111110111111101000101001" @@ -433,7 +442,7 @@ static void test_encode(int index, int generate, int debug) { "111111110101010001010000010100000011100010110011110111011001100111001110011010000110011010000111011110111111101000101001" "111111110101010001111101000100011011110010110000110111011100111100101111010000110011011110100010010000111111101000101001" }, - /* 12*/ { BARCODE_PDF417, -1, UNICODE_MODE, 2, 3, "12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789", 0, 14, 120, 1, "Numeric Compaction 89 consecutive", + /* 13*/ { BARCODE_PDF417, -1, UNICODE_MODE, 2, 3, "12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789", 0, 14, 120, 1, "Numeric Compaction 89 consecutive", "111111110101010001111010100111100011111010111111010100111101111010001000100011000011011111010101111100111111101000101001" "111111110101010001111110101000111011101001100100000111010001100001001110010000001101011111101010011100111111101000101001" "111111110101010001010100111100000011111100010110100101001100001111101010110011111000011101010001111110111111101000101001" @@ -449,7 +458,7 @@ static void test_encode(int index, int generate, int debug) { "111111110101010001010000010100000011100110011001110100111011110110001100010000100110011010000111011110111111101000101001" "111111110101010001111101000100011011100101110001100110001001110100001010001111000001011110100010010000111111101000101001" }, - /* 13*/ { BARCODE_PDF417, -1, UNICODE_MODE, 0, 3, "AB{} C#+ de{} {}F 12{} G{} H", 0, 10, 120, 0, "Text Compaction newtable, BWIPP uses PUNCT_SHIFT better for less codewords", + /* 14*/ { BARCODE_PDF417, -1, UNICODE_MODE, 0, 3, "AB{} C#+ de{} {}F 12{} G{} H", 0, 10, 120, 0, "Text Compaction newtable, BWIPP uses PUNCT_SHIFT better for less codewords", "111111110101010001110101001110000011010111000111100111101010111100001000111011100100011111010101111100111111101000101001" "111111110101010001111101010110000011100000101100010100111110100111001110001100011101011111010100110000111111101000101001" "111111110101010001010100111100000010111111001110100100001101011100001001111101101000011010101111100000111111101000101001" @@ -461,19 +470,19 @@ static void test_encode(int index, int generate, int debug) { "111111110101010001111110100110010010111111011100100110001111001011001011001100111100010100110111110000111111101000101001" "111111110101010001010001100000110010000110001100100110011100110100001100100100110000010100011000011000111111101000101001" }, - /* 14*/ { BARCODE_PDF417, -1, UNICODE_MODE, 1, 4, "\177\177\177\177\177\177\177\177\177\177\177", 0, 4, 137, 1, "Byte Compaction", + /* 15*/ { BARCODE_PDF417, -1, UNICODE_MODE, 1, 4, "\177\177\177\177\177\177\177\177\177\177\177", 0, 4, 137, 1, "Byte Compaction", "11111111010101000111101010111100001101011011100000010000010000100010111001001100111101000010100001000011101010011100000111111101000101001" "11111111010101000111110101001100001110010000111011010100111110000110111101001100001101111101000100011011111101010111000111111101000101001" "11111111010101000110101001111100001010000001011110010100000010111100101000000101111001010000001011110011010100111110000111111101000101001" "11111111010101000101011110011110001010001000001000011011000010100000111000110001001101100111000110010010101111101111100111111101000101001" - }, - /* 15*/ { BARCODE_PDF417, -1, UNICODE_MODE, 1, 4, "\177\177\177\177\177\177\177\177\177\177\177\177", 0, 4, 137, 1, "Byte Compaction, mod 6 == 0 (924 emitted)", + }, + /* 16*/ { BARCODE_PDF417, -1, UNICODE_MODE, 1, 4, "\177\177\177\177\177\177\177\177\177\177\177\177", 0, 4, 137, 1, "Byte Compaction, mod 6 == 0 (924 emitted)", "11111111010101000111101010111100001101011011100000011000111000110100111001001100111101000010100001000011101010011100000111111101000101001" "11111111010101000111110101001100001110010000111011010100111110000110111101001100001101111001010010000011111101010111000111111101000101001" "11111111010101000110101001111100001001110000100110010011000100001110101000011001111101101000101111100011010100111110000111111101000101001" "11111111010101000101011110011110001101000100011000010011000111001100110001100001000101110100010111000010101111101111100111111101000101001" }, - /* 16*/ { BARCODE_PDF417, -1, UNICODE_MODE, -1, 5, "ABCDEF1234567890123\177\177\177\177VWXYZ", 0, 6, 154, 1, "Text, Numeric, Byte, Text", + /* 17*/ { BARCODE_PDF417, -1, UNICODE_MODE, -1, 5, "ABCDEF1234567890123\177\177\177\177VWXYZ", 0, 6, 154, 1, "Text, Numeric, Byte, Text", "1111111101010100011110101011110000110101110111100001111010101111000010100111001110000110100000101100001001111011110100011110101001111000111111101000101001" "1111111101010100011110101000010000111101011001100001010011110000100011111100011101010110000010111000101111001011011000011111101010111000111111101000101001" "1111111101010100011101010011111100110011111101100101010000001011110010100000010111100101000000101111001010000001011110010101000011110000111111101000101001" @@ -481,7 +490,7 @@ static void test_encode(int index, int generate, int debug) { "1111111101010100011010111000001000101111110101100001011111101011000011001011111001110111100100100100001011111101011000011101011100110000111111101000101001" "1111111101010100011111010111100110110111110110011001101001011111000010101110011111100100100001000111101011000000101110011110101111101100111111101000101001" }, - /* 17*/ { BARCODE_PDF417COMP, -1, UNICODE_MODE, 1, 2, "PDF417 APK", 0, 6, 69, 0, "ISO 15438:2015 Figure G.1, same, BWIPP uses different encodation, same codeword count", + /* 18*/ { BARCODE_PDF417COMP, -1, UNICODE_MODE, 1, 2, "PDF417 APK", 0, 6, 69, 0, "ISO 15438:2015 Figure G.1, same, BWIPP uses different encodation, same codeword count", "111111110101010001111010101111000011010100001100000111011101100110001" "111111110101010001111010100010000011010000111000100111101000101000001" "111111110101010001110101011111100010110011011110000100111110011000101" @@ -489,7 +498,7 @@ static void test_encode(int index, int generate, int debug) { "111111110101010001111010111000111011011000001111010110010011101000001" "111111110101010001111010111101000011110100111101000110010010011111001" }, - /* 18*/ { BARCODE_PDF417COMP, -1, UNICODE_MODE, 4, 4, "ABCDEFG", 0, 10, 103, 1, "", + /* 19*/ { BARCODE_PDF417COMP, -1, UNICODE_MODE, 4, 4, "ABCDEFG", 0, 10, 103, 1, "", "1111111101010100011101010011100000110101000011000001111010101111000010100111001110000110100000101100001" "1111111101010100011110101000000100110100000011100101011111101011000010111111010110000101111110101100001" "1111111101010100011010100111110000101111001100011001000001111010100010011111001100100111001011111001001" @@ -501,7 +510,7 @@ static void test_encode(int index, int generate, int debug) { "1111111101010100010100110011111000100110000110111101100111000010111010010001011110000110011111010001001" "1111111101010100010100011000001100110001101010000001100011000110011011001001101110000111110111110101001" }, - /* 19*/ { BARCODE_HIBC_PDF, -1, UNICODE_MODE, -1, 3, "H123ABC01234567890D", 0, 8, 120, 0, "BWIPP uses different encodation, same codeword count but zint half-pad shorter", + /* 20*/ { BARCODE_HIBC_PDF, -1, UNICODE_MODE, -1, 3, "H123ABC01234567890D", 0, 8, 120, 0, "BWIPP uses different encodation, same codeword count but zint half-pad shorter", "111111110101010001111101010111110011101011001111000100000100010010001110001110100010011111010101111100111111101000101001" "111111110101010001111110101000111011110000010001010110101111110111101111100011101101011110101001000000111111101000101001" "111111110101010001010100111100000011111010111101100100001111000101001100101000011111011101010001111110111111101000101001" @@ -511,7 +520,7 @@ static void test_encode(int index, int generate, int debug) { "111111110101010001110100111011111010100110001100000110100011100111101111010010111100011101001110111110111111101000101001" "111111110101010001111101001011000011100001001100100111010000011001001111011000110100010101111110111000111111101000101001" }, - /* 20*/ { BARCODE_HIBC_PDF, -1, UNICODE_MODE, 1, 3, "A123BJC5D6E71", 0, 6, 120, 1, "BWIPP example", + /* 21*/ { BARCODE_HIBC_PDF, -1, UNICODE_MODE, 1, 3, "A123BJC5D6E71", 0, 6, 120, 1, "BWIPP example", "111111110101010001111010101111000011110101101111100100000100010010001000011011100110011111010101111100111111101000101001" "111111110101010001111010100010000011110000010001010110101111110111101111000001000101011111101010111000111111101000101001" "111111110101010001010100111100000010110001100011110101111110111101101000111100011011010101000111100000111111101000101001" @@ -519,7 +528,7 @@ static void test_encode(int index, int generate, int debug) { "111111110101010001111010111000111011010111110011100110100000011100101111110101000111011101011100110000111111101000101001" "111111110101010001111101011110110010011100110011100100011110110011001011001011100000011110101111000100111111101000101001" }, - /* 21*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 1, "ABCDEFGHIJKLMNOPQRSTUV", 0, 20, 38, 1, "ISO 24728:2006 Figure 1 1st 1x20, same", + /* 22*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 1, "ABCDEFGHIJKLMNOPQRSTUV", 0, 20, 38, 1, "ISO 24728:2006 Figure 1 1st 1x20, same", "11110101001000011000110010011110101001" "11100101001111110101011100011100101001" "11101101001010011001111100011101101001" @@ -541,7 +550,7 @@ static void test_encode(int index, int generate, int debug) { "11011101001111011111011010011011101001" "11011001001100010001110100011011001001" }, - /* 22*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 2, "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCD", 0, 20, 55, 1, "ISO 24728:2006 Figure 1 2nd 2x20, same", + /* 23*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 2, "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCD", 0, 20, 55, 1, "ISO 24728:2006 Figure 1 2nd 2x20, same", "1111010100100001100011001001111010101111000011110101001" "1110010100110101111110111101111101000100110011100101001" "1110110100101101100111100001011001110011111011101101001" @@ -563,7 +572,7 @@ static void test_encode(int index, int generate, int debug) { "1101110100111010110011110001000001001101100011011101001" "1101100100111100110110100001001001111001000011011001001" }, - /* 23*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 3, "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMN", 0, 20, 82, 1, "ISO 24728:2006 Figure 1 3rd 3x20", + /* 24*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 3, "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMN", 0, 20, 82, 1, "ISO 24728:2006 Figure 1 3rd 3x20", "1100100010100001100011001001011110010111101010111100001010011100111000011100101101" "1110100010111110100010011001011110110101000011111001101001011110010000011000101101" "1110110010111100010111101001001110110110111011001111001001100001000111011000101001" @@ -585,7 +594,7 @@ static void test_encode(int index, int generate, int debug) { "1111010100101111011110100001011001000111110011010111101011110111110110011010000101" "1110010100110010001111011001011001100111000010111011001110001011100110011011000101" }, - /* 24*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 4, "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZAB", 0, 20, 99, 1, "ISO 24728:2006 Figure 1 4th 4x20, same", + /* 25*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 4, "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZAB", 0, 20, 99, 1, "ISO 24728:2006 Figure 1 4th 4x20, same", "110010001010000110001100100111101010111100001011110010101001110011100001101000001011000011100101101" "111010001010100001111100110100101111001000001011110110111011011110011001101100111100100011000101101" "111011001010011000010001110110011101000011101001110110110111100101100001000001010111100011000101001" @@ -607,7 +616,7 @@ static void test_encode(int index, int generate, int debug) { "111101010011100011101010000110001011101111001011001000111110111101011001100101110111100011010000101" "111001010010001000001111010111100010100001001011001100100111101101111101001110100111110011011000101" }, - /* 25*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 1, "123456789012345", 0, 14, 38, 1, "Number Compaction", + /* 26*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 1, "123456789012345", 0, 14, 38, 1, "Number Compaction", "11101110101011111101001100011101110101" "11100110101110101011111100011100110101" "11110110101000001011001100011110110101" @@ -623,7 +632,7 @@ static void test_encode(int index, int generate, int debug) { "11100101001101011110000110011100101001" "11101101001101000111111001011101101001" }, - /* 26*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 2, "\177\177\177", 0, 8, 55, 1, "Byte Compaction", + /* 27*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 2, "\177\177\177", 0, 8, 55, 1, "Byte Compaction", "1100100010100000100001000101010000010010000011001000101" "1110100010111110100010001101111101000100011011101000101" "1110110010110001111100100101100011111001001011101100101" @@ -633,7 +642,7 @@ static void test_encode(int index, int generate, int debug) { "1100111010111001111001100101000001001101100011001110101" "1110111010111000101111011101110001000011010011101110101" }, - /* 27*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 2, "\177\177\177\177\177\177", 0, 8, 55, 1, "Byte Compaction, mod 6 == 0 (924 emitted)", + /* 28*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 2, "\177\177\177\177\177\177", 0, 8, 55, 1, "Byte Compaction, mod 6 == 0 (924 emitted)", "1100100010110001110001101001110010011001111011001000101" "1110100010100010001111010001110010000111011011101000101" "1110110010101000011001111101101000101111100011101100101" @@ -643,7 +652,7 @@ static void test_encode(int index, int generate, int debug) { "1100111010100100010000100001110111101100001011001110101" "1110111010111110011010100001101100001111010011101110101" }, - /* 28*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 3, "ABCDEFG\177\177\177", 0, 8, 82, 1, "Text & Byte Compaction", + /* 29*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 3, "ABCDEFG\177\177\177", 0, 8, 82, 1, "Text & Byte Compaction", "1100111010100001100011001001000010110111101010111100001010011100111000011001110101" "1110111010111110100010011001000010010110100000011100101101111110101110011101110101" "1110011010101000000101111001000011010101000000101111001010000001011110011100110101" @@ -653,7 +662,7 @@ static void test_encode(int index, int generate, int debug) { "1100001010111110111010111001001100010110011100011000101101100001100110011000010101" "1100011010110100011100001001001110010110110000111101001100011011110010011000110101" }, - /* 29*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 4, "\177\177\177abcdefgh1234567890123", 0, 8, 99, 1, "Byte & Text & Numeric Compaction", + /* 30*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 4, "\177\177\177abcdefgh1234567890123", 0, 8, 99, 1, "Byte & Text & Numeric Compaction", "110011101010000010000100010101000001001000001000010110101000001001000001010000010010000011001110101" "111011101010111111010110000110000010111001001000010010111101011100111001110100111001100011101110101" "111001101011111001011110110101100110011110001000011010100001111000101001111110101100010011100110101" @@ -663,7 +672,7 @@ static void test_encode(int index, int generate, int debug) { "110000101011000011010000100100000101101100001001100010101110111110111001111001110010110011000010101" "110001101011101110111100010100100011110100001001110010100000101111000101111001010010000011000110101" }, - /* 30*/ { BARCODE_HIBC_MICPDF, -1, UNICODE_MODE, -1, 4, "H123ABC01234567890D", 0, 8, 99, 0, "BWIPP uses different encodation, same codeword count but zint full-pad shorter", + /* 31*/ { BARCODE_HIBC_MICPDF, -1, UNICODE_MODE, -1, 4, "H123ABC01234567890D", 0, 8, 99, 0, "BWIPP uses different encodation, same codeword count but zint full-pad shorter", "110011101010000110001100100100000100010010001000010110111000111010001001000001001100011011001110101" "111011101011010111111011110111110001110110101000010010111101011100111001011111101001100011101110101" "111001101011001010000111110100011110101000001000011010100111110001101001011011000111100011100110101" @@ -673,7 +682,7 @@ static void test_encode(int index, int generate, int debug) { "110000101010110110001000000111000101100111101001100010110111101110000101100010101100000011000010101" "110001101011110110000011010111100100001101101001110010101101011111100001111001000110011011000110101" }, - /* 31*/ { BARCODE_HIBC_MICPDF, -1, UNICODE_MODE, -1, 1, "/EAH783", 0, 17, 38, 1, "HIBC Provider Applications Standard (PAS) example", + /* 32*/ { BARCODE_HIBC_MICPDF, -1, UNICODE_MODE, -1, 1, "/EAH783", 0, 17, 38, 1, "HIBC Provider Applications Standard (PAS) example", "11001101001100011111001001011001101001" "11011101001000001000100100011011101001" "11011001001000100011110100011011001001" @@ -692,7 +701,7 @@ static void test_encode(int index, int generate, int debug) { "11010000101101100100001111011010000101" "11011000101110111000100010011011000101" }, - /* 32*/ { BARCODE_PDF417, 9, DATA_MODE, -1, -1, "\342", 0, 7, 103, 1, "β", + /* 33*/ { BARCODE_PDF417, 9, DATA_MODE, -1, -1, "\342", 0, 7, 103, 1, "β", "1111111101010100011111010101111100110101000110000001100011100011001011110101011110000111111101000101001" "1111111101010100011111010100011000111110101000011001011111100100011011110101001000000111111101000101001" "1111111101010100011101010111111000110110010011110001100011111001001011010100011111000111111101000101001" @@ -701,7 +710,7 @@ static void test_encode(int index, int generate, int debug) { "1111111101010100011110101111010000100011110001000101000110010111000011110101111000010111111101000101001" "1111111101010100011101001110111110101110001110001001010001101100000011010011101111000111111101000101001" }, - /* 33*/ { BARCODE_MICROPDF417, 9, DATA_MODE, -1, 1, "\342\343", 0, 14, 38, 1, "βγ", + /* 34*/ { BARCODE_MICROPDF417, 9, DATA_MODE, -1, 1, "\342\343", 0, 14, 38, 1, "βγ", "11101110101001111110010110011101110101" "11100110101101010000111110011100110101" "11110110101000001000010001011110110101"