diff --git a/backend/code.c b/backend/code.c index a39c0f7c..256f30fc 100644 --- a/backend/code.c +++ b/backend/code.c @@ -305,7 +305,7 @@ INTERNAL int c39(struct zint_symbol *symbol, unsigned char source[], int length) width = (C + 2) * (3 * N + 6) * X + (C + 1) * I = (C + 2) * 9 + C + 1) * X = (10 * C + 19) */ height = (float) ((10.0 * (symbol->option_2 == 1 ? length + 1 : length) + 19.0) * 0.15); /* Using 50 as default as none recommended */ - error_number = set_height(symbol, height , height > 50.0f ? height : 50.0f, 0.0f, 0 /*no_errtxt*/); + error_number = set_height(symbol, height, height > 50.0f ? height : 50.0f, 0.0f, 0 /*no_errtxt*/); } #else height = 50.0f; diff --git a/backend/code1.c b/backend/code1.c index 478ffdde..64460626 100644 --- a/backend/code1.c +++ b/backend/code1.c @@ -451,10 +451,6 @@ static int c40text_cnt(const int current_mode, const int gs1, unsigned char inpu return 2; } cnt = 1; - if (input & 0x80) { - cnt += 2; - input = input - 128; - } if ((current_mode == C1_C40 && c40_shift[input]) || (current_mode == C1_TEXT && text_shift[input])) { cnt += 1; } @@ -814,7 +810,7 @@ static int c1_encode(struct zint_symbol *symbol, unsigned char source[], unsigne if (cte_p >= 1) { int cws_remaining = codewords_remaining(symbol, tp); - /* Note doing strict interpretation of spec here (same as BWIPP), unlike in Data Matrix case */ + /* Note doing strict interpretation of spec here (same as BWIPP), as now also done in Data Matrix case */ if (cws_remaining == 1 && cte_p == 1 && isc40text(current_mode, source[sp - 1])) { /* 2.2.2.2 "...except when a single symbol character is left at the end before the first error correction character. This single character is encoded in the ASCII code set." */ diff --git a/backend/code128.c b/backend/code128.c index cfb53e2f..f9fc5703 100644 --- a/backend/code128.c +++ b/backend/code128.c @@ -753,9 +753,6 @@ INTERNAL int ean_128_cc(struct zint_symbol *symbol, unsigned char source[], int indexchaine = 0; mode = parunmodd(reduced[indexchaine]); - if (reduced[indexchaine] == '[') { - mode = ABORC; - } do { list[1][indexliste] = mode; @@ -776,15 +773,16 @@ INTERNAL int ean_128_cc(struct zint_symbol *symbol, unsigned char source[], int dxsmooth(list, &indexliste); /* Put set data into set[] */ + /* Note as control chars not permitted in GS1, no reason to ever be in Set A, but cases left in anyway */ read = 0; for (i = 0; i < indexliste; i++) { for (j = 0; j < list[0][i]; j++) { switch (list[1][i]) { - case SHIFTA: set[read] = 'a'; + case SHIFTA: set[read] = 'a'; /* Not reached */ break; - case LATCHA: set[read] = 'A'; + case LATCHA: set[read] = 'A'; /* Not reached */ break; - case SHIFTB: set[read] = 'b'; + case SHIFTB: set[read] = 'b'; /* Not reached */ break; case LATCHB: set[read] = 'B'; break; @@ -841,12 +839,12 @@ INTERNAL int ean_128_cc(struct zint_symbol *symbol, unsigned char source[], int } /* Now we can calculate how long the barcode is going to be - and stop it from - being too long */ + being too long */ last_set = set[0]; glyph_count = 0.0f; for (i = 0; i < reduced_length; i++) { if ((set[i] == 'a') || (set[i] == 'b')) { - glyph_count = glyph_count + 1.0f; + glyph_count = glyph_count + 1.0f; /* Not reached */ } if (((set[i] == 'A') || (set[i] == 'B')) || (set[i] == 'C')) { if (set[i] != last_set) { @@ -869,7 +867,7 @@ INTERNAL int ean_128_cc(struct zint_symbol *symbol, unsigned char source[], int /* So now we know what start character to use - we can get on with it! */ switch (set[0]) { case 'A': /* Start A */ - strcat(dest, C128Table[103]); + strcat(dest, C128Table[103]); /* Not reached */ values[0] = 103; break; case 'B': /* Start B */ @@ -893,7 +891,7 @@ INTERNAL int ean_128_cc(struct zint_symbol *symbol, unsigned char source[], int if ((read != 0) && (set[read] != set[read - 1])) { /* Latch different code set */ switch (set[read]) { - case 'A': strcat(dest, C128Table[101]); + case 'A': strcat(dest, C128Table[101]); /* Not reached */ values[bar_characters] = 101; bar_characters++; break; @@ -910,7 +908,7 @@ INTERNAL int ean_128_cc(struct zint_symbol *symbol, unsigned char source[], int if ((set[read] == 'a') || (set[read] == 'b')) { /* Insert shift character */ - strcat(dest, C128Table[98]); + strcat(dest, C128Table[98]); /* Not reached */ values[bar_characters] = 98; bar_characters++; } @@ -919,7 +917,7 @@ INTERNAL int ean_128_cc(struct zint_symbol *symbol, unsigned char source[], int switch (set[read]) { /* Encode data characters */ case 'A': case 'a': - c128_set_a(reduced[read], dest, values, &bar_characters); + c128_set_a(reduced[read], dest, values, &bar_characters); /* Not reached */ read++; break; case 'B': @@ -950,7 +948,7 @@ INTERNAL int ean_128_cc(struct zint_symbol *symbol, unsigned char source[], int case 2: /* CC-A or CC-B 2D component */ switch (set[reduced_length - 1]) { - case 'A': linkage_flag = 100; + case 'A': linkage_flag = 100; /* Not reached */ break; case 'B': linkage_flag = 99; break; @@ -961,7 +959,7 @@ INTERNAL int ean_128_cc(struct zint_symbol *symbol, unsigned char source[], int case 3: /* CC-C 2D component */ switch (set[reduced_length - 1]) { - case 'A': linkage_flag = 99; + case 'A': linkage_flag = 99; /* Not reached */ break; case 'B': linkage_flag = 101; break; diff --git a/backend/code16k.c b/backend/code16k.c index acc5597c..e62d2ce4 100644 --- a/backend/code16k.c +++ b/backend/code16k.c @@ -152,9 +152,6 @@ INTERNAL int code16k(struct zint_symbol *symbol, unsigned char source[], int len indexchaine = 0; mode = parunmodd(source[indexchaine]); - if ((gs1) && (source[indexchaine] == '[')) { - mode = ABORC; - } /* FNC1 */ do { list[1][indexliste] = mode; diff --git a/backend/composite.c b/backend/composite.c index 4b0f0adb..5d37781f 100644 --- a/backend/composite.c +++ b/backend/composite.c @@ -294,7 +294,7 @@ static void cc_a(struct zint_symbol *symbol, const char source[], const int cc_w symbol->width = bp; if (symbol->debug & ZINT_DEBUG_PRINT) { - printf("CC-A Columns: %d, Rows: %d\n", cc_width, symbol->rows); + printf("CC-A Columns: %d, Rows: %d, Variant: %d, CodeWords: %d\n", cc_width, symbol->rows, variant, cwCnt); } } @@ -413,9 +413,9 @@ static void cc_b(struct zint_symbol *symbol, const char source[], const int cc_w i = longueur - mclength; /* amount of padding required */ offset = MicroVariants[variant + 102]; /* coefficient offset */ - /* We add the padding */ + /* Binary input padded to target length so no padding should be necessary */ while (i > 0) { - chainemc[mclength] = 900; + chainemc[mclength] = 900; /* Not reached */ mclength++; i--; } @@ -517,7 +517,8 @@ static void cc_b(struct zint_symbol *symbol, const char source[], const int cc_w symbol->width = bp; if (symbol->debug & ZINT_DEBUG_PRINT) { - printf("CC-B Columns: %d, Rows: %d\n", cc_width, symbol->rows); + printf("CC-B Columns: %d, Rows: %d, Variant: %d, CodeWords: %d\n", + cc_width, symbol->rows, variant + 1, mclength); } } @@ -558,6 +559,12 @@ static void cc_c(struct zint_symbol *symbol, const char source[], const int cc_w chainemc[0] = mclength; + if (symbol->debug & ZINT_DEBUG_PRINT) { + printf("CC-C Codewords (%d):", mclength); + for (i = 0; i < mclength; i++) printf(" %d", chainemc[i]); + printf("\n"); + } + k = 1; for (i = 1; i <= (ecc_level + 1); i++) { k *= 2; @@ -565,23 +572,23 @@ static void cc_c(struct zint_symbol *symbol, const char source[], const int cc_w /* 796 - we now take care of the Reed Solomon codes */ switch (ecc_level) { - case 1: offset = 2; + case 1: offset = 2; /* Not reached */ break; - case 2: offset = 6; + case 2: offset = 6; /* Min ECC currently used is 2 */ break; case 3: offset = 14; break; case 4: offset = 30; break; - case 5: offset = 62; + case 5: offset = 62; /* Max ECC currently used is 5 */ break; - case 6: offset = 126; + case 6: offset = 126; /* Not reached */ break; - case 7: offset = 254; + case 7: offset = 254; /* Not reached */ break; - case 8: offset = 510; + case 8: offset = 510; /* Not reached */ break; - default: offset = 0; + default: offset = 0; /* Not reached */ break; } @@ -656,7 +663,8 @@ static void cc_c(struct zint_symbol *symbol, const char source[], const int cc_w symbol->width = bp; if (symbol->debug & ZINT_DEBUG_PRINT) { - printf("CC-C Columns: %d, Rows: %d\n", cc_width, symbol->rows); + printf("CC-C Columns: %d, Rows: %d, CodeWords: %d, ECC Level: %d\n", + cc_width, symbol->rows, mclength, ecc_level); } } @@ -786,7 +794,7 @@ static int calc_padding_ccb(const int binary_length, const int cc_width) { return target_bitsize; } -static int calc_padding_ccc(const int binary_length, int *cc_width, const int lin_width, int *ecc) { +static int calc_padding_ccc(const int binary_length, int *cc_width, const int linear_width, int *ecc) { int target_bitsize = 0; int byte_length, codewords_used, ecc_level, ecc_codewords, rows; int codewords_total, target_codewords, target_bytesize; @@ -820,7 +828,8 @@ static int calc_padding_ccc(const int binary_length, int *cc_width, const int li codewords_used += ecc_codewords; codewords_used += 3; - *(cc_width) = (lin_width - 53) / 17; // -53 = (6 left quiet zone + 10 right quiet zone - (17 * 3 + 18)) + /* -52 = 7 left shift (section 12.3 f) + 10 right quiet zone - 17 start + 2x17 row indicators + 18 stop */ + *(cc_width) = (linear_width - 52) / 17; if (*(cc_width) > 30) { *(cc_width) = 30; } @@ -831,8 +840,8 @@ static int calc_padding_ccc(const int binary_length, int *cc_width, const int li rows = (int) ceil((double) codewords_used / *(cc_width)); } - if (rows > 30) { - return 0; + if (rows > 30) { /* Should never happen given `codewords_used` check above (865 / 30 ~ 28.83) */ + return 0; /* Not reached */ } if (rows < 3) { rows = 3; @@ -853,7 +862,7 @@ static int calc_padding_ccc(const int binary_length, int *cc_width, const int li /* Handles all data encodation from section 5 of ISO/IEC 24723 */ static int cc_binary_string(struct zint_symbol *symbol, const unsigned char source[], const int source_len, - char binary_string[], const int cc_mode, int *cc_width, int *ecc, const int lin_width) { + char binary_string[], const int cc_mode, int *cc_width, int *ecc, const int linear_width) { int encoding_method, read_posn, alpha_pad; int i, j, ai_crop, ai_crop_posn, fnc1_latch; int ai90_mode, remainder; @@ -1169,7 +1178,7 @@ static int cc_binary_string(struct zint_symbol *symbol, const unsigned char sour target_bitsize = calc_padding_ccb(bp, *(cc_width)); break; case 3: - target_bitsize = calc_padding_ccc(bp, cc_width, lin_width, ecc); + target_bitsize = calc_padding_ccc(bp, cc_width, linear_width, ecc); break; } @@ -1198,11 +1207,6 @@ static int cc_binary_string(struct zint_symbol *symbol, const unsigned char sour } } - if (bp > 11805) { /* (2361 * 5) */ - strcpy(symbol->errtxt, "443: Input too long"); - return ZINT_ERROR_TOO_LONG; - } - switch (cc_mode) { case 1: target_bitsize = calc_padding_cca(bp, *(cc_width)); @@ -1211,7 +1215,7 @@ static int cc_binary_string(struct zint_symbol *symbol, const unsigned char sour target_bitsize = calc_padding_ccb(bp, *(cc_width)); break; case 3: - target_bitsize = calc_padding_ccc(bp, cc_width, lin_width, ecc); + target_bitsize = calc_padding_ccc(bp, cc_width, linear_width, ecc); break; } @@ -1271,7 +1275,8 @@ static const char in_linear_comp[] = " in linear component"; INTERNAL int composite(struct zint_symbol *symbol, unsigned char source[], int length) { int error_number, warn_number = 0, cc_mode, cc_width = 0, ecc_level = 0; int j, i, k; - unsigned int bs = 13 * length + 500 + 1; /* Allow for 8 bits + 5-bit latch per char + 500 bits overhead/padding */ + /* Allow for 8 bits + 5-bit latch per char + 1000 bits overhead/padding */ + unsigned int bs = 13 * length + 1000 + 1; #ifndef _MSC_VER char binary_string[bs]; #else @@ -1282,6 +1287,8 @@ INTERNAL int composite(struct zint_symbol *symbol, unsigned char source[], int l int top_shift, bottom_shift; int linear_width = 0; + if (symbol->debug & ZINT_DEBUG_PRINT) printf("Reduced length: %d\n", length); + /* Perform sanity checks on input options first */ error_number = 0; pri_len = (int) strlen(symbol->primary); @@ -1383,6 +1390,7 @@ INTERNAL int composite(struct zint_symbol *symbol, unsigned char source[], int l if (cc_mode == 1) { i = cc_binary_string(symbol, source, length, binary_string, cc_mode, &cc_width, &ecc_level, linear_width); if (i == ZINT_ERROR_TOO_LONG) { + symbol->errtxt[0] = '\0'; /* Unset error text */ cc_mode = 2; } else if (i != 0) { return i; @@ -1396,6 +1404,7 @@ INTERNAL int composite(struct zint_symbol *symbol, unsigned char source[], int l if (symbol->symbology != BARCODE_GS1_128_CC) { return ZINT_ERROR_TOO_LONG; } + symbol->errtxt[0] = '\0'; /* Unset error text */ cc_mode = 3; } else if (i != 0) { return i; @@ -1506,7 +1515,7 @@ INTERNAL int composite(struct zint_symbol *symbol, unsigned char source[], int l } break; case BARCODE_GS1_128_CC: if (cc_mode == 3) { - bottom_shift = 7; + bottom_shift = 7; /* ISO/IEC 24723:2010 12.3 f) */ } else { /* ISO/IEC 24723:2010 12.3 g) "GS1-128 components linked to the right quiet zone of the CC-A or CC-B: the CC-A or CC-B component is aligned with the last space module of one of the rightmost symbol diff --git a/backend/dotcode.c b/backend/dotcode.c index bf7e1370..f77a20f4 100644 --- a/backend/dotcode.c +++ b/backend/dotcode.c @@ -1434,8 +1434,8 @@ INTERNAL int dotcode(struct zint_symbol *symbol, unsigned char source[], int len } if ((height < 5) || (width < 5)) { - if (height < 5 && width < 5) { - sprintf(symbol->errtxt, "527: Symbol size %dx%d (WxH) is too small", width, height); + if (height < 5 && width < 5) { /* Won't happen as if width < 5, min height is 19 */ + sprintf(symbol->errtxt, "527: Symbol size %dx%d (WxH) is too small", width, height); /* Not reached */ } else { sprintf(symbol->errtxt, "529: Symbol %s %d is too small", width < 5 ? "width" : "height", width < 5 ? width : height); diff --git a/backend/medical.c b/backend/medical.c index ac4a1b47..a69f5870 100644 --- a/backend/medical.c +++ b/backend/medical.c @@ -362,8 +362,8 @@ INTERNAL int code32(struct zint_symbol *symbol, unsigned char source[], int leng risultante[6] = '\0'; /* Plot the barcode using Code 39 */ error_number = c39(symbol, (unsigned char*) risultante, (int) strlen(risultante)); - if (error_number != 0) { - return error_number; + if (error_number != 0) { /* Should never happen */ + return error_number; /* Not reached */ } #ifdef COMPLIANT_HEIGHTS diff --git a/backend/pdf417.c b/backend/pdf417.c index 90e1aec2..2cae1fc4 100644 --- a/backend/pdf417.c +++ b/backend/pdf417.c @@ -552,7 +552,7 @@ static int pdf417(struct zint_symbol *symbol, unsigned char chaine[], const int break; case NUM: printf("Number\n"); break; - default: printf("ERROR\n"); + default: printf("ERROR\n"); /* Should never happen */ /* Not reached */ break; } } @@ -610,7 +610,7 @@ static int pdf417(struct zint_symbol *symbol, unsigned char chaine[], const int assert(mclength > 0); /* Suppress clang-analyzer-core.uninitialized.Assign warning */ if (debug) { - printf("\nCompressed data stream:\n"); + printf("\nCompressed data stream (%d):\n", mclength); for (i = 0; i < mclength; i++) { printf("%d ", chainemc[i]); } @@ -642,9 +642,7 @@ static int pdf417(struct zint_symbol *symbol, unsigned char chaine[], const int return ZINT_ERROR_TOO_LONG; } - if (symbol->option_2 > 30) { - symbol->option_2 = 30; - } else if (symbol->option_2 < 1) { + if (symbol->option_2 < 1) { symbol->option_2 = (int) (0.5 + sqrt((longueur + k) / 3.0)); } if (((longueur + k) / symbol->option_2) > 90) { @@ -717,7 +715,7 @@ static int pdf417(struct zint_symbol *symbol, unsigned char chaine[], const int } if (debug) { - printf("Complete CW string:\n"); + printf("Complete CW string (%d):\n", mclength); for (i = 0; i < mclength; i++) { printf("%d ", chainemc[i]); } @@ -732,6 +730,8 @@ static int pdf417(struct zint_symbol *symbol, unsigned char chaine[], const int symbol->rows = mclength / symbol->option_2; assert(symbol->rows > 0); /* Suppress clang-analyzer-core.DivideZero warning */ + if (debug) printf("\nSymbol size:\n%d columns x %d rows\n", symbol->option_2, symbol->rows); + /* 818 - The CW string is finished */ c1 = (symbol->rows - 1) / 3; c2 = symbol->option_1 * 3 + (symbol->rows - 1) % 3; @@ -801,19 +801,17 @@ INTERNAL int pdf417enc(struct zint_symbol *symbol, unsigned char source[], int l strcpy(symbol->errtxt, "460: Security value out of range"); if (symbol->warn_level == WARN_FAIL_ALL) { return ZINT_ERROR_INVALID_OPTION; - } else { - symbol->option_1 = -1; - error_number = ZINT_WARN_INVALID_OPTION; } + symbol->option_1 = -1; + error_number = ZINT_WARN_INVALID_OPTION; } if ((symbol->option_2 < 0) || (symbol->option_2 > 30)) { strcpy(symbol->errtxt, "461: Number of columns out of range"); if (symbol->warn_level == WARN_FAIL_ALL) { return ZINT_ERROR_INVALID_OPTION; - } else { - symbol->option_2 = 0; - error_number = ZINT_WARN_INVALID_OPTION; } + symbol->option_2 = 0; + error_number = ZINT_WARN_INVALID_OPTION; } /* 349 */ @@ -877,7 +875,7 @@ INTERNAL int micro_pdf417(struct zint_symbol *symbol, unsigned char chaine[], in break; case NUM: printf("NUMBER\n"); break; - default: printf("*ERROR*\n"); + default: printf("*ERROR*\n"); /* Should never happen */ /* Not reached */ break; } } @@ -944,14 +942,13 @@ INTERNAL int micro_pdf417(struct zint_symbol *symbol, unsigned char chaine[], in strcpy(symbol->errtxt, "468: Specified width out of range"); if (symbol->warn_level == WARN_FAIL_ALL) { return ZINT_ERROR_INVALID_OPTION; - } else { - symbol->option_2 = 0; - error_number = ZINT_WARN_INVALID_OPTION; } + symbol->option_2 = 0; + error_number = ZINT_WARN_INVALID_OPTION; } if (debug) { - printf("\nEncoded Data Stream:\n"); + printf("\nEncoded Data Stream (%d):\n", mclength); for (i = 0; i < mclength; i++) { printf("%3d ", chainemc[i]); } @@ -967,10 +964,9 @@ INTERNAL int micro_pdf417(struct zint_symbol *symbol, unsigned char chaine[], in strcpy(symbol->errtxt, "469: Specified symbol size too small for data"); if (symbol->warn_level == WARN_FAIL_ALL) { return ZINT_ERROR_INVALID_OPTION; - } else { - symbol->option_2 = 0; - error_number = ZINT_WARN_INVALID_OPTION; } + symbol->option_2 = 0; + error_number = ZINT_WARN_INVALID_OPTION; } if ((symbol->option_2 == 2) && (mclength > 37)) { @@ -978,10 +974,9 @@ INTERNAL int micro_pdf417(struct zint_symbol *symbol, unsigned char chaine[], in strcpy(symbol->errtxt, "470: Specified symbol size too small for data"); if (symbol->warn_level == WARN_FAIL_ALL) { return ZINT_ERROR_INVALID_OPTION; - } else { - symbol->option_2 = 0; - error_number = ZINT_WARN_INVALID_OPTION; } + symbol->option_2 = 0; + error_number = ZINT_WARN_INVALID_OPTION; } if ((symbol->option_2 == 3) && (mclength > 82)) { @@ -989,10 +984,9 @@ INTERNAL int micro_pdf417(struct zint_symbol *symbol, unsigned char chaine[], in strcpy(symbol->errtxt, "471: Specified symbol size too small for data"); if (symbol->warn_level == WARN_FAIL_ALL) { return ZINT_ERROR_INVALID_OPTION; - } else { - symbol->option_2 = 0; - error_number = ZINT_WARN_INVALID_OPTION; } + symbol->option_2 = 0; + error_number = ZINT_WARN_INVALID_OPTION; } if (symbol->option_2 == 1) { @@ -1098,7 +1092,7 @@ INTERNAL int micro_pdf417(struct zint_symbol *symbol, unsigned char chaine[], in if (debug) { printf("\nChoose symbol size:\n"); - printf("%d columns x %d rows\n", symbol->option_2, symbol->rows); + printf("%d columns x %d rows, variant %d\n", symbol->option_2, symbol->rows, variant + 1); printf("%d data codewords (including %d pads), %d ecc codewords\n", longueur, i, k); printf("\n"); } @@ -1135,7 +1129,7 @@ INTERNAL int micro_pdf417(struct zint_symbol *symbol, unsigned char chaine[], in } if (debug) { - printf("Encoded Data Stream with ECC:\n"); + printf("Encoded Data Stream with ECC (%d):\n", mclength); for (i = 0; i < mclength; i++) { printf("%3d ", chainemc[i]); } diff --git a/backend/postal.c b/backend/postal.c index 6ed2c370..351b040d 100644 --- a/backend/postal.c +++ b/backend/postal.c @@ -701,6 +701,8 @@ INTERNAL int japan_post(struct zint_symbol *symbol, unsigned char source[], int } strcat(pattern, JapanTable[posn(KASUTSET, check_char)]); + if (symbol->debug & ZINT_DEBUG_PRINT) printf("Check: %d, char: %c\n", check, check_char); + strcat(pattern, "31"); /* Stop */ /* Resolve pattern to 4-state symbols */ diff --git a/backend/qr.c b/backend/qr.c index fe798e14..11371984 100644 --- a/backend/qr.c +++ b/backend/qr.c @@ -2700,8 +2700,8 @@ INTERNAL int upnqr(struct zint_symbol *symbol, unsigned char source[], int lengt mode[i] = 'B'; } break; - case GS1_MODE: - strcpy(symbol->errtxt, "571: UPNQR does not support GS-1 encoding"); + case GS1_MODE: /* Should never happen as checked before being called */ + strcpy(symbol->errtxt, "571: UPNQR does not support GS-1 encoding"); /* Not reached */ return ZINT_ERROR_INVALID_OPTION; break; case UNICODE_MODE: diff --git a/backend/tests/test_code1.c b/backend/tests/test_code1.c index f433b86b..18417c1d 100644 --- a/backend/tests/test_code1.c +++ b/backend/tests/test_code1.c @@ -1706,7 +1706,97 @@ static void test_encode(int index, int generate, int debug) { "1011110100111010100000" "0001111010001000110010" }, - /* 57*/ { -1, -1, -1, "123456789012345", -1, 0, 16, 18, 1, "5 DECIMAL triplets, ASCII switch before padding (2)", + /* 57*/ { -1, -1, -1, "\015*>\015*>\015*>ABC", -1, 0, 16, 18, 1, "3 EDI triplets + 3 alphas (EDI)", + "111011000000100000" + "111010000010110000" + "001010000000100101" + "101110000010111001" + "111010111100100000" + "000010000000100000" + "111111111111111111" + "000000000000000000" + "011111111111111110" + "010000000000000010" + "011111111111111110" + "100111111111100110" + "111001010000100011" + "011001101110101101" + "010011011100100111" + "000001001101111001" + }, + /* 58*/ { -1, -1, -1, "\015*>\015*>\015*>1234567", -1, 0, 22, 22, 1, "3 EDI triplets + 7 digits ending (EDI)", + "1110110000001000000010" + "1110100000101100001011" + "0000100010001000110011" + "0000101011000010000011" + "0111101111001110001000" + "0011101111100000010001" + "1000101000100010000000" + "0000100000000000100000" + "1111111111111111111111" + "0000000000000000000000" + "0111111111111111111110" + "0100000000000000000010" + "0111111111111111111110" + "0100000000000000000010" + "0111111111111111111110" + "0001000100010001100101" + "1011111111111010100100" + "1000111100110000100110" + "0010100010010111101000" + "0101100111000110101001" + "0110011101010010101010" + "0101111011000100110001" + }, + /* 59*/ { -1, -1, -1, "\015*>\015*>\015*>12345678", -1, 0, 22, 22, 1, "3 EDI triplets + 8 digits ending -> DECIMAL", + "1110110000001000000010" + "1110100000101100001011" + "0000100010111110001010" + "0000101011111111100100" + "1011101101100010001000" + "1010100000000100010001" + "1000101000100010001110" + "0000100000000000100000" + "1111111111111111111111" + "0000000000000000000000" + "0111111111111111111110" + "0100000000000000000010" + "0111111111111111111110" + "0100000000000000000010" + "0111111111111111111110" + "0001000100010001101101" + "1101011110111101100011" + "1100101101000111100010" + "1000010100101111100101" + "0110001001101100100110" + "1101100100110011101111" + "1001110001001011110010" + }, + /* 60*/ { -1, -1, -1, "\015*>\015*>\015*>123456789012\015*>", -1, 0, 22, 22, 1, "3 EDI triplets + 12 DECIMAL not ending -> DECIMAL", + "1110110000001000000010" + "1110100000101100001011" + "0000100010111110001010" + "0000101011111111100100" + "1011101101110110000000" + "1010100000110011101110" + "0010100011100010001010" + "0000100000000000100000" + "1111111111111111111111" + "0000000000000000000000" + "0111111111111111111110" + "0100000000000000000010" + "0111111111111111111110" + "0100000000000000000010" + "0111111111111111111110" + "1011111100010001100011" + "0111101001010000100101" + "0010110110010110101010" + "1100111001111011100010" + "1000011000100100101001" + "1110010110011011100001" + "1100100100000011111100" + }, + /* 61*/ { -1, -1, -1, "123456789012345", -1, 0, 16, 18, 1, "5 DECIMAL triplets, ASCII switch before padding (2)", "111111111111001100" "000110000110010101" "100010110101101111" @@ -1724,7 +1814,7 @@ static void test_encode(int index, int generate, int debug) { "100010110110101011" "111111011010110001" }, - /* 58*/ { -1, -1, -1, "1234567890123456", -1, 0, 16, 18, 1, "5 DECIMAL triplets + singlet, switch to ASCII before padding (2)", + /* 62*/ { -1, -1, -1, "1234567890123456", -1, 0, 16, 18, 1, "5 DECIMAL triplets + singlet, switch to ASCII before padding (2)", "111111111111001100" "000110000110010101" "100010110101101111" @@ -1742,7 +1832,7 @@ static void test_encode(int index, int generate, int debug) { "000101110010100011" "010101000001110111" }, - /* 59*/ { -1, -1, -1, "12345678901234567", -1, 0, 16, 18, 1, "5 DECIMAL triplets + doublet, switch before ASCII encoding of final char, padding (1)", + /* 63*/ { -1, -1, -1, "12345678901234567", -1, 0, 16, 18, 1, "5 DECIMAL triplets + doublet, switch before ASCII encoding of final char, padding (1)", "111111111111001100" "000110000110010101" "100010110101101111" @@ -1760,7 +1850,7 @@ static void test_encode(int index, int generate, int debug) { "011100000111101100" "100010110100110100" }, - /* 60*/ { -1, -1, -1, "123456789012345678", -1, 0, 16, 18, 1, "6 DECIMAL triplets, switch to ASCII, padding (1)", + /* 64*/ { -1, -1, -1, "123456789012345678", -1, 0, 16, 18, 1, "6 DECIMAL triplets, switch to ASCII, padding (1)", "111111111111001100" "000110000110010101" "100010110101101010" @@ -1778,7 +1868,7 @@ static void test_encode(int index, int generate, int debug) { "101110000010100101" "011010011110111101" }, - /* 61*/ { -1, -1, -1, "1234567890123456789", -1, 0, 16, 18, 1, "6 DECIMAL triplets + singlet, switch before ASCII encoding of singlet, no padding", + /* 65*/ { -1, -1, -1, "1234567890123456789", -1, 0, 16, 18, 1, "6 DECIMAL triplets + singlet, switch before ASCII encoding of singlet, no padding", "111111111111001100" "000110000110010101" "100010110101101010" @@ -1796,7 +1886,7 @@ static void test_encode(int index, int generate, int debug) { "011001101011100100" "101110111011110000" }, - /* 62*/ { -1, -1, -1, "12345678901234567890", -1, 0, 16, 18, 1, "6 DECIMAL triplets + doublet, switch before ASCII 2-digit encoding of doublet, no padding", + /* 66*/ { -1, -1, -1, "12345678901234567890", -1, 0, 16, 18, 1, "6 DECIMAL triplets + doublet, switch before ASCII 2-digit encoding of doublet, no padding", "111111111111001100" "000110000110010101" "100010110101101010" @@ -1814,7 +1904,7 @@ static void test_encode(int index, int generate, int debug) { "111110100110101101" "001000111011111111" }, - /* 63*/ { -1, -1, -1, "123456789012345678901", -1, 0, 16, 18, 1, "7 DECIMAL triplets, fills to final codeword, no padding", + /* 67*/ { -1, -1, -1, "123456789012345678901", -1, 0, 16, 18, 1, "7 DECIMAL triplets, fills to final codeword, no padding", "111111111111001100" "000110000110010101" "100010110101101010" @@ -1832,7 +1922,7 @@ static void test_encode(int index, int generate, int debug) { "111000110101100101" "110001100000110100" }, - /* 64*/ { -1, -1, -1, "1234567890123456789012", -1, 0, 16, 18, 1, "7 DECIMAL triplets + singlet, fills to final codeword, no padding", + /* 68*/ { -1, -1, -1, "1234567890123456789012", -1, 0, 16, 18, 1, "7 DECIMAL triplets + singlet, fills to final codeword, no padding", "111111111111001100" "000110000110010101" "100010110101101010" @@ -1850,7 +1940,61 @@ static void test_encode(int index, int generate, int debug) { "100111000001100000" "101000001010111101" }, - /* 65*/ { -1, -1, 10, "123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890", -1, 0, 16, 49, 1, "T-48 90", + /* 69*/ { -1, -1, -1, "123456789012345678901234567890123678901AB", -1, 0, 28, 32, 1, "DECIMAL + 4 bits ASCII switch", + "11111111111100110010001101110110" + "00011000011001010100000101101010" + "10101011101000101111100111100001" + "01111000011110100000111011101111" + "00101001110001111101000100101000" + "10101011101011111100100011100001" + "10001010001000100010001000101000" + "00011000010001000100010001100001" + "10001010001000100010001000101000" + "00011000010001000100010001100001" + "00001000000000000000000000100000" + "11111111111111111111111111111111" + "00000000000000000000000000100000" + "11111111111111111111111111111111" + "00000000000000000000000000000000" + "01111111111111111111111111111110" + "01000000000000000000000000000010" + "01111111111111111111111111111110" + "10001010001000100010001000101000" + "00011000010001000100010001100001" + "10001010000110111001100000101011" + "00011000011011000011101111101001" + "11111001011001010000010011100010" + "10111001000000011101101001100000" + "10111010100111101101110011101010" + "10011010100110001011101000100101" + "11011010001110110010110100101110" + "01011111010001011011010000110111" + }, + /* 70*/ { -1, -1, -1, "123456789012345678901234567890123678901234A", -1, 0, 22, 22, 0, "DECIMAL + single ASCII in last 8 bits; BWIPP different encodation TODO: investigate", + "1111111111110011001000" + "0001100001100101010000" + "1101100110101011101000" + "0101101010011100011110" + "1011101110011100010010" + "1000100011101111111010" + "0111100001111001000001" + "0000100000000000100000" + "1111111111111111111111" + "0000000000000000000000" + "0111111111111111111110" + "0100000000000000000010" + "0111111111111111111110" + "0100000000000000000010" + "0111111111111111111110" + "1110100010110010101000" + "0110010011100000100000" + "0100100111101100101110" + "1010101110111110101001" + "1001001001100100101101" + "1111110100001111101111" + "0100010100010000111100" + }, + /* 71*/ { -1, -1, 10, "123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890", -1, 0, 16, 49, 1, "T-48 90", "1111111111001100100011011011010101110100010111110" "0001000110010101000001010101001110001111010000011" "0111000100011001010100000010110100111000111101000" @@ -1868,10 +2012,10 @@ static void test_encode(int index, int generate, int debug) { "1000000000000000000000001000000000000000000000001" "1011111111111111111111111111111111111111111111101" }, - /* 66*/ { -1, -1, 10, "12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789", -1, ZINT_ERROR_TOO_LONG, 0, 0, 1, "T-48 89", + /* 72*/ { -1, -1, 10, "12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789", -1, ZINT_ERROR_TOO_LONG, 0, 0, 1, "T-48 89", "" }, - /* 67*/ { -1, -1, -1, "A123456789012345678901A", -1, 0, 22, 22, 1, "ASCII + 7 DECIMAL triplets + ASCII", + /* 73*/ { -1, -1, -1, "A123456789012345678901A", -1, 0, 22, 22, 1, "ASCII + 7 DECIMAL triplets + ASCII", "0100111111111111001100" "0010100001000110010101" "1000101101011010101110" @@ -1895,7 +2039,7 @@ static void test_encode(int index, int generate, int debug) { "1010001010001011101101" "1101101001100001110101" }, - /* 68*/ { -1, -1, -1, "A1234567890123456789012A", -1, 0, 22, 22, 1, "ASCII + 7 DECIMAL triplets + singlet + ASCII", + /* 74*/ { -1, -1, -1, "A1234567890123456789012A", -1, 0, 22, 22, 1, "ASCII + 7 DECIMAL triplets + singlet + ASCII", "0100111111111111001100" "0010100001000110010101" "1000101101011010101110" @@ -1919,7 +2063,7 @@ static void test_encode(int index, int generate, int debug) { "0101101010001000100111" "1110011111011111110100" }, - /* 69*/ { -1, -1, -1, "A12345678901234567890123A", -1, 0, 22, 22, 1, "ASCII + 7 DECIMAL triplets + doublet + ASCII", + /* 75*/ { -1, -1, -1, "A12345678901234567890123A", -1, 0, 22, 22, 1, "ASCII + 7 DECIMAL triplets + doublet + ASCII", "0100111111111111001100" "0010100001000110010101" "1000101101011010101110" @@ -1943,7 +2087,7 @@ static void test_encode(int index, int generate, int debug) { "0001111010010111100010" "0001001001000000110100" }, - /* 70*/ { -1, -1, -1, "ABCDEFGHI123456789012A", -1, 0, 22, 22, 1, "3 C40 triplets + 4 DECIMAL triplets + ASCII 0 padding", + /* 76*/ { -1, -1, -1, "ABCDEFGHI123456789012A", -1, 0, 22, 22, 1, "3 C40 triplets + 4 DECIMAL triplets + ASCII 0 padding", "1110110101111001100010" "0110101001100111010100" "1000100101111110001010" @@ -1967,7 +2111,7 @@ static void test_encode(int index, int generate, int debug) { "0011001101000011100011" "0100110101010110111011" }, - /* 71*/ { -1, -1, -1, "ABCDEFGHI12345678", -1, 0, 22, 22, 1, "3 C40 triplets + ASCII 2-digits end-of-data", + /* 77*/ { -1, -1, -1, "ABCDEFGHI12345678", -1, 0, 22, 22, 1, "3 C40 triplets + ASCII 2-digits end-of-data", "1110110101111001100010" "0110101001100111010100" "1000100101111110001010" @@ -1991,7 +2135,7 @@ static void test_encode(int index, int generate, int debug) { "1010111111111110101011" "1101101100101010110101" }, - /* 72*/ { -1, -1, -1, "ABCDEFGH123456789012345678901A", -1, 0, 22, 22, 1, "2 C40 triplets + doublet + ASCII 2-digits ASCII 0 padding", + /* 78*/ { -1, -1, -1, "ABCDEFGH123456789012345678901A", -1, 0, 22, 22, 1, "2 C40 triplets + doublet + ASCII 2-digits ASCII 0 padding", "1110110101111001100010" "0110101001100111010100" "1000100100111110011010" @@ -2015,7 +2159,31 @@ static void test_encode(int index, int generate, int debug) { "0010110111111111101111" "1010010000100000110111" }, - /* 73*/ { -1, -1, -1, "\200\200", -1, 0, 16, 18, 1, "BYTE", + /* 79*/ { -1, -1, -1, "\101\102\103\104\105\106\107\110\111\112\113\200", -1, 0, 22, 22, 1, "3 C40 triplets + doublet + extended ASCII - note extended ASCII not encodable in C40 mode", + "1110110101111001100010" + "0110101001100111010100" + "1000100101100110001011" + "0000101111001100101011" + "1000101111100010001000" + "0001101111000100010001" + "1000101000100010000001" + "0000100000000000100000" + "1111111111111111111111" + "0000000000000000000000" + "0111111111111111111110" + "0100000000000000000010" + "0111111111111111111110" + "0100000000000000000010" + "0111111111111111111110" + "0001000100010001101001" + "1001001101110100100010" + "1111100010000001101100" + "0000001011000000100010" + "0010111110100000100000" + "1010000101100100100110" + "0101111100110010110010" + }, + /* 80*/ { -1, -1, -1, "\200\200", -1, 0, 16, 18, 1, "BYTE", "111011000010001000" "011110001000000000" "100010100010001000" @@ -2033,7 +2201,7 @@ static void test_encode(int index, int generate, int debug) { "010011001011100111" "110100011101110111" }, - /* 74*/ { -1, -1, -1, "\200\200\200\200\200\200\200\200", -1, 0, 16, 18, 1, "BYTE (no padding, byte count 0)", + /* 81*/ { -1, -1, -1, "\200\200\200\200\200\200\200\200", -1, 0, 16, 18, 1, "BYTE (no padding, byte count 0)", "111011000010001000" "011110000000000000" "100010100010001000" @@ -2051,7 +2219,7 @@ static void test_encode(int index, int generate, int debug) { "111101011011100111" "101110100100111000" }, - /* 75*/ { -1, -1, -1, "\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\061\062\063\064\065\066\067\070\071\060\061\062\063", -1, 0, 70, 76, 1, "249 BYTEs + 13 DECIMAL", + /* 82*/ { -1, -1, -1, "\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\061\062\063\064\065\066\067\070\071\060\061\062\063", -1, 0, 70, 76, 1, "249 BYTEs + 13 DECIMAL", "1110111111100010001000100011100010001000100010001110001000100010001000111000" "0111101001000000000000000010000000000000000000001000000000000000000000100000" "1000101000100010001000100010100010001000100010001010001000100010001000101000" @@ -2123,7 +2291,7 @@ static void test_encode(int index, int generate, int debug) { "0000101101010101000011010110011110110100100111111011100001010010000111100100" "1101111110001011101100010011101010100111101110111101101000010100111000111001" }, - /* 76*/ { -1, -1, -1, "\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\061\062\063\064\065\066\067\070\071\060\061\062\063", -1, 0, 70, 76, 1, "250 BYTEs + 13 DECIMAL", + /* 83*/ { -1, -1, -1, "\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\061\062\063\064\065\066\067\070\071\060\061\062\063", -1, 0, 70, 76, 1, "250 BYTEs + 13 DECIMAL", "1110111111000010001000100011100010001000100010001110001000100010001000111000" "0111101010000000000000000010000000000000000000001000000000000000000000100000" "1000101000100010001000100010100010001000100010001010001000100010001000101000" @@ -2195,7 +2363,7 @@ static void test_encode(int index, int generate, int debug) { "1111101101101101100101000110010011000011110001101001001011010001000001100100" "1110110001110110001100000011110011001110000101001111000111011001010011111110" }, - /* 77*/ { -1, -1, -1, "\061\062\063\064\065\066\067\070\071\060\061\062\063\064\065\066\067\070\071\060\061\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\061\062\063\064\065\066\067\070\071\060\061\062\063", -1, 0, 104, 98, 1, "21 DECIMAL + 501 BYTEs + 13 DECIMAL", + /* 84*/ { -1, -1, -1, "\061\062\063\064\065\066\067\070\071\060\061\062\063\064\065\066\067\070\071\060\061\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\061\062\063\064\065\066\067\070\071\060\061\062\063", -1, 0, 104, 98, 1, "21 DECIMAL + 501 BYTEs + 13 DECIMAL", "11111111111100110010001101011110101011101011111011111100001000100010011010001000100010001011001000" "00010010011001010100000101110010011100011111011110101100010000000000010000000000000000000010000000" "10001010001000100010001000110000100010001000100010100010001000100010010010001000100010001010001000" @@ -2301,7 +2469,7 @@ static void test_encode(int index, int generate, int debug) { "11001110100000010100001001010010000101101110100110101100011011001110010101111001100100110010001101" "01110011001111110111010101111010111001011100001111011101001011010000011011001100100000101011000101" }, - /* 78*/ { -1, -1, -1, "\061\062\063\064\065\066\067\070\071\060\061\062\063\064\065\066\067\070\071\060\061\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\061\062\063\064\065\066\067\070\071\060\061\062\063\064\065\066\067\070\071\060\061\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\061\062\063\064\065\066\067\070\071\060\061\062\063", -1, 0, 104, 98, 1, "21 DECIMAL + 251 BYTEs + 21 DECIMAL + 252 BYTEs 13 DECIMAL", + /* 85*/ { -1, -1, -1, "\061\062\063\064\065\066\067\070\071\060\061\062\063\064\065\066\067\070\071\060\061\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\061\062\063\064\065\066\067\070\071\060\061\062\063\064\065\066\067\070\071\060\061\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\061\062\063\064\065\066\067\070\071\060\061\062\063", -1, 0, 104, 98, 1, "21 DECIMAL + 251 BYTEs + 21 DECIMAL + 252 BYTEs 13 DECIMAL", "11111111111100110010001101011110101011101011111011111100001000100010011010001000100010001011001000" "00010010011001010100000101110010011100011111011110101000010000000000010000000000000000000010000000" "10001010001000100010001000110000100010001000100010100010001000100010010010001000100010001010001000" @@ -2407,7 +2575,7 @@ static void test_encode(int index, int generate, int debug) { "01101010000000111001110100110111110011111001000110101010111111101011110001100001110101000110111101" "01111111101011000101001010011010111100011101111011110000111111000110111010011101101111001111011011" }, - /* 79*/ { -1, 3, -1, "\351", -1, 0, 16, 18, 1, "é in ISO 8859-1", + /* 86*/ { -1, 3, -1, "\351", -1, 0, 16, 18, 1, "é in ISO 8859-1", "100011010101011000" "000110110111010010" "100010100011100110" @@ -2425,7 +2593,7 @@ static void test_encode(int index, int generate, int debug) { "001010011001100100" "101100110110110101" }, - /* 80*/ { -1, 899, -1, "\134\134\351\142\154\134\141\150\134", -1, 0, 28, 32, 1, "éblah", + /* 87*/ { -1, 899, -1, "\134\134\351\142\154\134\141\150\134", -1, 0, 28, 32, 1, "éblah", "10001101010101100010001110110101" "00011011011101001010100101101101" "01011001010101111001100110100110" @@ -2455,7 +2623,7 @@ static void test_encode(int index, int generate, int debug) { "11011011010100010100111000101011" "11011110101110100011111110110011" }, - /* 81*/ { GS1_MODE, -1, -1, "[90]12[91]1234567890123A", -1, 0, 22, 22, 1, "Step B4", + /* 88*/ { GS1_MODE, -1, -1, "[90]12[91]1234567890123A", -1, 0, 22, 22, 1, "Step B4", "1110111101100011101110" "1000101100111011000100" "0000101011111001110001" @@ -2479,7 +2647,7 @@ static void test_encode(int index, int generate, int debug) { "0100001001100001101110" "1110110100001101111001" }, - /* 82*/ { GS1_MODE, -1, -1, "[90]12[91]12345", -1, 0, 16, 18, 1, "Step B5", + /* 89*/ { GS1_MODE, -1, -1, "[90]12[91]12345", -1, 0, 16, 18, 1, "Step B5", "111011110110001110" "100010110011101100" "111010000010111101" @@ -2497,6 +2665,54 @@ static void test_encode(int index, int generate, int debug) { "011100010001100101" "101000101000110110" }, + /* 90*/ { GS1_MODE, -1, -1, "[10]AB[90]ABCDEFGHIJKLMNOP[91]ABCDEFGHIJKLMNOPQRSTUVWXYZ", -1, 0, 28, 32, 1, "Step P", + "11101110000100010011101101111110" + "10001011000010001110001100100110" + "01011011100110001010000101101001" + "10011010011101010000001111100011" + "10011010101101101110000101100001" + "10101001100101010101000010100111" + "01101001010111100010001100101001" + "00001000100011110101101000101010" + "00001010100011110001111101101011" + "00111011011110000010010011100100" + "00001000000000000000000000100000" + "11111111111111111111111111111111" + "00000000000000000000000000100000" + "11111111111111111111111111111111" + "00000000000000000000000000000000" + "01111111111111111111111111111110" + "01000000000000000000000000000010" + "01111111111111111111111111111110" + "11101011101111010110001000101000" + "01101011111111101100010001100001" + "10001010000010110100001000100011" + "00011000011100110001011011100011" + "11001011010100110100000101100011" + "10111000010010101001100000100100" + "01101001000001010101110001100011" + "00011011010110111001110010100100" + "01111000010000110101101110100100" + "00011110111111111110101011110110" + }, + /* 91*/ { GS1_MODE, -1, -1, "[11]121212", -1, 0, 16, 18, 1, "Start FNC1 and Decimal", + "111011000100000101" + "110010110011011111" + "110010001110001000" + "100110001100010001" + "100010100001011101" + "000010000000100000" + "111111111111111111" + "000000000000000000" + "011111111111111110" + "010000000000000010" + "011111111111111110" + "000100010100101010" + "101010101001100101" + "110011110100100111" + "000111100011101101" + "100101110101111101" + }, }; int data_size = ARRAY_SIZE(data); int i, length, ret; diff --git a/backend/tests/test_code128.c b/backend/tests/test_code128.c index b2d6aaca..dca19b8d 100644 --- a/backend/tests/test_code128.c +++ b/backend/tests/test_code128.c @@ -416,6 +416,9 @@ static void test_ean128_input(int index, int generate, int debug) { /* 20*/ { GS1_MODE, "[90]1A[90]1", 0, 134, "(12) 104 102 25 16 17 33 102 25 99 1 65 106", "StartB FNC1 9 0 1 A FNC1 9 CodeC 01" }, /* 21*/ { GS1_MODE, "[90]12A[90]123", 0, 145, "(13) 105 102 90 12 100 33 102 25 99 1 23 25 106", "StartC FNC1 90 12 CodeB A FNC1 9 CodeC 01 23" }, /* 22*/ { GS1_MODE, "[90]123[90]A234[90]123", 0, 244, "(22) 105 102 90 12 100 19 99 102 90 100 33 18 99 34 102 100 25 99 1 23 37 106", "StartC FNC1 90 12 CodeB 3 CodeC FNC1 90 CodeB A 2 CodeC 34 FNC1 CodeB 9 CodeC 01 23" }, + /* 23*/ { GS1_MODE, "[90]12345A12345A", 0, 178, "(16) 105 102 90 12 34 100 21 33 17 99 23 45 100 33 59 106", "StartC FNC1 90 12 34 CodeB 5 A 1 CodeC 23 45 CodeB A [" }, + /* 24*/ { GS1_MODE, "[01]12345678901231[90]123456789012345678901234567890[91]1234567890123456789012345678901234567890123456789012345678901234", 0, 684, "(62) 105 102 1 12 34 56 78 90 12 31 90 12 34 56 78 90 12 34 56 78 90 12 34 56 78 90 102 91", "Max length" }, + /* 25*/ { GS1_MODE, "[01]12345678901231[90]123456789012345678901234567890[91]12345678901234567890123456789012345678901234567890123456789012345", ZINT_ERROR_TOO_LONG, 0, "Error 344: Input too long (60 symbol character maximum)", "" }, }; int data_size = ARRAY_SIZE(data); int i, length, ret; @@ -746,28 +749,31 @@ static void test_encode(int index, int generate, int debug) { /* 35*/ { BARCODE_GS1_128, GS1_MODE, "[90]ABCDEfGHI", 0, 1, 167, 0, "Shift A; BWIPP different encodation, same codeword count", "11010010000111101011101110010110010011101100101000110001000101100010001000110101100010001000110100010110000100110100010001100010100011000100010110010011101100011101011" }, - /* 36*/ { BARCODE_EAN14, GS1_MODE, "4070071967072", 0, 1, 134, 1, "Verified manually against tec-it", + /* 36*/ { BARCODE_GS1_128, GS1_MODE, "[01]12345678901231[90]123456789012345678901234567890[91]1234567890123456789012345678901234567890123456789012345678901234", 0, 1, 684, 1, "Max length", + "110100111001111010111011001101100101100111001000101100011100010110110000101001101111011010110011100110110001101101111011010110011100100010110001110001011011000010100110111101101011001110010001011000111000101101100001010011011110110101100111001000101100011100010110110000101001101111011011110101110111101101101011001110010001011000111000101101100001010011011110110101100111001000101100011100010110110000101001101111011010110011100100010110001110001011011000010100110111101101011001110010001011000111000101101100001010011011110110101100111001000101100011100010110110000101001101111011010110011100100010110001110001011011000010100110111101101011001110010001011000100011110101100011101011" + }, + /* 37*/ { BARCODE_EAN14, GS1_MODE, "4070071967072", 0, 1, 134, 1, "Verified manually against tec-it", "11010011100111101011101100110110011000101000101100001001001100010011001011100100001011001001100010011001001110110111001001100011101011" }, - /* 37*/ { BARCODE_NVE18, GS1_MODE, "40700000071967072", 0, 1, 156, 1, "Verified manually against tec-it", + /* 38*/ { BARCODE_NVE18, GS1_MODE, "40700000071967072", 0, 1, 156, 1, "Verified manually against tec-it", "110100111001111010111011011001100110001010001011000010011011001100110110011001001100010011001011100100001011001001100010011001001110110111011101100011101011" }, - /* 38*/ { BARCODE_HIBC_128, UNICODE_MODE, "83278F8G9H0J2G", 0, 1, 211, 1, "ANSI/HIBC 2.6 - 2016 Section 4.1, not same, uses different encoding (eg begins StartA instead of StartB)", + /* 39*/ { BARCODE_HIBC_128, UNICODE_MODE, "83278F8G9H0J2G", 0, 1, 211, 1, "ANSI/HIBC 2.6 - 2016 Section 4.1, not same, uses different encoding (eg begins StartA instead of StartB)", "1101001000011000100100111010011001011101111011000110110110000101001011110111010001100010111010011001101000100011100101100110001010001001110110010110111000110011100101101000100010001001100111101010001100011101011" }, - /* 39*/ { BARCODE_HIBC_128, UNICODE_MODE, "A123BJC5D6E71", 0, 1, 200, 1, "ANSI/HIBC 2.6 - 2016 Figure 1, same", + /* 40*/ { BARCODE_HIBC_128, UNICODE_MODE, "A123BJC5D6E71", 0, 1, 200, 1, "ANSI/HIBC 2.6 - 2016 Figure 1, same", "11010010000110001001001010001100010011100110110011100101100101110010001011000101101110001000100011011011100100101100010001100111010010001101000111011011101001110011011010001000110001101101100011101011" }, - /* 40*/ { BARCODE_HIBC_128, UNICODE_MODE, "$$52001510X3G", 0, 1, 178, 1, "ANSI/HIBC 2.6 - 2016 Figure 5, same", + /* 41*/ { BARCODE_HIBC_128, UNICODE_MODE, "$$52001510X3G", 0, 1, 178, 1, "ANSI/HIBC 2.6 - 2016 Figure 5, same", "1101001000011000100100100100011001001000110010111011110110111000101101100110010111001100110010001001011110111011100010110110010111001101000100010110001000100011110101100011101011" }, - /* 41*/ { BARCODE_DPD, UNICODE_MODE, "%000393206219912345678101040", 0, 1, 211, 1, "DPDAPPD 4.0.2 - Illustrations 2, 7, 8, same; NOTE: correct HRT given by Illustration 7 only", + /* 42*/ { BARCODE_DPD, UNICODE_MODE, "%000393206219912345678101040", 0, 1, 211, 1, "DPDAPPD 4.0.2 - Illustrations 2, 7, 8, same; NOTE: correct HRT given by Illustration 7 only", "1101001000010001001100100111011001011101111011011001100110100010001100011011010011001000110111001001011101111010110011100100010110001110001011011000010100110010001001100100010011000101000101011110001100011101011" }, - /* 42*/ { BARCODE_DPD, UNICODE_MODE, "%007110601782532948375101276", 0, 1, 211, 1, "DPDAPPD 4.0.2 - Illustration 6 **NOT SAME** HRT incorrect, also uses CodeA and inefficient encoding; verified against tec-it", + /* 43*/ { BARCODE_DPD, UNICODE_MODE, "%007110601782532948375101276", 0, 1, 211, 1, "DPDAPPD 4.0.2 - Illustration 6 **NOT SAME** HRT incorrect, also uses CodeA and inefficient encoding; verified against tec-it", "1101001000010001001100100111011001011101111010011000100110001001001001100100011001101100110000101001110010110011000110110100010111101011110010011000010010110010001001011001110011001010000100010111101100011101011" }, - /* 43*/ { BARCODE_DPD, UNICODE_MODE, "0123456789012345678901234567", 0, 1, 189, 1, "DPDAPPD 4.0.2 - Illustration 9, same (allowing for literal HRT)", + /* 44*/ { BARCODE_DPD, UNICODE_MODE, "0123456789012345678901234567", 0, 1, 189, 1, "DPDAPPD 4.0.2 - Illustration 9, same (allowing for literal HRT)", "110100111001100110110011101101110101110110001000010110011011011110110011011001110110111010111011000100001011001101101111011001101100111011011101011101100010000101100101011110001100011101011" }, }; diff --git a/backend/tests/test_code16k.c b/backend/tests/test_code16k.c index a2f53bb4..d09af678 100644 --- a/backend/tests/test_code16k.c +++ b/backend/tests/test_code16k.c @@ -166,20 +166,22 @@ static void test_input(int index, int generate, int debug) { /* 2*/ { UNICODE_MODE, "12", -1, 0, 2, 70, "(10) 2 12 103 103 103 103 103 103 98 27", "ModeC 12 Pad (6)" }, /* 3*/ { GS1_MODE, "[90]A", -1, 0, 2, 70, "(10) 3 25 16 33 103 103 103 103 83 20", "ModeBFNC1 9 0 A Pad (4)" }, /* 4*/ { GS1_MODE, "[90]12", -1, 0, 2, 70, "(10) 4 90 12 103 103 103 103 103 79 62", "ModeCFNC1 90 12 Pad (5)" }, - /* 5*/ { GS1_MODE | GS1PARENS_MODE, "(90)12", -1, 0, 2, 70, "(10) 4 90 12 103 103 103 103 103 79 62", "ModeCFNC1 90 12 Pad (5)" }, - /* 6*/ { UNICODE_MODE, "a0123456789", -1, 0, 2, 70, "(10) 5 65 1 23 45 67 89 103 27 86", "ModeC1SB a 01 23 45 67 89 Pad" }, - /* 7*/ { UNICODE_MODE, "ab0123456789", -1, 0, 2, 70, "(10) 6 65 66 1 23 45 67 89 19 42", "ModeC2SB a b 01 23 45 67 89" }, - /* 8*/ { UNICODE_MODE, "1234\037a", -1, 0, 2, 70, "(10) 2 12 34 101 95 98 65 103 67 53", "ModeC 12 34 CodeA US 1SB a Pad" }, - /* 9*/ { UNICODE_MODE, "\000\037ß", 4, 0, 2, 70, "(10) 0 64 95 101 63 103 103 103 75 11", "ModeA NUL US FNC4 ß Pad (3)" }, - /* 10*/ { UNICODE_MODE, "\000\037é", 4, 0, 2, 70, "(10) 0 64 95 101 98 73 103 103 75 6", "ModeA NUL US FNC4 1SB é Pad (2)" }, - /* 11*/ { UNICODE_MODE, "\000\037éa", 5, 0, 2, 70, "(10) 0 64 95 100 100 73 65 103 99 69", "ModeA NUL US CodeB FNC4 é a Pad" }, - /* 12*/ { UNICODE_MODE, "abß", -1, 0, 2, 70, "(10) 1 65 66 100 63 103 103 103 66 56", "ModeB a b FNC4 ß Pad (3)" }, - /* 13*/ { DATA_MODE, "\141\142\237", -1, 0, 2, 70, "(10) 1 65 66 100 98 95 103 103 6 71", "ModeB a b FNC4 1SA APC Pad (2)" }, - /* 14*/ { DATA_MODE, "\141\142\237\037", -1, 0, 2, 70, "(10) 1 65 66 101 101 95 95 103 72 93", "ModeB a b CodeA FNC4 APC US Pad" }, - /* 15*/ { UNICODE_MODE, "ééé", -1, 0, 2, 70, "(10) 1 100 73 100 73 100 73 103 105 106", "ModeB FNC4 é FNC4 é FNC4 é Pad" }, - /* 16*/ { UNICODE_MODE, "aééééb", -1, 0, 3, 70, "(15) 8 65 100 73 100 73 100 73 100 73 66 103 103 39 83", "ModeB a FNC4 é (4) b Pad (2)" }, - /* 17*/ { UNICODE_MODE, "aéééééb", -1, 0, 3, 70, "(15) 8 65 100 73 100 73 100 73 100 73 100 73 66 74 106", "ModeB a FNC4 é (5) b" }, - /* 18*/ { UNICODE_MODE, "aééééébcdeé", -1, 0, 4, 70, "(20) 15 65 100 73 100 73 100 73 100 73 100 73 66 67 68 69 100 73 14 69", "ModeB a FNC4 é (5) b c d e FNC4 é" }, + /* 5*/ { GS1_MODE, "[90]12[20]12", -1, 0, 2, 70, "(10) 4 90 12 102 20 12 103 103 9 72", "ModeCFNC1 90 12 FNC1 20 12 Pad (2)" }, + /* 6*/ { GS1_MODE, "[90]123[20]12", -1, 0, 2, 70, "(15) 4 90 12 100 19 99 102 20 12 103 103 103 103 88 22", "ModeCFNC1 90 CodeB 3 CodeC FNC1 20 12 Pad (4)" }, + /* 7*/ { GS1_MODE | GS1PARENS_MODE, "(90)12", -1, 0, 2, 70, "(10) 4 90 12 103 103 103 103 103 79 62", "ModeCFNC1 90 12 Pad (5)" }, + /* 8*/ { UNICODE_MODE, "a0123456789", -1, 0, 2, 70, "(10) 5 65 1 23 45 67 89 103 27 86", "ModeC1SB a 01 23 45 67 89 Pad" }, + /* 9*/ { UNICODE_MODE, "ab0123456789", -1, 0, 2, 70, "(10) 6 65 66 1 23 45 67 89 19 42", "ModeC2SB a b 01 23 45 67 89" }, + /* 10*/ { UNICODE_MODE, "1234\037a", -1, 0, 2, 70, "(10) 2 12 34 101 95 98 65 103 67 53", "ModeC 12 34 CodeA US 1SB a Pad" }, + /* 11*/ { UNICODE_MODE, "\000\037ß", 4, 0, 2, 70, "(10) 0 64 95 101 63 103 103 103 75 11", "ModeA NUL US FNC4 ß Pad (3)" }, + /* 12*/ { UNICODE_MODE, "\000\037é", 4, 0, 2, 70, "(10) 0 64 95 101 98 73 103 103 75 6", "ModeA NUL US FNC4 1SB é Pad (2)" }, + /* 13*/ { UNICODE_MODE, "\000\037éa", 5, 0, 2, 70, "(10) 0 64 95 100 100 73 65 103 99 69", "ModeA NUL US CodeB FNC4 é a Pad" }, + /* 14*/ { UNICODE_MODE, "abß", -1, 0, 2, 70, "(10) 1 65 66 100 63 103 103 103 66 56", "ModeB a b FNC4 ß Pad (3)" }, + /* 15*/ { DATA_MODE, "\141\142\237", -1, 0, 2, 70, "(10) 1 65 66 100 98 95 103 103 6 71", "ModeB a b FNC4 1SA APC Pad (2)" }, + /* 16*/ { DATA_MODE, "\141\142\237\037", -1, 0, 2, 70, "(10) 1 65 66 101 101 95 95 103 72 93", "ModeB a b CodeA FNC4 APC US Pad" }, + /* 17*/ { UNICODE_MODE, "ééé", -1, 0, 2, 70, "(10) 1 100 73 100 73 100 73 103 105 106", "ModeB FNC4 é FNC4 é FNC4 é Pad" }, + /* 18*/ { UNICODE_MODE, "aééééb", -1, 0, 3, 70, "(15) 8 65 100 73 100 73 100 73 100 73 66 103 103 39 83", "ModeB a FNC4 é (4) b Pad (2)" }, + /* 19*/ { UNICODE_MODE, "aéééééb", -1, 0, 3, 70, "(15) 8 65 100 73 100 73 100 73 100 73 100 73 66 74 106", "ModeB a FNC4 é (5) b" }, + /* 20*/ { UNICODE_MODE, "aééééébcdeé", -1, 0, 4, 70, "(20) 15 65 100 73 100 73 100 73 100 73 100 73 66 67 68 69 100 73 14 69", "ModeB a FNC4 é (5) b c d e FNC4 é" }, }; int data_size = ARRAY_SIZE(data); int i, length, ret; diff --git a/backend/tests/test_common.c b/backend/tests/test_common.c index 72b7dd13..03de3863 100644 --- a/backend/tests/test_common.c +++ b/backend/tests/test_common.c @@ -82,6 +82,66 @@ static void test_utf8_to_unicode(int index, int debug) { testFinish(); } +static void test_set_height(int index, int debug) { + + struct item { + int rows; + int row_height[20]; + float height; + + float min_row_height; + float default_height; + float max_height; + int no_errtxt; + + int ret; + float expected_height; + char *expected_errtxt; + char *comment; + }; + // s/\/\*[ 0-9]*\*\//\=printf("\/*%3d*\/", line(".") - line("'<")) + struct item data[] = { + /* 0*/ { 0, { 0 }, 0, 0, 0, 0, 0, 0, 0.5, "", "" }, + /* 1*/ { 2, { 1, 1 }, 2, 0, 0, 0, 0, 0, 2, "", "zero_count == 0, fixed height only" }, + /* 2*/ { 2, { 1, 1 }, 2, 0, 0, 1, 1, ZINT_WARN_NONCOMPLIANT, 2, "", "zero_count == 0, height < max height" }, + /* 3*/ { 2, { 1, 1 }, 2, 0, 0, 1, 0, ZINT_WARN_NONCOMPLIANT, 2, "248: Height not compliant with standards", "zero_count == 0, height < max height" }, + /* 4*/ { 2, { 2, 0 }, 2, 0, 0, 0, 0, 0, 2.5, "", "zero_count != 0, height 2" }, + /* 5*/ { 2, { 2, 0 }, 2, 1, 0, 0, 1, ZINT_WARN_NONCOMPLIANT, 2.5, "", "zero_count != 0, row_height < min_row_height" }, + /* 6*/ { 2, { 2, 0 }, 2, 1, 0, 0, 0, ZINT_WARN_NONCOMPLIANT, 2.5, "247: Height not compliant with standards", "zero_count != 0, row_height < min_row_height" }, + /* 7*/ { 2, { 2, 0 }, 0, 0, 20, 0, 0, 0, 22, "", "zero_count != 0, default_height 20" }, + /* 8*/ { 2, { 2, 0 }, 20, 0, 20, 0, 0, 0, 20, "", "zero_count != 0, height 20" }, + /* 9*/ { 2, { 2, 0 }, 0, 2, 0, 0, 0, 0, 4, "", "zero_count != 0, min_row_height 2" }, + }; + int data_size = ARRAY_SIZE(data); + int i, ret; + + struct zint_symbol symbol; + + testStart("set_height"); + + symbol.debug = debug; + + for (i = 0; i < data_size; i++) { + int j; + + if (index != -1 && i != index) continue; + + memset(&symbol, 0, sizeof(symbol)); + symbol.rows = data[i].rows; + for (j = 0; j < ARRAY_SIZE(data[i].row_height); j++) { + symbol.row_height[j] = data[i].row_height[j]; + } + symbol.height = data[i].height; + + ret = set_height(&symbol, data[i].min_row_height, data[i].default_height, data[i].max_height, data[i].no_errtxt); + assert_equal(ret, data[i].ret, "i:%d ret %d != %d\n", i, ret, data[i].ret); + assert_equal(symbol.height, data[i].expected_height, "i:%d symbol.height %g != %g\n", i, symbol.height, data[i].expected_height); + assert_zero(strcmp(symbol.errtxt, data[i].expected_errtxt), "i:%d errtxt %s != %s\n", i, symbol.errtxt, data[i].expected_errtxt); + } + + testFinish(); +} + static void test_is_valid_utf8(int index) { struct item { @@ -158,8 +218,9 @@ int main(int argc, char *argv[]) { testFunction funcs[] = { /* name, func, has_index, has_generate, has_debug */ { "test_utf8_to_unicode", test_utf8_to_unicode, 1, 0, 1 }, - { "test_debug_test_codeword_dump_int", test_debug_test_codeword_dump_int, 1, 0, 1 }, + { "test_set_height", test_set_height, 1, 0, 1 }, { "test_is_valid_utf8", test_is_valid_utf8, 1, 0, 0 }, + { "test_debug_test_codeword_dump_int", test_debug_test_codeword_dump_int, 1, 0, 1 }, }; testRun(argc, argv, funcs, ARRAY_SIZE(funcs)); diff --git a/backend/tests/test_composite.c b/backend/tests/test_composite.c index 8d7ff1c1..995d7552 100644 --- a/backend/tests/test_composite.c +++ b/backend/tests/test_composite.c @@ -146,12 +146,13 @@ static void test_examples(int index, int generate, int debug) { int expected_rows; int expected_width; + int bwipp_cmp; char *comment; char *expected; }; // Verified manually against GS1 General Specifications 21.0.1 (GGS) and ISO/IEC 24723:2010, with noted exceptions, and verified via bwipp_dump.ps against BWIPP struct item data[] = { - /* 0*/ { BARCODE_DBAR_OMNSTK_CC, -1, 1, "0401234567890", "[17]050101[10]ABC123", 0, 11, 56, "GSS Figure 5.1-5. GS1 DataBar Stacked Omnidirectional barcode with a Composite Component", + /* 0*/ { BARCODE_DBAR_OMNSTK_CC, -1, 1, "0401234567890", "[17]050101[10]ABC123", 0, 11, 56, 1, "GSS Figure 5.1-5. GS1 DataBar Stacked Omnidirectional barcode with a Composite Component", "01101100110101110001001100001000000110100111011110101001" "01101101110110001100010100001100001000010110011100101001" "01101101100111000101110001101001100011111010011101101001" @@ -164,7 +165,7 @@ static void test_examples(int index, int generate, int debug) { "00001000110000101010000000101010111011001111000000000000" "10100111001111010101111111000001000100110000110101000000" }, - /* 1*/ { BARCODE_DBAR_LTD_CC, -1, 1, "1311234567890", "[17]010615[10]A123456", 0, 6, 79, "GGS Figure 5.11.2-1. (24723:2010 Figure 1) GS1 DataBar Limited Composite symbol with CC-A", + /* 1*/ { BARCODE_DBAR_LTD_CC, -1, 1, "1311234567890", "[17]010615[10]A123456", 0, 6, 79, 1, "GGS Figure 5.11.2-1. (24723:2010 Figure 1) GS1 DataBar Limited Composite symbol with CC-A", "0111100010110110001010011000111110100110011101110100111100111011101001101000000" "0100111110001101001010111000111101111010111101001111011100111011101011101000000" "0100110011010000001010110000111001000110111101111011110010100011101011001000000" @@ -172,7 +173,7 @@ static void test_examples(int index, int generate, int debug) { "0000001100000101010011001110101011010100110010101111000101100110100111000000000" "0101110011111010101100110001010100101011001101010000111010011001011000010100000" }, - /* 2*/ { BARCODE_GS1_128_CC, -1, 3, "[01]03812345678908", "[10]ABCD123456[410]3898765432108", 0, 7, 154, "GGS Figure 5.11.2-2. GS1-128 Composite symbol with CC-C **NOT SAME** as zint uses encodation '10', same if '0' forced", + /* 2*/ { BARCODE_GS1_128_CC, -1, 3, "[01]03812345678908", "[10]ABCD123456[410]3898765432108", 0, 7, 154, 1, "GGS Figure 5.11.2-2. GS1-128 Composite symbol with CC-C **NOT SAME** as zint uses encodation '10', same if '0' forced", "1111111101010100011110101011110000111101011001111101110111110111010010000010000100010110010000101100001111011110110011011110101001111000111111101000101001" "1111111101010100011111101010001110100001000111101001100101110010000011100001011000100100100111110110001011100001011111011111101010111000111111101000101001" "1111111101010100011101010011111100110001111010001101000101011110000010001111101100010111101101111101001001011000111110011101010001111110111111101000101001" @@ -181,7 +182,7 @@ static void test_examples(int index, int generate, int debug) { "0000000001011000110000101000100110010011011011001110110100001100010010001010001001110111101001100100100001011100110110100001000100100001001001110001010000" "0000000110100111001111010111011001101100100100110001001011110011101101110101110110001000010110011011011110100011001001011110111011011110110110001110101100" }, - /* 3*/ { BARCODE_GS1_128_CC, -1, 3, "[01]93812345678901", "[10]ABCD123456[410]3898765432108", 0, 7, 154, "24723:2010 Figure 2 GS1-128 Composite symbol with 5-row CC-C **NOT SAME** ditto as above", + /* 3*/ { BARCODE_GS1_128_CC, -1, 3, "[01]93812345678901", "[10]ABCD123456[410]3898765432108", 0, 7, 154, 1, "24723:2010 Figure 2 GS1-128 Composite symbol with 5-row CC-C **NOT SAME** ditto as above", "1111111101010100011110101011110000111101011001111101110111110111010010000010000100010110010000101100001111011110110011011110101001111000111111101000101001" "1111111101010100011111101010001110100001000111101001100101110010000011100001011000100100100111110110001011100001011111011111101010111000111111101000101001" "1111111101010100011101010011111100110001111010001101000101011110000010001111101100010111101101111101001001011000111110011101010001111110111111101000101001" @@ -190,7 +191,7 @@ static void test_examples(int index, int generate, int debug) { "0000000001011000110000101000100110010011010111000010110100001100010010001010001001110111101001100100100001001100100110100001000100001001001001110001010000" "0000000110100111001111010111011001101100101000111101001011110011101101110101110110001000010110011011011110110011011001011110111011110110110110001110101100" }, - /* 4*/ { BARCODE_EANX_CC, -1, 1, "331234567890", "[21]1234-abcd", 0, 7, 99, "GGS Figure 5.11.8-1. EAN-13 symbol with a four-column CC-A component (note [21] not [99])", + /* 4*/ { BARCODE_EANX_CC, -1, 1, "331234567890", "[21]1234-abcd", 0, 7, 99, 1, "GGS Figure 5.11.8-1. EAN-13 symbol with a four-column CC-A component (note [21] not [99])", "110110111011010000100000110100110011101100001001110100100001011001100001100111000110001011011000101" "110110110011000110111100010111011001110000101001100100100000010111101001101011100010000011001000101" "110110100010011010001110000111111010001100101001100110111111010001101001010000011011111011101000101" @@ -199,7 +200,7 @@ static void test_examples(int index, int generate, int debug) { "000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010" "000101011110100110010011011010000100111010110001010101010000100010010010001110100111001010000101010" }, - /* 5*/ { BARCODE_EANX_CC, -1, 1, "331234567890", "[99]1234-abcd", 0, 7, 99, "24723:2010 Figure 5 An EAN-13 composite symbol (with CC-A)", + /* 5*/ { BARCODE_EANX_CC, -1, 1, "331234567890", "[99]1234-abcd", 0, 7, 99, 1, "24723:2010 Figure 5 An EAN-13 composite symbol (with CC-A)", "110110111011100110111011110100010100000010001001110100111011010110000001100110010000100011011000101" "110110110011100010011101100111110001000101101001100100100001101011111101101011100010000011001000101" "110110100010001011101111110110011100100011101001100110100000011101011001011110001001000011101000101" @@ -208,7 +209,7 @@ static void test_examples(int index, int generate, int debug) { "000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010" "000101011110100110010011011010000100111010110001010101010000100010010010001110100111001010000101010" }, - /* 6*/ { BARCODE_UPCA_CC, -1, 2, "61414101234", "[91]abcdefghijklmnopqrstuvwxyz", 0, 14, 99, "GGS Figure 5.11.8-2. UPC-A symbol with a four-column CC-B component **NOT SAME** (using [91] not [10] as length > 20 max for [10])", + /* 6*/ { BARCODE_UPCA_CC, -1, 2, "61414101234", "[91]abcdefghijklmnopqrstuvwxyz", 0, 14, 99, 1, "GGS Figure 5.11.8-2. UPC-A symbol with a four-column CC-B component **NOT SAME** (using [91] not [10] as length > 20 max for [10])", "110001001010000001110010110110011111101100101001111010100100101111000001110101001111110011000100101" "111001001011101110101000000111101101000111001011111010100011000110000101110011010000110011100100101" "111101001011110110001101000111101000100000101011110010101001111001000001011111010001110011110100101" @@ -224,7 +225,7 @@ static void test_examples(int index, int generate, int debug) { "000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010" "000101010111100110010100011001100101000110011001010101110010110011011011001000010101110010000101010" }, - /* 7*/ { BARCODE_UPCA_CC, GS1NOCHECK_MODE, 2, "61414101234", "[10]abcdefghijklmnopqrstuvwxyz", 0, 14, 99, "GGS Figure 5.11.8-2. UPC-A symbol with a four-column CC-B component **NOT SAME** as zint uses encodation '10', same if '0' forced", + /* 7*/ { BARCODE_UPCA_CC, GS1NOCHECK_MODE, 2, "61414101234", "[10]abcdefghijklmnopqrstuvwxyz", 0, 14, 99, 1, "GGS Figure 5.11.8-2. UPC-A symbol with a four-column CC-B component **NOT SAME** as zint uses encodation '10', same if '0' forced", "110001001010000001110010110110011111101100101001111010111000101011111101011010001110000011000100101" "111001001010110011100011000100010000100000101011111010111000111010010001011000111101110011100100101" "111101001011000001000111010111010000110100001011110010111011001111001101110101100000010011110100101" @@ -240,7 +241,7 @@ static void test_examples(int index, int generate, int debug) { "000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010" "000101010111100110010100011001100101000110011001010101110010110011011011001000010101110010000101010" }, - /* 8*/ { BARCODE_EANX_CC, -1, -1, "1234567", "[21]A12345678", 0, 8, 72, "GGS Figure 5.11.8-3. (24723:2010 Figure 4) EAN-8 symbol with a three-column CC-A", + /* 8*/ { BARCODE_EANX_CC, -1, -1, "1234567", "[21]A12345678", 0, 8, 72, 1, "GGS Figure 5.11.8-3. (24723:2010 Figure 4) EAN-8 symbol with a three-column CC-A", "101001111000001001010011000111110101110111101001101001111110011101001101" "111110010011100101010111000101110011011100001111110100011001011101011101" "110011001000010001010110000101000001000010001001000110110000011101011001" @@ -250,7 +251,7 @@ static void test_examples(int index, int generate, int debug) { "000010000000000000000000000000000000000000000000000000000000000000000010" "000010100110010010011011110101000110101010011101010000100010011100101010" }, - /* 9*/ { BARCODE_UPCE_CC, -1, 1, "0121230", "[15]021231", 0, 9, 55, "GGS Figure 5.11.8-4. (24723:2010 Figure 3) UPC-E symbol with a two-column CC-A", + /* 9*/ { BARCODE_UPCE_CC, -1, 1, "0121230", "[15]021231", 0, 9, 55, 1, "GGS Figure 5.11.8-4. (24723:2010 Figure 3) UPC-E symbol with a two-column CC-A", "1101100110111010011111010001100111100010110011110101001" "1101101110110010010000110001101000011011100011100101001" "1101101100111101001000000101000101111000010011101101001" @@ -261,14 +262,14 @@ static void test_examples(int index, int generate, int debug) { "0001000000000000000000000000000000000000000000000000010" "0001010110011001001100110010011011011110101001110101010" }, - /* 10*/ { BARCODE_DBAR_OMN_CC, -1, 1, "0361234567890", "[11]990102", 0, 5, 100, "GGS Figure 5.11.8-5. (24723:2010 Figure 8) GS1 DataBar Omnidirectional symbol with a four-column CC-A", + /* 10*/ { BARCODE_DBAR_OMN_CC, -1, 1, "0361234567890", "[11]990102", 0, 5, 100, 1, "GGS Figure 5.11.8-5. (24723:2010 Figure 8) GS1 DataBar Omnidirectional symbol with a four-column CC-A", "1101101110110000101000110001111001010111100010011101001110011101100110011001001100111000110110001010" "1101101100110111011111001001000011010111111010011001001101000000111010010010111111001110110010001010" "1101101000110010010111110001011001101111000010011001101111010011110010010000011001011100111010001010" "0000000000010110001110100000000101001011010111111011001101010000011010000000010100101000110011110000" "0000010011101001110001001111111000010100101000000100110010101111100101111111100011010111001100001101" }, - /* 11*/ { BARCODE_DBAR_STK_CC, -1, 1, "0341234567890", "[17]010200", 0, 9, 56, "GGS Figure 5.11.8-6. (24723:2010 Figure 6) GS1 DataBar Stacked symbol with a two-column CC-A", + /* 11*/ { BARCODE_DBAR_STK_CC, -1, 1, "0341234567890", "[17]010200", 0, 9, 56, 1, "GGS Figure 5.11.8-6. (24723:2010 Figure 6) GS1 DataBar Stacked symbol with a two-column CC-A", "01101100110101110011100111101010000100001111011110101001" "01101101110110110001000010001110111101100100011100101001" "01101101100110100001111011001111110011010110011101101001" @@ -279,7 +280,7 @@ static void test_examples(int index, int generate, int debug) { "00000011010111101010000010101010101001001101010000000000" "10101100111000010101111111110111000110110011100101000000" }, - /* 12*/ { BARCODE_DBAR_LTD_CC, -1, 2, "0351234567890", "[91]abcdefghijklmnopqrstuv", 0, 17, 88, "GGS Figure 5.11.8-7. (24723:2010 Figure 7) GS1 DataBar Limited symbol with a three-column CC-B **NOT SAME** (using [91] not [21] as length > 20 max for [21])", + /* 12*/ { BARCODE_DBAR_LTD_CC, -1, 2, "0351234567890", "[91]abcdefghijklmnopqrstuv", 0, 17, 88, 1, "GGS Figure 5.11.8-7. (24723:2010 Figure 7) GS1 DataBar Limited symbol with a three-column CC-B **NOT SAME** (using [91] not [21] as length > 20 max for [21])", "1101110100111011111011101001011000100100000100001000101111101101001111011011101001000000" "1101100100111111010100111001011000110111101100001100101010000111100010011011001001000000" "1101100110100111100001001001010000110111011100101111001101110010001110011011001101000000" @@ -298,7 +299,7 @@ static void test_examples(int index, int generate, int debug) { "0000000000000111101110001101000111010101011010100110010111010010011100011010111000000000" "0000000000101000010001110010111000101010100101011001101000101101100011100101000010100000" }, - /* 13*/ { BARCODE_DBAR_LTD_CC, GS1NOCHECK_MODE, 2, "0351234567890", "[21]abcdefghijklmnopqrstuv", 0, 17, 88, "GGS Figure 5.11.8-7. (24723:2010 Figure 7) GS1 DataBar Limited symbol with a three-column CC-B, same", + /* 13*/ { BARCODE_DBAR_LTD_CC, GS1NOCHECK_MODE, 2, "0351234567890", "[21]abcdefghijklmnopqrstuv", 0, 17, 88, 1, "GGS Figure 5.11.8-7. (24723:2010 Figure 7) GS1 DataBar Limited symbol with a three-column CC-B, same", "1101110100111011111011101001011000100100000100001000101111010011011111011011101001000000" "1101100100101111100101110001011000110111110001010011001111101100001001011011001001000000" "1101100110101111000110110001010000110111011100101111001101110010001110011011001101000000" @@ -317,14 +318,14 @@ static void test_examples(int index, int generate, int debug) { "0000000000000111101110001101000111010101011010100110010111010010011100011010111000000000" "0000000000101000010001110010111000101010100101011001101000101101100011100101000010100000" }, - /* 14*/ { BARCODE_DBAR_EXP_CC, -1, 1, "[01]93712345678904[3103]001234", "[91]1A2B3C4D5E", 0, 5, 151, "GGS Figure 5.11.8-8. (24723:2010 Figure 9) GS1 DataBar Expanded symbol with a four-column CC-A, same, verified against BWIPP and tec-it", + /* 14*/ { BARCODE_DBAR_EXP_CC, -1, 1, "[01]93712345678904[3103]001234", "[91]1A2B3C4D5E", 0, 5, 151, 1, "GGS Figure 5.11.8-8. (24723:2010 Figure 9) GS1 DataBar Expanded symbol with a four-column CC-A, same, verified against BWIPP and tec-it", "0011011011101110011010011000011100011100110110100111010011010001000011000101101110011000001101100010100000000000000000000000000000000000000000000000000" "0011011011001101110111110100011010001111001100100110010010111111001001100100101111110011101100100010100000000000000000000000000000000000000000000000000" "0011011010001010111011111100011111011011110010100110011011000011010011110100001011001111101110100010100000000000000000000000000000000000000000000000000" "0000011011111011000100000000101001010000011101001110100110001100111101000010101000011010001110001000100001010000111001010000001010010111000110010110000" "0101100100000100111011111111000010101111100010110001011001110011000010111100000011100101110001110111011110101111000110001111110000101000111001101000010" }, - /* 15*/ { BARCODE_GS1_128_CC, -1, 1, "[01]03212345678906", "[21]A1B2C3D4E5F6G7H8", 0, 6, 145, "GGS Figure 5.11.8-9. (24723:2010 Figure 11) GS1-128 symbol with a four-column CC-A", + /* 15*/ { BARCODE_GS1_128_CC, -1, 1, "[01]03212345678906", "[21]A1B2C3D4E5F6G7H8", 0, 6, 145, 1, "GGS Figure 5.11.8-9. (24723:2010 Figure 11) GS1-128 symbol with a four-column CC-A", "0000000000000000000001101001000110100001000001101101011110111110010010001101010000010010000011101110100010000111011001010000000000000000000000000" "0000000000000000000001101011000110101111001100001111010001101100010010000101111000011001101011100101100001000110011001010000000000000000000000000" "0000000000000000000001101011100100011001100111101011000101110000010110000101001100110011110011011110011001110110111001010000000000000000000000000" @@ -332,7 +333,7 @@ static void test_examples(int index, int generate, int debug) { "0010110001100001010001001100100110110110011100100011011000100100010100010011101111010011001001000010110011011100010100001000100010010011100010100" "1101001110011110101110110011011001001001100011011100100111011011101011101100010000101100110110111101001100100011101011110111011101101100011101011" }, - /* 16*/ { BARCODE_DBAR_EXPSTK_CC, -1, 1, "[01]00012345678905[10]ABCDEF", "[21]12345678", 0, 13, 102, "24723:2010 Figure 10 — A GS1 DataBar Expanded Stacked Composite symbol (with CC-A) **NOT SAME** bottom 1st and top 2nd linear row separators different; zint same as BWIPP and hard to see how figure in standard could be correct", + /* 16*/ { BARCODE_DBAR_EXPSTK_CC, -1, 1, "[01]00012345678905[10]ABCDEF", "[21]12345678", 0, 13, 102, 1, "24723:2010 Figure 10 — A GS1 DataBar Expanded Stacked Composite symbol (with CC-A) **NOT SAME** bottom 1st and top 2nd linear row separators different; zint same as BWIPP and hard to see how figure in standard could be correct", "001101101110110100001000001101001100111011000010011101001000110011100110010100111011100000110110001010" "001101101100101111110100011001111101101000001010011001001011111011011110011010111000100000110010001010" "001101101000100101001111000001000111011101111010011001101011110110110000011010001011111000111010001010" @@ -347,7 +348,7 @@ static void test_examples(int index, int generate, int debug) { "000000111001111101010100001010100101011111000010100000000000000000000000000000000000000000000000000000" "010111000110000010100011110000001010100000111101000100000000000000000000000000000000000000000000000000" }, - /* 17*/ { BARCODE_GS1_128_CC, -1, 3, "[00]030123456789012340", "[02]13012345678909[37]24[10]1234567ABCDEFG", 0, 7, 174, "24723:2010 Figure 12 — A GS1-128 Composite symbol (with CC-C)", + /* 17*/ { BARCODE_GS1_128_CC, -1, 3, "[00]030123456789012340", "[02]13012345678909[37]24[10]1234567ABCDEFG", 0, 7, 174, 1, "24723:2010 Figure 12 — A GS1-128 Composite symbol (with CC-C)", "111111110101010001111010101111000011010111011110000111011111011101001000001000010001011110101100111110111010010001110001000100011000011011111010100111110111111101000101001000" "111111110101010001111110101000111010000100111101000110011110101111101111010001010000011111000110010100111001011100011001001001111101100011111101010111000111111101000101001000" "111111110101010001010100011110000011001111100001010110100010111110001110111101011100011000001101011110101111001000000101100001011111101011101010001111110111111101000101001000" @@ -356,7 +357,7 @@ static void test_examples(int index, int generate, int debug) { "000000000101100011000010100010010011001101101100111001100100110001001000101000100111011110100110010010000100110010011000100100010011101011101000010001000100001010011100010100" "000000011010011100111101011101101100110010010011000110011011001110110111010111011000100001011001101101111011001101100111011011101100010100010111101110111011110101100011101011" }, - /* 18*/ { BARCODE_DBAR_STK_CC, -1, 1, "12345678901231", "[91]12345678901234567890", 0, 10, 56, "Example with CC-A 2 cols, 6 rows", + /* 18*/ { BARCODE_DBAR_STK_CC, -1, 1, "12345678901231", "[91]12345678901234567890", 0, 10, 56, 1, "Example with CC-A 2 cols, 6 rows", "01100100010111100110100111001011101110001000011100101101" "01110100010110001011101000001000111010111110011000101101" "01110110010110101100111111001000111100001001011000101001" @@ -368,7 +369,7 @@ static void test_examples(int index, int generate, int debug) { "00000110001101011010101010101010101101010000100000000000" "10101001111010000101100000000111000010100111011101000000" }, - /* 19*/ { BARCODE_DBAR_OMNSTK_CC, -1, 1, "12345678901231", "[91]1234567890123456789012", 0, 13, 56, "Example with CC-A 2 cols, 7 rows", + /* 19*/ { BARCODE_DBAR_OMNSTK_CC, -1, 1, "12345678901231", "[91]1234567890123456789012", 0, 13, 56, 1, "Example with CC-A 2 cols, 7 rows", "01110110110100100011111001101110001011100110011100010101" "01110010110111000110101111101001111100110010011000010101" "01100010110111010110011110001110001110110011011000110101" @@ -383,7 +384,7 @@ static void test_examples(int index, int generate, int debug) { "00000110000101111010010101010000111101011000100000000000" "10101001111010000101100000000111000010100111011101000000" }, - /* 20*/ { BARCODE_UPCE_CC, -1, 1, "1234567", "[91]1234567890123456789012345678", 0, 12, 55, "Example with CC-A 3 cols, 8 rows", + /* 20*/ { BARCODE_UPCE_CC, -1, 1, "1234567", "[91]1234567890123456789012345678", 0, 12, 55, 1, "Example with CC-A 3 cols, 8 rows", "1110111010100100011111001101110001011100110011011011101" "1110011010111000110101111101001111100110010011011011001" "1111011010111010110011110001110001110110011011011010001" @@ -397,7 +398,7 @@ static void test_examples(int index, int generate, int debug) { "0001000000000000000000000000000000000000000000000000010" "0001010010011011110101000110111001000010100100010101010" }, - /* 21*/ { BARCODE_DBAR_STK_CC, -1, 1, "12345678901231", "[91]1234567890123456789012345678901", 0, 13, 56, "Example with CC-A 2 cols, 9 rows", + /* 21*/ { BARCODE_DBAR_STK_CC, -1, 1, "12345678901231", "[91]1234567890123456789012345678901", 0, 13, 56, 1, "Example with CC-A 2 cols, 9 rows", "01100011010100100011111001101110001011100110011010111101" "01100010010111000110101111101001111100110010011010011101" "01110010010111010110011110001110001110110011011010011001" @@ -412,7 +413,7 @@ static void test_examples(int index, int generate, int debug) { "00000110001101011010101010101010101101010000100000000000" "10101001111010000101100000000111000010100111011101000000" }, - /* 22*/ { BARCODE_DBAR_OMNSTK_CC, -1, 1, "12345678901231", "[91]1234567890123456789012345678901234567", 0, 16, 56, "Example with CC-A 2 cols, 10 rows", + /* 22*/ { BARCODE_DBAR_OMNSTK_CC, -1, 1, "12345678901231", "[91]1234567890123456789012345678901234567", 0, 16, 56, 1, "Example with CC-A 2 cols, 10 rows", "01101001000111100110100111001011101110001000011101001101" "01101011000110001011101000001000111010111110011101011101" "01101011100110101100111111001000111100001001011101011001" @@ -430,7 +431,7 @@ static void test_examples(int index, int generate, int debug) { "00000110000101111010010101010000111101011000100000000000" "10101001111010000101100000000111000010100111011101000000" }, - /* 23*/ { BARCODE_UPCE_CC, -1, 1, "1234567", "[91]123456789012345678901234567890123456789012334", 0, 16, 55, "Example with CC-A 2 cols, 12 rows", + /* 23*/ { BARCODE_UPCE_CC, -1, 1, "1234567", "[91]123456789012345678901234567890123456789012334", 0, 16, 55, 1, "Example with CC-A 2 cols, 12 rows", "1110010100100100011111001101110001011100110011011000101" "1110110100111000110101111101001111100110010011001000101" "1110100100111010110011110001110001110110011011101000101" @@ -448,7 +449,7 @@ static void test_examples(int index, int generate, int debug) { "0001000000000000000000000000000000000000000000000000010" "0001010010011011110101000110111001000010100100010101010" }, - /* 24*/ { BARCODE_DBAR_LTD_CC, -1, 1, "12345678901231", "[91]1234567890123456789012345", 0, 7, 79, "Example with CC-A 3 cols, 5 rows", + /* 24*/ { BARCODE_DBAR_LTD_CC, -1, 1, "12345678901231", "[91]1234567890123456789012345", 0, 7, 79, 1, "Example with CC-A 3 cols, 5 rows", "0111100110100111001001101000101110111000100001011101110010000011000010101000000" "0100011101011111001011101000111010110010000001100111101011111011000110101000000" "0101100111011111001011001000110110000010111101110001011111001011000100101000000" @@ -457,7 +458,7 @@ static void test_examples(int index, int generate, int debug) { "0000101110100000101011100000101010100011011010110101011010111110001110000000000" "0101010001011111010100011111010101011100100101001010100101000001110001110100000" }, - /* 25*/ { BARCODE_EANX_CC, -1, 1, "1234567", "[91]1234567890123456789012345678901", 0, 10, 72, "Example with CC-A 3 cols, 6 rows", + /* 25*/ { BARCODE_EANX_CC, -1, 1, "1234567", "[91]1234567890123456789012345678901", 0, 10, 72, 1, "Example with CC-A 3 cols, 6 rows", "100100011111001101011000100111000101110011001100010111010000011110100101" "100111110011001001011000110110101100111111001000111100001001011110101101" "111100100010111101010000110111011000001011001000010100001000011110101001" @@ -469,7 +470,7 @@ static void test_examples(int index, int generate, int debug) { "000010000000000000000000000000000000000000000000000000000000000000000010" "000010100110010010011011110101000110101010011101010000100010011100101010" }, - /* 26*/ { BARCODE_DBAR_LTD_CC, -1, 1, "12345678901231", "[91]1234567890123456789012345678901234567", 0, 9, 79, "Example with CC-A 3 cols, 7 rows", + /* 26*/ { BARCODE_DBAR_LTD_CC, -1, 1, "12345678901231", "[91]1234567890123456789012345678901234567", 0, 9, 79, 1, "Example with CC-A 3 cols, 7 rows", "0100010001101111101011010000110001101000111101110001101011111011001010001000000" "0110000010011011101001010000111010110011110001110001110110011011001011001000000" "0110010111101100001001011000100100001111000101110001011101100011001011101000000" @@ -480,7 +481,19 @@ static void test_examples(int index, int generate, int debug) { "0000101110100000101011100000101010100011011010110101011010111110001110000000000" "0101010001011111010100011111010101011100100101001010100101000001110001110100000" }, - /* 27*/ { BARCODE_UPCA_CC, -1, 1, "12345678901", "[91]12345678901234567890", 0, 7, 99, "Example with CC-A 4 cols, 3 rows", + /* 27*/ { BARCODE_DBAR_LTD_CC, -1, 1, "12345678901231", "[91]123456789012345678901234567890123456789012345", 0, 10, 79, 1, "Example with CC-A 3 cols, 8 rows", + "0100010001101111101011001110110001101000111101110001101011111011100101101000000" + "0110000010011011101001001110111010110011110001110001110110011011000101101000000" + "0110010111101100001001101110100100001111000101110001011101100011000101001000000" + "0110001010011111001000101110101111100001100101000111100010100011001101001000000" + "0101000001101100001000100110111001110001010001111011101100111011011101001000000" + "0110000010111000101000110110111110001010001101100000101111011011011001001000000" + "0110001101001111001000010110100000011010011101101011001111110011011001101000000" + "0111011000001001101000010010110111101110100001001100111000011011011011101000000" + "0000101110100000101011100000101010100011011010110101011010111110001110000000000" + "0101010001011111010100011111010101011100100101001010100101000001110001110100000" + }, + /* 28*/ { BARCODE_UPCA_CC, -1, 1, "12345678901", "[91]12345678901234567890", 0, 7, 99, 1, "Example with CC-A 4 cols, 3 rows", "110110111011110011010011100101110111000100001001110100101110111001000001100000100110111011011000101" "110110110011101011001000000110011110101111101001100100110010111101100001110010111011000011001000101" "110110100010011101000001100100111111011101001001100110111111001011010001000001100010111011101000101" @@ -489,7 +502,7 @@ static void test_examples(int index, int generate, int debug) { "000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010" "000101001100100100110111101010001101100010101111010101000100100100011101001110010110011011011001010" }, - /* 28*/ { BARCODE_DBAR_OMN_CC, -1, 1, "12345678901231", "[91]1234567890123456789012345678", 0, 6, 100, "Example with CC-A 4 cols, 4 rows", + /* 29*/ { BARCODE_DBAR_OMN_CC, -1, 1, "12345678901231", "[91]1234567890123456789012345678", 0, 6, 100, 1, "Example with CC-A 4 cols, 4 rows", "1101001000111100110100111001011101110001000010010001101011101110010000011000001001101110111011001010" "1101011000111010110010000001100111101011111010010000101100101111011000011011011110000100110011001010" "1101011100100011111011001001000000100101111010110000101100011111010010011000110101111000110111001010" @@ -497,7 +510,7 @@ static void test_examples(int index, int generate, int debug) { "0000000001100011000110101000000001001011011100001001010110000101111010010101010000111101011000100000" "0000010010011100111001000111111110010100100011110110101001111010000101100000000111000010100111011101" }, - /* 29*/ { BARCODE_DBAR_EXP_CC, -1, 1, "[01]12345678901231", "[91]1234567890123456789012345678901234567", 0, 7, 134, "Example with CC-A 4 cols, 5 rows", + /* 30*/ { BARCODE_DBAR_EXP_CC, -1, 1, "[01]12345678901231", "[91]1234567890123456789012345678901234567", 0, 7, 134, 1, "Example with CC-A 4 cols, 5 rows", "00110101111011110011010011100101110111000100001011100010101110111001000001100000100110111011011110101000000000000000000000000000000000" "00110100111011101011001000000110011110101111101011100110110010111101100001001000011110001011001110101000000000000000000000000000000000" "00110100110010001101001110000110001010011111001011100100101111100001100101000111100010100011101110101000000000000000000000000000000000" @@ -506,7 +519,7 @@ static void test_examples(int index, int generate, int debug) { "00001011100111110001000000001010010011000000101001100011100100111011010000101010000111000011110101001101011110000010010100000010100000" "01010100011000001110111111110000101100111111010110011100011011000100101111000000111000111100001010110010100001111101100011111100001010" }, - /* 30*/ { BARCODE_DBAR_EXPSTK_CC, -1, 1, "[01]12345678901231", "[91]123456789012345678901234567890123456789012345", 0, 12, 102, "Example with CC-A 4 cols, 6 rows", + /* 31*/ { BARCODE_DBAR_EXPSTK_CC, -1, 1, "[01]12345678901231", "[91]123456789012345678901234567890123456789012345", 0, 12, 102, 1, "Example with CC-A 4 cols, 6 rows", "001100010110111100110100111001011101110001000010011100101011101110010000011000001001101110110101111010" "001100010100111010110010000001100111101011111010011110101100101111011000010010000111100010110100111010" "001100110100100011010011100001100010100111110010111110101011111000011001010001111000101000110100110010" @@ -520,7 +533,7 @@ static void test_examples(int index, int generate, int debug) { "000000101111000001001010000001010010111100111110110000000000000000000000000000000000000000000000000000" "001001010000111110110001111110000101000011000001001010000000000000000000000000000000000000000000000000" }, - /* 31*/ { BARCODE_EANX_CC, -1, 1, "123456789012", "[91]123456789012345678901234567890123456789012345678901234", 0, 11, 99, "Example with CC-A 4 cols, 7 rows", + /* 32*/ { BARCODE_EANX_CC, -1, 1, "123456789012", "[91]123456789012345678901234567890123456789012345678901234", 0, 11, 99, 1, "Example with CC-A 4 cols, 7 rows", "110010111010010001111100110111000101110011001000011010110001011101000001000111010111110011011011001" "110010011011010110011111100100011110000100101000111010101100111011111001011100010011000011011010001" "110011011011011101110011000101100011010000001000110010111101111001001001100001101100011011010010001" @@ -533,7 +546,7 @@ static void test_examples(int index, int generate, int debug) { "000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010" "000101001001101111010011101011000100001010010001010101001000111010011100101100110110110010010001010" }, - /* 32*/ { BARCODE_UPCE_CC, -1, 2, "1234567", "[91]1234567890123", 0, 12, 55, "Example with CC-B 2 cols, 8 rows", + /* 33*/ { BARCODE_UPCE_CC, -1, 2, "1234567", "[91]1234567890123", 0, 12, 55, 1, "Example with CC-B 2 cols, 8 rows", "1100100010111011111011101001000001000010001011001000101" "1110100010110100001111011001100101110000100011101000101" "1110110010101100100111000001011111011000001011101100101" @@ -547,7 +560,7 @@ static void test_examples(int index, int generate, int debug) { "0001000000000000000000000000000000000000000000000000010" "0001010010011011110101000110111001000010100100010101010" }, - /* 33*/ { BARCODE_DBAR_STK_CC, -1, 2, "12345678901231", "[91]123456789012345678901234567", 0, 15, 56, "Example with CC-B 2 cols, 11 rows", + /* 34*/ { BARCODE_DBAR_STK_CC, -1, 2, "12345678901231", "[91]123456789012345678901234567", 0, 15, 56, 1, "Example with CC-B 2 cols, 11 rows", "01100100010111011111011101001000001000010001011100110101" "01110100010110100001111011001100101110000100011110110101" "01110110010101100100111000001011111011000001011110010101" @@ -564,7 +577,7 @@ static void test_examples(int index, int generate, int debug) { "00000110001101011010101010101010101101010000100000000000" "10101001111010000101100000000111000010100111011101000000" }, - /* 34*/ { BARCODE_DBAR_OMNSTK_CC, -1, 2, "12345678901231", "[91]1234567890123456789012345678901234567890123", 0, 20, 56, "Example with CC-B 2 cols, 14 rows", + /* 35*/ { BARCODE_DBAR_OMNSTK_CC, -1, 2, "12345678901231", "[91]1234567890123456789012345678901234567890123", 0, 20, 56, 1, "Example with CC-B 2 cols, 14 rows", "01110111010100011111010011101101111110101110011101110101" "01110011010100100101111000001001000100001111011100110101" "01111011010101101111001110001111011110101000011110110101" @@ -586,7 +599,7 @@ static void test_examples(int index, int generate, int debug) { "00000110000101111010010101010000111101011000100000000000" "10101001111010000101100000000111000010100111011101000000" }, - /* 35*/ { BARCODE_UPCE_CC, -1, 2, "1234567", "[91]123456789012345678901234567890123456789012345678901234567", 0, 21, 55, "Example with CC-B 2 cols, 17 rows", + /* 36*/ { BARCODE_UPCE_CC, -1, 2, "1234567", "[91]123456789012345678901234567890123456789012345678901234567", 0, 21, 55, 1, "Example with CC-B 2 cols, 17 rows", "1100110100100000011100101101100111111011001011001101001" "1101110100111110110100111101110110010000110011011101001" "1101100100111001011001000001110001101110100011011001001" @@ -609,7 +622,7 @@ static void test_examples(int index, int generate, int debug) { "0001000000000000000000000000000000000000000000000000010" "0001010010011011110101000110111001000010100100010101010" }, - /* 36*/ { BARCODE_DBAR_STK_CC, -1, 2, "12345678901231", "[91]1234567890123456789012345678901234567890123456789012345678901234567890", 0, 24, 56, "Example with CC-B 2 cols, 20 rows", + /* 37*/ { BARCODE_DBAR_STK_CC, -1, 2, "12345678901231", "[91]1234567890123456789012345678901234567890123456789012345678901234567890", 0, 24, 56, 1, "Example with CC-B 2 cols, 20 rows", "01111010100111011111011101001000001000010001011110101001" "01110010100110100001111011001100101110000100011100101001" "01110110100101100100111000001011111011000001011101101001" @@ -635,7 +648,7 @@ static void test_examples(int index, int generate, int debug) { "00000110001101011010101010101010101101010000100000000000" "10101001111010000101100000000111000010100111011101000000" }, - /* 37*/ { BARCODE_DBAR_OMNSTK_CC, -1, 2, "12345678901231", "[91]1234567890123456789012345678901234567890123456789012345678901234567890123456789012", 0, 29, 56, "Example with CC-B 2 cols, 23 rows", + /* 38*/ { BARCODE_DBAR_OMNSTK_CC, -1, 2, "12345678901231", "[91]1234567890123456789012345678901234567890123456789012345678901234567890123456789012", 0, 29, 56, 1, "Example with CC-B 2 cols, 23 rows", "01110011010100000011100101101100111111011001011110100101" "01111011010111110110100111101110110010000110011110101101" "01111001010111001011001000001110001101110100011110101001" @@ -666,7 +679,7 @@ static void test_examples(int index, int generate, int debug) { "00000110000101111010010101010000111101011000100000000000" "10101001111010000101100000000111000010100111011101000000" }, - /* 38*/ { BARCODE_UPCE_CC, -1, 2, "1234567", "[91]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890", 0, 30, 55, "Example with CC-B 2 cols, 26 rows", + /* 39*/ { BARCODE_UPCE_CC, -1, 2, "1234567", "[91]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890", 0, 30, 55, 1, "Example with CC-B 2 cols, 26 rows", "1100101000100000011100101101000001111001010011000101001" "1100101100111110110100111101110110010000110011001101001" "1100101110111001011001000001110001101110100011011101001" @@ -698,7 +711,7 @@ static void test_examples(int index, int generate, int debug) { "0001000000000000000000000000000000000000000000000000010" "0001010010011011110101000110111001000010100100010101010" }, - /* 39*/ { BARCODE_DBAR_LTD_CC, -1, 2, "12345678901231", "[91]123456", 0, 8, 88, "Example with CC-B 3 cols, 6 rows", + /* 40*/ { BARCODE_DBAR_LTD_CC, -1, 2, "12345678901231", "[91]123456", 0, 8, 88, 1, "Example with CC-B 3 cols, 6 rows", "1100100010111011111011101001011001110100000100001000101110100001000111011001000101000000" "1110100010111010111101110001001001110101000011110010001101011100000010011101000101000000" "1110110010110011010000111101001101110110111110100010001011001001110000011101100101000000" @@ -708,7 +721,7 @@ static void test_examples(int index, int generate, int debug) { "0000000000000101110100000101011100000101010100011011010110101011010111110001110000000000" "0000000000101010001011111010100011111010101011100100101001010100101000001110001110100000" }, - /* 40*/ { BARCODE_EANX_CC, -1, 2, "1234567", "[91]123456789012345678", 0, 12, 82, "Example with CC-B 3 cols, 8 rows", + /* 41*/ { BARCODE_EANX_CC, -1, 2, "1234567", "[91]123456789012345678", 0, 12, 82, 1, "Example with CC-B 3 cols, 8 rows", "1100111010111011111011101001000010110100000100001000101111101101001111011001110101" "1110111010110010111000010001000010010111001011001000001110001101110100011101110101" "1110011010110111111001101001000011010101000101111000001100100110111111011100110101" @@ -722,7 +735,7 @@ static void test_examples(int index, int generate, int debug) { "0000000000000010000000000000000000000000000000000000000000000000000000000000000010" "0000000000000010100110010010011011110101000110101010011101010000100010011100101010" }, - /* 41*/ { BARCODE_DBAR_LTD_CC, -1, 2, "12345678901231", "[91]12345678901234567890123456789", 0, 12, 88, "Example with CC-B 3 cols, 10 rows", + /* 42*/ { BARCODE_DBAR_LTD_CC, -1, 2, "12345678901231", "[91]12345678901234567890123456789", 0, 12, 88, 1, "Example with CC-B 3 cols, 10 rows", "1100010010100000011100101101001111010110011111101100101001001011110000011000100101000000" "1110010010111011001000011001011111010101101111001110001111011110101000011100100101000000" "1111010010110001110111110101011110010111010001110001101110110011110011011110100101000000" @@ -736,7 +749,7 @@ static void test_examples(int index, int generate, int debug) { "0000000000000101110100000101011100000101010100011011010110101011010111110001110000000000" "0000000000101010001011111010100011111010101011100100101001010100101000001110001110100000" }, - /* 42*/ { BARCODE_EANX_CC, -1, 2, "1234567", "[91]12345678901234567890123456789012345678901", 0, 16, 82, "Example with CC-B 3 cols, 12 rows", + /* 43*/ { BARCODE_EANX_CC, -1, 2, "1234567", "[91]12345678901234567890123456789012345678901", 0, 16, 82, 1, "Example with CC-B 3 cols, 12 rows", "1110101100111011111011101001011000010100000100001000101111101101001111011101011001" "1110101000110010111000010001011100010111001011001000001110001101110100011101010001" "1100101000110111111001101001011100110110010110011111101100110010001111011001010001" @@ -754,7 +767,7 @@ static void test_examples(int index, int generate, int debug) { "0000000000000010000000000000000000000000000000000000000000000000000000000000000010" "0000000000000010100110010010011011110101000110101010011101010000100010011100101010" }, - /* 43*/ { BARCODE_DBAR_LTD_CC, -1, 2, "12345678901231", "[91]123456789012345678901234567890123456789012345678901234567", 0, 17, 88, "Example with CC-B 3 cols, 15 rows", + /* 44*/ { BARCODE_DBAR_LTD_CC, -1, 2, "12345678901231", "[91]123456789012345678901234567890123456789012345678901234567", 0, 17, 88, 1, "Example with CC-B 3 cols, 15 rows", "1101110100111011111011101001011000100100000100001000101111101101001111011011101001000000" "1101100100110010111000010001011000110111001011001000001110001101110100011011001001000000" "1101100110110111111001101001010000110110010110011111101100110010001111011011001101000000" @@ -773,7 +786,7 @@ static void test_examples(int index, int generate, int debug) { "0000000000000101110100000101011100000101010100011011010110101011010111110001110000000000" "0000000000101010001011111010100011111010101011100100101001010100101000001110001110100000" }, - /* 44*/ { BARCODE_EANX_CC, -1, 2, "1234567", "[91]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[92]12345678901234567890123", 0, 30, 82, "Example with CC-B 3 cols, 26 rows", + /* 45*/ { BARCODE_EANX_CC, -1, 2, "1234567", "[91]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[92]12345678901234567890123", 0, 30, 82, 1, "Example with CC-B 3 cols, 26 rows", "1100100010111011111011101001000011010100000100001000101111101101001111011110100101" "1110100010110010111000010001000111010111001011001000001110001101110100011110101101" "1110110010110111111001101001000110010110010110011111101100110010001111011110101001" @@ -805,7 +818,85 @@ static void test_examples(int index, int generate, int debug) { "0000000000000010000000000000000000000000000000000000000000000000000000000000000010" "0000000000000010100110010010011011110101000110101010011101010000100010011100101010" }, - /* 45*/ { BARCODE_DBAR_LTD_CC, -1, 2, "12345678901231", "[91]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[92]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[93]1234567890123456789012345678901", 0, 46, 88, "Example with CC-B 3 cols, 44 rows", + /* 46*/ { BARCODE_DBAR_LTD_CC, -1, 2, "12345678901231", "[91]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[92]123456789012345678901234", 0, 34, 88, 1, "Example with CC-B 3 cols, 32 rows", + "1110110100100000011100101101011101100110011111101100101001001011110000011011101001000000" + "1110100100111011001000011001001101100101101111001110001111011110101000011011001001000000" + "1110100110110001110111110101000101100111010001110001101110110011110011011011001101000000" + "1110101110100101000011110001000101000101100010111000001111101001110100011011011101000000" + "1110101100101100011000010001001101000110011011011000001111101111001011011011011001000000" + "1110101000100101111101100001011101000111010000110010001110110111000100011011010001000000" + "1100101000101110110000111001011001000101111011001100001000011101000110011010010001000000" + "1100101100100001001000010001011001100111110110100111101011100111001000011010110001000000" + "1100101110110101110000001001011000100111100100110001101001000011110100011010111001000000" + "1100100110101101110111110001011000110111010100011111101000110000101110011010111101000000" + "1100110110111101111001000101010000110111001100010001101101000101100000011010011101000000" + "1110110110111001101110010001010001110100110011111000101010111100001000011010011001000000" + "1110010110110111010001110001010001100101100011001111001000110010001110011010001001000000" + "1100010110111101111001010001010011100110111001101000001000011011101100011010001101000000" + "1100010100111010000111011001010011000100111010011111001100011011110100011010000101000000" + "1100110100100011110110001101010111000110011111010000101100100111111001011011000101000000" + "1101110100100010111101111001010110000101000011100011101000110000110100011001000101000000" + "1101100100111110001100101001010010000110101111101110001110010011110111011101000101000000" + "1101100110101111101100000101011010000100000011001011101000011011011110011101100101000000" + "1101101110110101000011000001001010000111011110011001001101110110010000011001100101000000" + "1101101100111110110100010001001011000111000100110100001011110010111100011011100101000000" + "1101101000100111111001110101001011100111011100100111101000101000001111011011110101000000" + "1101001000110000101110111101011011100111000111011011001101001001100000011001110101000000" + "1101011000100101111010000001011011110100000010111101001100110111100001011101110101000000" + "1101011100110011000100111101011001110111110100111001001011111011000010011100110101000000" + "1101011110110000110000101001001001110100000101110111001100010011101111011110110101000000" + "1101001110111111011100010101001101110110001101111010001010011111000110011110010101000000" + "1101001100100100010000111101000101110101111101100100001001101101111000011100010101000000" + "1101000100111011010011000001000100110110010010011000001001000110000110011000010101000000" + "1101000110111110011101101001000110110110000010011100101010011110100000011000110101000000" + "1101000010110010001011111001000010110101111000100100001100111101000110011000100101000000" + "1101100010111110010101111101000010010100111001110100001110010011001111011100100101000000" + "0000000000000101110100000101011100000101010100011011010110101011010111110001110000000000" + "0000000000101010001011111010100011111010101011100100101001010100101000001110001110100000" + }, + /* 47*/ { BARCODE_DBAR_LTD_CC, -1, 2, "12345678901231", "[91]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[92]1234567890123456789012345678901234567890123456789012345678", 0, 40, 88, 1, "Example with CC-B 3 cols, 38 rows", + "1100010010100000011100101101000101100110011111101100101001001011110000011010011101000000" + "1110010010111011001000011001000101000101101111001110001111011110101000011010011001000000" + "1111010010110001110111110101001101000111010001110001101110110011110011011010001001000000" + "1111010110100101000011110001011101000101100010111000001111101001110100011010001101000000" + "1111010100101100011000010001011001000110011011011000001111101111001011011010000101000000" + "1110010100100101111101100001011001100111010000110010001110110111000100011011000101000000" + "1110110100101110110000111001011000100101111011001100001000011101000110011001000101000000" + "1110100100100001001000010001011000110111110110100111101011100111001000011101000101000000" + "1110100110110101110000001001010000110111100100110001101001000011110100011101100101000000" + "1110101110101101110111110001010001110111010100011111101000110000101110011001100101000000" + "1110101100111101111001000101010001100111001100010001101101000101100000011011100101000000" + "1110101000111001101110010001010011100100110011111000101010111100001000011011110101000000" + "1100101000110111010001110001010011000101100011001111001000110010001110011001110101000000" + "1100101100111101111001010001010111000110111001101000001000011011101100011101110101000000" + "1100101110111010000111011001010110000100111010011111001100011011110100011100110101000000" + "1100100110100011110100010001010010000101111110011100101101001000011111011110110101000000" + "1100110110110111011000100001011010000111000111001010001001000111011100011110010101000000" + "1110110110100000100011110101001010000110101110000010001011110001011110011100010101000000" + "1110010110110001110100111001001011000110001100010111101111011101011111011000010101000000" + "1100010110111011001000110001001011100111101011011111001110001010001110011000110101000000" + "1100010100111010011010000001011011100110000101110001001111001010000001011000100101000000" + "1100110100100010001001111001011011110110100000101111101110001111010111011100100101000000" + "1101110100110111101110001001011001110101011111011111001101010000110000011110100101000000" + "1101100100111101001010000001001001110111000100001101001100000100111001011110101101000000" + "1101100110100110110111100001001101110110111110001000101100111000100111011110101001000000" + "1101101110110100001001100001000101110101000001000100001000001010100000011100101001000000" + "1101101100111101000100000101000100110100111011111100101110101111101111011101101001000000" + "1101101000110111010000011101000110110100000010101111001000111001101110011101001001000000" + "1101001000111110110010111101000010110101101100010000001100101100111000011101001101000000" + "1101011000111000010011010001000010010110001100111101001100000101110001011101011101000000" + "1101011100100111100000100101000011010101110011001110001001111100110100011101011001000000" + "1101011110111000101011100001000111010110000101011000001110010100111000011101010001000000" + "1101001110100100011111001101000110010110110011110001001110110011100100011001010001000000" + "1101001100110111100001001101000100010110010010111110001111110010110010011001011001000000" + "1101000100100000100001000101001100010110100100000110001101110110010000011001011101000000" + "1101000110111100001001000101001110010110110111110011001000101111010000011001001101000000" + "1101000010100000101000111101001111010100110011011110001011111001110011011001101101000000" + "1101100010100110000110100001011111010110010000001011001100100011001110011101101101000000" + "0000000000000101110100000101011100000101010100011011010110101011010111110001110000000000" + "0000000000101010001011111010100011111010101011100100101001010100101000001110001110100000" + }, + /* 48*/ { BARCODE_DBAR_LTD_CC, -1, 2, "12345678901231", "[91]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[92]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[93]1234567890123456789012345678901", 0, 46, 88, 1, "Example with CC-B 3 cols, 44 rows", "1100100010111011111011101001011000010110001110001101001111101101001111011010001001000000" "1110100010110010111000010001011100010111001011001000001110001101110100011010001101000000" "1110110010110111111001101001011100110110010110011111101100110010001111011010000101000000" @@ -853,7 +944,7 @@ static void test_examples(int index, int generate, int debug) { "0000000000000101110100000101011100000101010100011011010110101011010111110001110000000000" "0000000000101010001011111010100011111010101011100100101001010100101000001110001110100000" }, - /* 46*/ { BARCODE_UPCA_CC, -1, 2, "12345678901", "[91]1234567890123", 0, 8, 99, "Example with CC-B 4 cols, 4 rows", + /* 49*/ { BARCODE_UPCA_CC, -1, 2, "12345678901", "[91]1234567890123", 0, 8, 99, 1, "Example with CC-B 4 cols, 4 rows", "110100111010001111101001110110111111010111001001110110110100001111011001100101110000100011010010001" "110100110010110010011100000101111101100000101001110100110111111001101001110100111110010011010110001" "110100010011100110100001100110010000010110001001100100100111101111010001110001110100010011010111001" @@ -863,7 +954,7 @@ static void test_examples(int index, int generate, int debug) { "000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010" "000101001100100100110111101010001101100010101111010101000100100100011101001110010110011011011001010" }, - /* 47*/ { BARCODE_EANX_CC, -1, 2, "123456789012", "[91]1234567890123456789012345", 0, 10, 99, "Example with CC-B 4 cols, 6 rows", + /* 50*/ { BARCODE_EANX_CC, -1, 2, "123456789012", "[91]1234567890123456789012345", 0, 10, 99, 1, "Example with CC-B 4 cols, 6 rows", "110010001011101111101110100110001110001101001011001110111110110100111101110110010000110011001000101" "111010001011100101100100000111000110111010001001001110110001110111110101110100011100011011101000101" "111011001011001100100011110100101000011110001001101110101100010111000001010011000111110011101100101" @@ -875,7 +966,7 @@ static void test_examples(int index, int generate, int debug) { "000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010" "000101001001101111010011101011000100001010010001010101001000111010011100101100110110110010010001010" }, - /* 48*/ { BARCODE_GS1_128_CC, -1, 2, "[01]12345678901231", "[91]12345678901234567890123456789012345678901", 0, 10, 145, "Example with CC-B 4 cols, 8 rows", + /* 51*/ { BARCODE_GS1_128_CC, -1, 2, "[01]12345678901231", "[91]12345678901234567890123456789012345678901", 0, 10, 145, 1, "Example with CC-B 4 cols, 8 rows", "0000000000000000000001100111010111011111011101001000001000010001010000101101111101101001111011101100100001100110011101010000000000000000000000000" "0000000000000000000001110111010111001011001000001110001101110100010000100101100011101111101011101000111000110111011101010000000000000000000000000" "0000000000000000000001110011010110011001000111101001010000111100010000110101011000101110000011111010011101000111001101010000000000000000000000000" @@ -887,7 +978,7 @@ static void test_examples(int index, int generate, int debug) { "0010110001100001010001001100100110100110001101110100111000111010010011110101100100001001010011000110010011100100010100001000101001110011100010100" "1101001110011110101110110011011001011001110010001011000111000101101100001010011011110110101100111001101100011011101011110111010110001100011101011" }, - /* 49*/ { BARCODE_DBAR_OMN_CC, -1, 2, "12345678901231", "[91]123456789012345678901234567890123456789012345678901234567", 0, 12, 100, "Example with CC-B 4 cols, 10 rows", + /* 52*/ { BARCODE_DBAR_OMN_CC, -1, 2, "12345678901231", "[91]123456789012345678901234567890123456789012345678901234567", 0, 12, 100, 1, "Example with CC-B 4 cols, 10 rows", "1100010010100000011100101101100111111011001010011110101001001011110000010010001000011110110001001010" "1110010010101101111001110001111011110101000010111110101100001100101000011111001010111110111001001010" "1111010010111011001111001101110100011000010010111100101001011111011000011111101001011100111101001010" @@ -901,7 +992,7 @@ static void test_examples(int index, int generate, int debug) { "0000000001100011000110101000000001001011011100001001010110000101111010010101010000111101011000100000" "0000010010011100111001000111111110010100100011110110101001111010000101100000000111000010100111011101" }, - /* 50*/ { BARCODE_DBAR_EXP_CC, -1, 2, "[01]12345678901231", "[91]1234567890123456789012345678901234567890123456789012345678901234567890123", 0, 14, 134, "Example with CC-B 4 cols, 12 rows", + /* 53*/ { BARCODE_DBAR_EXP_CC, -1, 2, "[01]12345678901231", "[91]1234567890123456789012345678901234567890123456789012345678901234567890123", 0, 14, 134, 1, "Example with CC-B 4 cols, 12 rows", "00111010110011101111101110100100000100001000101011000010111110110100111101110110010000110011101011001000000000000000000000000000000000" "00111010100011100101100100000111000110111010001011100010110001110111110101110100011100011011101010001000000000000000000000000000000000" "00110010100011001100100011110100101000011110001011100110101100010111000001111101001110100011001010001000000000000000000000000000000000" @@ -917,7 +1008,28 @@ static void test_examples(int index, int generate, int debug) { "00001011100111110001000000001010010011000000101001100011100100111011010000101010000111000011110101001101011110000010010100000010100000" "01010100011000001110111111110000101100111111010110011100011011000100101111000000111000111100001010110010100001111101100011111100001010" }, - /* 51*/ { BARCODE_DBAR_EXPSTK_CC, -1, 2, "[01]12345678901231", "[91]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[92]1234567890123456789012345678901234567890123456", 0, 26, 102, "Example with CC-B 4 cols, 20 rows", + /* 54*/ { BARCODE_UPCA_CC, -1, 2, "123456789012", "[91]12345678901234567890123456789012345678901234567890123456789012345678901234", 0, 19, 99, 1, "Example with CC-B 4 cols, 15 rows", + "110111010011101111101110100100000100001000101011000100111110110100111101110110010000110011011101001" + "110110010011100101100100000111000110111010001011000110110001110111110101110100011100011011011001001" + "110110011011001100100011110100101000011110001010000110101100010111000001111101001110100011011001101" + "110110111010110001100001000110011011011000001010001110111110111100101101100100010000110011011011101" + "110110110011101000011001000111011011100010001010001100110110011110000101001101111101000011011011001" + "110110100010000111010001100110001110101110001010011100100100101111000001100111001011100011011010001" + "110100100011110100100111100100100001001000001010011000111001101110111101011011000100000011010010001" + "110101100011111101010001110111100010001101101010111000111011000111000101111000001001010011010110001" + "110101110011001001111110010100010001001111001010110000110100000101111101110001111010111011010111001" + "110101111011011110111000100101011111011111001010010000110101000011000001011000111011000011010111101" + "110100111011001000011110110110100000011100101011010000110000011011110101000100011110100011010011101" + "110100110011110100011110010110111111011001001001010000111110101111001101100110100011110011010011001" + "110100010011011100011000010111011101110011101001011000100110111011000001001110111101100011010001001" + "110100011011101100001110100100001111010111101001011100111101010000010001111100011010100011010001101" + "110100001011010011001111110111001011111101101011011100101001100111110001011100110001110011010000101" + "000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010" + "001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001" + "000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010" + "000101001100100100110111101010001101100010101111010101000100100100011101001110010110011011011001010" + }, + /* 55*/ { BARCODE_DBAR_EXPSTK_CC, -1, 2, "[01]12345678901231", "[91]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[92]1234567890123456789012345678901234567890123456", 0, 26, 102, 1, "Example with CC-B 4 cols, 20 rows", "001100100010111011111011101001000001000010001010111100101111101101001111011101100100001100111001011010" "001110100010111001011001000001110001101110100010111101101100011101111101011101000111000110110001011010" "001110110010110011001000111101001010000111100010011101101011000101110000011111010011101000110001010010" @@ -945,7 +1057,121 @@ static void test_examples(int index, int generate, int debug) { "000000101111000001001010000001010010111100111110110000000000000000000000000000000000000000000000000000" "001001010000111110110001111110000101000011000001001010000000000000000000000000000000000000000000000000" }, - /* 52*/ { BARCODE_UPCA_CC, -1, 2, "12345678901", "[91]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[92]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[93]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[94]123456789012345678901234567890123456789012345678901234567", 0, 48, 99, "Example with CC-B 4 cols, 44 rows", + /* 56*/ { BARCODE_UPCA_CC, -1, 2, "12345678901", "[91]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[92]12345678901234567890123456789012345678901234567", 0, 30, 99, 1, "Example with CC-B 4 cols, 26 rows", + "110010001011101111101110100110001110001101001000011010111110110100111101110110010000110011110100101" + "111010001011100101100100000111000110111010001000111010110001110111110101110100011100011011110101101" + "111011001011001100100011110100101000011110001000110010101100010111000001111101001110100011110101001" + "110011001010110001100001000110011011011000001000100010111110111100101101100100010000110011100101001" + "110111001011101000011001000111011011100010001001100010110110011110000101001101111101000011101101001" + "110111101010000111010001100110001110101110001001110010100100101111000001100111001011100011101001001" + "110011101011110100100111100100100001001000001001111010111001101110111101011011000100000011101001101" + "111011101011111101010001110111001100111010001011111010101111010111100001111000100110110011101011101" + "111001101011111010011100100101111010010000001011110010110111100001011001110100101111110011101011001" + "111101101011000101001100000110010001100011101011110110111011100100000101111011110010100011101010001" + "111100101011111001101100110100011101001111101001110110111010000111011001001110100111110011001010001" + "111000101010001110001000110100011110100010001001110100101111110011100101101001000011111011001011001" + "110000101011011101100010000111000111001010001001100100100100011101110001100011101101000011001011101" + "110001101011010111000001000101111001101111101001100110111000101101000001111010001010000011001001101" + "110001001010111011001110000101000010111100001001000110100011101000110001000110011011110011001101101" + "111001001010000010011000110100010100000100001001000010101011100011100001000010110000011011101101101" + "111101001011111001000100110111000000100110101011000010110010011100000101111001010000001011100101101" + "111101011010001000100111100110100000101111101011100010111000111101011101101111100110011011000101101" + "111101010010110001111011100110001100101000001011100110101000011100011101100001001000011011000101001" + "111001010011010001111000110110101111100011101011100100111010001100000101000000101111001011001101001" + "111011010010011100010110000101111110011101001011101100110111110000101001100011110100110011011101001" + "111010010010000100110000110110100000100110001001101100100010111001110001000001001110111011011001001" + "111010011011100001001101000100001111010111101000101100101111110011011101100111101011111011011001101" + "111010111010011100011011100101101000000111001000101000100010110001111101100111110010010011011011101" + "111010110011000011011101110100010100001000001001101000101110011110110001010001100011000011011011001" + "111010100011100001001100100100101111001000001011101000111001100111001001101000011110110011011010001" + "000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010" + "001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001" + "000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010" + "000101001100100100110111101010001101100010101111010101000100100100011101001110010110011011011001010" + }, + /* 57*/ { BARCODE_DBAR_EXP_CC, -1, 2, "[01]12345678901231", "[91]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[92]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[93]1234", 0, 34, 134, 1, "Example with CC-B 4 cols, 32 rows", + "00111011010010000001110010110110011111101100101011101100100100101111000001001000100001111011011101001000000000000000000000000000000000" + "00111010010010110111100111000111101111010100001001101100110000110010100001111100101011111011011001001000000000000000000000000000000000" + "00111010011011101100111100110111010001100001001000101100100101111101100001111110100101110011011001101000000000000000000000000000000000" + "00111010111010001011000111110101110010000110001000101000100111100000100101011000101110000011011011101000000000000000000000000000000000" + "00111010110010010111000111000110010000100110001001101000100010110000011001000100001000001011011011001000000000000000000000000000000000" + "00111010100011111000110001010110111001111101001011101000110100001111011001100110111100010011011010001000000000000000000000000000000000" + "00110010100011110101111100110100010100011110001011001000100110001100111101011011101111100011010010001000000000000000000000000000000000" + "00110010110011101010001110000101110001111011001011001100111101111001000101110011000100011011010110001000000000000000000000000000000000" + "00110010111011111101001001110111001101110010001011000100100110011111000101010111100001000011010111001000000000000000000000000000000000" + "00110010011011011101000111000101100011001111001011000110100011001000111001011111000011010011010111101000000000000000000000000000000000" + "00110011011011011100110100000100001101110110001010000110100101111101111101110111101110011011010011101000000000000000000000000000000000" + "00111011011011000110111101000110000100001110101010001110100011100101111101010111110011000011010011001000000000000000000000000000000000" + "00111001011010111000001101110100001111011011001010001100101100011101111101100111110001001011010001001000000000000000000000000000000000" + "00110001011011010010011000000110011100001101001010011100110001101100001101011100111100110011010001101000000000000000000000000000000000" + "00110001010011111011001100110111001011100110001010011000111000001001100101101000011100010011010000101000000000000000000000000000000000" + "00110011010010001000001011110100011010000011101010111000111111010011001001111101001110001011011000101000000000000000000000000000000000" + "00110111010010001001110111000101100000110010001010110000111011010000011001101101101100000011001000101000000000000000000000000000000000" + "00110110010011101000011010000111001001101000001010010000110011100111110101111001000110011011101000101000000000000000000000000000000000" + "00110110011011100100111110100111100100111101001011010000111011100101111001100101111110001011101100101000000000000000000000000000000000" + "00110110111011011110111001000111010110111100001001010000100011000111001101110110101100000011001100101000000000000000000000000000000000" + "00110110110011011000011110010100010001111101101001011000101001111000010001001100011111010011011100101000000000000000000000000000000000" + "00110110100010001100110111100101111110111000101001011100100110010111000001101011001111110011011110101000000000000000000000000000000000" + "00110100100010100000100001000101011111011111001011011100111011100010100001100100110011100011001110101000000000000000000000000000000000" + "00110101100011111000011010010100100111100000101011011110111001001100000101011000111110010011101110101000000000000000000000000000000000" + "00110101110010000111100001010100011000100011101011001110111101011111011001011110001000010011100110101000000000000000000000000000000000" + "00110101111011110110100011100101001111011110001001001110100100001000010001100100111001111011110110101000000000000000000000000000000000" + "00110100111011111010010001100111000101101000001001101110110011000111101001111100011010001011110010101000000000000000000000000000000000" + "00110100110011110100011110100101011101111110001000101110100111011101111001011110010100000011100010101000000000000000000000000000000000" + "00110100010011101101011000000100001100011010001000100110111110111010111001100001100010001011000010101000000000000000000000000000000000" + "00110100011011100010011001000111000010011000101000110110101110110011111101011001001111110011000110101000000000000000000000000000000000" + "00110100001011011101000111000100001110100110001000010110100011000010111001000010110011111011000100101000000000000000000000000000000000" + "00110110001010001110111101100111000110101100001000010010111001010011100001110101011100000011100100101000000000000000000000000000000000" + "00001011100111110001000000001010010011000000101001100011100100111011010000101010000111000011110101001101011110000010010100000010100000" + "01010100011000001110111111110000101100111111010110011100011011000100101111000000111000111100001010110010100001111101100011111100001010" + }, + /* 58*/ { BARCODE_DBAR_EXPSTK_CC, -1, 2, "[01]12345678901231", "[91]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[92]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[93]1234567890123456789012345678901234567890123456789012", 0, 44, 102, 1, "Example with CC-B 4 cols, 38 rows", + "001100010010100000011100101101100111111011001010001011001001001011110000010010001000011110110100111010" + "001110010010101101111001110001111011110101000010001010001100001100101000011111001010111110110100110010" + "001111010010111011001111001101110100011000010010011010001001011111011000011111101001011100110100010010" + "001111010110100010110001111101011100100001100010111010001001111000001001010110001011100000110100011010" + "001111010100100101110001110001100100001001100010110010001000101100000110010001000010000010110100001010" + "001110010100111110001100010101101110011111010010110011001101000011110110011001101111000100110110001010" + "001110110100111101011111001101000101000111100010110001001001100011001111010110111011111000110010001010" + "001110100100111010100011100001011100011110110010110001101111011110010001011100110001000110111010001010" + "001110100110111111010010011101110011011100100010100001101001100111110001010101111000010000111011001010" + "001110101110110111010001110001011000110011110010100011101000110010001110010111110000110100110011001010" + "001110101100110111001101000001000011011101100010100011001001011111011111011101111011100110110111001010" + "001110101000110001101111010001100001000011101010100111001000111001011111010101111100110000110111101010" + "001100101000101110000011011101000011110110110010100110001011000111011111011001111100010010110011101010" + "001100101100110100100110000001100111000011010010101110001100011011000011010111001111001100111011101010" + "001100101110111110110011001101110010111001100010101100001110000010011001011010000111000100111001101010" + "001100100110100010000010111101000110100000111010100100001111110100110010011111010011100010111101101010" + "001100110110100010011101110001011000001100100010110100001110110100000110011011011011000000111100101010" + "001110110110111010000110100001110010011010000010010100001100111001111101011110010001100110111000101010" + "001110010110100110110111100001100010010111110010010110001110110111111010010011110001101100110000101010" + "001100010110110001100100000101101101100110000010010111001101001000011000011000010001101110110001101010" + "001100010100111100001000100101110010000001101010110111001111011011000010011101000001101000110001001010" + "001100110100100001000010111101101100110011111010110111101010110111110000010010111001111110111001001010" + "001101110100100001001100001101000011011010000010110011101001100111001100010010001101100000111101001010" + "001101100100111010111011000001111110111001010010010011101111100100010011011100000010011010111101011010" + "001101100110110001011111100101100100111111001010011011101000100010011110011010000010111110111101010010" + "001101101110100011000011010001101111011100010010001011101010011000110000010110001111011100111001010010" + "001101101100111000110111010001101111100101111010001001101110111001111001011110101000010000111011010010" + "001101101000100011010111000001000010010111100010001101101101101100111110011100101001111110111010010010" + "001101001000100001100011001001000100001000010010000101101110100100111000010001000011000110111010011010" + "001101011000111010000110001001010000011110100010000100101111100111011001011111101111011010111010111010" + "001101011100100101100001111101000000110101110010000110101000001010111100011111100101100100111010110010" + "001101011110110111011000100001101001110001111010001110101100101001100000011100110000100110111010100010" + "001101001110111100100011001101110010110010000010001100101101001111100111011110001010100000110010100010" + "001101001100100111001110111101101111110011001010001000101011110010000100010010010011110000110010110010" + "001101000100100100000100001001101110110010000010011000101111011001000111011100010001001110110010111010" + "001101000110111100001101100101000100000111101010011100101111001010010000011110011000110100110010011010" + "001101000010101011011111000001000010100011110010011110101100111110100001010001101000111000110011011010" + "001101100010111000100100011101001110011110110010111110101100011000010010011011100110000100111011011010" + "000001101110011110010000000010100100001100110001001000111001001110110100001010100001110000111101010000" + "010110010001100001101111111100001011110011001110110111000110110001001011110000001110001111000010101101" + "000001101110011110010000000010100100001100110001001000111001001110110100001010100001110000111101010000" + "000001010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010000" + "000000101111000001001010000001010010111100111110110000000000000000000000000000000000000000000000000000" + "001001010000111110110001111110000101000011000001001010000000000000000000000000000000000000000000000000" + }, + /* 59*/ { BARCODE_UPCA_CC, -1, 2, "12345678901", "[91]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[92]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[93]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[94]123456789012345678901234567890123456789012345678901234567", 0, 48, 99, 1, "Example with CC-B 4 cols, 44 rows", "110010001011101111101110100100000100001000101011000010111110110100111101110110010000110011010001001" "111010001011100101100100000111000110111010001011100010110001110111110101110100011100011011010001101" "111011001011001100100011110100101000011110001011100110101100010111000001111101001110100011010000101" @@ -995,7 +1221,7 @@ static void test_examples(int index, int generate, int debug) { "000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010" "000101001100100100110111101010001101100010101111010101000100100100011101001110010110011011011001010" }, - /* 53*/ { BARCODE_GS1_128_CC, -1, 3, "[01]12345678901231", "[91]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[92]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[93]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[94]12345678901234567890123456789012345678901234567890123456789012345678901234567", 0, 32, 154, "Example with CC-C 5 cols, 30 rows", + /* 60*/ { BARCODE_GS1_128_CC, -1, 3, "[01]12345678901231", "[91]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[92]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[93]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[94]12345678901234567890123456789012345678901234567890123456789012345678901234567", 0, 32, 154, 1, "Example with CC-C 5 cols, 30 rows", "1111111101010100010101000001000000101000001000001001110111110111010010000010000100010111110110100111101110110010000110011110101001111000111111101000101001" "1111111101010100011111010100000110111001011001000001110001101110100011000111011111010111010001110001101110110011110011011111010100001100111111101000101001" "1111111101010100011101010011111100100101000011110001011000101110000011111010011101000100010110001111101011100100001100011111101011010000111111101000101001" @@ -1029,7 +1255,7 @@ static void test_examples(int index, int generate, int debug) { "0000000001011000110000101000100110010011010011000110111010011100011101001001111010110010000100101001100011001001110010100001000101110010001001110001010000" "0000000110100111001111010111011001101100101100111001000101100011100010110110000101001101111011010110011100110110001101011110111010001101110110001110101100" }, - /* 54*/ { BARCODE_GS1_128_CC, -1, 3, "[01]12345678901231", "[91]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[92]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[93]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[94]12345678901234567890123456789012345678901234567890123456789012345678901234567890", 0, 28, 171, "Example with CC-C 6 cols, 25 rows", + /* 61*/ { BARCODE_GS1_128_CC, -1, 3, "[01]12345678901231", "[91]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[92]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[93]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[94]12345678901234567890123456789012345678901234567890123456789012345678901234567890", 0, 28, 171, 1, "Example with CC-C 6 cols, 25 rows", "111111110101010001101010000110000011010000001001100111011111011101001000001000010001011111011010011110111011001000011001011011110011100011111010100111110111111101000101001" "111111110101010001111010100000100011100011011101000110001110111110101110100011100011011101100111100110111010001100001001001011111011000011110101000010000111111101000101001" "111111110101010001010100011110000011111010011101000100010110001111101011100100001100010011110000010010101100010111000001011010011100000010101000001111000111111101000101001" @@ -1059,7 +1285,7 @@ static void test_examples(int index, int generate, int debug) { "000000000101100011000010100010011001001101001100011011101001110001110100100111101011001000010010100110001100100111001010000100010111001000100111000101000000000000000000000" "000000011010011100111101011101100110110010110011100100010110001110001011011000010100110111101101011001110011011000110101111011101000110111011000111010110000000000000000000" }, - /* 55*/ { BARCODE_GS1_128_CC, -1, 3, "[01]12345678901231", "[91]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[92]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[93]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[94]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[95]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[96]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[97]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[98]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[99]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[91]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[92]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[93]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[94]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[95]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[96]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[97]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[98]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[99]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[91]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[92]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[93]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[94]1234567890123456789012345678901234567890", 0, 32, 528, "Example with CC-C 27 cols, 30 rows", + /* 62*/ { BARCODE_GS1_128_CC, -1, 3, "[01]12345678901231", "[91]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[92]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[93]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[94]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[95]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[96]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[97]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[98]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[99]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[91]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[92]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[93]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[94]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[95]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[96]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[97]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[98]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[99]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[91]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[92]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[93]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[94]1234567890123456789012345678901234567890", 0, 32, 528, 1, "Example with CC-C 27 cols, 30 rows", "111111110101010001010100000100000010000100001000010111011111011101001000001000010001011111011010011110111011001000011001011011110011100011110111101010000110000110010100001111100101011111010001011000110000101000001100011001100100010000110011010011110111110101100011000010001100110110110000011111011110010110110010001000011001001011100011100011001000010011000100010110000011001000100001000001011011110011101000100001001000010001111101101001111010111001110010000111101001001111001001000010010000011101011100111110111111101000101001" "111111110101010001111010110011000010010000111101000101000001111010001111110101000111011100110011101000101111010111100001111000100110110011111101001001110111001101110010001001100111110001010101111000010000111100100011011001011010011111100011110011011010000100111011111101001111100110110011010001110100111110111010000111011001001110100111110011000110111101000110000100001110101000111001011111010101111100110000111110001010110001110000001011001011111011010000100100000100011110101101011100000100011111010100001100111111101000101001" "111111110101010001111110101110011010001111011101110110001110100111001100011000101111011110111010111110110010001001111101110011111001011010110100000111000100010000010111101000110100000111011111101001100100111110100111000101011100010001100011101110101111000110010010001111101001001000001111011101101011111000101100000110111101000111101000010011011101000011100100110110111100001100010010111110011101101111110100100111100011011001000111001000011011001001101111110111010111111011001110011110010111011111101011000100111111101000101001" @@ -1093,7 +1319,7 @@ static void test_examples(int index, int generate, int debug) { "000000000101100011000010100010011001001101001100011011101001110001110100100111101011001000010010100110001100100111001010000100010111001000100111000101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" "000000011010011100111101011101100110110010110011100100010110001110001011011000010100110111101101011001110011011000110101111011101000110111011000111010110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" }, - /* 56*/ { BARCODE_GS1_128_CC, -1, 3, "[01]12345678901231", "[91]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[92]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[93]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[94]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[95]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[96]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[97]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[98]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[99]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[91]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[92]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[93]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[94]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[95]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[96]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[97]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[98]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[99]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[91]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[92]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[93]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[94]123456789012345678901234567890123456789012345678901234567890123" "456789012345678901234567890[95]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[96]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[97]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[98]123456789012345678901234567890123456789012345", 0, 32, 579, "Example with CC-C 30 cols, 30 rows (max)", + /* 63*/ { BARCODE_GS1_128_CC, -1, 3, "[01]12345678901231", "[91]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[92]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[93]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[94]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[95]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[96]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[97]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[98]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[99]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[91]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[92]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[93]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[94]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[95]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[96]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[97]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[98]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[99]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[91]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[92]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[93]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[94]123456789012345678901234567890123456789012345678901234567890123" "456789012345678901234567890[95]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[96]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[97]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[98]123456789012345678901234567890123456789012345", 0, 32, 579, 1, "Example with CC-C 30 cols, 30 rows (max)", "111111110101010001010100000100000010001110111000100111011111011101001100011100011010011111011010011110111011001000011001011011110011100011110111101010000110000110010100001111100101011111010001011000110000101000001100011001100100010000110011010011110111110101100011000010001100110110110000011111011110010110110010001000011001001011100011100011001000010011000100010110000011001000100001000001011011110011101000100001001000010001111101101001111010111001110010000111101001001111001001000010010000011100110111011110101101100010000001110101000111000010101111011110000111111101000101001" "111111110101010001111101011011100011100110011101000101111010111100001111000100110110011111101001001110111001101110010001001100111110001010101111000010000111100100011011001011010011111100011110011011010000100111011111101001111100110110011010001110100111110111010000111011001001110100111110011000110111101000110000100001110101000111001011111010101111100110000111110001010110001110000001011001011111011010000100100000100011110101101011100000100010111100010111100100010000111101001001101111110110011111011001100110111001011100110001110000010011001011111010100001100111111101000101001" "111111110101010001010111000111111010110100000111000100010000010111101000110100000111011111101001100100111110100111000101011100010001100011101110101111000110010010001111101001001000001111011101101011111000101100000110111101000111101000010011011101000011100100110110111100001100010010111110011101101111110100100111100011011001000111001000011011001001101111110111010111111011001110011110010111010011110001100110101110000010110001011000001001110010110110000111100100001000010111101101100110011111010101101111100000100101110011111101000011001000111011111101011001000111111101000101001" @@ -1127,7 +1353,7 @@ static void test_examples(int index, int generate, int debug) { "000000000101100011000010100010011001001101001100011011101001110001110100100111101011001000010010100110001100100111001010000100010111001000100111000101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" "000000011010011100111101011101100110110010110011100100010110001110001011011000010100110111101101011001110011011000110101111011101000110111011000111010110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" }, - /* 57*/ { BARCODE_GS1_128_CC, -1, 3, "[01]12345678901231", "[91]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[92]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[93]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[94]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[95]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[96]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[97]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[98]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[99]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[91]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[92]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[93]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[94]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[95]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[96]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEF", 0, 32, 579, "Example with CC-C 30 cols, 30 rows (max)", + /* 64*/ { BARCODE_GS1_128_CC, -1, 3, "[01]12345678901231", "[91]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[92]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[93]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[94]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[95]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[96]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[97]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[98]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[99]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[91]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[92]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[93]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[94]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[95]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[96]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEF", 0, 32, 579, 1, "Example with CC-C 30 cols, 30 rows (max)", "111111110101010001010100000100000010001110111000100111011111011101001100011100011010011111011010011110110100100110000001001100110100000011001100100100000100011000001101001011001100001000010001100001100010100001011000001101110111101101000010000010100001000100100001100110001011000111000011010011000001100010111011001000011001110110100000110010001010000001000100011000110000101100110000100001011110110101110000111011001000110001100100010110000011101100101100000100101110111000001100001011001110011000010000100110110010000100110001110011101000010010101111011110000111111101000101001" "111111110101010001111101011011100011010001110000100111010001100010001010011111101110011111011001100110111010000011010001111010001000100011111101110110110111100110110010001111001011000011011110001000100010101110011011111101111110011010011011110000101000010111100100100001001110100111101110010001000111100100111101011101110001110101111000111011111101100101100100010011110100001110001000110010011111100010101110101101111100001001111001010000100011110101100110000111010000111011001111101100010100011000100011110110111111011010001101111101100000101011111010100001100111111101000101001" "111111110101010001010111000111111010010111011111100100001101000011101111110110011101011101011111000100110110001001111001001110011001110010011000011011110111001111100101101110110001011111010010010111100000110001101011110001101110101110000010010110001111100101001011110000001101000100111110011100110100111110111010111110000101101110011001111011100100011111010110111111001100101010010011110000011101011111010000110011000101111001001001100011111010001110110001110111001110101111001110111111010010010000011010011100110111000101110001100111000101110011111101011001000111111101000101001" @@ -1161,7 +1387,42 @@ static void test_examples(int index, int generate, int debug) { "000000000101100011000010100010011001001101001100011011101001110001110100100111101011001000010010100110001100100111001010000100010111001000100111000101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" "000000011010011100111101011101100110110010110011100100010110001110001011011000010100110111101101011001110011011000110101111011101000110111011000111010110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" }, - /* 58*/ { BARCODE_EANX_CC, -1, 1, "123456789012+12", "[91]123456789012345678901", 0, 8, 126, "Example of EAN-13 with 2-digit addon, CC-A 4 cols, 4 rows", + /* 65*/ { BARCODE_GS1_128_CC, -1, 3, "[01]12345678901231[90]123", "[20]12", 0, 5, 205, 1, "Example with min CC-C input and smallest linear input to bump rows (2 to 3), CC-C 8 cols, 3 rows", + "1111111101010100011101010111000000111010110011110001110111110111010010000010000100010111010011011110001001100111101110010000110111001100111000101101111001000101110111000011101010001110000111111101000101001" + "1111111101010100011110101000010000111010111011000001111110111001010011111001000100110111000000100110101100100111000001011111010001101110110101110001000001111010100001000011111010101100000111111101000101001" + "1111111101010100011101010001111110100010100011110001111101011100001011000011001011110100101001111000001011111011010000011101111110010100110111100010001101011001001110000010101000011110000111111101000101001" + "0000000001011000110000101000100110010011010011000110111010011100011101001001111010110010000100101001100011001001110010010000100101001100011010000100010011010001100010100001001000100010011100010100000000000" + "0000000110100111001111010111011001101100101100111001000101100011100010110110000101001101111011010110011100110110001101101111011010110011100101111011101100101110011101011110110111011101100011101011000000000" + }, + /* 66*/ { BARCODE_GS1_128_CC, -1, 3, "[01]12345678901231[90]123456789012345678901234567890[91]1234567890123456789012345678901234567890123456789012345678901234", "[20]12", 0, 5, 702, 1, "Example with max linear input and min CC-C input, CC-C 30 cols, 3 rows (bumped up from 1)", + "111111110101010001110101011100000010100010000010000111011111011101001000001000010001011101001101111000100110011110111001000011011100110011100010110111100100010111011100001010111000111000010000101100000110100100000010010001100001100010100011011000111001110110010011101111001000101111011110010100001110001110100011000011010001101111011100010010100110001100000101100011110111001111011110101000010000010001101100100011011001000001110101101111000010001100011100110111011010110000001110111010000100011000010110001110110100001000011001000010010000001010101111011110000111111101000101001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "111111110101010001111010100001000011110011011000100111100000100010101110010001100001011101011101100000111111011100101001111100100010011011100000010011010110010011100000101111001010000001010110011111001000111111010001011101110001100011101011111000110010100110101111101110001110010011110111011100011011101000110111110010111101110111001111001011110101101100000110011101111100101101000011100100011011000011110010100010001111101101010011110000100010011000111110100111100110110001001111000001000101011100100011000010111010111011000001111110111001010011111010101100000111111101000101001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "111111110101010001010111000111111011011101011100000110001111101000101100010111111001011001001111110010100010001001111001101000001011111011100011110101110110111110011001101101001000111110010011010011100000101111101100000101000000110010111010000110110111100110101101111110001011111000111011010110100001110000101110000100110001101111000010011010100110001111100110101100111111001001010011110000011110101111001000110101000111110001000110001001110010100011001111100100000111001001101000110011011110010011010000111000110111111001101001110101111101000010101000011110000111111101000101001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "000000000101100011000010100010011001001101001100011011101001110001110100100111101011001000010010100110001100100111001001000010010100110001101110100111000111010010011110101100100001001010011000110111010011100011101001001111010110010000100101001100011011101001110001110100100111101011001000010010000101000100001001001010011000110111010011100011101001001111010110010000100101001100011011101001110001110100100111101011001000010010100110001101110100111000111010010011110101100100001001010011000110111010011100011101001001111010110010000100101001100011011101001110001110100100111101011001000010010100110001101110100111000111010010011110101100100001001010011000110111010011101000010001001100110010011100010100" + "000000011010011100111101011101100110110010110011100100010110001110001011011000010100110111101101011001110011011000110110111101101011001110010001011000111000101101100001010011011110110101100111001000101100011100010110110000101001101111011010110011100100010110001110001011011000010100110111101101111010111011110110110101100111001000101100011100010110110000101001101111011010110011100100010110001110001011011000010100110111101101011001110010001011000111000101101100001010011011110110101100111001000101100011100010110110000101001101111011010110011100100010110001110001011011000010100110111101101011001110010001011000111000101101100001010011011110110101100111001000101100010111101110110011001101100011101011" + }, + /* 67*/ { BARCODE_GS1_128_CC, -1, 3, "[01]12345678901231[90]123456789012345678901234567890[91]1234567890123456789012345678901234567890123456789012345678901234", "[20]01[90]123456789012345678901234567890[91]123456789012", 0, 5, 702, 1, "Example with max linear input and medium CC-C input, CC-C 30 cols, 3 rows (bumped up from 1 (before last digit) than 2)", + "111111110101010001110101011100000010100010000010000111011111011101001000001000010001011101001101111000111000101000111001100100011101111010001011000001100101100000110000101101101100110000011010010000110000110000100011011101001110011101000011110111011011100111101100010011101111001001011110011101110001000010111000101001110001011000001100010011010010011000000110011100001101001100011011000011011101110001010000110100001000001101010011000110000010110001111011100111101111010100001000001000110110010001101100100000111010110111100001000110001110011010101111011110000111111101000101001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "111111110101010001111010100001000011010000111001000110110000111100101000100011111011010100111100001000100110001111101001111001101100010011110000010001010111001000110000101110101110110000011111101110010100111110010001001101110000001001101011001001110000010111100101000000101011001111100100011111101000101110111000110001110101111100011001010011010111110111000111001001111011101110001101110100011011111001011110111011100111100101111010110110000011001110111110010110100001110010001101100001111001010001000111110110101001111000010001001100011111010011111010101100000111111101000101001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "111111110101010001010111000111111010001100110111100101111110111000101001100101110000010101110011111100101111000010000101101110101110000011000111110100010110001011111100101100100111111001010001000100111100110100000101111101110001111010111011011111001100110110100100011111001001101001110000010111110110000010100000011001011101000011011011110010101000011110000101001100011111001101011001111110010010100111100000111111010011010001000110101110000011101111100100110110100011011111101100111110100001011001111100001010100001010011110001101011111100010010101000011110000111111101000101001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "000000000101100011000010100010011001001101001100011011101001110001110100100111101011001000010010100110001100100111001001000010010100110001101110100111000111010010011110101100100001001010011000110111010011100011101001001111010110010000100101001100011011101001110001110100100111101011001000010010000101000100001001001010011000110111010011100011101001001111010110010000100101001100011011101001110001110100100111101011001000010010100110001101110100111000111010010011110101100100001001010011000110111010011100011101001001111010110010000100101001100011011101001110001110100100111101011001000010010100110001101110100111000111010010011110101100100001001010011000110111010011101000010001001100110010011100010100" + "000000011010011100111101011101100110110010110011100100010110001110001011011000010100110111101101011001110011011000110110111101101011001110010001011000111000101101100001010011011110110101100111001000101100011100010110110000101001101111011010110011100100010110001110001011011000010100110111101101111010111011110110110101100111001000101100011100010110110000101001101111011010110011100100010110001110001011011000010100110111101101011001110010001011000111000101101100001010011011110110101100111001000101100011100010110110000101001101111011010110011100100010110001110001011011000010100110111101101011001110010001011000111000101101100001010011011110110101100111001000101100010111101110110011001101100011101011" + }, + /* 68*/ { BARCODE_GS1_128_CC, -1, 3, "[01]12345678901231[90]123456789012345678901234567890[91]1234567890123456789012345678901234567890123456789012345678901234", "[20]01[90]123456789012345678901234567890[91]1234567890123", 0, 5, 702, 1, "Example with max linear input and medium CC-C input, CC-C 30 cols, 3 rows (bumped up from 2)", + "111111110101010001110101011100000010100010000010000111011111011101001000001000010001011101001101111000111000101000111001100100011101111010001011000001100101100000110000101101101100110000011010010000110000110000100011011101001110011101000011110111011011100111101100010011101111001001011110011101110001000010111000101001110001011000001100010011010010011000000110011100001101001100011011000011010111001111001100110100000100110001010011000110000010110001111011100111101111010100001000001000110110010001101100100000111010110111100001000110001110011010101111011110000111111101000101001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "111111110101010001111010100001000011010000111001000110110000111100101000100011111011010100111100001000100110001111101001111001101100010011110000010001010111001000110000101110101110110000011111101110010100111110010001001101110000001001101011001001110000010111100101000000101011001111100100011111101000101110111000110001110101111100011001010011010111110111000111001001111011101110001101110100011011111001011110111011100111100101111010110110000011001110111110010110100001110010001101100001111001010001000111110110101001111000010001001100011111010011111010101100000111111101000101001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "111111110101010001010111000111111010001100110111100101111110111000101001100101110000010101110011111100101111000010000101101110101110000011000111110100010110001011111100101100100111111001010001000100111100110100000101111101110001111010111011011111001100110110100100011111001001101001110000010111110110000010100000011001011101000011011011110010101000011110000101001100011111001101011001111110010010100111100000111011110001011101101111000001011010111100000100010110100100011111001011101000011000010001101011100000101111110001110101011110110011000010101000011110000111111101000101001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "000000000101100011000010100010011001001101001100011011101001110001110100100111101011001000010010100110001100100111001001000010010100110001101110100111000111010010011110101100100001001010011000110111010011100011101001001111010110010000100101001100011011101001110001110100100111101011001000010010000101000100001001001010011000110111010011100011101001001111010110010000100101001100011011101001110001110100100111101011001000010010100110001101110100111000111010010011110101100100001001010011000110111010011100011101001001111010110010000100101001100011011101001110001110100100111101011001000010010100110001101110100111000111010010011110101100100001001010011000110111010011101000010001001100110010011100010100" + "000000011010011100111101011101100110110010110011100100010110001110001011011000010100110111101101011001110011011000110110111101101011001110010001011000111000101101100001010011011110110101100111001000101100011100010110110000101001101111011010110011100100010110001110001011011000010100110111101101111010111011110110110101100111001000101100011100010110110000101001101111011010110011100100010110001110001011011000010100110111101101011001110010001011000111000101101100001010011011110110101100111001000101100011100010110110000101001101111011010110011100100010110001110001011011000010100110111101101011001110010001011000111000101101100001010011011110110101100111001000101100010111101110110011001101100011101011" + }, + /* 69*/ { BARCODE_GS1_128_CC, -1, 3, "[90]1234567890123456789012345678", "[20]01", 0, 5, 239, 1, "Example with linear input length triggering difference between new (BWIPP) 52 and old 53 adjustment", + "11111111010101000111010101110000001101011101111000011101111101110100100000100001000101110100110111100010110000011001000110001000110111001010000100001000010010111100111100101011100011100001000010110000011010101000001000000111111101000101001" + "11111111010101000111101010000100001111100100010011011100000010011010110010011100000101111001010000001010110011111001000111111010001011101110001100011101011111000110010100110101110001000001111010100001000011111010101100000111111101000101001" + "11111111010101000110101000011111001010011000111110011010110011111100110111110010001001100001111010110010111111011110110110110001011110001110010111110010011110101111100110101110011000011101100110100001111010101000011110000111111101000101001" + "00000000010110001100001010001001000010010100110001101110100111000111010010011110101100100001001010011000110111010011100011101001001111010110010000100101001100011011101001110001110100100111101011010000100010010000100100111000101000000000000" + "00000001101001110011110101110110111101101011001110010001011000111000101101100001010011011110110101100111001000101100011100010110110000101001101111011010110011100100010110001110001011011000010100101111011101101111011011000111010110000000000" + }, + /* 70*/ { BARCODE_EANX_CC, -1, 1, "123456789012+12", "[91]123456789012345678901", 0, 8, 126, 1, "Example of EAN-13 with 2-digit addon, CC-A 4 cols, 4 rows", "110100100011110011010011100101110111000100001001000110101110111001000001100000100110111011101100101000000000000000000000000000" "110101100011101011001000000110011110101111101001000010110010111101100001100100111000001011001100101000000000000000000000000000" "110101110011101011111010000111111001101110101011000010111110101111001101001101001110000011011100101000000000000000000000000000" @@ -1171,7 +1432,7 @@ static void test_examples(int index, int generate, int debug) { "000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000" "000101001001101111010011101011000100001010010001010101001000111010011100101100110110110010010001010000000101100110010100100110" }, - /* 59*/ { BARCODE_EANX_CC, -1, 1, "123456789012+54321", "[91]1234567890", 0, 7, 153, "Example of EAN-13 with 5-digit addon, CC-B 4 cols, 3 rows", + /* 71*/ { BARCODE_EANX_CC, -1, 1, "123456789012+54321", "[91]1234567890", 0, 7, 153, 1, "Example of EAN-13 with 5-digit addon, CC-B 4 cols, 3 rows", "110110111011110011010011100101110111000100001001110100101110111001000001100000100110111011011000101000000000000000000000000000000000000000000000000000000" "110110110011111101010011100111110001001001101001100100110100011100010001001011111100111011001000101000000000000000000000000000000000000000000000000000000" "110110100010100000101111000111001111001011101001100110110011111010010001001111101101000011101000101000000000000000000000000000000000000000000000000000000" @@ -1180,7 +1441,7 @@ static void test_examples(int index, int generate, int debug) { "000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000" "000101001001101111010011101011000100001010010001010101001000111010011100101100110110110010010001010000000101101110010101000110101000010100100110100110010" }, - /* 60*/ { BARCODE_UPCA_CC, -1, 1, "12345678901+12", "[91]123456789", 0, 7, 128, "Example of UPC-A with 2-digit addon, CC-A 4 cols, 3 rows", + /* 72*/ { BARCODE_UPCA_CC, -1, 1, "12345678901+12", "[91]123456789", 0, 7, 128, 1, "Example of UPC-A with 2-digit addon, CC-A 4 cols, 3 rows", "11011011101111001101001110010111011100010000100111010010111011100100000110000010011011101101100010100000000000000000000000000000" "11011011001110011100111101011000010001110010100110010011101011001000000100101111110011101100100010100000000000000000000000000000" "11011010001000011110010001010111101000000100100110011010001110000101100110111000100011101110100010100000000000000000000000000000" @@ -1189,7 +1450,7 @@ static void test_examples(int index, int generate, int debug) { "00010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000" "00010100110010010011011110101000110110001010111101010100010010010001110100111001011001101101100101000000000101100110010100100110" }, - /* 61*/ { BARCODE_UPCA_CC, -1, 2, "12345678901+12121", "[91]1234567890123", 0, 8, 155, "Example of UPC-A with 5-digit addon, CC-B 4 cols, 4 rows", + /* 73*/ { BARCODE_UPCA_CC, -1, 2, "12345678901+12121", "[91]1234567890123", 0, 8, 155, 1, "Example of UPC-A with 5-digit addon, CC-B 4 cols, 4 rows", "11010011101000111110100111011011111101011100100111011011010000111101100110010111000010001101001000100000000000000000000000000000000000000000000000000000000" "11010011001011001001110000010111110110000010100111010011011111100110100111010011111001001101011000100000000000000000000000000000000000000000000000000000000" "11010001001110011010000110011001000001011000100110010010011110111101000111000111010001001101011100100000000000000000000000000000000000000000000000000000000" @@ -1199,7 +1460,7 @@ static void test_examples(int index, int generate, int debug) { "00010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000" "00010100110010010011011110101000110110001010111101010100010010010001110100111001011001101101100101000000000101100110010100100110101100110100110110100110010" }, - /* 62*/ { BARCODE_UPCE_CC, -1, 1, "0654321+89", "[91]1", 0, 9, 82, "Example of UPC-E with 2-digit addon, CC-A 2 cols, 5 rows", + /* 74*/ { BARCODE_UPCE_CC, -1, 1, "0654321+89", "[91]1", 0, 9, 82, 1, "Example of UPC-E with 2-digit addon, CC-A 2 cols, 5 rows", "1101100110111101110101111101010001000111100011110101001000000000000000000000000000" "1101101110111011000010001101110010101110000011100101001000000000000000000000000000" "1101101100110001011111011101111010000100100011101101001000000000000000000000000000" @@ -1210,7 +1471,7 @@ static void test_examples(int index, int generate, int debug) { "0001000000000000000000000000000000000000000000000000010000000000000000000000000000" "0001010000101011000100111010111101001101100110010101010000000101101101110100101110" }, - /* 63*/ { BARCODE_UPCE_CC, -1, 2, "1876543+56789", "[91]12345", 0, 12, 109, "Example of UPC-E with 5-digit addon, CC-B 2 cols, 8 rows", + /* 75*/ { BARCODE_UPCE_CC, -1, 2, "1876543+56789", "[91]12345", 0, 12, 109, 1, "Example of UPC-E with 5-digit addon, CC-B 2 cols, 8 rows", "1100100010111011111011101001000001000010001011001000101000000000000000000000000000000000000000000000000000000" "1110100010110100001111011001100101110000100011101000101000000000000000000000000000000000000000000000000000000" "1110110010111011001001111101000111100100001011101100101000000000000000000000000000000000000000000000000000000" @@ -1224,7 +1485,7 @@ static void test_examples(int index, int generate, int debug) { "0001000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000" "0001010110111001000100001010110001010001101000010101010000000101101100010101011110100100010101101110100101110" }, - /* 64*/ { BARCODE_EANX_CC, -1, 1, "9876543+65", "[91]1234567", 0, 8, 99, "Example of EAN-8 with 2-digit addon, CC-A 3 cols, 4 rows", + /* 76*/ { BARCODE_EANX_CC, -1, 1, "9876543+65", "[91]1234567", 0, 8, 99, 1, "Example of EAN-8 with 2-digit addon, CC-A 3 cols, 4 rows", "100100011111001101010011000111000101110011001100010111010000011101001101000000000000000000000000000" "110111111001101001010111000110111100101100001111000100111101011101011101000000000000000000000000000" "100001011000001101010110000101011111011111001110100100001110011101011001000000000000000000000000000" @@ -1234,7 +1495,7 @@ static void test_examples(int index, int generate, int debug) { "000010000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000" "000010100010110110111011101101011110101010011101011100100001011100101010000000101101011110101110010" }, - /* 65*/ { BARCODE_EANX_CC, -1, 2, "9876543+74083", "[91]123456789012345678", 0, 12, 136, "Example of EAN-8 with 5-digit addon, CC-B 3 cols, 8 rows", + /* 77*/ { BARCODE_EANX_CC, -1, 2, "9876543+74083", "[91]123456789012345678", 0, 12, 136, 1, "Example of EAN-8 with 5-digit addon, CC-B 3 cols, 8 rows", "1100111010111011111011101001000010110100000100001000101111101101001111011001110101000000000000000000000000000000000000000000000000000000" "1110111010110010111000010001000010010111001011001000001110001101110100011101110101000000000000000000000000000000000000000000000000000000" "1110011010110111111001101001000011010101000101111000001100100110111111011100110101000000000000000000000000000000000000000000000000000000" @@ -1248,7 +1509,7 @@ static void test_examples(int index, int generate, int debug) { "0000000000000010000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000" "0000000000000010100010110110111011101101011110101010011101011100100001011100101010000000101101110110100111010100011010101101110101000010" }, - /* 66*/ { BARCODE_EANX_CC, -1, 1, "1234567890128+65", "[91]1234567", 0, 7, 126, "Example of EAN-13 + CHK with 2-digit addon, CC-A 3 cols, 4 rows", + /* 78*/ { BARCODE_EANX_CC, -1, 1, "1234567890128+65", "[91]1234567", 0, 7, 126, 1, "Example of EAN-13 + CHK with 2-digit addon, CC-A 3 cols, 4 rows", "110110111011110011010011100101110111000100001001110100101110111001000001100001100101000011011000101000000000000000000000000000" "110110110010011001011111100111110110010000101001100100111111011100101001101011100010000011001000101000000000000000000000000000" "110110100011010111111001000110111010000111001001100110100010010011110001010000110111110011101000101000000000000000000000000000" @@ -1290,10 +1551,10 @@ static void test_examples(int index, int generate, int debug) { assert_equal(ret, data[i].ret, "i:%d ZBarcode_Encode ret %d != %d (%s)\n", i, ret, data[i].ret, symbol->errtxt); if (generate) { - printf(" /*%3d*/ { %s, %s, %d, \"%s\", \"%s\", %s, %d, %d, \"%s\",\n", + printf(" /*%3d*/ { %s, %s, %d, \"%s\", \"%s\", %s, %d, %d, %d, \"%s\",\n", i, testUtilBarcodeName(symbol->symbology), testUtilInputModeName(data[i].input_mode), data[i].option_1, testUtilEscape(data[i].data, length, escaped, sizeof(escaped)), testUtilEscape(data[i].composite, composite_length, esc_composite, sizeof(esc_composite)), - testUtilErrorName(ret), symbol->rows, symbol->width, data[i].comment); + testUtilErrorName(ret), symbol->rows, symbol->width, data[i].bwipp_cmp, data[i].comment); testUtilModulesPrint(symbol, " ", "\n"); printf(" },\n"); } else { @@ -1306,12 +1567,16 @@ static void test_examples(int index, int generate, int debug) { assert_zero(ret, "i:%d %s testUtilModulesCmp ret %d != 0 width %d row %d (%s)\n", i, testUtilBarcodeName(data[i].symbology), ret, width, row, data[i].data); if (do_bwipp && testUtilCanBwipp(i, symbol, data[i].option_1, -1, -1, debug)) { - ret = testUtilBwipp(i, symbol, data[i].option_1, -1, -1, data[i].composite, composite_length, symbol->primary, bwipp_buf, sizeof(bwipp_buf)); - assert_zero(ret, "i:%d %s testUtilBwipp ret %d != 0\n", i, testUtilBarcodeName(symbol->symbology), ret); + if (!data[i].bwipp_cmp) { + if (debug & ZINT_DEBUG_TEST_PRINT) printf("i:%d %s not BWIPP compatible (%s)\n", i, testUtilBarcodeName(symbol->symbology), data[i].comment); + } else { + ret = testUtilBwipp(i, symbol, data[i].option_1, -1, -1, data[i].composite, composite_length, symbol->primary, bwipp_buf, sizeof(bwipp_buf)); + assert_zero(ret, "i:%d %s testUtilBwipp ret %d != 0\n", i, testUtilBarcodeName(symbol->symbology), ret); - ret = testUtilBwippCmp(symbol, bwipp_msg, bwipp_buf, data[i].expected); - assert_zero(ret, "i:%d %s testUtilBwippCmp %d != 0 %s\n actual: %s\nexpected: %s\n", - i, testUtilBarcodeName(symbol->symbology), ret, bwipp_msg, bwipp_buf, data[i].expected); + ret = testUtilBwippCmp(symbol, bwipp_msg, bwipp_buf, data[i].expected); + assert_zero(ret, "i:%d %s testUtilBwippCmp %d != 0 %s\n actual: %s\nexpected: %s\n", + i, testUtilBarcodeName(symbol->symbology), ret, bwipp_msg, bwipp_buf, data[i].expected); + } } } @@ -2356,7 +2621,18 @@ static void test_encodation_11(int index, int generate, int debug) { "0001000000000000000000000000000000000000000000000000010" "0001010010011011110101000110111001000010100100010101010" }, - /* 4*/ { BARCODE_UPCE_CC, 1, "1234567", "[90]A1234", 0, 9, 55, "Mode '11', even-numbered numeric [90]", + /* 4*/ { BARCODE_UPCE_CC, 1, "1234567", "[90]30B", 0, 9, 55, "Mode '11', 2 digit <= 30 table3 letter prefix only", + "1101100110110111110000100101011100100110000011110101001" + "1101101110101111011111001101000011000111011011100101001" + "1101101100110100111000000101110000100011010011101101001" + "1101101000111101011111001101110001111110101011101001001" + "1101001000111100110010011101000100000010100011101001101" + "0001000000000000000000000000000000000000000000000000010" + "0010000000000000000000000000000000000000000000000000001" + "0001000000000000000000000000000000000000000000000000010" + "0001010010011011110101000110111001000010100100010101010" + }, + /* 5*/ { BARCODE_UPCE_CC, 1, "1234567", "[90]A1234", 0, 9, 55, "Mode '11', even-numbered numeric [90]", "1101100110100111100000101001110110010011111011110101001" "1101101110110001000100110001101000100110000011100101001" "1101101100111100010111011101100011011110100011101101001" @@ -2367,7 +2643,7 @@ static void test_encodation_11(int index, int generate, int debug) { "0001000000000000000000000000000000000000000000000000010" "0001010010011011110101000110111001000010100100010101010" }, - /* 5*/ { BARCODE_UPCE_CC, 1, "1234567", "[90]A12345", 0, 9, 55, "Mode '11', odd-numbered numeric [90]", + /* 6*/ { BARCODE_UPCE_CC, 1, "1234567", "[90]A12345", 0, 9, 55, "Mode '11', odd-numbered numeric [90]", "1101100110100111100000101001110110010011111011110101001" "1101101110110001000100110001110100010011100011100101001" "1101101100101000011110010001110100011010000011101101001" @@ -2378,7 +2654,7 @@ static void test_encodation_11(int index, int generate, int debug) { "0001000000000000000000000000000000000000000000000000010" "0001010010011011110101000110111001000010100100010101010" }, - /* 6*/ { BARCODE_UPCE_CC, 1, "1234567", "[90]1ABC4", 0, 9, 55, "Mode '11', alpha [90]", + /* 7*/ { BARCODE_UPCE_CC, 1, "1234567", "[90]1ABC4", 0, 9, 55, "Mode '11', alpha [90]", "1101100110100111110110010001001110011000111011110101001" "1101101110110110011000011001010011000011000011100101001" "1101101100101000111100000101110000100110010011101101001" @@ -2389,7 +2665,7 @@ static void test_encodation_11(int index, int generate, int debug) { "0001000000000000000000000000000000000000000000000000010" "0001010010011011110101000110111001000010100100010101010" }, - /* 7*/ { BARCODE_UPCE_CC, 1, "1234567", "[90]1AB34", 0, 9, 55, "Mode '11', alphanumeric [90] (letters <= numbers)", + /* 8*/ { BARCODE_UPCE_CC, 1, "1234567", "[90]1AB34", 0, 9, 55, "Mode '11', alphanumeric [90] (letters <= numbers)", "1101100110100011100110111001011111101110010011110101001" "1101101110110000110100010001100101100011100011100101001" "1101101100110010000011100101101100011110001011101101001" @@ -2400,7 +2676,7 @@ static void test_encodation_11(int index, int generate, int debug) { "0001000000000000000000000000000000000000000000000000010" "0001010010011011110101000110111001000010100100010101010" }, - /* 8*/ { BARCODE_UPCE_CC, 1, "1234567", "[90]1AB.D", 0, 9, 55, "Mode '11', alphanumeric [90]", + /* 9*/ { BARCODE_UPCE_CC, 1, "1234567", "[90]1AB.D", 0, 9, 55, "Mode '11', alphanumeric [90]", "1101100110100011100110111001011111101110010011110101001" "1101101110110000110100010001000010100000100011100101001" "1101101100101110100001111101110111000111101011101101001" @@ -2411,7 +2687,7 @@ static void test_encodation_11(int index, int generate, int debug) { "0001000000000000000000000000000000000000000000000000010" "0001010010011011110101000110111001000010100100010101010" }, - /* 9*/ { BARCODE_UPCE_CC, 1, "1234567", "[90]1AB+D", 0, 9, 55, "Mode '11', ISO-646 [90]", + /*10*/ { BARCODE_UPCE_CC, 1, "1234567", "[90]1AB+D", 0, 9, 55, "Mode '11', ISO-646 [90]", "1101100110100011100110111001011111101110010011110101001" "1101101110110000110100010001101000111001111011100101001" "1101101100111110110100001001100101111101110011101101001" @@ -2422,7 +2698,7 @@ static void test_encodation_11(int index, int generate, int debug) { "0001000000000000000000000000000000000000000000000000010" "0001010010011011110101000110111001000010100100010101010" }, - /*10*/ { BARCODE_UPCE_CC, 1, "1234567", "[90]1A+BD", 0, 9, 55, "Mode '11', immediate ISO-646 [90]", + /*11*/ { BARCODE_UPCE_CC, 1, "1234567", "[90]1A+BD", 0, 9, 55, "Mode '11', immediate ISO-646 [90]", "1101100110100011100110111001011111101110010011110101001" "1101101110101111000111100101111011101011000011100101001" "1101101100101000011110010001001111001011110011101101001" @@ -2433,8 +2709,9 @@ static void test_encodation_11(int index, int generate, int debug) { "0001000000000000000000000000000000000000000000000000010" "0001010010011011110101000110111001000010100100010101010" }, - /*11*/ { BARCODE_UPCE_CC, 1, "1234567", "[90]1AB#D", ZINT_ERROR_INVALID_DATA, 0, 0, "Mode '11', invalid char [90]", "" }, - /*12*/ { BARCODE_UPCE_CC, 1, "1234567", "[90]A12345[21]AB", 0, 10, 55, "Mode '11', numeric [90], with [21]", + /*12*/ { BARCODE_UPCE_CC, 1, "1234567", "[90]1AB#D", ZINT_ERROR_INVALID_DATA, 0, 0, "Mode '11', invalid char [90]", "" }, + /*13*/ { BARCODE_UPCE_CC, 2, "1234567", "[90]1AB#D", ZINT_ERROR_INVALID_DATA, 0, 0, "Mode '11', invalid char [90]", "" }, + /*14*/ { BARCODE_UPCE_CC, 1, "1234567", "[90]A12345[21]AB", 0, 10, 55, "Mode '11', numeric [90], with [21]", "1100100010111000111011011001001100011000010011100101101" "1110100010101000001111001001111100110100010011000101101" "1110110010101110010000110001100111000100111011000101001" @@ -2446,7 +2723,7 @@ static void test_encodation_11(int index, int generate, int debug) { "0001000000000000000000000000000000000000000000000000010" "0001010010011011110101000110111001000010100100010101010" }, - /*13*/ { BARCODE_UPCE_CC, 1, "1234567", "[90]1ABC4[21]AB12", 0, 10, 55, "Mode '11', alpha [90], with [21]", + /*15*/ { BARCODE_UPCE_CC, 1, "1234567", "[90]1ABC4[21]AB12", 0, 10, 55, "Mode '11', alpha [90], with [21]", "1100100010100011100111101101011000111000110011100101101" "1110100010111010000110001001110100011000001011000101101" "1110110010100001100100011101110111111010100011000101001" @@ -2458,7 +2735,7 @@ static void test_encodation_11(int index, int generate, int debug) { "0001000000000000000000000000000000000000000000000000010" "0001010010011011110101000110111001000010100100010101010" }, - /*14*/ { BARCODE_UPCE_CC, 1, "1234567", "[90]1AB.D[21]AB", 0, 10, 55, "Mode '11', alphanumeric [90], with [21]", + /*16*/ { BARCODE_UPCE_CC, 1, "1234567", "[90]1AB.D[21]AB", 0, 10, 55, "Mode '11', alphanumeric [90], with [21]", "1100100010110011100011000101110001110110011011100101101" "1110100010111101101100100001110010011100011011000101101" "1110110010110000110101111001011100110001110011000101001" @@ -2470,7 +2747,7 @@ static void test_encodation_11(int index, int generate, int debug) { "0001000000000000000000000000000000000000000000000000010" "0001010010011011110101000110111001000010100100010101010" }, - /*15*/ { BARCODE_UPCE_CC, 1, "1234567", "[90]1AB+D[21]A.", 0, 10, 55, "Mode '11', ISO-646 [90], with [21]; **NOT SAME** as tec-it.com, which probably includes '21' in 5 alphanumeric count", + /*17*/ { BARCODE_UPCE_CC, 1, "1234567", "[90]1AB+D[21]A.", 0, 10, 55, "Mode '11', ISO-646 [90], with [21]; **NOT SAME** as tec-it.com, which probably includes '21' in 5 alphanumeric count", "1100100010110011100011000101110001110110011011100101101" "1110100010111101101100100001110101110001100011000101101" "1110110010100000111000101101110010111110001011000101001" @@ -2482,7 +2759,7 @@ static void test_encodation_11(int index, int generate, int debug) { "0001000000000000000000000000000000000000000000000000010" "0001010010011011110101000110111001000010100100010101010" }, - /*16*/ { BARCODE_UPCE_CC, 1, "1234567", "[90]1A+BD[21]A12", 0, 11, 55, "Mode '11', immediate ISO-646 [90], with [21]; tec-it.com same, probably since have 5 alphanumerics with or without '21'", + /*18*/ { BARCODE_UPCE_CC, 1, "1234567", "[90]1A+BD[21]A12", 0, 11, 55, "Mode '11', immediate ISO-646 [90], with [21]; tec-it.com same, probably since have 5 alphanumerics with or without '21'", "1110110110111100011000110101100111101011111011100010101" "1110010110100100001101111101000100010111100011000010101" "1100010110100010100000100001110011101000001011000110101" @@ -2495,7 +2772,7 @@ static void test_encodation_11(int index, int generate, int debug) { "0001000000000000000000000000000000000000000000000000010" "0001010010011011110101000110111001000010100100010101010" }, - /*17*/ { BARCODE_UPCE_CC, 1, "1234567", "[90]A12[8004]12", 0, 9, 55, "Mode '11', numeric [90], with [8004]", + /*19*/ { BARCODE_UPCE_CC, 1, "1234567", "[90]A12[8004]12", 0, 9, 55, "Mode '11', numeric [90], with [8004]", "1101100110110001111010011001000001101101111011110101001" "1101101110110100100000110001011100111101100011100101001" "1101101100110100000111010001100100001110001011101101001" @@ -2506,7 +2783,7 @@ static void test_encodation_11(int index, int generate, int debug) { "0001000000000000000000000000000000000000000000000000010" "0001010010011011110101000110111001000010100100010101010" }, - /*18*/ { BARCODE_UPCE_CC, 1, "1234567", "[90]AB[8004]12", 0, 9, 55, "Mode '11', alpha [90], with [8004]", + /*20*/ { BARCODE_UPCE_CC, 1, "1234567", "[90]AB[8004]12", 0, 9, 55, "Mode '11', alpha [90], with [8004]", "1101100110100111110011001001100101111110010011110101001" "1101101110101000100000100001011000111001100011100101001" "1101101100100111110100011101111000100001001011101101001" @@ -2517,7 +2794,7 @@ static void test_encodation_11(int index, int generate, int debug) { "0001000000000000000000000000000000000000000000000000010" "0001010010011011110101000110111001000010100100010101010" }, - /*19*/ { BARCODE_UPCE_CC, 1, "1234567", "[90]A.[8004]12", 0, 9, 55, "Mode '11', alphanumeric [90], with [8004]", + /*21*/ { BARCODE_UPCE_CC, 1, "1234567", "[90]A.[8004]12", 0, 9, 55, "Mode '11', alphanumeric [90], with [8004]", "1101100110110111110011001101111110100110001011110101001" "1101101110100010001001000001100101100011100011100101001" "1101101100100001011110001001100001100111101011101101001" @@ -2528,7 +2805,7 @@ static void test_encodation_11(int index, int generate, int debug) { "0001000000000000000000000000000000000000000000000000010" "0001010010011011110101000110111001000010100100010101010" }, - /*20*/ { BARCODE_UPCE_CC, 1, "1234567", "[90]A+[8004]12", 0, 9, 55, "Mode '11', ISO-646 [90], with [8004]", + /*22*/ { BARCODE_UPCE_CC, 1, "1234567", "[90]A+[8004]12", 0, 9, 55, "Mode '11', ISO-646 [90], with [8004]", "1101100110110111110011001101111110100110001011110101001" "1101101110111100110010111001001110001110100011100101001" "1101101100111001011100011001101001110000010011101101001" @@ -2539,7 +2816,7 @@ static void test_encodation_11(int index, int generate, int debug) { "0001000000000000000000000000000000000000000000000000010" "0001010010011011110101000110111001000010100100010101010" }, - /*21*/ { BARCODE_UPCE_CC, 1, "1234567", "[90]12A1[10]12", 0, 9, 55, "Mode '11', numeric [90], other data", + /*23*/ { BARCODE_UPCE_CC, 1, "1234567", "[90]12A1[10]12", 0, 9, 55, "Mode '11', numeric [90], other data", "1101100110100111100000101001011001101111000011110101001" "1101101110111000101101111001110110100001100011100101001" "1101101100111100001010001001110000100110010011101101001" @@ -2550,7 +2827,7 @@ static void test_encodation_11(int index, int generate, int debug) { "0001000000000000000000000000000000000000000000000000010" "0001010010011011110101000110111001000010100100010101010" }, - /*22*/ { BARCODE_UPCE_CC, 1, "1234567", "[90]123AB[10]12", 0, 9, 55, "Mode '11', alpha [90], other data", + /*24*/ { BARCODE_UPCE_CC, 1, "1234567", "[90]123AB[10]12", 0, 9, 55, "Mode '11', alpha [90], other data", "1101100110100111110110010001100011101000111011110101001" "1101101110111001110100000101100110001100110011100101001" "1101101100110110011111001101111010100001000011101101001" @@ -2561,7 +2838,7 @@ static void test_encodation_11(int index, int generate, int debug) { "0001000000000000000000000000000000000000000000000000010" "0001010010011011110101000110111001000010100100010101010" }, - /*23*/ { BARCODE_UPCE_CC, 1, "1234567", "[90]123AB.D[10]12", 0, 10, 55, "Mode '11', alphanumeric [90], other data", + /*25*/ { BARCODE_UPCE_CC, 1, "1234567", "[90]123AB.D[10]12", 0, 10, 55, "Mode '11', alphanumeric [90], other data", "1100100010100011000110000101110110000100110011100101101" "1110100010101101111100100001011111001001110011000101101" "1110110010101111100110001001101111001000110011000101001" @@ -2573,7 +2850,7 @@ static void test_encodation_11(int index, int generate, int debug) { "0001000000000000000000000000000000000000000000000000010" "0001010010011011110101000110111001000010100100010101010" }, - /*24*/ { BARCODE_UPCE_CC, 1, "1234567", "[90]123AB+D[10]12", 0, 10, 55, "Mode '11', ISO-646 [90], other data", + /*26*/ { BARCODE_UPCE_CC, 1, "1234567", "[90]123AB+D[10]12", 0, 10, 55, "Mode '11', ISO-646 [90], other data", "1100100010100011000110000101110110000100110011100101101" "1110100010101101111100100001100100111000001011000101101" "1110110010100010110011111001000110100111000011000101001" @@ -2585,7 +2862,7 @@ static void test_encodation_11(int index, int generate, int debug) { "0001000000000000000000000000000000000000000000000000010" "0001010010011011110101000110111001000010100100010101010" }, - /*25*/ { BARCODE_UPCE_CC, 1, "1234567", "[90]A123[21]AB[91]A123", 0, 12, 55, "Mode '11', numeric [90], with [21], other data", + /*27*/ { BARCODE_UPCE_CC, 1, "1234567", "[90]A123[21]AB[91]A123", 0, 12, 55, "Mode '11', numeric [90], with [21], other data", "1110111010100001100111110101100010011110110011011011101" "1110011010111111011011100101001110110011100011011011001" "1111011010101000111011100001001011110011110011011010001" @@ -2599,7 +2876,7 @@ static void test_encodation_11(int index, int generate, int debug) { "0001000000000000000000000000000000000000000000000000010" "0001010010011011110101000110111001000010100100010101010" }, - /*26*/ { BARCODE_UPCE_CC, 1, "1234567", "[90]AB[8004]12[10]12", 0, 10, 55, "Mode '11', alpha [90], with [8004], other data", + /*28*/ { BARCODE_UPCE_CC, 1, "1234567", "[90]AB[8004]12[10]12", 0, 10, 55, "Mode '11', alpha [90], with [8004], other data", "1100100010110000110000101001101111011101000011100101101" "1110100010110100011110001101001110001011111011000101101" "1110110010100011100110111001011101101110000011000101001" @@ -2611,7 +2888,7 @@ static void test_encodation_11(int index, int generate, int debug) { "0001000000000000000000000000000000000000000000000000010" "0001010010011011110101000110111001000010100100010101010" }, - /*27*/ { BARCODE_UPCE_CC, 1, "1234567", "[90]12A1234B", 0, 9, 55, "Mode '11', alphanumeric [90], with first 4 digits (choosing NUMERIC would be better, not implemented)", + /*29*/ { BARCODE_UPCE_CC, 1, "1234567", "[90]12A1234B", 0, 9, 55, "Mode '11', alphanumeric [90], with first 4 digits (choosing NUMERIC would be better, not implemented)", "1101100110100011100110111001001111100011001011110101001" "1101101110100101100000110001111010110011111011100101001" "1101101100111100000101001001111110111101101011101101001" @@ -2622,6 +2899,28 @@ static void test_encodation_11(int index, int generate, int debug) { "0001000000000000000000000000000000000000000000000000010" "0001010010011011110101000110111001000010100100010101010" }, + /*30*/ { BARCODE_UPCE_CC, 1, "1234567", "[90]1.A", 0, 9, 55, "Fails Mode '11' test2, starting with digits then uppercase", + "1101100110111001101111110101111010000111101011110101001" + "1101101110110010001100111001000001000010001011100101001" + "1101101100100010111100100001110011011101000011101101001" + "1101101000111001010111111001011100000100011011101001001" + "1101001000111010001011100001101100001001000011101001101" + "0001000000000000000000000000000000000000000000000000010" + "0010000000000000000000000000000000000000000000000000001" + "0001000000000000000000000000000000000000000000000000010" + "0001010010011011110101000110111001000010100100010101010" + }, + /*31*/ { BARCODE_UPCE_CC, 1, "1234567", "[90]01A", 0, 9, 55, "Fails Mode '11' test3, no leading zeroes", + "1101100110111001101111110101000101011110000011110101001" + "1101101110101101111011100001000100111011100011100101001" + "1101101100111110111011101101111000001010010011101101001" + "1101101000101111001101100001111011001111101011101001001" + "1101001000111011111011100101110001010111000011101001101" + "0001000000000000000000000000000000000000000000000000010" + "0010000000000000000000000000000000000000000000000000001" + "0001000000000000000000000000000000000000000000000000010" + "0001010010011011110101000110111001000010100100010101010" + }, }; int data_size = ARRAY_SIZE(data); int i, length, composite_length, ret; @@ -2637,6 +2936,7 @@ static void test_encodation_11(int index, int generate, int debug) { for (i = 0; i < data_size; i++) { if (index != -1 && i != index) continue; + if ((debug & ZINT_DEBUG_TEST_PRINT) && !(debug & ZINT_DEBUG_TEST_LESS_NOISY)) printf("i:%d\n", i); symbol = ZBarcode_Create(); assert_nonnull(symbol, "Symbol not created\n"); @@ -2982,11 +3282,13 @@ static void test_hrt(int index, int debug) { testFinish(); } +// See also `test_gs1nocheck_mode()` in "test.gs1.c" for GS1_128-based and DBAR_EXP-based symbologies static void test_input(int index, int debug) { struct item { int symbology; int input_mode; + int option_1; char *data; char *composite; @@ -2995,99 +3297,109 @@ static void test_input(int index, int debug) { }; // s/\/\*[ 0-9]*\*\//\=printf("\/*%3d*\/", line(".") - line("'<")) struct item data[] = { - /* 0*/ { BARCODE_EANX_CC, -1, "1234567", "[20]12", 0, "" }, // EAN-8 - /* 1*/ { BARCODE_EANX_CC, -1, "123456A", "[20]12", ZINT_ERROR_INVALID_DATA, "Error 284: Invalid character in data (digits and \"+\" only) in linear component" }, // EAN-8 - /* 2*/ { BARCODE_EANX_CC, GS1NOCHECK_MODE, "123456A", "[20]12", ZINT_ERROR_INVALID_DATA, "Error 284: Invalid character in data (digits and \"+\" only) in linear component" }, // Linear component still checked - /* 3*/ { BARCODE_EANX_CC, -1, "1234567", "[20]1A", ZINT_WARN_NONCOMPLIANT, "Warning 261: AI (20) position 2: Non-numeric character 'A' in 2D component" }, - /* 4*/ { BARCODE_EANX_CC, GS1NOCHECK_MODE, "1234567", "[20]1A", 0, "" }, - /* 5*/ { BARCODE_EANX_CC, -1, "1234567", "[02]12345678901234", ZINT_WARN_NONCOMPLIANT, "Warning 261: AI (02) position 14: Bad checksum '4', expected '1' in 2D component" }, - /* 6*/ { BARCODE_EANX_CC, GS1NOCHECK_MODE, "1234567", "[02]12345678901234", 0, "" }, - /* 7*/ { BARCODE_EANX_CC, -1, "12345671", "[20]12", 0, "" }, // EAN-13 for EANX_CC as length 8 only EAN-8 for EANX_CHK - /* 8*/ { BARCODE_EANX_CC, -1, "123456789012", "[20]12", 0, "" }, // EAN-13 - /* 9*/ { BARCODE_EANX_CC, -1, "1234567890128", "[20]12", 0, "" }, // EAN-13 - /* 10*/ { BARCODE_EANX_CC, -1, "1234567890123", "[20]12", ZINT_ERROR_INVALID_CHECK, "Error 275: Invalid check digit '3', expecting '8' in linear component" }, - /* 11*/ { BARCODE_EANX_CC, GS1NOCHECK_MODE, "1234567890123", "[20]12", ZINT_ERROR_INVALID_CHECK, "Error 275: Invalid check digit '3', expecting '8' in linear component" }, // Linear component still checked - /* 12*/ { BARCODE_EANX_CC, -1, "12345678901234", "[20]12", ZINT_ERROR_TOO_LONG, "Error 448: Input too long (13 character maximum) in linear component" }, - /* 13*/ { BARCODE_EANX_CC, GS1NOCHECK_MODE, "12345678901234", "[20]12", ZINT_ERROR_TOO_LONG, "Error 448: Input too long (13 character maximum) in linear component" }, - /* 14*/ { BARCODE_EANX_CC, -1, "123456789012A", "[20]12", ZINT_ERROR_INVALID_DATA, "Error 284: Invalid character in data (digits and \"+\" only) in linear component" }, - /* 15*/ { BARCODE_EANX_CC, GS1NOCHECK_MODE, "123456789012A", "[20]12", ZINT_ERROR_INVALID_DATA, "Error 284: Invalid character in data (digits and \"+\" only) in linear component" }, - /* 16*/ { BARCODE_EANX_CC, -1, "1234567890128", "[20]1A", ZINT_WARN_NONCOMPLIANT, "Warning 261: AI (20) position 2: Non-numeric character 'A' in 2D component" }, // AI (20) should be 2 nos. - /* 17*/ { BARCODE_EANX_CC, GS1NOCHECK_MODE, "1234567890128", "[20]1A", 0, "" }, - /* 18*/ { BARCODE_EANX_CC, -1, "1234567890128", "[02]12345678901234", ZINT_WARN_NONCOMPLIANT, "Warning 261: AI (02) position 14: Bad checksum '4', expected '1' in 2D component" }, - /* 19*/ { BARCODE_EANX_CC, GS1NOCHECK_MODE, "1234567890128", "[02]12345678901234", 0, "" }, - /* 20*/ { BARCODE_DBAR_OMN_CC, -1, "1234567890123", "[20]12", 0, "" }, - /* 21*/ { BARCODE_DBAR_OMN_CC, -1, "12345678901231", "[20]12", 0, "" }, - /* 22*/ { BARCODE_DBAR_OMN_CC, -1, "12345678901232", "[20]12", ZINT_ERROR_INVALID_CHECK, "Error 388: Invalid check digit '2', expecting '1' in linear component" }, - /* 23*/ { BARCODE_DBAR_OMN_CC, GS1NOCHECK_MODE, "12345678901232", "[20]12", ZINT_ERROR_INVALID_CHECK, "Error 388: Invalid check digit '2', expecting '1' in linear component" }, // Linear component still checked - /* 24*/ { BARCODE_DBAR_OMN_CC, -1, "123456789012312", "[20]12", ZINT_ERROR_TOO_LONG, "Error 380: Input too long (14 character maximum) in linear component" }, - /* 25*/ { BARCODE_DBAR_OMN_CC, GS1NOCHECK_MODE, "123456789012312", "[20]12", ZINT_ERROR_TOO_LONG, "Error 380: Input too long (14 character maximum) in linear component" }, - /* 26*/ { BARCODE_DBAR_OMN_CC, -1, "1234567890123A", "[20]12", ZINT_ERROR_INVALID_DATA, "Error 381: Invalid character in data (digits only) in linear component" }, - /* 27*/ { BARCODE_DBAR_OMN_CC, GS1NOCHECK_MODE, "1234567890123A", "[20]12", ZINT_ERROR_INVALID_DATA, "Error 381: Invalid character in data (digits only) in linear component" }, - /* 28*/ { BARCODE_DBAR_OMN_CC, -1, "12345678901231", "[20]1A", ZINT_WARN_NONCOMPLIANT, "Warning 261: AI (20) position 2: Non-numeric character 'A' in 2D component" }, // AI (20) should be 2 nos. - /* 29*/ { BARCODE_DBAR_OMN_CC, GS1NOCHECK_MODE, "12345678901231", "[20]1A", 0, "" }, - /* 30*/ { BARCODE_DBAR_OMN_CC, -1, "12345678901231", "[02]12345678901234", ZINT_WARN_NONCOMPLIANT, "Warning 261: AI (02) position 14: Bad checksum '4', expected '1' in 2D component" }, - /* 31*/ { BARCODE_DBAR_OMN_CC, GS1NOCHECK_MODE, "12345678901231", "[02]12345678901234", 0, "" }, - /* 32*/ { BARCODE_DBAR_LTD_CC, -1, "1234567890123", "[20]12", 0, "" }, - /* 33*/ { BARCODE_DBAR_LTD_CC, -1, "12345678901231", "[20]12", 0, "" }, - /* 34*/ { BARCODE_DBAR_LTD_CC, -1, "12345678901232", "[20]12", ZINT_ERROR_INVALID_CHECK, "Error 389: Invalid check digit '2', expecting '1' in linear component" }, - /* 35*/ { BARCODE_DBAR_LTD_CC, GS1NOCHECK_MODE, "12345678901232", "[20]12", ZINT_ERROR_INVALID_CHECK, "Error 389: Invalid check digit '2', expecting '1' in linear component" }, // Linear component still checked - /* 36*/ { BARCODE_DBAR_LTD_CC, -1, "123456789012345", "[20]12", ZINT_ERROR_TOO_LONG, "Error 382: Input too long (14 character maximum) in linear component" }, - /* 37*/ { BARCODE_DBAR_LTD_CC, GS1NOCHECK_MODE, "123456789012345", "[20]12", ZINT_ERROR_TOO_LONG, "Error 382: Input too long (14 character maximum) in linear component" }, - /* 38*/ { BARCODE_DBAR_LTD_CC, -1, "A1234567890123", "[20]12", ZINT_ERROR_INVALID_DATA, "Error 383: Invalid character in data (digits only) in linear component" }, - /* 39*/ { BARCODE_DBAR_LTD_CC, GS1NOCHECK_MODE, "A1234567890123", "[20]12", ZINT_ERROR_INVALID_DATA, "Error 383: Invalid character in data (digits only) in linear component" }, - /* 40*/ { BARCODE_DBAR_LTD_CC, -1, "12345678901231", "[20]1A", ZINT_WARN_NONCOMPLIANT, "Warning 261: AI (20) position 2: Non-numeric character 'A' in 2D component" }, // AI (20) should be 2 nos. - /* 41*/ { BARCODE_DBAR_LTD_CC, GS1NOCHECK_MODE, "12345678901231", "[20]1A", 0, "" }, - /* 42*/ { BARCODE_DBAR_LTD_CC, -1, "12345678901231", "[02]12345678901234", ZINT_WARN_NONCOMPLIANT, "Warning 261: AI (02) position 14: Bad checksum '4', expected '1' in 2D component" }, - /* 43*/ { BARCODE_DBAR_LTD_CC, GS1NOCHECK_MODE, "12345678901231", "[02]12345678901234", 0, "" }, - /* 44*/ { BARCODE_UPCA_CC, -1, "12345678901", "[20]12", 0, "" }, - /* 45*/ { BARCODE_UPCA_CC, -1, "123456789012", "[20]12", 0, "" }, - /* 46*/ { BARCODE_UPCA_CC, -1, "123456789013", "[20]12", ZINT_ERROR_INVALID_CHECK, "Error 270: Invalid check digit '3', expecting '2' in linear component" }, - /* 47*/ { BARCODE_UPCA_CC, GS1NOCHECK_MODE, "123456789013", "[20]12", ZINT_ERROR_INVALID_CHECK, "Error 270: Invalid check digit '3', expecting '2' in linear component" }, // Linear component still checked - /* 48*/ { BARCODE_UPCA_CC, -1, "1234567890123", "[20]12", ZINT_ERROR_TOO_LONG, "Error 289: Input wrong length (12 character maximum) in linear component" }, - /* 49*/ { BARCODE_UPCA_CC, GS1NOCHECK_MODE, "1234567890123", "[20]12", ZINT_ERROR_TOO_LONG, "Error 289: Input wrong length (12 character maximum) in linear component" }, - /* 50*/ { BARCODE_UPCA_CC, -1, "12345678901A", "[20]12", ZINT_ERROR_INVALID_DATA, "Error 284: Invalid character in data (digits and \"+\" only) in linear component" }, - /* 51*/ { BARCODE_UPCA_CC, GS1NOCHECK_MODE, "12345678901A", "[20]12", ZINT_ERROR_INVALID_DATA, "Error 284: Invalid character in data (digits and \"+\" only) in linear component" }, - /* 52*/ { BARCODE_UPCA_CC, -1, "123456789012", "[20]1A", ZINT_WARN_NONCOMPLIANT, "Warning 261: AI (20) position 2: Non-numeric character 'A' in 2D component" }, // AI (20) should be 2 nos. - /* 53*/ { BARCODE_UPCA_CC, GS1NOCHECK_MODE, "123456789012", "[20]1A", 0, "" }, - /* 54*/ { BARCODE_UPCA_CC, -1, "123456789012", "[02]12345678901234", ZINT_WARN_NONCOMPLIANT, "Warning 261: AI (02) position 14: Bad checksum '4', expected '1' in 2D component" }, - /* 55*/ { BARCODE_UPCA_CC, GS1NOCHECK_MODE, "123456789012", "[02]12345678901234", 0, "" }, - /* 56*/ { BARCODE_UPCE_CC, -1, "123456", "[20]12", 0, "" }, - /* 57*/ { BARCODE_UPCE_CC, -1, "1234567", "[20]12", 0, "" }, - /* 58*/ { BARCODE_UPCE_CC, -1, "12345670", "[20]12", 0, "" }, // Check digit can now be given for UPCE_CC, like UPCA_CC - /* 59*/ { BARCODE_UPCE_CC, -1, "12345671", "[20]12", ZINT_ERROR_INVALID_CHECK, "Error 274: Invalid check digit '1', expecting '0' in linear component" }, - /* 60*/ { BARCODE_UPCE_CC, GS1NOCHECK_MODE, "12345671", "[20]12", ZINT_ERROR_INVALID_CHECK, "Error 274: Invalid check digit '1', expecting '0' in linear component" }, // Linear component still checked - /* 61*/ { BARCODE_UPCE_CC, -1, "123456712", "[20]12", ZINT_ERROR_TOO_LONG, "Error 291: Input wrong length (8 character maximum) in linear component" }, - /* 62*/ { BARCODE_UPCE_CC, GS1NOCHECK_MODE, "123456712", "[20]12", ZINT_ERROR_TOO_LONG, "Error 291: Input wrong length (8 character maximum) in linear component" }, - /* 63*/ { BARCODE_UPCE_CC, -1, "1234567A", "[20]12", ZINT_ERROR_INVALID_DATA, "Error 284: Invalid character in data (digits and \"+\" only) in linear component" }, - /* 64*/ { BARCODE_UPCE_CC, GS1NOCHECK_MODE, "1234567A", "[20]12", ZINT_ERROR_INVALID_DATA, "Error 284: Invalid character in data (digits and \"+\" only) in linear component" }, - /* 65*/ { BARCODE_UPCE_CC, -1, "1234567", "[20]1A", ZINT_WARN_NONCOMPLIANT, "Warning 261: AI (20) position 2: Non-numeric character 'A' in 2D component" }, // AI (20) should be 2 nos. - /* 66*/ { BARCODE_UPCE_CC, GS1NOCHECK_MODE, "1234567", "[20]1A", 0, "" }, - /* 67*/ { BARCODE_UPCE_CC, -1, "1234567", "[02]12345678901234", ZINT_WARN_NONCOMPLIANT, "Warning 261: AI (02) position 14: Bad checksum '4', expected '1' in 2D component" }, - /* 68*/ { BARCODE_UPCE_CC, GS1NOCHECK_MODE, "1234567", "[02]12345678901234", 0, "" }, - /* 69*/ { BARCODE_DBAR_STK_CC, -1, "1234567890123", "[20]12", 0, "" }, - /* 70*/ { BARCODE_DBAR_STK_CC, -1, "12345678901231", "[20]12", 0, "" }, - /* 71*/ { BARCODE_DBAR_STK_CC, -1, "12345678901232", "[20]12", ZINT_ERROR_INVALID_CHECK, "Error 388: Invalid check digit '2', expecting '1' in linear component" }, - /* 72*/ { BARCODE_DBAR_STK_CC, GS1NOCHECK_MODE, "12345678901232", "[20]12", ZINT_ERROR_INVALID_CHECK, "Error 388: Invalid check digit '2', expecting '1' in linear component" }, // Linear component still checked - /* 73*/ { BARCODE_DBAR_STK_CC, -1, "123456789012323", "[20]12", ZINT_ERROR_TOO_LONG, "Error 380: Input too long (14 character maximum) in linear component" }, - /* 74*/ { BARCODE_DBAR_STK_CC, GS1NOCHECK_MODE, "123456789012323", "[20]12", ZINT_ERROR_TOO_LONG, "Error 380: Input too long (14 character maximum) in linear component" }, - /* 75*/ { BARCODE_DBAR_STK_CC, -1, "1234567890123A", "[20]12", ZINT_ERROR_INVALID_DATA, "Error 381: Invalid character in data (digits only) in linear component" }, - /* 76*/ { BARCODE_DBAR_STK_CC, GS1NOCHECK_MODE, "1234567890123A", "[20]12", ZINT_ERROR_INVALID_DATA, "Error 381: Invalid character in data (digits only) in linear component" }, - /* 77*/ { BARCODE_DBAR_STK_CC, -1, "12345678901231", "[20]1A", ZINT_WARN_NONCOMPLIANT, "Warning 261: AI (20) position 2: Non-numeric character 'A' in 2D component" }, // AI (20) should be 2 nos. - /* 78*/ { BARCODE_DBAR_STK_CC, GS1NOCHECK_MODE, "12345678901231", "[20]1A", 0, "" }, - /* 79*/ { BARCODE_DBAR_STK_CC, -1, "12345678901231", "[02]12345678901234", ZINT_WARN_NONCOMPLIANT, "Warning 261: AI (02) position 14: Bad checksum '4', expected '1' in 2D component" }, - /* 80*/ { BARCODE_DBAR_STK_CC, GS1NOCHECK_MODE, "12345678901231", "[02]12345678901234", 0, "" }, - /* 81*/ { BARCODE_DBAR_OMNSTK_CC, -1, "1234567890123", "[20]12", 0, "" }, - /* 82*/ { BARCODE_DBAR_OMNSTK_CC, -1, "12345678901231", "[20]12", 0, "" }, - /* 83*/ { BARCODE_DBAR_OMNSTK_CC, -1, "12345678901232", "[20]12", ZINT_ERROR_INVALID_CHECK, "Error 388: Invalid check digit '2', expecting '1' in linear component" }, - /* 84*/ { BARCODE_DBAR_OMNSTK_CC, GS1NOCHECK_MODE, "12345678901232", "[20]12", ZINT_ERROR_INVALID_CHECK, "Error 388: Invalid check digit '2', expecting '1' in linear component" }, // Linear component still checked - /* 85*/ { BARCODE_DBAR_OMNSTK_CC, -1, "123456789012312", "[20]12", ZINT_ERROR_TOO_LONG, "Error 380: Input too long (14 character maximum) in linear component" }, - /* 86*/ { BARCODE_DBAR_OMNSTK_CC, GS1NOCHECK_MODE, "123456789012312", "[20]12", ZINT_ERROR_TOO_LONG, "Error 380: Input too long (14 character maximum) in linear component" }, - /* 87*/ { BARCODE_DBAR_OMNSTK_CC, -1, "1234567890123A", "[20]12", ZINT_ERROR_INVALID_DATA, "Error 381: Invalid character in data (digits only) in linear component" }, - /* 88*/ { BARCODE_DBAR_OMNSTK_CC, GS1NOCHECK_MODE, "1234567890123A", "[20]12", ZINT_ERROR_INVALID_DATA, "Error 381: Invalid character in data (digits only) in linear component" }, - /* 89*/ { BARCODE_DBAR_OMNSTK_CC, -1, "12345678901231", "[20]1A", ZINT_WARN_NONCOMPLIANT, "Warning 261: AI (20) position 2: Non-numeric character 'A' in 2D component" }, // AI (20) should be 2 nos. - /* 90*/ { BARCODE_DBAR_OMNSTK_CC, GS1NOCHECK_MODE, "12345678901231", "[20]1A", 0, "" }, - /* 91*/ { BARCODE_DBAR_OMNSTK_CC, -1, "12345678901231", "[02]12345678901234", ZINT_WARN_NONCOMPLIANT, "Warning 261: AI (02) position 14: Bad checksum '4', expected '1' in 2D component" }, - /* 92*/ { BARCODE_DBAR_OMNSTK_CC, GS1NOCHECK_MODE, "12345678901231", "[02]12345678901234", 0, "" }, + /* 0*/ { BARCODE_EANX_CC, -1, -1, "1234567", "[20]12", 0, "" }, // EAN-8 + /* 1*/ { BARCODE_EANX_CC, -1, -1, "123456A", "[20]12", ZINT_ERROR_INVALID_DATA, "Error 284: Invalid character in data (digits and \"+\" only) in linear component" }, // EAN-8 + /* 2*/ { BARCODE_EANX_CC, GS1NOCHECK_MODE, -1, "123456A", "[20]12", ZINT_ERROR_INVALID_DATA, "Error 284: Invalid character in data (digits and \"+\" only) in linear component" }, // Linear component still checked + /* 3*/ { BARCODE_EANX_CC, -1, -1, "1234567", "[20]1A", ZINT_WARN_NONCOMPLIANT, "Warning 261: AI (20) position 2: Non-numeric character 'A' in 2D component" }, + /* 4*/ { BARCODE_EANX_CC, GS1NOCHECK_MODE, -1, "1234567", "[20]1A", 0, "" }, + /* 5*/ { BARCODE_EANX_CC, -1, -1, "1234567", "[02]12345678901234", ZINT_WARN_NONCOMPLIANT, "Warning 261: AI (02) position 14: Bad checksum '4', expected '1' in 2D component" }, + /* 6*/ { BARCODE_EANX_CC, GS1NOCHECK_MODE, -1, "1234567", "[02]12345678901234", 0, "" }, + /* 7*/ { BARCODE_EANX_CC, -1, -1, "12345671", "[20]12", 0, "" }, // EAN-13 for EANX_CC as length 8 only EAN-8 for EANX_CHK + /* 8*/ { BARCODE_EANX_CC, -1, -1, "123456789012", "[20]12", 0, "" }, // EAN-13 + /* 9*/ { BARCODE_EANX_CC, -1, -1, "1234567890128", "[20]12", 0, "" }, // EAN-13 + /* 10*/ { BARCODE_EANX_CC, -1, -1, "1234567890123", "[20]12", ZINT_ERROR_INVALID_CHECK, "Error 275: Invalid check digit '3', expecting '8' in linear component" }, + /* 11*/ { BARCODE_EANX_CC, GS1NOCHECK_MODE, -1, "1234567890123", "[20]12", ZINT_ERROR_INVALID_CHECK, "Error 275: Invalid check digit '3', expecting '8' in linear component" }, // Linear component still checked + /* 12*/ { BARCODE_EANX_CC, -1, -1, "12345678901234", "[20]12", ZINT_ERROR_TOO_LONG, "Error 448: Input too long (13 character maximum) in linear component" }, + /* 13*/ { BARCODE_EANX_CC, GS1NOCHECK_MODE, -1, "12345678901234", "[20]12", ZINT_ERROR_TOO_LONG, "Error 448: Input too long (13 character maximum) in linear component" }, + /* 14*/ { BARCODE_EANX_CC, -1, -1, "123456789012A", "[20]12", ZINT_ERROR_INVALID_DATA, "Error 284: Invalid character in data (digits and \"+\" only) in linear component" }, + /* 15*/ { BARCODE_EANX_CC, GS1NOCHECK_MODE, -1, "123456789012A", "[20]12", ZINT_ERROR_INVALID_DATA, "Error 284: Invalid character in data (digits and \"+\" only) in linear component" }, + /* 16*/ { BARCODE_EANX_CC, -1, -1, "1234567890128", "[20]1A", ZINT_WARN_NONCOMPLIANT, "Warning 261: AI (20) position 2: Non-numeric character 'A' in 2D component" }, // AI (20) should be 2 nos. + /* 17*/ { BARCODE_EANX_CC, GS1NOCHECK_MODE, -1, "1234567890128", "[20]1A", 0, "" }, + /* 18*/ { BARCODE_EANX_CC, -1, -1, "1234567890128", "[02]12345678901234", ZINT_WARN_NONCOMPLIANT, "Warning 261: AI (02) position 14: Bad checksum '4', expected '1' in 2D component" }, + /* 19*/ { BARCODE_EANX_CC, GS1NOCHECK_MODE, -1, "1234567890128", "[02]12345678901234", 0, "" }, + /* 20*/ { BARCODE_EANX_CC, -1, -1, "1234567890128", "[91]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[92]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[93]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[94]123456789012345678901234567890123456789012345678901234567", 0, "" }, // Max CC-B for EAN-13 + /* 21*/ { BARCODE_EANX_CC, -1, -1, "1234567890128", "[91]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[92]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[93]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[94]1234567890123456789012345678901234567890123456789012345678", ZINT_ERROR_TOO_LONG, "Error 444: Input too long for selected 2D component" }, + /* 22*/ { BARCODE_EANX_CC, -1, 3, "1234567890128", "[20]12", ZINT_ERROR_INVALID_OPTION, "Error 447: Invalid mode (CC-C only valid with GS1-128 linear component)" }, + /* 23*/ { BARCODE_EANX_CC, -1, -1, "123456789012345678901", "[20]12", ZINT_ERROR_TOO_LONG, "Error 449: Input wrong length in linear component" }, + /* 24*/ { BARCODE_DBAR_OMN_CC, -1, -1, "1234567890123", "[20]12", 0, "" }, + /* 25*/ { BARCODE_DBAR_OMN_CC, -1, -1, "12345678901231", "[20]12", 0, "" }, + /* 26*/ { BARCODE_DBAR_OMN_CC, -1, -1, "12345678901232", "[20]12", ZINT_ERROR_INVALID_CHECK, "Error 388: Invalid check digit '2', expecting '1' in linear component" }, + /* 27*/ { BARCODE_DBAR_OMN_CC, GS1NOCHECK_MODE, -1, "12345678901232", "[20]12", ZINT_ERROR_INVALID_CHECK, "Error 388: Invalid check digit '2', expecting '1' in linear component" }, // Linear component still checked + /* 28*/ { BARCODE_DBAR_OMN_CC, -1, -1, "123456789012312", "[20]12", ZINT_ERROR_TOO_LONG, "Error 380: Input too long (14 character maximum) in linear component" }, + /* 29*/ { BARCODE_DBAR_OMN_CC, GS1NOCHECK_MODE, -1, "123456789012312", "[20]12", ZINT_ERROR_TOO_LONG, "Error 380: Input too long (14 character maximum) in linear component" }, + /* 30*/ { BARCODE_DBAR_OMN_CC, -1, -1, "1234567890123A", "[20]12", ZINT_ERROR_INVALID_DATA, "Error 381: Invalid character in data (digits only) in linear component" }, + /* 31*/ { BARCODE_DBAR_OMN_CC, GS1NOCHECK_MODE, -1, "1234567890123A", "[20]12", ZINT_ERROR_INVALID_DATA, "Error 381: Invalid character in data (digits only) in linear component" }, + /* 32*/ { BARCODE_DBAR_OMN_CC, -1, -1, "12345678901231", "[20]1A", ZINT_WARN_NONCOMPLIANT, "Warning 261: AI (20) position 2: Non-numeric character 'A' in 2D component" }, // AI (20) should be 2 nos. + /* 33*/ { BARCODE_DBAR_OMN_CC, GS1NOCHECK_MODE, -1, "12345678901231", "[20]1A", 0, "" }, + /* 34*/ { BARCODE_DBAR_OMN_CC, -1, -1, "12345678901231", "[02]12345678901234", ZINT_WARN_NONCOMPLIANT, "Warning 261: AI (02) position 14: Bad checksum '4', expected '1' in 2D component" }, + /* 35*/ { BARCODE_DBAR_OMN_CC, GS1NOCHECK_MODE, -1, "12345678901231", "[02]12345678901234", 0, "" }, + /* 36*/ { BARCODE_DBAR_LTD_CC, -1, -1, "1234567890123", "[20]12", 0, "" }, + /* 37*/ { BARCODE_DBAR_LTD_CC, -1, -1, "12345678901231", "[20]12", 0, "" }, + /* 38*/ { BARCODE_DBAR_LTD_CC, -1, -1, "12345678901232", "[20]12", ZINT_ERROR_INVALID_CHECK, "Error 389: Invalid check digit '2', expecting '1' in linear component" }, + /* 39*/ { BARCODE_DBAR_LTD_CC, GS1NOCHECK_MODE, -1, "12345678901232", "[20]12", ZINT_ERROR_INVALID_CHECK, "Error 389: Invalid check digit '2', expecting '1' in linear component" }, // Linear component still checked + /* 40*/ { BARCODE_DBAR_LTD_CC, -1, -1, "123456789012345", "[20]12", ZINT_ERROR_TOO_LONG, "Error 382: Input too long (14 character maximum) in linear component" }, + /* 41*/ { BARCODE_DBAR_LTD_CC, GS1NOCHECK_MODE, -1, "123456789012345", "[20]12", ZINT_ERROR_TOO_LONG, "Error 382: Input too long (14 character maximum) in linear component" }, + /* 42*/ { BARCODE_DBAR_LTD_CC, -1, -1, "A1234567890123", "[20]12", ZINT_ERROR_INVALID_DATA, "Error 383: Invalid character in data (digits only) in linear component" }, + /* 43*/ { BARCODE_DBAR_LTD_CC, GS1NOCHECK_MODE, -1, "A1234567890123", "[20]12", ZINT_ERROR_INVALID_DATA, "Error 383: Invalid character in data (digits only) in linear component" }, + /* 44*/ { BARCODE_DBAR_LTD_CC, -1, -1, "12345678901231", "[20]1A", ZINT_WARN_NONCOMPLIANT, "Warning 261: AI (20) position 2: Non-numeric character 'A' in 2D component" }, // AI (20) should be 2 nos. + /* 45*/ { BARCODE_DBAR_LTD_CC, GS1NOCHECK_MODE, -1, "12345678901231", "[20]1A", 0, "" }, + /* 46*/ { BARCODE_DBAR_LTD_CC, -1, -1, "12345678901231", "[02]12345678901234", ZINT_WARN_NONCOMPLIANT, "Warning 261: AI (02) position 14: Bad checksum '4', expected '1' in 2D component" }, + /* 47*/ { BARCODE_DBAR_LTD_CC, GS1NOCHECK_MODE, -1, "12345678901231", "[02]12345678901234", 0, "" }, + /* 48*/ { BARCODE_UPCA_CC, -1, -1, "12345678901", "[20]12", 0, "" }, + /* 49*/ { BARCODE_UPCA_CC, -1, -1, "123456789012", "[20]12", 0, "" }, + /* 50*/ { BARCODE_UPCA_CC, -1, -1, "123456789013", "[20]12", ZINT_ERROR_INVALID_CHECK, "Error 270: Invalid check digit '3', expecting '2' in linear component" }, + /* 51*/ { BARCODE_UPCA_CC, GS1NOCHECK_MODE, -1, "123456789013", "[20]12", ZINT_ERROR_INVALID_CHECK, "Error 270: Invalid check digit '3', expecting '2' in linear component" }, // Linear component still checked + /* 52*/ { BARCODE_UPCA_CC, -1, -1, "1234567890123", "[20]12", ZINT_ERROR_TOO_LONG, "Error 289: Input wrong length (12 character maximum) in linear component" }, + /* 53*/ { BARCODE_UPCA_CC, GS1NOCHECK_MODE, -1, "1234567890123", "[20]12", ZINT_ERROR_TOO_LONG, "Error 289: Input wrong length (12 character maximum) in linear component" }, + /* 54*/ { BARCODE_UPCA_CC, -1, -1, "12345678901A", "[20]12", ZINT_ERROR_INVALID_DATA, "Error 284: Invalid character in data (digits and \"+\" only) in linear component" }, + /* 55*/ { BARCODE_UPCA_CC, GS1NOCHECK_MODE, -1, "12345678901A", "[20]12", ZINT_ERROR_INVALID_DATA, "Error 284: Invalid character in data (digits and \"+\" only) in linear component" }, + /* 56*/ { BARCODE_UPCA_CC, -1, -1, "123456789012", "[20]1A", ZINT_WARN_NONCOMPLIANT, "Warning 261: AI (20) position 2: Non-numeric character 'A' in 2D component" }, // AI (20) should be 2 nos. + /* 57*/ { BARCODE_UPCA_CC, GS1NOCHECK_MODE, -1, "123456789012", "[20]1A", 0, "" }, + /* 58*/ { BARCODE_UPCA_CC, -1, -1, "123456789012", "[02]12345678901234", ZINT_WARN_NONCOMPLIANT, "Warning 261: AI (02) position 14: Bad checksum '4', expected '1' in 2D component" }, + /* 59*/ { BARCODE_UPCA_CC, GS1NOCHECK_MODE, -1, "123456789012", "[02]12345678901234", 0, "" }, + /* 60*/ { BARCODE_UPCE_CC, -1, -1, "123456", "[20]12", 0, "" }, + /* 61*/ { BARCODE_UPCE_CC, -1, -1, "1234567", "[20]12", 0, "" }, + /* 62*/ { BARCODE_UPCE_CC, -1, -1, "12345670", "[20]12", 0, "" }, // Check digit can now be given for UPCE_CC, like UPCA_CC + /* 63*/ { BARCODE_UPCE_CC, -1, -1, "12345671", "[20]12", ZINT_ERROR_INVALID_CHECK, "Error 274: Invalid check digit '1', expecting '0' in linear component" }, + /* 64*/ { BARCODE_UPCE_CC, GS1NOCHECK_MODE, -1, "12345671", "[20]12", ZINT_ERROR_INVALID_CHECK, "Error 274: Invalid check digit '1', expecting '0' in linear component" }, // Linear component still checked + /* 65*/ { BARCODE_UPCE_CC, -1, -1, "123456712", "[20]12", ZINT_ERROR_TOO_LONG, "Error 291: Input wrong length (8 character maximum) in linear component" }, + /* 66*/ { BARCODE_UPCE_CC, GS1NOCHECK_MODE, -1, "123456712", "[20]12", ZINT_ERROR_TOO_LONG, "Error 291: Input wrong length (8 character maximum) in linear component" }, + /* 67*/ { BARCODE_UPCE_CC, -1, -1, "1234567A", "[20]12", ZINT_ERROR_INVALID_DATA, "Error 284: Invalid character in data (digits and \"+\" only) in linear component" }, + /* 68*/ { BARCODE_UPCE_CC, GS1NOCHECK_MODE, -1, "1234567A", "[20]12", ZINT_ERROR_INVALID_DATA, "Error 284: Invalid character in data (digits and \"+\" only) in linear component" }, + /* 69*/ { BARCODE_UPCE_CC, -1, -1, "1234567", "[20]1A", ZINT_WARN_NONCOMPLIANT, "Warning 261: AI (20) position 2: Non-numeric character 'A' in 2D component" }, // AI (20) should be 2 nos. + /* 70*/ { BARCODE_UPCE_CC, GS1NOCHECK_MODE, -1, "1234567", "[20]1A", 0, "" }, + /* 71*/ { BARCODE_UPCE_CC, -1, -1, "1234567", "[02]12345678901234", ZINT_WARN_NONCOMPLIANT, "Warning 261: AI (02) position 14: Bad checksum '4', expected '1' in 2D component" }, + /* 72*/ { BARCODE_UPCE_CC, GS1NOCHECK_MODE, -1, "1234567", "[02]12345678901234", 0, "" }, + /* 73*/ { BARCODE_DBAR_STK_CC, -1, -1, "1234567890123", "[20]12", 0, "" }, + /* 74*/ { BARCODE_DBAR_STK_CC, -1, -1, "12345678901231", "[20]12", 0, "" }, + /* 75*/ { BARCODE_DBAR_STK_CC, -1, -1, "12345678901232", "[20]12", ZINT_ERROR_INVALID_CHECK, "Error 388: Invalid check digit '2', expecting '1' in linear component" }, + /* 76*/ { BARCODE_DBAR_STK_CC, GS1NOCHECK_MODE, -1, "12345678901232", "[20]12", ZINT_ERROR_INVALID_CHECK, "Error 388: Invalid check digit '2', expecting '1' in linear component" }, // Linear component still checked + /* 77*/ { BARCODE_DBAR_STK_CC, -1, -1, "123456789012323", "[20]12", ZINT_ERROR_TOO_LONG, "Error 380: Input too long (14 character maximum) in linear component" }, + /* 78*/ { BARCODE_DBAR_STK_CC, GS1NOCHECK_MODE, -1, "123456789012323", "[20]12", ZINT_ERROR_TOO_LONG, "Error 380: Input too long (14 character maximum) in linear component" }, + /* 79*/ { BARCODE_DBAR_STK_CC, -1, -1, "1234567890123A", "[20]12", ZINT_ERROR_INVALID_DATA, "Error 381: Invalid character in data (digits only) in linear component" }, + /* 80*/ { BARCODE_DBAR_STK_CC, GS1NOCHECK_MODE, -1, "1234567890123A", "[20]12", ZINT_ERROR_INVALID_DATA, "Error 381: Invalid character in data (digits only) in linear component" }, + /* 81*/ { BARCODE_DBAR_STK_CC, -1, -1, "12345678901231", "[20]1A", ZINT_WARN_NONCOMPLIANT, "Warning 261: AI (20) position 2: Non-numeric character 'A' in 2D component" }, // AI (20) should be 2 nos. + /* 82*/ { BARCODE_DBAR_STK_CC, GS1NOCHECK_MODE, -1, "12345678901231", "[20]1A", 0, "" }, + /* 83*/ { BARCODE_DBAR_STK_CC, -1, -1, "12345678901231", "[02]12345678901234", ZINT_WARN_NONCOMPLIANT, "Warning 261: AI (02) position 14: Bad checksum '4', expected '1' in 2D component" }, + /* 84*/ { BARCODE_DBAR_STK_CC, GS1NOCHECK_MODE, -1, "12345678901231", "[02]12345678901234", 0, "" }, + /* 85*/ { BARCODE_DBAR_OMNSTK_CC, -1, -1, "1234567890123", "[20]12", 0, "" }, + /* 86*/ { BARCODE_DBAR_OMNSTK_CC, -1, -1, "12345678901231", "[20]12", 0, "" }, + /* 87*/ { BARCODE_DBAR_OMNSTK_CC, -1, -1, "12345678901232", "[20]12", ZINT_ERROR_INVALID_CHECK, "Error 388: Invalid check digit '2', expecting '1' in linear component" }, + /* 88*/ { BARCODE_DBAR_OMNSTK_CC, GS1NOCHECK_MODE, -1, "12345678901232", "[20]12", ZINT_ERROR_INVALID_CHECK, "Error 388: Invalid check digit '2', expecting '1' in linear component" }, // Linear component still checked + /* 89*/ { BARCODE_DBAR_OMNSTK_CC, -1, -1, "123456789012312", "[20]12", ZINT_ERROR_TOO_LONG, "Error 380: Input too long (14 character maximum) in linear component" }, + /* 90*/ { BARCODE_DBAR_OMNSTK_CC, GS1NOCHECK_MODE, -1, "123456789012312", "[20]12", ZINT_ERROR_TOO_LONG, "Error 380: Input too long (14 character maximum) in linear component" }, + /* 91*/ { BARCODE_DBAR_OMNSTK_CC, -1, -1, "1234567890123A", "[20]12", ZINT_ERROR_INVALID_DATA, "Error 381: Invalid character in data (digits only) in linear component" }, + /* 92*/ { BARCODE_DBAR_OMNSTK_CC, GS1NOCHECK_MODE, -1, "1234567890123A", "[20]12", ZINT_ERROR_INVALID_DATA, "Error 381: Invalid character in data (digits only) in linear component" }, + /* 93*/ { BARCODE_DBAR_OMNSTK_CC, -1, -1, "12345678901231", "[20]1A", ZINT_WARN_NONCOMPLIANT, "Warning 261: AI (20) position 2: Non-numeric character 'A' in 2D component" }, // AI (20) should be 2 nos. + /* 94*/ { BARCODE_DBAR_OMNSTK_CC, GS1NOCHECK_MODE, -1, "12345678901231", "[20]1A", 0, "" }, + /* 95*/ { BARCODE_DBAR_OMNSTK_CC, -1, -1, "12345678901231", "[02]12345678901234", ZINT_WARN_NONCOMPLIANT, "Warning 261: AI (02) position 14: Bad checksum '4', expected '1' in 2D component" }, + /* 96*/ { BARCODE_DBAR_OMNSTK_CC, GS1NOCHECK_MODE, -1, "12345678901231", "[02]12345678901234", 0, "" }, + /* 97*/ { BARCODE_GS1_128_CC, -1, -1, "", "[20]12", ZINT_ERROR_INVALID_OPTION, "Error 445: No primary (linear) message in 2D composite" }, + /* 98*/ { BARCODE_GS1_128_CC, -1, -1, "[01]12345678901231", "[91]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[92]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[93]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[94]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[95]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[96]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[97]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[98]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[99]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890", 0, "" }, // Tries CC-A then CC-B then CC-C - ensure errtxt empty + /* 99*/ { BARCODE_GS1_128_CC, -1, -1, "[01]12345678901231[90]123456789012345678901234567890[91]1234567890123456789012345678901234567890123456789012345678901234", "[91]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[92]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[93]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[94]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[95]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[96]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[97]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[98]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[99]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[91]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[92]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[93]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[94]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[95]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[96]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[97]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[98]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[99]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[91]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[92]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[93]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[94]123456789012345678901234567890123456789012345678901234567890123", 0, "" }, // Max linear and CC-C input + /*100*/ { BARCODE_GS1_128_CC, -1, -1, "[01]12345678901231[90]123456789012345678901234567890[91]1234567890123456789012345678901234567890123456789012345678901234", "[91]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[92]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[93]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[94]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[95]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[96]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[97]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[98]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[99]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[91]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[92]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[93]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[94]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[95]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[96]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL", ZINT_ERROR_TOO_LONG, "Error 442: Input too long for selected 2D component" }, // Max linear and oversized CC-C input + /*101*/ { BARCODE_GS1_128_CC, -1, -1, "[01]12345678901231", "[91]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[92]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[93]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[94]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[95]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[96]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[97]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[98]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[99]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[91]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[92]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[93]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[94]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[95]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[96]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[91]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[92]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[93]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[91]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[92]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[93]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[93]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHI" "JKLMNOPQRSTUVWXYZABCDEFGHIJKL[93]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[93]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[93]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[93]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[93]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[93]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[93]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[93]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[93]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[93]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[93]ABCDEFGHIJKLM", ZINT_ERROR_TOO_LONG, "Error 446: 2D component input data too long" }, // Reduced length 2291 + /*102*/ { BARCODE_GS1_128_CC, -1, -1, "[01]12345678901231", "[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012" "345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[00]123456789012345675[11]121212[20]12", 0, "" }, // Reduced length 2372 digits (no FNC1s) with not recommended ECC 4 > 2361 digit limit given in ISO/IEC 24723:2010 4.1 (d)(2)(iii) }; int data_size = ARRAY_SIZE(data); int i, length, composite_length, ret; @@ -3102,7 +3414,7 @@ static void test_input(int index, int debug) { symbol = ZBarcode_Create(); assert_nonnull(symbol, "Symbol not created\n"); - length = testUtilSetSymbol(symbol, data[i].symbology, data[i].input_mode, -1 /*eci*/, -1 /*option_1*/, -1, -1, -1 /*output_options*/, data[i].data, -1, debug); + length = testUtilSetSymbol(symbol, data[i].symbology, data[i].input_mode, -1 /*eci*/, data[i].option_1, -1, -1, -1 /*output_options*/, data[i].data, -1, debug); assert_zero(length >= 128, "i:%d length %d >= 128\n", i, length); strcpy(symbol->primary, data[i].data); diff --git a/backend/tests/test_dmatrix.c b/backend/tests/test_dmatrix.c index 945c054b..abe89e9f 100644 --- a/backend/tests/test_dmatrix.c +++ b/backend/tests/test_dmatrix.c @@ -540,6 +540,7 @@ static void test_input(int index, int generate, int debug) { int eci; int option_2; int option_3; + int output_options; char *data; int ret; @@ -551,98 +552,105 @@ static void test_input(int index, int generate, int debug) { char *comment; }; struct item data[] = { - /* 0*/ { UNICODE_MODE, 0, -1, -1, "0466010592130100000k*AGUATY80", 0, 0, 18, 18, 1, "(32) 86 C4 83 87 DE 8F 83 82 82 31 6C EE 08 85 D6 D2 EF 65 93 B0 1C 3C 76 FB D4 AB 16 11", "#208" }, - /* 1*/ { UNICODE_MODE, 0, 5, -1, "0466010592130100000k*AGUATY80", 0, 0, 18, 18, 1, "(32) 86 C4 83 87 DE 8F 83 82 82 31 6C EE 08 85 D6 D2 EF 65 93 B0 1C 3C 76 FB D4 AB 16 11", "" }, - /* 2*/ { UNICODE_MODE, 0, -1, -1, "0466010592130100000k*AGUATY8", 0, 0, 18, 18, 1, "(32) 86 C4 83 87 DE 8F 83 82 82 E6 19 5C 07 B7 82 5F D4 3D 65 B5 97 30 00 FC 2C 4C 30 52", "" }, - /* 3*/ { UNICODE_MODE, 0, -1, -1, "0466010592130100000k*AGUATY80U", 0, 0, 20, 20, 1, "(40) 86 C4 83 87 DE 8F 83 82 82 31 6C EE 08 85 D6 D2 EF 65 FE 56 81 76 4F AB 22 B8 6F 0A", "" }, - /* 4*/ { UNICODE_MODE, 0, 5, -1, "0466010592130100000k*AGUATY80U", ZINT_ERROR_TOO_LONG, -1, 0, 0, 0, "Error 522: Input too long for selected symbol size", "" }, - /* 5*/ { UNICODE_MODE, 0, 6, -1, "0466010592130100000k*AGUATY80U", 0, 0, 20, 20, 1, "(40) 86 C4 83 87 DE 8F 83 82 82 31 6C EE 08 85 D6 D2 EF 65 FE 56 81 76 4F AB 22 B8 6F 0A", "" }, - /* 6*/ { UNICODE_MODE, 0, -1, -1, "0466010592130100000k*AGUATY80UA", 0, 0, 20, 20, 0, "(40) 86 C4 83 87 DE 8F 83 82 82 E6 19 5C 07 B7 82 5F D4 3D 1E 5F FE 81 BB 90 01 2A 31 9F", "BWIPP different encodation" }, - /* 7*/ { UNICODE_MODE, 0, -1, -1, ">*\015>*\015>", 0, 0, 14, 14, 1, "EE 0C A9 0C A9 FE 3F 81 42 B2 11 A8 F9 0A EC C1 1E 41", "X12 symbols_left 3, process_p 1" }, - /* 8*/ { UNICODE_MODE, 0, -1, -1, ">*\015>*\015>*", 0, 0, 14, 14, 1, "EE 0C A9 0C A9 FE 3F 2B 3F 05 D2 10 1B 9A 55 2F 68 C5", "X12 symbols_left 3, process_p 2" }, - /* 9*/ { UNICODE_MODE, 0, -1, -1, ">*\015>*\015>*\015", 0, 0, 14, 14, 1, "EE 0C A9 0C A9 0C A9 FE 1F 30 3F EE 45 C1 1C D7 5F 7E", "X12 symbols_left 1, process_p 0" }, - /* 10*/ { UNICODE_MODE, 0, -1, -1, "ABCDEF", 0, 0, 12, 12, 1, "E6 59 E9 6D 24 3D 15 EF AA 21 F9 59", "C40 symbols_left 0, process_p 0" }, - /* 11*/ { UNICODE_MODE, 0, -1, -1, "ABCDEFG", 0, 0, 14, 14, 1, "E6 59 E9 6D 24 FE 48 81 8C 7E 09 5E 10 64 BC 5F 4C 91", "C40 symbols_left 3, process_p 1" }, - /* 12*/ { UNICODE_MODE, 0, -1, -1, "ABCDEFGH", 0, 0, 14, 14, 1, "E6 59 E9 6D 24 FE 48 49 2E 31 00 73 3B 8F 4B 55 93 19", "C40 symbols_left 3, process_p 2" }, - /* 13*/ { UNICODE_MODE, 0, -1, -1, "ABCDEFGHI", 0, 0, 14, 14, 1, "E6 59 E9 6D 24 80 5F FE 01 DE 20 9F AA C2 FF 8F 08 97", "C40 symbols_left 1, process_p 0" }, - /* 14*/ { UNICODE_MODE, 0, -1, -1, "ABCDEF\001G", 0, 0, 14, 14, 1, "E6 59 E9 6D 24 00 3D FE 5D 5A F5 0A 8A 4E 1D 63 07 B9", "C40 symbols_left 1, process_p 0" }, - /* 15*/ { UNICODE_MODE, 0, -1, -1, "ABCDEFG\001", 0, 0, 14, 14, 1, "E6 59 E9 6D 24 7D 02 FE 14 A3 27 63 01 2F B1 94 FE FA", "C40 symbols_left 1, process_p 0" }, - /* 16*/ { UNICODE_MODE, 0, -1, -1, "ABCDEFG\001H", 0, 0, 14, 14, 1, "E6 59 E9 6D 24 7D 02 49 C2 E6 DD 06 89 51 BA 8E 9D 1F", "C40 symbols_left 1, process_p 1" }, - /* 17*/ { UNICODE_MODE, 0, -1, -1, "ABCDEFGH\001", 0, 0, 8, 32, 1, "E6 59 E9 6D 24 FE 48 49 02 81 BD 6D F3 94 FF 82 A6 BF BB F1 4F", "C40 symbols_left 1, process_p 1, backtracks" }, - /* 18*/ { UNICODE_MODE, 0, -1, DM_SQUARE, "ABCDEFGH\001", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 FE 48 49 02 81 FB 93 AE 8B 1C 90 DF FE EB C5 A0 2A 6A 4F", "C40 symbols_left 1, process_p 1, backtracks" }, - /* 19*/ { UNICODE_MODE, 0, -1, -1, "ABCDEFGH\001I", 0, 0, 8, 32, 1, "E6 59 E9 6D 24 FE 48 49 02 4A E1 0D DD BC 56 E4 66 52 E6 AE 02", "C40 symbols_left 3, process_p 2, backtracks" }, - /* 20*/ { UNICODE_MODE, 0, -1, DM_SQUARE, "ABCDEFGH\001I", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 FE 48 49 02 4A 81 93 51 DF C0 0C D3 F9 72 13 17 52 5B 7E", "C40 symbols_left 5, process_p 2, backtracks" }, - /* 21*/ { UNICODE_MODE, 0, -1, -1, "ABCDEFGHI\001", 0, 0, 8, 32, 1, "E6 59 E9 6D 24 80 5F FE 02 81 47 6C 3E 49 D3 FA 46 47 53 6E E5", "Switches to ASC for last char" }, - /* 22*/ { UNICODE_MODE, 0, -1, DM_SQUARE, "ABCDEFGHI\001", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 80 5F FE 02 81 FB 93 33 E3 4F F7 2D 08 8A BF 64 C3 B0 26", "Switches to ASC for last char" }, - /* 23*/ { UNICODE_MODE, 0, -1, -1, "ABCDEFGH\001I\001", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 FE 48 49 02 4A 02 81 BD 5D C0 B9 09 25 87 3A 09 23 9D C0", "C40 symbols_left 1, process_p 1, backtracks 2" }, - /* 24*/ { UNICODE_MODE, 0, -1, -1, "ABCDEF+G", 0, 0, 14, 14, 1, "E6 59 E9 6D 24 07 E5 FE 6B 35 71 7F 3D 57 59 46 F7 B9", "C40 symbols_left 1, process_p 0" }, - /* 25*/ { UNICODE_MODE, 0, -1, -1, "ABCDEFG+", 0, 0, 14, 14, 1, "E6 59 E9 6D 24 7D 33 FE 33 F5 97 60 73 48 13 2E E5 74", "C40 symbols_left 1, process_p 0" }, - /* 26*/ { UNICODE_MODE, 0, -1, -1, "ABCDEFG+H", 0, 0, 14, 14, 1, "E6 59 E9 6D 24 7D 33 49 E5 B0 6D 05 FB 36 18 34 86 91", "C40 symbols_left 1, process_p 1" }, - /* 27*/ { UNICODE_MODE, 0, -1, -1, "ABCDEFGH+", 0, 0, 8, 32, 1, "E6 59 E9 6D 24 FE 48 49 2C 81 02 BD 40 CF 3B 06 C2 DF 36 E0 48", "C40 symbols_left 1, process_p 1, backtracks" }, - /* 28*/ { UNICODE_MODE, 0, -1, DM_SQUARE, "ABCDEFGH+", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 FE 48 49 2C 81 FB 93 F6 78 B5 69 0B 83 C6 32 62 1A D2 FF", "C40 symbols_left 1, process_p 1, backtracks" }, - /* 29*/ { UNICODE_MODE, 0, -1, -1, "ABCDEFGH+I", 0, 0, 8, 32, 1, "E6 59 E9 6D 24 FE 48 49 2C 4A 5E DD 6E E7 92 60 02 32 6B BF 05", "C40 symbols_left 3, process_p 2, backtracks" }, - /* 30*/ { UNICODE_MODE, 0, -1, DM_SQUARE, "ABCDEFGH+I", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 FE 48 49 2C 4A 81 93 09 2C 69 F5 07 84 5F E4 D5 62 E3 CE", "C40 symbols_left 5, process_p 2, backtracks" }, - /* 31*/ { UNICODE_MODE, 0, -1, -1, "ABCDEFGHI+", 0, 0, 8, 32, 1, "E6 59 E9 6D 24 80 5F FE 2C 81 F8 BC 8D 12 17 7E 22 27 DE 7F E2", "C40 symbols_left 3, process_p 2, backtracks" }, - /* 32*/ { UNICODE_MODE, 0, -1, DM_SQUARE, "ABCDEFGHI+", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 80 5F FE 2C 81 FB 93 6B 10 E6 0E F9 75 A7 48 A6 F3 08 96", "Switches to ASC for last char" }, - /* 33*/ { UNICODE_MODE, 0, -1, -1, "ABCDEFjG", 0, 0, 14, 14, 1, "E6 59 E9 6D 24 0E 25 FE DA 14 D7 15 47 69 9D 4A 54 6D", "C40 symbols_left 1, process_p 0" }, - /* 34*/ { UNICODE_MODE, 0, -1, -1, "ABCDEFGj", 0, 0, 14, 14, 1, "E6 59 E9 6D 24 7D 5B FE B5 F3 24 0A 99 26 D6 CC A8 40", "C40 symbols_left 1, process_p 0" }, - /* 35*/ { UNICODE_MODE, 0, -1, -1, "ABCDEFGjH", 0, 0, 14, 14, 1, "E6 59 E9 6D 24 7D 5B 49 63 B6 DE 6F 11 58 DD D6 CB A5", "C40 symbols_left 1, process_p 1" }, - /* 36*/ { UNICODE_MODE, 0, -1, -1, "ABCDEFGHj", 0, 0, 8, 32, 1, "E6 59 E9 6D 24 FE 48 49 6B 81 ED 78 CB 9F 52 EE 52 88 91 67 96", "C40 symbols_left 1, process_p 1, backtracks" }, - /* 37*/ { UNICODE_MODE, 0, -1, DM_SQUARE, "ABCDEFGHj", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 FE 48 49 6B 81 FB 93 BF 72 03 35 09 37 98 FF 39 A7 E3 6D", "C40 symbols_left 1, process_p 1, backtracks" }, - /* 38*/ { UNICODE_MODE, 0, -1, -1, "ABCDEFGHjI", 0, 0, 8, 32, 1, "E6 59 E9 6D 24 FE 48 49 6B 4A B1 18 E5 B7 FB 88 92 65 CC 38 DB", "C40 symbols_left 3, process_p 2, backtracks" }, - /* 39*/ { UNICODE_MODE, 0, -1, DM_SQUARE, "ABCDEFGHjI", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 FE 48 49 6B 4A 81 93 40 26 DF A9 05 30 01 29 8E DF D2 5C", "C40 symbols_left 5, process_p 2, backtracks" }, - /* 40*/ { UNICODE_MODE, 0, -1, -1, "ABCDEFGHIj", 0, 0, 8, 32, 1, "E6 59 E9 6D 24 80 5F FE 6B 81 17 79 06 42 7E 96 B2 70 79 F8 3C", "Switches to ASC for last char" }, - /* 41*/ { UNICODE_MODE, 0, -1, -1, "ABCDEFGHIJÊ", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 80 5F FE 4B EB 4B 81 DD D9 F9 C9 C5 38 F3 4B DB 80 92 A7", "Switches to ASC for last 2 chars" }, - /* 42*/ { UNICODE_MODE, 0, -1, -1, "ABCDEFGHIJKÊ", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 80 5F FE 4B 4C EB 4B 15 17 46 06 70 F3 15 74 45 26 72 2D", "C40 symbols_left 3, process_p 2, backtracks" }, - /* 43*/ { UNICODE_MODE, 0, -1, -1, "ABCDEFGHIJKª", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 80 5F 93 82 BB B2 FE 11 5C 60 32 A6 DE FC 7B 30 F1 03 56", "C40 symbols_left 1, process_p 0" }, - /* 44*/ { UNICODE_MODE, 0, -1, -1, "ABCDEFGHIJKê", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 80 5F 93 82 BB DB FE 78 43 69 3C C2 FE F5 2E 1B 4F B6 04", "C40 symbols_left 1, process_p 0" }, - /* 45*/ { UNICODE_MODE, 0, -1, -1, "abcdef", 0, 0, 12, 12, 1, "EF 59 E9 6D 24 E2 CC D9 B4 55 E2 6A", "TEX symbols_left 0, process_p 0" }, - /* 46*/ { UNICODE_MODE, 0, -1, -1, "abcdefg", 0, 0, 14, 14, 1, "EF 59 E9 6D 24 FE 68 81 A9 65 CD 3A A2 E9 E0 B7 E1 E5", "TEX symbols_left 3, process_p 1" }, - /* 47*/ { UNICODE_MODE, 0, -1, -1, "abcdefgh", 0, 0, 14, 14, 1, "EF 59 E9 6D 24 FE 68 69 68 36 28 3C 85 5A E9 D4 49 9A", "TEX symbols_left 3, process_p 2" }, - /* 48*/ { UNICODE_MODE, 0, -1, -1, "abcdefghi", 0, 0, 14, 14, 1, "EF 59 E9 6D 24 80 5F FE DA BF FA 16 71 15 22 4D E3 F3", "TEX symbols_left 1, process_p 0" }, - /* 49*/ { UNICODE_MODE, 0, -1, -1, "abcdef\001g", 0, 0, 14, 14, 1, "EF 59 E9 6D 24 00 3D FE 86 3B 2F 83 51 99 C0 A1 EC DD", "TEX symbols_left 1, process_p 0" }, - /* 50*/ { UNICODE_MODE, 0, -1, -1, "abcdefg\001", 0, 0, 14, 14, 1, "EF 59 E9 6D 24 7D 02 FE CF C2 FD EA DA F8 6C 56 15 9E", "TEX symbols_left 1, process_p 0" }, - /* 51*/ { UNICODE_MODE, 0, -1, -1, "abcdefg\001h", 0, 0, 14, 14, 1, "EF 59 E9 6D 24 7D 02 69 7A 9B EB A4 5E DE 99 25 01 8C", "TEX symbols_left 1, process_p 1" }, - /* 52*/ { UNICODE_MODE, 0, -1, -1, "abcdefgh\001", 0, 0, 8, 32, 1, "EF 59 E9 6D 24 FE 68 69 02 81 EB 84 25 32 6E 1B 5A FB 1D 25 4A", "TEX symbols_left 1, process_p 1, backtracks" }, - /* 53*/ { UNICODE_MODE, 0, -1, DM_SQUARE, "abcdefgh\001", 0, 0, 16, 16, 1, "EF 59 E9 6D 24 FE 68 69 02 81 FB 93 93 FD 1E 3B BA 1D 16 4D 59 41 EC B9", "TEX symbols_left 1, process_p 1, backtracks" }, - /* 54*/ { UNICODE_MODE, 0, -1, -1, "abcdefgh\001i", 0, 0, 8, 32, 1, "EF 59 E9 6D 24 FE 68 69 02 6A 31 35 48 9B 93 6E 15 BB 02 9D F4", "TEX symbols_left 3, process_p 2, backtracks" }, - /* 55*/ { UNICODE_MODE, 0, -1, DM_SQUARE, "abcdefgh\001i", 0, 0, 16, 16, 1, "EF 59 E9 6D 24 FE 68 69 02 6A 81 93 DE D7 EC 9B 7D 72 9C 68 B8 6E CF 31", "TEX symbols_left 3, process_p 2, backtracks" }, - /* 56*/ { UNICODE_MODE, 0, -1, -1, "abcdefghi\001", 0, 0, 8, 32, 1, "EF 59 E9 6D 24 80 5F FE 02 81 4D AB 30 86 CD D1 9D F3 15 F5 B1", "Switches to ASC for last char" }, - /* 57*/ { UNICODE_MODE, 0, -1, -1, "abcdefgh\001i\001", 0, 0, 16, 16, 1, "EF 59 E9 6D 24 FE 68 69 02 6A 02 81 32 55 EC 2E A7 AE 69 41 A6 1F 09 8F", "TEX symbols_left 1, process_p 1, backtracks 2" }, - /* 58*/ { UNICODE_MODE, 0, -1, -1, "abcdefJg", 0, 0, 14, 14, 1, "EF 59 E9 6D 24 0E 25 FE 01 75 0D 9C 9C BE 40 88 BF 09", "TEX symbols_left 1, process_p 0" }, - /* 59*/ { UNICODE_MODE, 0, -1, -1, "abcdefgJ", 0, 0, 14, 14, 1, "EF 59 E9 6D 24 7D 5B FE 6E 92 FE 83 42 F1 0B 0E 43 24", "TEX symbols_left 1, process_p 0" }, - /* 60*/ { UNICODE_MODE, 0, -1, -1, "abcdefgJh", 0, 0, 14, 14, 1, "EF 59 E9 6D 24 7D 5B 69 DB CB E8 CD C6 D7 FE 7D 57 36", "TEX symbols_left 1, process_p 1" }, - /* 61*/ { UNICODE_MODE, 0, -1, -1, "abcdefghJ", 0, 0, 8, 32, 1, "EF 59 E9 6D 24 FE 68 69 4B 81 15 8A 35 57 7F 33 B3 48 01 E0 BD", "TEX symbols_left 1, process_p 1, backtracks" }, - /* 62*/ { UNICODE_MODE, 0, -1, DM_SQUARE, "abcdefghJ", 0, 0, 16, 16, 1, "EF 59 E9 6D 24 FE 68 69 4B 81 FB 93 5B D4 D2 8B EE 85 F2 3E 3F 8E E5 04", "TEX symbols_left 1, process_p 1, backtracks" }, - /* 63*/ { UNICODE_MODE, 0, -1, -1, "abcdefghJi", 0, 0, 8, 32, 1, "EF 59 E9 6D 24 FE 68 69 4B 6A CF 3B 58 FE 82 46 FC 08 1E 58 03", "TEX symbols_left 3, process_p 2, backtracks" }, - /* 64*/ { UNICODE_MODE, 0, -1, DM_SQUARE, "abcdefghJi", 0, 0, 16, 16, 1, "EF 59 E9 6D 24 FE 68 69 4B 6A 81 93 16 FE 20 2B 29 EA 78 1B DE A1 C6 8C", "TEX symbols_left 3, process_p 2, backtracks" }, - /* 65*/ { UNICODE_MODE, 0, -1, -1, "abcdefghiJ", 0, 0, 8, 32, 1, "EF 59 E9 6D 24 80 5F FE 4B 81 B3 A5 20 E3 DC F9 74 40 09 30 46", "Switches to ASC for last char" }, - /* 66*/ { UNICODE_MODE, 0, -1, -1, "abcdefghijkÊ", 0, 0, 16, 16, 1, "EF 59 E9 6D 24 80 5F 93 82 BB DB FE 3E C8 EC 73 58 A7 42 46 10 49 25 99", "TEX symbols_left 1, process_p 0" }, - /* 67*/ { UNICODE_MODE, 0, -1, -1, "abcdefghijkª", 0, 0, 16, 16, 1, "EF 59 E9 6D 24 80 5F 93 82 BB B2 FE 57 D7 E5 7D 3C 87 4B 13 3B F7 90 CB", "TEX symbols_left 1, process_p 0" }, - /* 68*/ { UNICODE_MODE, 0, -1, -1, "abcdefghijkê", 0, 0, 16, 16, 1, "EF 59 E9 6D 24 80 5F FE 6B 6C EB 6B 59 43 1A B1 96 F4 FF C5 B5 08 AE 2F", "TEX symbols_left 3, process_p 2, backtracks" }, - /* 69*/ { UNICODE_MODE, 0, -1, -1, "\015*>\015*>", 0, 0, 12, 12, 1, "EE 00 2B 00 2B 83 3B 0A CE 32 36 65", "X12 symbols_left 0, process_p 0" }, - /* 70*/ { UNICODE_MODE, 0, -1, -1, "\015*>\015*>\015", 0, 0, 14, 14, 1, "EE 00 2B 00 2B FE 0E 81 C0 6C BF 37 F6 D6 48 71 E2 38", "Switches to ASC for last char" }, - /* 71*/ { UNICODE_MODE, 0, -1, -1, "\015*>\015*>\015*", 0, 0, 14, 14, 1, "EE 00 2B 00 2B FE 0E 2B BD DB 7C 8F 14 46 F1 9F 94 BC", "Switches to ASC for last 2 chars" }, - /* 72*/ { UNICODE_MODE, 0, -1, -1, "\015*>\015*>\015*>", 0, 0, 14, 14, 1, "EE 00 2B 00 2B 00 2B FE BF 81 70 74 1C 65 10 0C 06 38", "X12 symbols_left 1, process_p 0, ASC unlatch at end" }, - /* 73*/ { UNICODE_MODE, 0, -1, -1, "\015*>\015*>\015*>\015", 0, 0, 14, 14, 1, "EE 00 2B 00 2B 00 2B 0E 1C DB D8 26 3E EC CF 9C C3 4A", "X12 symbols_left 1, process_p 1, ASC no latch at end" }, - /* 74*/ { UNICODE_MODE, 0, -1, -1, "\015*>\015*>\015*>\015*", 0, 0, 8, 32, 1, "EE 00 2B 00 2B 00 2B FE 0E 2B 65 37 5F 2F F3 96 BE 9A 03 55 68", "X12 symbols_left 3, process_p 2, ASC last 2 chars" }, - /* 75*/ { UNICODE_MODE, 0, -1, -1, "\015*>\015*>\015*>\015*>", 0, 0, 8, 32, 1, "EE 00 2B 00 2B 00 2B 00 2B FE 6E 95 3A 10 58 4E 96 06 79 09 94", "X12 symbols_left 1, process_p 0, ASC unlatch at end" }, - /* 76*/ { UNICODE_MODE, 0, -1, -1, "@A1^B2?C", 0, 0, 14, 14, 1, "F0 00 1C 5E 0B 2F C3 81 2D 71 45 13 9B FF A1 B0 0B E2", "EDIFACT symbols_left 1, process_p 0" }, - /* 77*/ { UNICODE_MODE, 0, -1, -1, "@A1^B2?C3", 0, 0, 14, 14, 1, "F0 00 1C 5E 0B 2F C3 34 81 E8 6C 9E CE 12 CB F5 58 3F", "EDIFACT symbols_left 1, process_p 1" }, - /* 78*/ { UNICODE_MODE, 0, -1, -1, "@A1^B2?C3+", 0, 0, 8, 32, 1, "F0 00 1C 5E 0B 2F C3 CE B7 C0 33 C6 81 E1 63 6E 5E B4 27 30 C9", "EDIFACT symbols_left 3, process_p 2" }, - /* 79*/ { UNICODE_MODE, 0, -1, -1, "@A1^B2?C3+D", 0, 0, 8, 32, 1, "F0 00 1C 5E 0B 2F C3 CE B1 1F 4D E1 79 04 2B BC 05 6C 38 73 39", "EDIFACT symbols_left 3, process_p 3" }, - /* 80*/ { UNICODE_MODE, 0, -1, -1, "@A1^B2?C3+D4", 0, 0, 8, 32, 1, "F0 00 1C 5E 0B 2F C3 CE B1 34 F4 EC B3 DC 03 A3 1F B5 86 C3 F7", "EDIFACT symbols_left 0, process_p 0" }, - /* 81*/ { UNICODE_MODE, 0, -1, -1, "@A1^B2?C3+D4=", 0, 0, 16, 16, 1, "F0 00 1C 5E 0B 2F C3 CE B1 34 3E 81 42 96 43 6E 92 0D A9 B1 65 3C CF 9B", "EDIFACT symbols_left 2, process_p 1" }, - /* 82*/ { UNICODE_MODE, 0, -1, -1, "@A1^B2?C3+D4=E", 0, 0, 16, 16, 1, "F0 00 1C 5E 0B 2F C3 CE B1 34 3E 46 AD 8C F2 D8 5D AF F3 65 08 1F E3 A5", "EDIFACT symbols_left 2, process_p 2" }, - /* 83*/ { DATA_MODE, 0, -1, -1, "\377\376", 0, 0, 12, 12, 1, "EB 80 EB 7F 81 6F A8 0F 21 6F 5F 88", "FN4 A7F FN4 A7E, 1 pad" }, - /* 84*/ { DATA_MODE, 0, -1, -1, "\377\376\375", 0, 0, 12, 12, 1, "E7 2C C0 55 E9 67 45 8A D2 7E A9 23", "BAS BFF BFE BFD, no padding" }, - /* 85*/ { DATA_MODE, 3, -1, -1, "\101\102\103\104\300\105\310", 0, 3, 16, 16, 1, "F1 04 E7 5E 2D C4 5B F1 03 1D 36 81 64 0E C0 77 9A 18 52 B2 F9 F0 04 39", "ECI 4 BAS B41 B42 B43 B44 BC0 B45 BC8" }, - /* 86*/ { UNICODE_MODE, 26, -1, -1, "ABCDÀEÈ", 0, 26, 12, 26, 1, "F1 1B E7 60 2D C4 5B F1 06 58 B3 C7 21 81 57 ED 3D C0 12 2E 6C 80 58 CC 2C 05 0D 31 FC 2D", "ECI 27 BAS B41 B42 B43 B44 BC3 B80 B45 BC3 B88" }, - /* 87*/ { UNICODE_MODE, 0, -1, -1, "β", ZINT_WARN_USES_ECI, 9, 12, 12, 1, "Warning F1 0A EB 63 81 41 56 DA C0 3D 2D CC", "ECI 10 FN4 A62" }, - /* 88*/ { UNICODE_MODE, 127, -1, -1, "A", 0, 127, 12, 12, 1, "F1 80 01 42 81 14 A2 86 07 F5 27 30", "ECI 128 A41" }, - /* 89*/ { UNICODE_MODE, 16382, -1, -1, "A", 0, 16382, 12, 12, 1, "F1 BF FE 42 81 29 57 AA A0 92 B2 45", "ECI 16383 A41" }, - /* 90*/ { UNICODE_MODE, 810899, -1, -1, "A", 0, 810899, 12, 12, 1, "F1 CC 51 05 42 BB A5 A7 8A C6 6E 0F", "ECI 810900 A41" }, - /* 91*/ { UNICODE_MODE | ESCAPE_MODE, -1, -1, -1, "[)>\\R05\\GA\\R\\E", 0, 0, 10, 10, 1, "EC 42 81 5D 17 49 F6 B6", "Macro05 A41" }, + /* 0*/ { UNICODE_MODE, 0, -1, -1, -1, "0466010592130100000k*AGUATY80", 0, 0, 18, 18, 1, "(32) 86 C4 83 87 DE 8F 83 82 82 31 6C EE 08 85 D6 D2 EF 65 93 B0 1C 3C 76 FB D4 AB 16 11", "#208" }, + /* 1*/ { UNICODE_MODE, 0, 5, -1, -1, "0466010592130100000k*AGUATY80", 0, 0, 18, 18, 1, "(32) 86 C4 83 87 DE 8F 83 82 82 31 6C EE 08 85 D6 D2 EF 65 93 B0 1C 3C 76 FB D4 AB 16 11", "" }, + /* 2*/ { UNICODE_MODE, 0, -1, -1, -1, "0466010592130100000k*AGUATY8", 0, 0, 18, 18, 1, "(32) 86 C4 83 87 DE 8F 83 82 82 E6 19 5C 07 B7 82 5F D4 3D 65 B5 97 30 00 FC 2C 4C 30 52", "" }, + /* 3*/ { UNICODE_MODE, 0, -1, -1, -1, "0466010592130100000k*AGUATY80U", 0, 0, 20, 20, 1, "(40) 86 C4 83 87 DE 8F 83 82 82 31 6C EE 08 85 D6 D2 EF 65 FE 56 81 76 4F AB 22 B8 6F 0A", "" }, + /* 4*/ { UNICODE_MODE, 0, 5, -1, -1, "0466010592130100000k*AGUATY80U", ZINT_ERROR_TOO_LONG, -1, 0, 0, 0, "Error 522: Input too long for selected symbol size", "" }, + /* 5*/ { UNICODE_MODE, 0, 6, -1, -1, "0466010592130100000k*AGUATY80U", 0, 0, 20, 20, 1, "(40) 86 C4 83 87 DE 8F 83 82 82 31 6C EE 08 85 D6 D2 EF 65 FE 56 81 76 4F AB 22 B8 6F 0A", "" }, + /* 6*/ { UNICODE_MODE, 0, -1, -1, -1, "0466010592130100000k*AGUATY80UA", 0, 0, 20, 20, 0, "(40) 86 C4 83 87 DE 8F 83 82 82 E6 19 5C 07 B7 82 5F D4 3D 1E 5F FE 81 BB 90 01 2A 31 9F", "BWIPP different encodation" }, + /* 7*/ { UNICODE_MODE, 0, -1, -1, -1, ">*\015>*\015>", 0, 0, 14, 14, 1, "EE 0C A9 0C A9 FE 3F 81 42 B2 11 A8 F9 0A EC C1 1E 41", "X12 symbols_left 3, process_p 1" }, + /* 8*/ { UNICODE_MODE, 0, -1, -1, -1, ">*\015>*\015>*", 0, 0, 14, 14, 1, "EE 0C A9 0C A9 FE 3F 2B 3F 05 D2 10 1B 9A 55 2F 68 C5", "X12 symbols_left 3, process_p 2" }, + /* 9*/ { UNICODE_MODE, 0, -1, -1, -1, ">*\015>*\015>*\015", 0, 0, 14, 14, 1, "EE 0C A9 0C A9 0C A9 FE 1F 30 3F EE 45 C1 1C D7 5F 7E", "X12 symbols_left 1, process_p 0" }, + /* 10*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEF", 0, 0, 12, 12, 1, "E6 59 E9 6D 24 3D 15 EF AA 21 F9 59", "C40 symbols_left 0, process_p 0" }, + /* 11*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFG", 0, 0, 14, 14, 1, "E6 59 E9 6D 24 FE 48 81 8C 7E 09 5E 10 64 BC 5F 4C 91", "C40 symbols_left 3, process_p 1" }, + /* 12*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGH", 0, 0, 14, 14, 1, "E6 59 E9 6D 24 FE 48 49 2E 31 00 73 3B 8F 4B 55 93 19", "C40 symbols_left 3, process_p 2" }, + /* 13*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGHI", 0, 0, 14, 14, 1, "E6 59 E9 6D 24 80 5F FE 01 DE 20 9F AA C2 FF 8F 08 97", "C40 symbols_left 1, process_p 0" }, + /* 14*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGHIJ", 0, 0, 14, 14, 1, "E6 59 E9 6D 24 80 5F 4B AD 47 09 12 FF 2F 95 CA 5B 4A", "C40 symbols_left 1, process_p 1" }, + /* 15*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGHIJK", 0, 0, 8, 32, 1, "E6 59 E9 6D 24 80 5F FE 4B 4C D8 69 88 60 B9 33 B9 31 E6 BF CA", "C40 symbols_left 3, process_p 2" }, + /* 16*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEF\001G", 0, 0, 14, 14, 1, "E6 59 E9 6D 24 00 3D FE 5D 5A F5 0A 8A 4E 1D 63 07 B9", "C40 symbols_left 1, process_p 0" }, + /* 17*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFG\001", 0, 0, 14, 14, 1, "E6 59 E9 6D 24 7D 02 FE 14 A3 27 63 01 2F B1 94 FE FA", "C40 symbols_left 1, process_p 0" }, + /* 18*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFG\001H", 0, 0, 14, 14, 1, "E6 59 E9 6D 24 7D 02 49 C2 E6 DD 06 89 51 BA 8E 9D 1F", "C40 symbols_left 1, process_p 1" }, + /* 19*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGH\001", 0, 0, 8, 32, 1, "E6 59 E9 6D 24 FE 48 49 02 81 BD 6D F3 94 FF 82 A6 BF BB F1 4F", "C40 symbols_left 1, process_p 1, backtracks" }, + /* 20*/ { UNICODE_MODE, 0, -1, DM_SQUARE, -1, "ABCDEFGH\001", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 FE 48 49 02 81 FB 93 AE 8B 1C 90 DF FE EB C5 A0 2A 6A 4F", "C40 symbols_left 1, process_p 1, backtracks" }, + /* 21*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGH\001I", 0, 0, 8, 32, 1, "E6 59 E9 6D 24 FE 48 49 02 4A E1 0D DD BC 56 E4 66 52 E6 AE 02", "C40 symbols_left 3, process_p 2, backtracks" }, + /* 22*/ { UNICODE_MODE, 0, -1, DM_SQUARE, -1, "ABCDEFGH\001I", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 FE 48 49 02 4A 81 93 51 DF C0 0C D3 F9 72 13 17 52 5B 7E", "C40 symbols_left 5, process_p 2, backtracks" }, + /* 23*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGHI\001", 0, 0, 8, 32, 1, "E6 59 E9 6D 24 80 5F FE 02 81 47 6C 3E 49 D3 FA 46 47 53 6E E5", "Switches to ASC for last char" }, + /* 24*/ { UNICODE_MODE, 0, -1, DM_SQUARE, -1, "ABCDEFGHI\001", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 80 5F FE 02 81 FB 93 33 E3 4F F7 2D 08 8A BF 64 C3 B0 26", "Switches to ASC for last char" }, + /* 25*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGH\001I\001", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 FE 48 49 02 4A 02 81 BD 5D C0 B9 09 25 87 3A 09 23 9D C0", "C40 symbols_left 1, process_p 1, backtracks 2" }, + /* 26*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEF+G", 0, 0, 14, 14, 1, "E6 59 E9 6D 24 07 E5 FE 6B 35 71 7F 3D 57 59 46 F7 B9", "C40 symbols_left 1, process_p 0" }, + /* 27*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFG+", 0, 0, 14, 14, 1, "E6 59 E9 6D 24 7D 33 FE 33 F5 97 60 73 48 13 2E E5 74", "C40 symbols_left 1, process_p 0" }, + /* 28*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFG+H", 0, 0, 14, 14, 1, "E6 59 E9 6D 24 7D 33 49 E5 B0 6D 05 FB 36 18 34 86 91", "C40 symbols_left 1, process_p 1" }, + /* 29*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGH+", 0, 0, 8, 32, 1, "E6 59 E9 6D 24 FE 48 49 2C 81 02 BD 40 CF 3B 06 C2 DF 36 E0 48", "C40 symbols_left 1, process_p 1, backtracks" }, + /* 30*/ { UNICODE_MODE, 0, -1, DM_SQUARE, -1, "ABCDEFGH+", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 FE 48 49 2C 81 FB 93 F6 78 B5 69 0B 83 C6 32 62 1A D2 FF", "C40 symbols_left 1, process_p 1, backtracks" }, + /* 31*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGH+I", 0, 0, 8, 32, 1, "E6 59 E9 6D 24 FE 48 49 2C 4A 5E DD 6E E7 92 60 02 32 6B BF 05", "C40 symbols_left 3, process_p 2, backtracks" }, + /* 32*/ { UNICODE_MODE, 0, -1, DM_SQUARE, -1, "ABCDEFGH+I", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 FE 48 49 2C 4A 81 93 09 2C 69 F5 07 84 5F E4 D5 62 E3 CE", "C40 symbols_left 5, process_p 2, backtracks" }, + /* 33*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGHI+", 0, 0, 8, 32, 1, "E6 59 E9 6D 24 80 5F FE 2C 81 F8 BC 8D 12 17 7E 22 27 DE 7F E2", "C40 symbols_left 3, process_p 2, backtracks" }, + /* 34*/ { UNICODE_MODE, 0, -1, DM_SQUARE, -1, "ABCDEFGHI+", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 80 5F FE 2C 81 FB 93 6B 10 E6 0E F9 75 A7 48 A6 F3 08 96", "Switches to ASC for last char" }, + /* 35*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFjG", 0, 0, 14, 14, 1, "E6 59 E9 6D 24 0E 25 FE DA 14 D7 15 47 69 9D 4A 54 6D", "C40 symbols_left 1, process_p 0" }, + /* 36*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGj", 0, 0, 14, 14, 1, "E6 59 E9 6D 24 7D 5B FE B5 F3 24 0A 99 26 D6 CC A8 40", "C40 symbols_left 1, process_p 0" }, + /* 37*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGjH", 0, 0, 14, 14, 1, "E6 59 E9 6D 24 7D 5B 49 63 B6 DE 6F 11 58 DD D6 CB A5", "C40 symbols_left 1, process_p 1" }, + /* 38*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGHj", 0, 0, 8, 32, 1, "E6 59 E9 6D 24 FE 48 49 6B 81 ED 78 CB 9F 52 EE 52 88 91 67 96", "C40 symbols_left 1, process_p 1, backtracks" }, + /* 39*/ { UNICODE_MODE, 0, -1, DM_SQUARE, -1, "ABCDEFGHj", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 FE 48 49 6B 81 FB 93 BF 72 03 35 09 37 98 FF 39 A7 E3 6D", "C40 symbols_left 1, process_p 1, backtracks" }, + /* 40*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGHjI", 0, 0, 8, 32, 1, "E6 59 E9 6D 24 FE 48 49 6B 4A B1 18 E5 B7 FB 88 92 65 CC 38 DB", "C40 symbols_left 3, process_p 2, backtracks" }, + /* 41*/ { UNICODE_MODE, 0, -1, DM_SQUARE, -1, "ABCDEFGHjI", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 FE 48 49 6B 4A 81 93 40 26 DF A9 05 30 01 29 8E DF D2 5C", "C40 symbols_left 5, process_p 2, backtracks" }, + /* 42*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGHIj", 0, 0, 8, 32, 1, "E6 59 E9 6D 24 80 5F FE 6B 81 17 79 06 42 7E 96 B2 70 79 F8 3C", "Switches to ASC for last char" }, + /* 43*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGHIJÊ", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 80 5F FE 4B EB 4B 81 DD D9 F9 C9 C5 38 F3 4B DB 80 92 A7", "Switches to ASC for last 2 chars" }, + /* 44*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGHIJKÊ", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 80 5F FE 4B 4C EB 4B 15 17 46 06 70 F3 15 74 45 26 72 2D", "C40 symbols_left 3, process_p 2, backtracks" }, + /* 45*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGHIJKª", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 80 5F 93 82 BB B2 FE 11 5C 60 32 A6 DE FC 7B 30 F1 03 56", "C40 symbols_left 1, process_p 0" }, + /* 46*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGHIJKê", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 80 5F 93 82 BB DB FE 78 43 69 3C C2 FE F5 2E 1B 4F B6 04", "C40 symbols_left 1, process_p 0" }, + /* 47*/ { GS1_MODE, 0, -1, -1, -1, "[10]ABCDEFGH[10]ABc", 0, 0, 12, 26, 1, "E8 8C E6 59 E9 6D 24 80 4A A9 8D FE 42 43 64 81 83 B4 8F 6B 95 F6 CE A6 3C 5C 77 86 08 50", "C40 symbols_left 3, process_p 1, backtracks" }, + /* 48*/ { GS1_MODE, 0, -1, -1, GS1_GS_SEPARATOR, "[10]ABCDEFGH[10]ABc", 0, 0, 12, 26, 1, "E8 8C E6 59 E9 6D 24 80 49 B6 0D FE 42 43 64 81 79 E4 20 33 76 5C C7 23 E6 C5 FA 4C FF 88", "C40 symbols_left 3, process_p 1, backtracks" }, + /* 49*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdef", 0, 0, 12, 12, 1, "EF 59 E9 6D 24 E2 CC D9 B4 55 E2 6A", "TEX symbols_left 0, process_p 0" }, + /* 50*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdefg", 0, 0, 14, 14, 1, "EF 59 E9 6D 24 FE 68 81 A9 65 CD 3A A2 E9 E0 B7 E1 E5", "TEX symbols_left 3, process_p 1" }, + /* 51*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdefgh", 0, 0, 14, 14, 1, "EF 59 E9 6D 24 FE 68 69 68 36 28 3C 85 5A E9 D4 49 9A", "TEX symbols_left 3, process_p 2" }, + /* 52*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdefghi", 0, 0, 14, 14, 1, "EF 59 E9 6D 24 80 5F FE DA BF FA 16 71 15 22 4D E3 F3", "TEX symbols_left 1, process_p 0" }, + /* 53*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdef\001g", 0, 0, 14, 14, 1, "EF 59 E9 6D 24 00 3D FE 86 3B 2F 83 51 99 C0 A1 EC DD", "TEX symbols_left 1, process_p 0" }, + /* 54*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdefg\001", 0, 0, 14, 14, 1, "EF 59 E9 6D 24 7D 02 FE CF C2 FD EA DA F8 6C 56 15 9E", "TEX symbols_left 1, process_p 0" }, + /* 55*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdefg\001h", 0, 0, 14, 14, 1, "EF 59 E9 6D 24 7D 02 69 7A 9B EB A4 5E DE 99 25 01 8C", "TEX symbols_left 1, process_p 1" }, + /* 56*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdefgh\001", 0, 0, 8, 32, 1, "EF 59 E9 6D 24 FE 68 69 02 81 EB 84 25 32 6E 1B 5A FB 1D 25 4A", "TEX symbols_left 1, process_p 1, backtracks" }, + /* 57*/ { UNICODE_MODE, 0, -1, DM_SQUARE, -1, "abcdefgh\001", 0, 0, 16, 16, 1, "EF 59 E9 6D 24 FE 68 69 02 81 FB 93 93 FD 1E 3B BA 1D 16 4D 59 41 EC B9", "TEX symbols_left 1, process_p 1, backtracks" }, + /* 58*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdefgh\001i", 0, 0, 8, 32, 1, "EF 59 E9 6D 24 FE 68 69 02 6A 31 35 48 9B 93 6E 15 BB 02 9D F4", "TEX symbols_left 3, process_p 2, backtracks" }, + /* 59*/ { UNICODE_MODE, 0, -1, DM_SQUARE, -1, "abcdefgh\001i", 0, 0, 16, 16, 1, "EF 59 E9 6D 24 FE 68 69 02 6A 81 93 DE D7 EC 9B 7D 72 9C 68 B8 6E CF 31", "TEX symbols_left 3, process_p 2, backtracks" }, + /* 60*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdefghi\001", 0, 0, 8, 32, 1, "EF 59 E9 6D 24 80 5F FE 02 81 4D AB 30 86 CD D1 9D F3 15 F5 B1", "Switches to ASC for last char" }, + /* 61*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdefgh\001i\001", 0, 0, 16, 16, 1, "EF 59 E9 6D 24 FE 68 69 02 6A 02 81 32 55 EC 2E A7 AE 69 41 A6 1F 09 8F", "TEX symbols_left 1, process_p 1, backtracks 2" }, + /* 62*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdefJg", 0, 0, 14, 14, 1, "EF 59 E9 6D 24 0E 25 FE 01 75 0D 9C 9C BE 40 88 BF 09", "TEX symbols_left 1, process_p 0" }, + /* 63*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdefgJ", 0, 0, 14, 14, 1, "EF 59 E9 6D 24 7D 5B FE 6E 92 FE 83 42 F1 0B 0E 43 24", "TEX symbols_left 1, process_p 0" }, + /* 64*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdefgJh", 0, 0, 14, 14, 1, "EF 59 E9 6D 24 7D 5B 69 DB CB E8 CD C6 D7 FE 7D 57 36", "TEX symbols_left 1, process_p 1" }, + /* 65*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdefghJ", 0, 0, 8, 32, 1, "EF 59 E9 6D 24 FE 68 69 4B 81 15 8A 35 57 7F 33 B3 48 01 E0 BD", "TEX symbols_left 1, process_p 1, backtracks" }, + /* 66*/ { UNICODE_MODE, 0, -1, DM_SQUARE, -1, "abcdefghJ", 0, 0, 16, 16, 1, "EF 59 E9 6D 24 FE 68 69 4B 81 FB 93 5B D4 D2 8B EE 85 F2 3E 3F 8E E5 04", "TEX symbols_left 1, process_p 1, backtracks" }, + /* 67*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdefghJi", 0, 0, 8, 32, 1, "EF 59 E9 6D 24 FE 68 69 4B 6A CF 3B 58 FE 82 46 FC 08 1E 58 03", "TEX symbols_left 3, process_p 2, backtracks" }, + /* 68*/ { UNICODE_MODE, 0, -1, DM_SQUARE, -1, "abcdefghJi", 0, 0, 16, 16, 1, "EF 59 E9 6D 24 FE 68 69 4B 6A 81 93 16 FE 20 2B 29 EA 78 1B DE A1 C6 8C", "TEX symbols_left 3, process_p 2, backtracks" }, + /* 69*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdefghiJ", 0, 0, 8, 32, 1, "EF 59 E9 6D 24 80 5F FE 4B 81 B3 A5 20 E3 DC F9 74 40 09 30 46", "Switches to ASC for last char" }, + /* 70*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdefghijkÊ", 0, 0, 16, 16, 1, "EF 59 E9 6D 24 80 5F 93 82 BB DB FE 3E C8 EC 73 58 A7 42 46 10 49 25 99", "TEX symbols_left 1, process_p 0" }, + /* 71*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdefghijkª", 0, 0, 16, 16, 1, "EF 59 E9 6D 24 80 5F 93 82 BB B2 FE 57 D7 E5 7D 3C 87 4B 13 3B F7 90 CB", "TEX symbols_left 1, process_p 0" }, + /* 72*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdefghijkê", 0, 0, 16, 16, 1, "EF 59 E9 6D 24 80 5F FE 6B 6C EB 6B 59 43 1A B1 96 F4 FF C5 B5 08 AE 2F", "TEX symbols_left 3, process_p 2, backtracks" }, + /* 73*/ { GS1_MODE, 0, -1, -1, -1, "[10]abcdefgh[10]abC", 0, 0, 12, 26, 1, "E8 8C EF 59 E9 6D 24 80 4A A9 8D FE 62 63 44 81 88 DC 73 33 70 A1 83 EA 50 CB 4E 17 90 DB", "TEX symbols left 3, process_p 1, backtracks" }, + /* 74*/ { GS1_MODE, 0, -1, -1, GS1_GS_SEPARATOR, "[10]abcdefgh[10]abC", 0, 0, 12, 26, 1, "E8 8C EF 59 E9 6D 24 80 49 B6 0D FE 62 63 44 81 72 8C DC 6B 93 0B 8A 6F 8A 52 C3 DD 67 03", "TEX symbols left 3, process_p 1, backtracks" }, + /* 75*/ { UNICODE_MODE, 0, -1, -1, -1, "\015*>\015*>", 0, 0, 12, 12, 1, "EE 00 2B 00 2B 83 3B 0A CE 32 36 65", "X12 symbols_left 0, process_p 0" }, + /* 76*/ { UNICODE_MODE, 0, -1, -1, -1, "\015*>\015*>\015", 0, 0, 14, 14, 1, "EE 00 2B 00 2B FE 0E 81 C0 6C BF 37 F6 D6 48 71 E2 38", "Switches to ASC for last char" }, + /* 77*/ { UNICODE_MODE, 0, -1, -1, -1, "\015*>\015*>\015*", 0, 0, 14, 14, 1, "EE 00 2B 00 2B FE 0E 2B BD DB 7C 8F 14 46 F1 9F 94 BC", "Switches to ASC for last 2 chars" }, + /* 78*/ { UNICODE_MODE, 0, -1, -1, -1, "\015*>\015*>\015*>", 0, 0, 14, 14, 1, "EE 00 2B 00 2B 00 2B FE BF 81 70 74 1C 65 10 0C 06 38", "X12 symbols_left 1, process_p 0, ASC unlatch at end" }, + /* 79*/ { UNICODE_MODE, 0, -1, -1, -1, "\015*>\015*>\015*>\015", 0, 0, 14, 14, 1, "EE 00 2B 00 2B 00 2B 0E 1C DB D8 26 3E EC CF 9C C3 4A", "X12 symbols_left 1, process_p 1, ASC no latch at end" }, + /* 80*/ { UNICODE_MODE, 0, -1, -1, -1, "\015*>\015*>\015*>\015*", 0, 0, 8, 32, 1, "EE 00 2B 00 2B 00 2B FE 0E 2B 65 37 5F 2F F3 96 BE 9A 03 55 68", "X12 symbols_left 3, process_p 2, ASC last 2 chars" }, + /* 81*/ { UNICODE_MODE, 0, -1, -1, -1, "\015*>\015*>\015*>\015*>", 0, 0, 8, 32, 1, "EE 00 2B 00 2B 00 2B 00 2B FE 6E 95 3A 10 58 4E 96 06 79 09 94", "X12 symbols_left 1, process_p 0, ASC unlatch at end" }, + /* 82*/ { UNICODE_MODE, 0, -1, -1, -1, "@A1^B2?C", 0, 0, 14, 14, 1, "F0 00 1C 5E 0B 2F C3 81 2D 71 45 13 9B FF A1 B0 0B E2", "EDIFACT symbols_left 1, process_p 0" }, + /* 83*/ { UNICODE_MODE, 0, -1, -1, -1, "@A1^B2?C3", 0, 0, 14, 14, 1, "F0 00 1C 5E 0B 2F C3 34 81 E8 6C 9E CE 12 CB F5 58 3F", "EDIFACT symbols_left 1, process_p 1" }, + /* 84*/ { UNICODE_MODE, 0, -1, -1, -1, "@A1^B2?C3+", 0, 0, 8, 32, 1, "F0 00 1C 5E 0B 2F C3 CE B7 C0 33 C6 81 E1 63 6E 5E B4 27 30 C9", "EDIFACT symbols_left 3, process_p 2" }, + /* 85*/ { UNICODE_MODE, 0, -1, -1, -1, "@A1^B2?C3+D", 0, 0, 8, 32, 1, "F0 00 1C 5E 0B 2F C3 CE B1 1F 4D E1 79 04 2B BC 05 6C 38 73 39", "EDIFACT symbols_left 3, process_p 3" }, + /* 86*/ { UNICODE_MODE, 0, -1, -1, -1, "@A1^B2?C3+D4", 0, 0, 8, 32, 1, "F0 00 1C 5E 0B 2F C3 CE B1 34 F4 EC B3 DC 03 A3 1F B5 86 C3 F7", "EDIFACT symbols_left 0, process_p 0" }, + /* 87*/ { UNICODE_MODE, 0, -1, -1, -1, "@A1^B2?C3+D4=", 0, 0, 16, 16, 1, "F0 00 1C 5E 0B 2F C3 CE B1 34 3E 81 42 96 43 6E 92 0D A9 B1 65 3C CF 9B", "EDIFACT symbols_left 2, process_p 1" }, + /* 88*/ { UNICODE_MODE, 0, -1, -1, -1, "@A1^B2?C3+D4=E", 0, 0, 16, 16, 1, "F0 00 1C 5E 0B 2F C3 CE B1 34 3E 46 AD 8C F2 D8 5D AF F3 65 08 1F E3 A5", "EDIFACT symbols_left 2, process_p 2" }, + /* 89*/ { DATA_MODE, 0, -1, -1, -1, "\377\376", 0, 0, 12, 12, 1, "EB 80 EB 7F 81 6F A8 0F 21 6F 5F 88", "FN4 A7F FN4 A7E, 1 pad" }, + /* 90*/ { DATA_MODE, 0, -1, -1, -1, "\377\376\375", 0, 0, 12, 12, 1, "E7 2C C0 55 E9 67 45 8A D2 7E A9 23", "BAS BFF BFE BFD, no padding" }, + /* 91*/ { DATA_MODE, 3, -1, -1, -1, "\101\102\103\104\300\105\310", 0, 3, 16, 16, 1, "F1 04 E7 5E 2D C4 5B F1 03 1D 36 81 64 0E C0 77 9A 18 52 B2 F9 F0 04 39", "ECI 4 BAS B41 B42 B43 B44 BC0 B45 BC8" }, + /* 92*/ { UNICODE_MODE, 26, -1, -1, -1, "ABCDÀEÈ", 0, 26, 12, 26, 1, "F1 1B E7 60 2D C4 5B F1 06 58 B3 C7 21 81 57 ED 3D C0 12 2E 6C 80 58 CC 2C 05 0D 31 FC 2D", "ECI 27 BAS B41 B42 B43 B44 BC3 B80 B45 BC3 B88" }, + /* 93*/ { UNICODE_MODE, 0, -1, -1, -1, "β", ZINT_WARN_USES_ECI, 9, 12, 12, 1, "Warning F1 0A EB 63 81 41 56 DA C0 3D 2D CC", "ECI 10 FN4 A62" }, + /* 94*/ { UNICODE_MODE, 127, -1, -1, -1, "A", 0, 127, 12, 12, 1, "F1 80 01 42 81 14 A2 86 07 F5 27 30", "ECI 128 A41" }, + /* 95*/ { UNICODE_MODE, 16382, -1, -1, -1, "A", 0, 16382, 12, 12, 1, "F1 BF FE 42 81 29 57 AA A0 92 B2 45", "ECI 16383 A41" }, + /* 96*/ { UNICODE_MODE, 810899, -1, -1, -1, "A", 0, 810899, 12, 12, 1, "F1 CC 51 05 42 BB A5 A7 8A C6 6E 0F", "ECI 810900 A41" }, + /* 97*/ { UNICODE_MODE | ESCAPE_MODE, -1, -1, -1, -1, "[)>\\R05\\GA\\R\\E", 0, 0, 10, 10, 1, "EC 42 81 5D 17 49 F6 B6", "Macro05 A41" }, + /* 98*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGHIJKLM*", 0, 0, 16, 16, 1, "EE 59 E9 6D 24 80 5F 93 9A FE 4E 2B 09 FF 50 A2 83 BE 32 E1 2F 17 1E F3", "C40 == X12, p_r_6_2_1 true" }, }; int data_size = ARRAY_SIZE(data); int i, length, ret; @@ -665,15 +673,15 @@ static void test_input(int index, int generate, int debug) { symbol->debug = ZINT_DEBUG_TEST; // Needed to get codeword dump in errtxt - length = testUtilSetSymbol(symbol, BARCODE_DATAMATRIX, data[i].input_mode, data[i].eci, -1 /*option_1*/, data[i].option_2, data[i].option_3, -1 /*output_options*/, data[i].data, -1, debug); + length = testUtilSetSymbol(symbol, BARCODE_DATAMATRIX, data[i].input_mode, data[i].eci, -1 /*option_1*/, data[i].option_2, data[i].option_3, data[i].output_options, data[i].data, -1, debug); ret = ZBarcode_Encode(symbol, (unsigned char *) data[i].data, length); assert_equal(ret, data[i].ret, "i:%d ZBarcode_Encode ret %d != %d (%s)\n", i, ret, data[i].ret, symbol->errtxt); if (generate) { - printf(" /*%3d*/ { %s, %d, %d, %s, \"%s\", %s, %d, %d, %d, %d, \"%s\", \"%s\" },\n", + printf(" /*%3d*/ { %s, %d, %d, %s, %s, \"%s\", %s, %d, %d, %d, %d, \"%s\", \"%s\" },\n", i, testUtilInputModeName(data[i].input_mode), data[i].eci, data[i].option_2, testUtilOption3Name(data[i].option_3), - testUtilEscape(data[i].data, length, escaped, sizeof(escaped)), + testUtilOutputOptionsName(data[i].output_options), testUtilEscape(data[i].data, length, escaped, sizeof(escaped)), testUtilErrorName(data[i].ret), ret < ZINT_ERROR ? symbol->eci : -1, symbol->rows, symbol->width, data[i].bwipp_cmp, symbol->errtxt, data[i].comment); } else { if (ret < ZINT_ERROR) { @@ -689,7 +697,7 @@ static void test_input(int index, int generate, int debug) { if (debug & ZINT_DEBUG_TEST_PRINT) printf("i:%d %s not BWIPP compatible (%s)\n", i, testUtilBarcodeName(symbol->symbology), data[i].comment); } else { char modules_dump[8192]; - assert_notequal(testUtilModulesDump(symbol, modules_dump, sizeof(modules_dump)), -1, "i:%d testUtilModulesDump != -1\n", i); + assert_notequal(testUtilModulesDump(symbol, modules_dump, sizeof(modules_dump)), -1, "i:%d testUtilModulesDump == -1\n", i); ret = testUtilBwipp(i, symbol, -1, data[i].option_2, data[i].option_3, data[i].data, length, NULL, bwipp_buf, sizeof(bwipp_buf)); assert_zero(ret, "i:%d %s testUtilBwipp ret %d != 0\n", i, testUtilBarcodeName(symbol->symbology), ret); diff --git a/backend/tests/test_dotcode.c b/backend/tests/test_dotcode.c index a3fe3255..82b6072c 100644 --- a/backend/tests/test_dotcode.c +++ b/backend/tests/test_dotcode.c @@ -45,7 +45,8 @@ static void test_large(int index, int debug) { /* 1*/ { 200, '0', 2941, ZINT_ERROR_INVALID_OPTION }, /* 2*/ { 200, '9', 200, 0 }, // Changes a number of mask scores re pre-Rev. 4 version, but best score still the same (7) /* 3*/ { 201, '0', 2940, ZINT_ERROR_INVALID_OPTION }, - /* 4*/ { 30, '\001', 71, 0 }, // Codeword length 72, ECC length 39, for ND + 1 == 112 + /* 4*/ { 201, '0', 2974, ZINT_ERROR_INVALID_OPTION }, // Height > 200 also + /* 5*/ { 30, '\001', 71, 0 }, // Codeword length 72, ECC length 39, for ND + 1 == 112 }; int data_size = ARRAY_SIZE(data); int i, length, ret; @@ -81,6 +82,7 @@ static void test_options(int index, int debug) { int input_mode; int output_options; int option_2; + int option_3; char *data; int ret; @@ -89,16 +91,17 @@ static void test_options(int index, int debug) { }; // s/\/\*[ 0-9]*\*\//\=printf("\/*%3d*\/", line(".") - line("'<")) struct item data[] = { - /* 0*/ { -1, -1, -1, "1", 0, 9, 14 }, - /* 1*/ { -1, -1, -1, "1234567890", 0, 12, 19 }, - /* 2*/ { -1, -1, 19, "1234567890", 0, 12, 19 }, - /* 3*/ { -1, -1, 12, "1234567890", 0, 19, 12 }, - /* 4*/ { -1, -1, 5, "1234567890", 0, 44, 5 }, - /* 5*/ { -1, -1, 4, "1234567890", ZINT_ERROR_INVALID_OPTION, -1, -1 }, // Cols < 5 - /* 6*/ { -1, -1, 200, "1234567890", ZINT_ERROR_INVALID_OPTION, -1, -1 }, // Not enough data - height 3 too small - /* 7*/ { -1, -1, 200, "1234567890123456789012345678901234567890", 0, 5, 200 }, // Cols 200 max - /* 8*/ { -1, -1, 200, "12345678901234567890123456789012345678901234567890123456789012345678901234567890", 0, 7, 200 }, - /* 9*/ { -1, -1, 201, "12345678901234567890123456789012345678901234567890123456789012345678901234567890", ZINT_ERROR_INVALID_OPTION, -1, -1 }, + /* 0*/ { -1, -1, -1, -1, "1", 0, 9, 14 }, + /* 1*/ { -1, -1, -1, -1, "1234567890", 0, 12, 19 }, + /* 2*/ { -1, -1, 19, -1, "1234567890", 0, 12, 19 }, + /* 3*/ { -1, -1, 12, -1, "1234567890", 0, 19, 12 }, + /* 4*/ { -1, -1, 5, -1, "1234567890", 0, 44, 5 }, + /* 5*/ { -1, -1, 4, -1, "1234567890", ZINT_ERROR_INVALID_OPTION, -1, -1 }, // Cols < 5 + /* 6*/ { -1, -1, 200, -1, "1234567890", ZINT_ERROR_INVALID_OPTION, -1, -1 }, // Not enough data - height 3 too small + /* 7*/ { -1, -1, 200, -1, "1234567890123456789012345678901234567890", 0, 5, 200 }, // Cols 200 max + /* 8*/ { -1, -1, 200, -1, "12345678901234567890123456789012345678901234567890123456789012345678901234567890", 0, 7, 200 }, + /* 9*/ { -1, -1, 201, -1, "12345678901234567890123456789012345678901234567890123456789012345678901234567890", ZINT_ERROR_INVALID_OPTION, -1, -1 }, + /* 10*/ { -1, -1, -1, 10 << 8, "1", 0, 9, 14 }, // Mask > 8 + 1 ignored }; int data_size = ARRAY_SIZE(data); int i, length, ret; @@ -113,7 +116,7 @@ static void test_options(int index, int debug) { symbol = ZBarcode_Create(); assert_nonnull(symbol, "Symbol not created\n"); - length = testUtilSetSymbol(symbol, BARCODE_DOTCODE, data[i].input_mode, -1 /*eci*/, -1 /*option_1*/, data[i].option_2, -1, data[i].output_options, data[i].data, -1, debug); + length = testUtilSetSymbol(symbol, BARCODE_DOTCODE, data[i].input_mode, -1 /*eci*/, -1 /*option_1*/, data[i].option_2, data[i].option_3, data[i].output_options, data[i].data, -1, debug); ret = ZBarcode_Encode(symbol, (unsigned char *) data[i].data, length); assert_equal(ret, data[i].ret, "i:%d ZBarcode_Encode ret %d != %d (%s)\n", i, ret, data[i].ret, symbol->errtxt); @@ -148,36 +151,37 @@ static void test_input(int index, int generate, int debug) { /* 4*/ { UNICODE_MODE, 899, "A", -1, 0, "6C 28 07 44 66 21", "" }, /* 5*/ { UNICODE_MODE, 12769, "A", -1, 0, "6C 28 70 49 66 21", "" }, /* 6*/ { UNICODE_MODE, 811799, "A", -1, 0, "6C 67 40 50 66 21", "" }, - /* 7*/ { UNICODE_MODE, -1, "\000", 1, 0, "65 40", "LatchA (0x65) NUL" }, - /* 8*/ { UNICODE_MODE, -1, "\010", -1, 0, "65 48", "LatchA (0x65) BS" }, - /* 9*/ { UNICODE_MODE, -1, "\011", -1, 0, "65 49", "Lead special; LatchA (0x65) HT" }, - /* 10*/ { UNICODE_MODE, -1, "\034", -1, 0, "65 5C", "Lead special; LatchA (0x65) FS" }, - /* 11*/ { UNICODE_MODE, -1, "\035", -1, 0, "65 5D", "Lead special; LatchA (0x65) GS" }, - /* 12*/ { UNICODE_MODE, -1, "\036", -1, 0, "65 5E", "Lead special; LatchA (0x65) RS" }, - /* 13*/ { UNICODE_MODE, -1, "\037", -1, 0, "65 5F", "LatchA (0x65) US" }, - /* 14*/ { UNICODE_MODE, -1, "\177", -1, 0, "66 5F", "ShiftB (0x66) DEL" }, - /* 15*/ { UNICODE_MODE, -1, "[)>\03605\035A\036\004", -1, 0, "6A 61 21", "[)>RS 05 GS A RS EOT; LatchB (0x6A) Macro97 (0x61) A" }, - /* 16*/ { UNICODE_MODE, -1, "[)>\03606\035\011\034\035\036\036\004", -1, 0, "6A 62 61 62 63 64", "[)>RS 06 GS HT FS GS RS RS EOT; LatchB (0x6A) Macro98 (0x62) HT FS GS RS" }, - /* 17*/ { UNICODE_MODE, -1, "[)>\03612\03512345\036\004", -1, 0, "6A 63 11 67 17 2D", "[)>RS 12 GS A RS EOT; LatchB (0x6A) Macro99 (0x63) 1 2xShiftC (0x67) 23 45" }, - /* 18*/ { UNICODE_MODE, -1, "[)>\03601Blah\004", -1, 0, "6A 64 10 11 22 4C 41 48", "[)>RS 01 Blah EOT; LatchB (0x6A) Macro100 (0x64) 0 1 B l a h" }, - /* 19*/ { UNICODE_MODE, -1, "[)>\03605\035A\004", -1, 0, "6A 64 10 15 63 21", "[)>RS 05 GS A EOT; LatchB (0x6A) Macro100 (0x64) 0 5 HT A" }, - /* 20*/ { UNICODE_MODE, -1, "[)>\03606A\004", -1, 0, "6A 64 10 16 21", "[)>RS 06 A EOT; LatchB (0x6A) Macro100 (0x64) 0 6 A" }, - /* 21*/ { UNICODE_MODE, -1, "[)>\036991\036\004", -1, 0, "6A 64 19 19 11 64", "[)>RS 99 1 RS EOT; LatchB (0x6A) Macro100 (0x64) 9 9 1 RS" }, - /* 22*/ { UNICODE_MODE, -1, "1712345610", -1, 0, "6B 64 0C 22 38", "FNC1 (0x6B) 17..10 12 34 56" }, - /* 23*/ { GS1_MODE, -1, "[17]123456[10]123", -1, ZINT_WARN_NONCOMPLIANT, "64 0C 22 38 0C 66 13", "17..10 12 34 56 12 ShiftB (0x66) 3" }, - /* 24*/ { GS1_MODE, -1, "[90]ABC[90]abc[90]123", -1, 0, "5A 6A 21 22 23 6B 19 10 41 42 43 6B 19 67 01 17", "90 LatchB (0x6A) A B C FNC1 (0x6B) 9 0 a b c FNC1 (0x6B) 9 2xShitfC (0x67) 01 23" }, - /* 25*/ { GS1_MODE | GS1PARENS_MODE, -1, "(90)ABC(90)abc(90)123", -1, 0, "5A 6A 21 22 23 6B 19 10 41 42 43 6B 19 67 01 17", "90 LatchB (0x6A) A B C FNC1 (0x6B) 9 0 a b c FNC1 (0x6B) 9 2xShitfC (0x67) 01 23" }, - /* 26*/ { UNICODE_MODE, -1, "99aA[{00\000", 9, 0, "6B 63 6A 41 21 3B 5B 10 10 65 40", "FNC1 (0x6B) 99 LatchB (0x6A) a A [ { 0 0 ShiftA (0x65) NUL" }, - /* 27*/ { UNICODE_MODE, -1, "\015\012", -1, 0, "66 60", "ShiftB (0x66) CR/LF" }, - /* 28*/ { UNICODE_MODE, -1, "A\015\012", -1, 0, "67 21 60", "2xShiftB (0x67) A CR/LF" }, - /* 29*/ { UNICODE_MODE, -1, "\015\015\012", -1, 0, "65 4D 4D 4A", "LatchA (0x65) CR CR LF" }, - /* 30*/ { UNICODE_MODE, -1, "ABCDE12345678", -1, 0, "6A 21 22 23 24 25 69 0C 22 38 4E", "LatchB (0x6A) A B C D 4xShiftC 12 34 56 78" }, - /* 31*/ { UNICODE_MODE, -1, "\000ABCD1234567890", 15, 0, "65 40 21 22 23 24 6A 0C 22 38 4E 5A", "LatchA (0x65) NULL A B C D LatchC (0x6A) 12 34 56 78 90" }, - /* 32*/ { DATA_MODE, -1, "\141\142\143\144\145\200\201\202\203\204\377", -1, 0, "6A 41 42 43 44 45 70 31 5A 35 21 5A 5F 02 31", "LatchB (0x6A) a b c d e BinaryLatch (0x70) 0x80 0x81 0x82 0x83 0x84 0xFF" }, - /* 33*/ { DATA_MODE, -1, "\200\061\062\240\063\064\201\202\065\066", -1, 0, "6E 40 0C 6F 00 22 70 03 10 42 6E 15 16", "UpperShiftA (0x6E) NUL 12 UpperShiftB (0x6F) SP 34 BinaryLatch (0x70) 0x81 0x82 TermB (0x6E) 5 6" }, - /* 34*/ { DATA_MODE, -1, "\200\201\202\203\061\062\063\064", -1, 0, "70 13 56 0A 59 2C 67 0C 22", "BinaryLatch (0x70) 0x80 0x81 0x82 0x83 Intr2xShiftC (0x67) 12 3" }, - /* 35*/ { DATA_MODE, -1, "\001\200\201\202\203\204\200\201\202\203\204", -1, 0, "65 41 70 31 5A 35 21 5A 5F 31 5A 35 21 5A 5F", "LatchA (0x65) SOH BinaryLatch (0x70) 0x80 0x81 0x82 0x83 0x80 0x81 0x82 0x83" }, - /* 36*/ { UNICODE_MODE, -1, "\001abc\011\015\012\036", -1, 0, "65 41 65 41 42 43 61 60 64", "LatchA (0x65) SOH 6xShiftB (0x65) a b c HT CR/LF RS" }, + /* 7*/ { UNICODE_MODE, 811800, "A", -1, ZINT_ERROR_INVALID_OPTION, "", "" }, + /* 8*/ { UNICODE_MODE, -1, "\000", 1, 0, "65 40", "LatchA (0x65) NUL" }, + /* 9*/ { UNICODE_MODE, -1, "\010", -1, 0, "65 48", "LatchA (0x65) BS" }, + /* 10*/ { UNICODE_MODE, -1, "\011", -1, 0, "65 49", "Lead special; LatchA (0x65) HT" }, + /* 11*/ { UNICODE_MODE, -1, "\034", -1, 0, "65 5C", "Lead special; LatchA (0x65) FS" }, + /* 12*/ { UNICODE_MODE, -1, "\035", -1, 0, "65 5D", "Lead special; LatchA (0x65) GS" }, + /* 13*/ { UNICODE_MODE, -1, "\036", -1, 0, "65 5E", "Lead special; LatchA (0x65) RS" }, + /* 14*/ { UNICODE_MODE, -1, "\037", -1, 0, "65 5F", "LatchA (0x65) US" }, + /* 15*/ { UNICODE_MODE, -1, "\177", -1, 0, "66 5F", "ShiftB (0x66) DEL" }, + /* 16*/ { UNICODE_MODE, -1, "[)>\03605\035A\036\004", -1, 0, "6A 61 21", "[)>RS 05 GS A RS EOT; LatchB (0x6A) Macro97 (0x61) A" }, + /* 17*/ { UNICODE_MODE, -1, "[)>\03606\035\011\034\035\036\036\004", -1, 0, "6A 62 61 62 63 64", "[)>RS 06 GS HT FS GS RS RS EOT; LatchB (0x6A) Macro98 (0x62) HT FS GS RS" }, + /* 18*/ { UNICODE_MODE, -1, "[)>\03612\03512345\036\004", -1, 0, "6A 63 11 67 17 2D", "[)>RS 12 GS A RS EOT; LatchB (0x6A) Macro99 (0x63) 1 2xShiftC (0x67) 23 45" }, + /* 19*/ { UNICODE_MODE, -1, "[)>\03601Blah\004", -1, 0, "6A 64 10 11 22 4C 41 48", "[)>RS 01 Blah EOT; LatchB (0x6A) Macro100 (0x64) 0 1 B l a h" }, + /* 20*/ { UNICODE_MODE, -1, "[)>\03605\035A\004", -1, 0, "6A 64 10 15 63 21", "[)>RS 05 GS A EOT; LatchB (0x6A) Macro100 (0x64) 0 5 HT A" }, + /* 21*/ { UNICODE_MODE, -1, "[)>\03606A\004", -1, 0, "6A 64 10 16 21", "[)>RS 06 A EOT; LatchB (0x6A) Macro100 (0x64) 0 6 A" }, + /* 22*/ { UNICODE_MODE, -1, "[)>\036991\036\004", -1, 0, "6A 64 19 19 11 64", "[)>RS 99 1 RS EOT; LatchB (0x6A) Macro100 (0x64) 9 9 1 RS" }, + /* 23*/ { UNICODE_MODE, -1, "1712345610", -1, 0, "6B 64 0C 22 38", "FNC1 (0x6B) 17..10 12 34 56" }, + /* 24*/ { GS1_MODE, -1, "[17]123456[10]123", -1, ZINT_WARN_NONCOMPLIANT, "64 0C 22 38 0C 66 13", "17..10 12 34 56 12 ShiftB (0x66) 3" }, + /* 25*/ { GS1_MODE, -1, "[90]ABC[90]abc[90]123", -1, 0, "5A 6A 21 22 23 6B 19 10 41 42 43 6B 19 67 01 17", "90 LatchB (0x6A) A B C FNC1 (0x6B) 9 0 a b c FNC1 (0x6B) 9 2xShitfC (0x67) 01 23" }, + /* 26*/ { GS1_MODE | GS1PARENS_MODE, -1, "(90)ABC(90)abc(90)123", -1, 0, "5A 6A 21 22 23 6B 19 10 41 42 43 6B 19 67 01 17", "90 LatchB (0x6A) A B C FNC1 (0x6B) 9 0 a b c FNC1 (0x6B) 9 2xShitfC (0x67) 01 23" }, + /* 27*/ { UNICODE_MODE, -1, "99aA[{00\000", 9, 0, "6B 63 6A 41 21 3B 5B 10 10 65 40", "FNC1 (0x6B) 99 LatchB (0x6A) a A [ { 0 0 ShiftA (0x65) NUL" }, + /* 28*/ { UNICODE_MODE, -1, "\015\012", -1, 0, "66 60", "ShiftB (0x66) CR/LF" }, + /* 29*/ { UNICODE_MODE, -1, "A\015\012", -1, 0, "67 21 60", "2xShiftB (0x67) A CR/LF" }, + /* 30*/ { UNICODE_MODE, -1, "\015\015\012", -1, 0, "65 4D 4D 4A", "LatchA (0x65) CR CR LF" }, + /* 31*/ { UNICODE_MODE, -1, "ABCDE12345678", -1, 0, "6A 21 22 23 24 25 69 0C 22 38 4E", "LatchB (0x6A) A B C D 4xShiftC 12 34 56 78" }, + /* 32*/ { UNICODE_MODE, -1, "\000ABCD1234567890", 15, 0, "65 40 21 22 23 24 6A 0C 22 38 4E 5A", "LatchA (0x65) NULL A B C D LatchC (0x6A) 12 34 56 78 90" }, + /* 33*/ { DATA_MODE, -1, "\141\142\143\144\145\200\201\202\203\204\377", -1, 0, "6A 41 42 43 44 45 70 31 5A 35 21 5A 5F 02 31", "LatchB (0x6A) a b c d e BinaryLatch (0x70) 0x80 0x81 0x82 0x83 0x84 0xFF" }, + /* 34*/ { DATA_MODE, -1, "\200\061\062\240\063\064\201\202\065\066", -1, 0, "6E 40 0C 6F 00 22 70 03 10 42 6E 15 16", "UpperShiftA (0x6E) NUL 12 UpperShiftB (0x6F) SP 34 BinaryLatch (0x70) 0x81 0x82 TermB (0x6E) 5 6" }, + /* 35*/ { DATA_MODE, -1, "\200\201\202\203\061\062\063\064", -1, 0, "70 13 56 0A 59 2C 67 0C 22", "BinaryLatch (0x70) 0x80 0x81 0x82 0x83 Intr2xShiftC (0x67) 12 3" }, + /* 36*/ { DATA_MODE, -1, "\001\200\201\202\203\204\200\201\202\203\204", -1, 0, "65 41 70 31 5A 35 21 5A 5F 31 5A 35 21 5A 5F", "LatchA (0x65) SOH BinaryLatch (0x70) 0x80 0x81 0x82 0x83 0x80 0x81 0x82 0x83" }, + /* 37*/ { UNICODE_MODE, -1, "\001abc\011\015\012\036", -1, 0, "65 41 65 41 42 43 61 60 64", "LatchA (0x65) SOH 6xShiftB (0x65) a b c HT CR/LF RS" }, }; int data_size = ARRAY_SIZE(data); int i, length, ret; @@ -728,6 +732,178 @@ static void test_encode(int index, int generate, int debug) { "00010001010001010000000101000100010001010000010000010100010100000100010101010001000101000000010100010001010100010000010100000101000100010100000101010000000101000001010100010100010001000101000001010001" "10100010001010101000000010001000001010001010001000001010100010000000101010001010000010101010000000101000100010100010100000100010100010001010100000001010101000001010000000001000101000101010000010101010" }, + /* 34*/ { UNICODE_MODE, 19, -1, "4", -1, 0, 6, 19, 1, "Mask 1 selected", + "1010100000101000101" + "0100000000010001010" + "0010101010000000000" + "0000010100000100000" + "1000100010001010001" + "0001010101010101010" + }, + /* 35*/ { UNICODE_MODE, 19, 3 << 8, "4", -1, 0, 6, 19, 0, "Mask 2 specified, unlit right edge mask; BWIPP automatically primes mask", + "1010101010000000100" + "0000000101000100010" + "1010100000001010100" + "0000010101010000000" + "1000001010100010100" + "0101000100010001010" + }, + /* 36*/ { UNICODE_MODE, 19, 7 << 8, "4", -1, 0, 6, 19, 1, "Mask 2' specified", + "1010101010000000101" + "0000000101000100010" + "1010100000001010100" + "0000010101010000000" + "1000001010100010101" + "0101000100010001010" + }, + /* 37*/ { GS1_MODE, -1, -1, "[10]12[20]12", -1, 0, 12, 17, 1, "Code Set C with FNC1", + "10100000001000001" + "00010100010101010" + "10001000100000001" + "01010100000101000" + "10000010000010001" + "01010001010100010" + "00001010100000001" + "00000101010001010" + "10101000001010001" + "01010101000101010" + "10000010100000101" + "01000100010101010" + }, + /* 38*/ { UNICODE_MODE, -1, -1, "1234\011\034\035\036", -1, 0, 14, 21, 1, "Code Set B HT FS GS RS", + "100010001000001010101" + "010001000001000001000" + "100010100010101010001" + "010100000000010100010" + "101000100010001000000" + "010000010000000001000" + "100000101010100000000" + "000101010101010000000" + "001000001010101010101" + "000000000100010001010" + "101010000000000000101" + "000101010101000101010" + "001010101000101010001" + "010101010001000101000" + }, + /* 39*/ { UNICODE_MODE, 17, -1, "abcd\015\012", -1, 0, 14, 17, 1, "Code Set B CRLF", + "00001000001000101" + "01000101010001000" + "10100000100010101" + "01000001010000010" + "00100010101000101" + "01010000010101000" + "10101010000010001" + "01000001000100010" + "00001010101010101" + "00000100010100010" + "00101010000000000" + "00010100010000000" + "10100000001010000" + "01010001000101000" + }, + /* 40*/ { DATA_MODE, -1, -1, "\101\102\103\104\105\106\107\200\101\102\240\101", -1, 0, 18, 27, 1, "Code Set B Upper Shift A Upper Shift B", + "101010100000101000101000001" + "010100010101000100010101000" + "000010001010100000101010101" + "010100010100000001010101000" + "001010000010001010101000101" + "000001000001010101000000010" + "101000101010100000001000001" + "000101000001010101010100010" + "001010101000101010100010101" + "000101010001000100010001010" + "000000001000100000000000001" + "010000000000010100000100010" + "101010101010101010101010101" + "000101010001000100010101010" + "100000000000100000000010101" + "000000010100010000000100010" + "100010101000000010001000001" + "010001000100000101000001010" + }, + /* 41*/ { UNICODE_MODE, -1, -1, "ABCDEF\001G1234H", -1, 0, 16, 25, 1, "Code Set A 4x Shift C", + "0010101010100000100000101" + "0000000100010101000001000" + "1000100000101000100000101" + "0101000001010100000101010" + "0000000000101010001010000" + "0100000000010101010100000" + "0010101010000000101010101" + "0100010101000000010100000" + "1010001000100010001000101" + "0101010001010000000001010" + "0000001010100010001010101" + "0001000000000001010001000" + "0010100000101010100000000" + "0101010100000100010100010" + "1010101010001000101000000" + "0000010100010101000101010" + }, + /* 42*/ { UNICODE_MODE, -1, -1, "ABCDEF\001ab\011\034\035\036\001A", -1, 0, 19, 28, 1, "Code Set A 6x Shift B HT FS GS RS", + "1000001010100010101010101010" + "0101000000010100010101010001" + "0010001010100000101000001010" + "0001000101000001010001010000" + "1000001010100000101010001000" + "0100010101010001000000010001" + "0000001010100010100010000010" + "0000010100000001010100010101" + "0000001010001010101000001010" + "0100010101010101000001010000" + "0010000000101000101000000010" + "0101000101000101000101000001" + "1000100000001010101000001000" + "0101000001010000010001010100" + "1010000000100010001010100010" + "0101010100000001000100010001" + "1010000010100000100000101000" + "0001010000010100000100010101" + "1010100010000000101010101010" + }, + /* 43*/ { UNICODE_MODE, -1, -1, "ABCDEF\001abcdefgA", -1, 0, 19, 28, 1, "Code Set A Latch B", + "1010001010100010101010101010" + "0100010101010000000100010001" + "1010000010100000100010101000" + "0001010001000001010100000001" + "0010001010100000000010101010" + "0101000000010100010101000001" + "0000101010100000001000001010" + "0000010101010000000100010101" + "0000101010100000101000001010" + "0001010100010001010000000101" + "1010000010100010100000001010" + "0101000101000000010001010001" + "1000100000001010101000001000" + "0101000001010000010100010001" + "1010000000100010001010100010" + "0101010100000001000100010001" + "1010000010100000100000101000" + "0001010000010100000100010101" + "1010100010000000101010101010" + }, + /* 44*/ { DATA_MODE, -1, -1, "\200\200\200\200\061\062\063\064\065\066\067\070\071\060\061\062\063\064\065\066\200", -1, 0, 20, 29, 1, "Binary Latch C", + "10101010000010100010101010001" + "01010001000101010001000000010" + "00001010101000101010001000001" + "00010100000001000101010100000" + "00100000101000100000000000101" + "00000001010101010100000101000" + "10101000001010000010101000100" + "01010100010000000101000000010" + "10101000101000001010100010100" + "00010101000101010001000101010" + "10000010101000100010101010001" + "01000001010100000001010001010" + "00001010101010101000000010001" + "00010100000000010000010101010" + "00101000100010001000101000001" + "00000100000101010101000000000" + "10000000000000001000000010101" + "01010001010001010000010101000" + "10000010100010000010001000101" + "01000100000100010001010101010" + }, }; int data_size = ARRAY_SIZE(data); int i, length, ret; diff --git a/backend/tests/test_gs1.c b/backend/tests/test_gs1.c index 5e231fac..75a26065 100644 --- a/backend/tests/test_gs1.c +++ b/backend/tests/test_gs1.c @@ -361,977 +361,979 @@ static void test_gs1_verify(int index, int debug) { /* 3*/ { "[12345]12", ZINT_ERROR_INVALID_DATA, "" }, /* 4*/ { "[9999]1234", ZINT_ERROR_INVALID_DATA, "" }, /* 5*/ { "[[01]]1234", ZINT_ERROR_INVALID_DATA, "" }, - /* 6*/ { "[90]\n", ZINT_ERROR_INVALID_DATA, "" }, - /* 7*/ { "[90]\x7F", ZINT_ERROR_INVALID_DATA, "" }, - /* 8*/ { "[90]\x80", ZINT_ERROR_INVALID_DATA, "" }, - /* 9*/ { "[00]123456789012345678", ZINT_WARN_NONCOMPLIANT, "00123456789012345678" }, - /* 10*/ { "[00]123456789012345675", 0, "00123456789012345675" }, - /* 11*/ { "[00]12345678901234567", ZINT_ERROR_INVALID_DATA, "" }, - /* 12*/ { "[00]1234567890123456789", ZINT_ERROR_INVALID_DATA, "" }, - /* 13*/ { "[00]376104250021234569", 0, "00376104250021234569" }, - /* 14*/ { "[00]376104250021234568", ZINT_WARN_NONCOMPLIANT, "00376104250021234568" }, - /* 15*/ { "[01]12345678901234", ZINT_WARN_NONCOMPLIANT, "0112345678901234" }, - /* 16*/ { "[01]12345678901231", 0, "0112345678901231" }, - /* 17*/ { "[01]123456789012345", ZINT_ERROR_INVALID_DATA, "" }, - /* 18*/ { "[02]12345678901234", ZINT_WARN_NONCOMPLIANT, "0212345678901234" }, - /* 19*/ { "[02]12345678901231", 0, "0212345678901231" }, - /* 20*/ { "[02]1234567890123", ZINT_ERROR_INVALID_DATA, "" }, - /* 21*/ { "[03]12345678901234", ZINT_ERROR_INVALID_DATA, "" }, - /* 22*/ { "[04]1234", ZINT_ERROR_INVALID_DATA, "" }, - /* 23*/ { "[05]1234", ZINT_ERROR_INVALID_DATA, "" }, - /* 24*/ { "[06]1234", ZINT_ERROR_INVALID_DATA, "" }, - /* 25*/ { "[07]1234", ZINT_ERROR_INVALID_DATA, "" }, - /* 26*/ { "[08]1234", ZINT_ERROR_INVALID_DATA, "" }, - /* 27*/ { "[09]1234", ZINT_ERROR_INVALID_DATA, "" }, - /* 28*/ { "[10]ABCD123456", 0, "10ABCD123456" }, - /* 29*/ { "[10]123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, - /* 30*/ { "[100]1234", ZINT_ERROR_INVALID_DATA, "" }, - /* 31*/ { "[1000]1234", ZINT_ERROR_INVALID_DATA, "" }, - /* 32*/ { "[11]990102", 0, "11990102" }, - /* 33*/ { "[11]9901023", ZINT_ERROR_INVALID_DATA, "" }, - /* 34*/ { "[110]990102", ZINT_ERROR_INVALID_DATA, "" }, - /* 35*/ { "[1100]990102", ZINT_ERROR_INVALID_DATA, "" }, - /* 36*/ { "[12]000100", 0, "12000100" }, - /* 37*/ { "[12]00010", ZINT_ERROR_INVALID_DATA, "" }, - /* 38*/ { "[120]000100", ZINT_ERROR_INVALID_DATA, "" }, - /* 39*/ { "[1200]000100", ZINT_ERROR_INVALID_DATA, "" }, - /* 40*/ { "[13]991301", ZINT_WARN_NONCOMPLIANT, "13991301" }, - /* 41*/ { "[13]991201", 0, "13991201" }, - /* 42*/ { "[13]9913011", ZINT_ERROR_INVALID_DATA, "" }, - /* 43*/ { "[130]991301", ZINT_ERROR_INVALID_DATA, "" }, - /* 44*/ { "[1300]991301", ZINT_ERROR_INVALID_DATA, "" }, - /* 45*/ { "[14]991201", ZINT_ERROR_INVALID_DATA, "" }, - /* 46*/ { "[140]1234", ZINT_ERROR_INVALID_DATA, "" }, - /* 47*/ { "[1400]1234", ZINT_ERROR_INVALID_DATA, "" }, - /* 48*/ { "[15]021231", 0, "15021231" }, - /* 49*/ { "[15]02123", ZINT_ERROR_INVALID_DATA, "" }, - /* 50*/ { "[150]021231", ZINT_ERROR_INVALID_DATA, "" }, - /* 51*/ { "[1500]021231", ZINT_ERROR_INVALID_DATA, "" }, - /* 52*/ { "[16]000000", ZINT_WARN_NONCOMPLIANT, "16000000" }, - /* 53*/ { "[16]000100", 0, "16000100" }, - /* 54*/ { "[16]00000", ZINT_ERROR_INVALID_DATA, "" }, - /* 55*/ { "[160]000000", ZINT_ERROR_INVALID_DATA, "" }, - /* 56*/ { "[1600]000000", ZINT_ERROR_INVALID_DATA, "" }, - /* 57*/ { "[17]010200", 0, "17010200" }, - /* 58*/ { "[17]0102000", ZINT_ERROR_INVALID_DATA, "" }, - /* 59*/ { "[170]010200", ZINT_ERROR_INVALID_DATA, "" }, - /* 60*/ { "[1700]010200", ZINT_ERROR_INVALID_DATA, "" }, - /* 61*/ { "[18]1234", ZINT_ERROR_INVALID_DATA, "" }, - /* 62*/ { "[180]1234", ZINT_ERROR_INVALID_DATA, "" }, - /* 63*/ { "[1800]1234", ZINT_ERROR_INVALID_DATA, "" }, - /* 64*/ { "[19]1234", ZINT_ERROR_INVALID_DATA, "" }, - /* 65*/ { "[190]1234", ZINT_ERROR_INVALID_DATA, "" }, - /* 66*/ { "[1900]1234", ZINT_ERROR_INVALID_DATA, "" }, - /* 67*/ { "[20]12", 0, "2012" }, - /* 68*/ { "[20]1", ZINT_ERROR_INVALID_DATA, "" }, - /* 69*/ { "[200]12", ZINT_ERROR_INVALID_DATA, "" }, - /* 70*/ { "[2000]12", ZINT_ERROR_INVALID_DATA, "" }, - /* 71*/ { "[21]A12345678", 0, "21A12345678" }, - /* 72*/ { "[21]123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, - /* 73*/ { "[210]A12345678", ZINT_ERROR_INVALID_DATA, "" }, - /* 74*/ { "[2100]1234", ZINT_ERROR_INVALID_DATA, "" }, - /* 75*/ { "[22]abcdefghijklmnopqrst", 0, "22abcdefghijklmnopqrst" }, - /* 76*/ { "[22]abcdefghijklmnopqrstu", ZINT_ERROR_INVALID_DATA, "" }, - /* 77*/ { "[220]1234", ZINT_ERROR_INVALID_DATA, "" }, - /* 78*/ { "[2200]1234", ZINT_ERROR_INVALID_DATA, "" }, - /* 79*/ { "[23]1234", ZINT_ERROR_INVALID_DATA, "" }, - /* 80*/ { "[230]1234", ZINT_ERROR_INVALID_DATA, "" }, - /* 81*/ { "[2300]1234", ZINT_ERROR_INVALID_DATA, "" }, - /* 82*/ { "[235]1abcdefghijklmnopqrstuvwxyz0", 0, "2351abcdefghijklmnopqrstuvwxyz0" }, - /* 83*/ { "[235]1abcdefghijklmnopqrstuvwxyz01", ZINT_ERROR_INVALID_DATA, "" }, - /* 84*/ { "[24]1234", ZINT_ERROR_INVALID_DATA, "" }, - /* 85*/ { "[240]abcdefghijklmnopqrstuvwxyz1234", 0, "240abcdefghijklmnopqrstuvwxyz1234" }, - /* 86*/ { "[240]abcdefghijklmnopqrstuvwxyz12345", ZINT_ERROR_INVALID_DATA, "" }, - /* 87*/ { "[2400]1234", ZINT_ERROR_INVALID_DATA, "" }, - /* 88*/ { "[241]abcdefghijklmnopqrstuvwxyz1234", 0, "241abcdefghijklmnopqrstuvwxyz1234" }, - /* 89*/ { "[241]abcdefghijklmnopqrstuvwxyz12345", ZINT_ERROR_INVALID_DATA, "" }, - /* 90*/ { "[2410]1234", ZINT_ERROR_INVALID_DATA, "" }, - /* 91*/ { "[242]12345", 0, "24212345" }, - /* 92*/ { "[242]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /* 93*/ { "[2420]1234", ZINT_ERROR_INVALID_DATA, "" }, - /* 94*/ { "[243]abcdefghijklmnopqrst", 0, "243abcdefghijklmnopqrst" }, - /* 95*/ { "[243]abcdefghijklmnopqrstu", ZINT_ERROR_INVALID_DATA, "" }, - /* 96*/ { "[2430]1234", ZINT_ERROR_INVALID_DATA, "" }, - /* 97*/ { "[244]1234", ZINT_ERROR_INVALID_DATA, "" }, - /* 98*/ { "[2440]1234", ZINT_ERROR_INVALID_DATA, "" }, - /* 99*/ { "[249]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*100*/ { "[2490]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*101*/ { "[25]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*102*/ { "[250]abcdefghijklmnopqrstuvwxyz1234", 0, "250abcdefghijklmnopqrstuvwxyz1234" }, - /*103*/ { "[250]abcdefghijklmnopqrstuvwxyz12345", ZINT_ERROR_INVALID_DATA, "" }, - /*104*/ { "[2500]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*105*/ { "[251]abcdefghijklmnopqrstuvwxyz1234", 0, "251abcdefghijklmnopqrstuvwxyz1234" }, - /*106*/ { "[251]abcdefghijklmnopqrstuvwxyz12345", ZINT_ERROR_INVALID_DATA, "" }, - /*107*/ { "[2510]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*108*/ { "[252]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*109*/ { "[2520]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*110*/ { "[253]131313131313", ZINT_ERROR_INVALID_DATA, "" }, - /*111*/ { "[253]1313131313134", ZINT_WARN_NONCOMPLIANT, "2531313131313134" }, - /*112*/ { "[253]1313131313130", 0, "2531313131313130" }, - /*113*/ { "[253]131313131313412345678901234567", ZINT_WARN_NONCOMPLIANT, "253131313131313412345678901234567" }, - /*114*/ { "[253]131313131313012345678901234567", 0, "253131313131313012345678901234567" }, - /*115*/ { "[253]1313131313134123456789012345678", ZINT_ERROR_INVALID_DATA, "" }, - /*116*/ { "[2530]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*117*/ { "[254]abcdefghijklmnopqrst", 0, "254abcdefghijklmnopqrst" }, - /*118*/ { "[254]abcdefghijklmnopqrstu", ZINT_ERROR_INVALID_DATA, "" }, - /*119*/ { "[2540]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*120*/ { "[255]131313131313", ZINT_ERROR_INVALID_DATA, "" }, - /*121*/ { "[255]1313131313134", ZINT_WARN_NONCOMPLIANT, "2551313131313134" }, - /*122*/ { "[255]1313131313130", 0, "2551313131313130" }, - /*123*/ { "[255]1313131313134123456789012", ZINT_WARN_NONCOMPLIANT, "2551313131313134123456789012" }, - /*124*/ { "[255]1313131313130123456789012", 0, "2551313131313130123456789012" }, - /*125*/ { "[255]13131313131341234567890123", ZINT_ERROR_INVALID_DATA, "" }, - /*126*/ { "[2550]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*127*/ { "[256]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*128*/ { "[2560]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*129*/ { "[259]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*130*/ { "[2590]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*131*/ { "[26]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*132*/ { "[260]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*133*/ { "[2600]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*134*/ { "[27]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*135*/ { "[270]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*136*/ { "[2700]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*137*/ { "[28]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*138*/ { "[280]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*139*/ { "[2800]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*140*/ { "[29]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*141*/ { "[290]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*142*/ { "[2900]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*143*/ { "[30]12345678", 0, "3012345678" }, - /*144*/ { "[30]123456789", ZINT_ERROR_INVALID_DATA, "" }, - /*145*/ { "[300]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*146*/ { "[3000]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*147*/ { "[31]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*148*/ { "[310]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*149*/ { "[3100]123456", 0, "3100123456" }, - /*150*/ { "[3100]12345", ZINT_ERROR_INVALID_DATA, "" }, - /*151*/ { "[3101]123456", 0, "3101123456" }, - /*152*/ { "[3101]12345", ZINT_ERROR_INVALID_DATA, "" }, - /*153*/ { "[3105]123456", 0, "3105123456" }, - /*154*/ { "[3105]12345", ZINT_ERROR_INVALID_DATA, "" }, - /*155*/ { "[3106]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*156*/ { "[3109]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*157*/ { "[3110]123456", 0, "3110123456" }, - /*158*/ { "[3110]12345", ZINT_ERROR_INVALID_DATA, "" }, - /*159*/ { "[3115]123456", 0, "3115123456" }, - /*160*/ { "[3115]12345", ZINT_ERROR_INVALID_DATA, "" }, - /*161*/ { "[3116]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*162*/ { "[3119]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*163*/ { "[3120]123456", 0, "3120123456" }, - /*164*/ { "[3120]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /*165*/ { "[3125]123456", 0, "3125123456" }, - /*166*/ { "[3125]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /*167*/ { "[3126]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*168*/ { "[3129]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*169*/ { "[3130]123456", 0, "3130123456" }, - /*170*/ { "[3130]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /*171*/ { "[3135]123456", 0, "3135123456" }, - /*172*/ { "[3135]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /*173*/ { "[3136]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*174*/ { "[3139]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*175*/ { "[3140]123456", 0, "3140123456" }, - /*176*/ { "[3140]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /*177*/ { "[3145]123456", 0, "3145123456" }, - /*178*/ { "[3145]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /*179*/ { "[3146]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*180*/ { "[3149]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*181*/ { "[3150]123456", 0, "3150123456" }, - /*182*/ { "[3150]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /*183*/ { "[3155]123456", 0, "3155123456" }, - /*184*/ { "[3155]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /*185*/ { "[3156]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*186*/ { "[3159]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*187*/ { "[3160]123456", 0, "3160123456" }, - /*188*/ { "[3160]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /*189*/ { "[3165]123456", 0, "3165123456" }, - /*190*/ { "[3165]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /*191*/ { "[3166]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*192*/ { "[3169]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*193*/ { "[3170]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*194*/ { "[3179]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*195*/ { "[3180]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*196*/ { "[3189]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*197*/ { "[3190]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*198*/ { "[3199]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*199*/ { "[32]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*200*/ { "[320]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*201*/ { "[3200]123456", 0, "3200123456" }, - /*202*/ { "[3200]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /*203*/ { "[3205]123456", 0, "3205123456" }, - /*204*/ { "[3205]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /*205*/ { "[3206]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*206*/ { "[3209]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*207*/ { "[3210]123456", 0, "3210123456" }, - /*208*/ { "[3210]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /*209*/ { "[3215]123456", 0, "3215123456" }, - /*210*/ { "[3215]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /*211*/ { "[3216]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*212*/ { "[3219]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*213*/ { "[3220]123456", 0, "3220123456" }, - /*214*/ { "[3220]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /*215*/ { "[3225]123456", 0, "3225123456" }, - /*216*/ { "[3225]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /*217*/ { "[3229]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*218*/ { "[3230]123456", 0, "3230123456" }, - /*219*/ { "[3230]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /*220*/ { "[3235]123456", 0, "3235123456" }, - /*221*/ { "[3235]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /*222*/ { "[3239]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*223*/ { "[3240]123456", 0, "3240123456" }, - /*224*/ { "[3240]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /*225*/ { "[3245]123456", 0, "3245123456" }, - /*226*/ { "[3245]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /*227*/ { "[3249]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*228*/ { "[3250]123456", 0, "3250123456" }, - /*229*/ { "[3250]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /*230*/ { "[3255]123456", 0, "3255123456" }, - /*231*/ { "[3255]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /*232*/ { "[3259]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*233*/ { "[3260]123456", 0, "3260123456" }, - /*234*/ { "[3260]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /*235*/ { "[3265]123456", 0, "3265123456" }, - /*236*/ { "[3265]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /*237*/ { "[3269]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*238*/ { "[3270]123456", 0, "3270123456" }, - /*239*/ { "[3270]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /*240*/ { "[3275]123456", 0, "3275123456" }, - /*241*/ { "[3275]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /*242*/ { "[3279]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*243*/ { "[3280]123456", 0, "3280123456" }, - /*244*/ { "[3280]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /*245*/ { "[3285]123456", 0, "3285123456" }, - /*246*/ { "[3285]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /*247*/ { "[3289]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*248*/ { "[3290]123456", 0, "3290123456" }, - /*249*/ { "[3290]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /*250*/ { "[3295]123456", 0, "3295123456" }, - /*251*/ { "[3295]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /*252*/ { "[3296]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*253*/ { "[3299]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*254*/ { "[33]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*255*/ { "[330]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*256*/ { "[3300]123456", 0, "3300123456" }, - /*257*/ { "[3300]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /*258*/ { "[3305]123456", 0, "3305123456" }, - /*259*/ { "[3305]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /*260*/ { "[3306]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*261*/ { "[3309]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*262*/ { "[3310]123456", 0, "3310123456" }, - /*263*/ { "[3310]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /*264*/ { "[3319]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*265*/ { "[3320]123456", 0, "3320123456" }, - /*266*/ { "[3320]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /*267*/ { "[3329]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*268*/ { "[3330]123456", 0, "3330123456" }, - /*269*/ { "[3330]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /*270*/ { "[3339]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*271*/ { "[3340]123456", 0, "3340123456" }, - /*272*/ { "[3340]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /*273*/ { "[3349]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*274*/ { "[3350]123456", 0, "3350123456" }, - /*275*/ { "[3350]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /*276*/ { "[3359]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*277*/ { "[3360]123456", 0, "3360123456" }, - /*278*/ { "[3360]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /*279*/ { "[3369]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*280*/ { "[3370]123456", 0, "3370123456" }, - /*281*/ { "[3370]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /*282*/ { "[3375]123456", 0, "3375123456" }, - /*283*/ { "[3375]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /*284*/ { "[3376]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*285*/ { "[3379]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*286*/ { "[3380]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*287*/ { "[3390]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*288*/ { "[3399]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*289*/ { "[34]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*290*/ { "[340]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*291*/ { "[3400]123456", 0, "3400123456" }, - /*292*/ { "[3400]12345", ZINT_ERROR_INVALID_DATA, "" }, - /*293*/ { "[3405]123456", 0, "3405123456" }, - /*294*/ { "[3405]12345", ZINT_ERROR_INVALID_DATA, "" }, - /*295*/ { "[3406]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*296*/ { "[3409]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*297*/ { "[3410]123456", 0, "3410123456" }, - /*298*/ { "[3410]12345", ZINT_ERROR_INVALID_DATA, "" }, - /*299*/ { "[3419]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*300*/ { "[3420]123456", 0, "3420123456" }, - /*301*/ { "[3420]12345", ZINT_ERROR_INVALID_DATA, "" }, - /*302*/ { "[3429]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*303*/ { "[3430]123456", 0, "3430123456" }, - /*304*/ { "[3430]12345", ZINT_ERROR_INVALID_DATA, "" }, - /*305*/ { "[3439]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*306*/ { "[3440]123456", 0, "3440123456" }, - /*307*/ { "[3440]12345", ZINT_ERROR_INVALID_DATA, "" }, - /*308*/ { "[3449]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*309*/ { "[3450]123456", 0, "3450123456" }, - /*310*/ { "[3450]12345", ZINT_ERROR_INVALID_DATA, "" }, - /*311*/ { "[3459]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*312*/ { "[3460]123456", 0, "3460123456" }, - /*313*/ { "[3460]12345", ZINT_ERROR_INVALID_DATA, "" }, - /*314*/ { "[3469]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*315*/ { "[3470]123456", 0, "3470123456" }, - /*316*/ { "[3470]12345", ZINT_ERROR_INVALID_DATA, "" }, - /*317*/ { "[3479]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*318*/ { "[3480]123456", 0, "3480123456" }, - /*319*/ { "[3480]12345", ZINT_ERROR_INVALID_DATA, "" }, - /*320*/ { "[3489]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*321*/ { "[3490]123456", 0, "3490123456" }, - /*322*/ { "[3490]12345", ZINT_ERROR_INVALID_DATA, "" }, - /*323*/ { "[3495]123456", 0, "3495123456" }, - /*324*/ { "[3495]12345", ZINT_ERROR_INVALID_DATA, "" }, - /*325*/ { "[3496]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*326*/ { "[3499]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*327*/ { "[35]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*328*/ { "[350]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*329*/ { "[3500]123456", 0, "3500123456" }, - /*330*/ { "[3500]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /*331*/ { "[3505]123456", 0, "3505123456" }, - /*332*/ { "[3505]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /*333*/ { "[3506]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*334*/ { "[3509]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*335*/ { "[3510]123456", 0, "3510123456", }, - /*336*/ { "[3510]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /*337*/ { "[3519]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*338*/ { "[3520]123456", 0, "3520123456", }, - /*339*/ { "[3520]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /*340*/ { "[3529]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*341*/ { "[3530]123456", 0, "3530123456", }, - /*342*/ { "[3530]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /*343*/ { "[3539]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*344*/ { "[3540]123456", 0, "3540123456", }, - /*345*/ { "[3540]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /*346*/ { "[3549]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*347*/ { "[3550]123456", 0, "3550123456", }, - /*348*/ { "[3550]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /*349*/ { "[3559]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*350*/ { "[3560]123456", 0, "3560123456", }, - /*351*/ { "[3560]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /*352*/ { "[3569]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*353*/ { "[3570]123456", 0, "3570123456", }, - /*354*/ { "[3570]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /*355*/ { "[3575]123456", 0, "3575123456" }, - /*356*/ { "[3376]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*357*/ { "[3579]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*358*/ { "[3580]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*359*/ { "[3590]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*360*/ { "[3599]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*361*/ { "[36]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*362*/ { "[360]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*363*/ { "[3600]123456", 0, "3600123456" }, - /*364*/ { "[3600]12345", ZINT_ERROR_INVALID_DATA, "" }, - /*365*/ { "[3605]123456", 0, "3605123456" }, - /*366*/ { "[3605]12345", ZINT_ERROR_INVALID_DATA, "" }, - /*367*/ { "[3606]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*368*/ { "[3609]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*369*/ { "[3610]123456", 0, "3610123456" }, - /*370*/ { "[3610]12345", ZINT_ERROR_INVALID_DATA, "" }, - /*371*/ { "[3619]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*372*/ { "[3620]123456", 0, "3620123456", }, - /*373*/ { "[3620]12345", ZINT_ERROR_INVALID_DATA, "" }, - /*374*/ { "[3629]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*375*/ { "[3630]123456", 0, "3630123456", }, - /*376*/ { "[3630]12345", ZINT_ERROR_INVALID_DATA, "" }, - /*377*/ { "[3639]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*378*/ { "[3640]123456", 0, "3640123456", }, - /*379*/ { "[3640]12345", ZINT_ERROR_INVALID_DATA, "" }, - /*380*/ { "[3649]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*381*/ { "[3650]123456", 0, "3650123456", }, - /*382*/ { "[3650]12345", ZINT_ERROR_INVALID_DATA, "" }, - /*383*/ { "[3659]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*384*/ { "[3660]123456", 0, "3660123456", }, - /*385*/ { "[3660]12345", ZINT_ERROR_INVALID_DATA, "" }, - /*386*/ { "[3669]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*387*/ { "[3670]123456", 0, "3670123456", }, - /*388*/ { "[3670]12345", ZINT_ERROR_INVALID_DATA, "" }, - /*389*/ { "[3679]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*390*/ { "[3680]123456", 0, "3680123456", }, - /*391*/ { "[3680]12345", ZINT_ERROR_INVALID_DATA, "" }, - /*392*/ { "[3689]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*393*/ { "[3690]123456", 0, "3690123456" }, - /*394*/ { "[3690]12345", ZINT_ERROR_INVALID_DATA, "" }, - /*395*/ { "[3695]123456", 0, "3695123456" }, - /*396*/ { "[3695]12345", ZINT_ERROR_INVALID_DATA, "" }, - /*397*/ { "[3696]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*398*/ { "[3699]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*399*/ { "[37]12345678", 0, "3712345678" }, - /*400*/ { "[37]123456789", ZINT_ERROR_INVALID_DATA, "" }, - /*401*/ { "[370]12345678", ZINT_ERROR_INVALID_DATA, "" }, - /*402*/ { "[3700]12345678", ZINT_ERROR_INVALID_DATA, "" }, - /*403*/ { "[38]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*404*/ { "[380]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*405*/ { "[3800]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*406*/ { "[39]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*407*/ { "[390]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*408*/ { "[3900]123456789012345", 0, "3900123456789012345" }, - /*409*/ { "[3900]1234567890123456", ZINT_ERROR_INVALID_DATA, "" }, - /*410*/ { "[3900]12345678901234", 0, "390012345678901234" }, - /*411*/ { "[3901]123456789012345", 0, "3901123456789012345" }, - /*412*/ { "[3901]1234567890123456", ZINT_ERROR_INVALID_DATA, "" }, - /*413*/ { "[3905]123456789012345", 0, "3905123456789012345" }, - /*414*/ { "[3909]123456789012345", 0, "3909123456789012345" }, - /*415*/ { "[3909]1234567890123456", ZINT_ERROR_INVALID_DATA, "" }, - /*416*/ { "[3910]123123456789012345", ZINT_WARN_NONCOMPLIANT, "3910123123456789012345" }, - /*417*/ { "[3910]997123456789012345", 0, "3910997123456789012345" }, - /*418*/ { "[3910]1231234567890123456", ZINT_ERROR_INVALID_DATA, "" }, - /*419*/ { "[3910]123", ZINT_ERROR_INVALID_DATA, "" }, - /*420*/ { "[3915]123123456789012345", ZINT_WARN_NONCOMPLIANT, "3915123123456789012345" }, - /*421*/ { "[3915]997123456789012345", 0, "3915997123456789012345" }, - /*422*/ { "[3915]1231234567890123456", ZINT_ERROR_INVALID_DATA, "" }, - /*423*/ { "[3919]123123456789012345", ZINT_WARN_NONCOMPLIANT, "3919123123456789012345" }, - /*424*/ { "[3919]997123456789012345", 0, "3919997123456789012345" }, - /*425*/ { "[3919]1231234567890123456", ZINT_ERROR_INVALID_DATA, "" }, - /*426*/ { "[3920]123456789012345", 0, "3920123456789012345" }, - /*427*/ { "[3920]1234567890123456", ZINT_ERROR_INVALID_DATA, "" }, - /*428*/ { "[3925]123456789012345", 0, "3925123456789012345" }, - /*429*/ { "[3925]1234567890123456", ZINT_ERROR_INVALID_DATA, "" }, - /*430*/ { "[3929]123456789012345", 0, "3929123456789012345" }, - /*431*/ { "[3929]1234567890123456", ZINT_ERROR_INVALID_DATA, "" }, - /*432*/ { "[3930]123123456789012345", ZINT_WARN_NONCOMPLIANT, "3930123123456789012345" }, - /*433*/ { "[3930]997123456789012345", 0, "3930997123456789012345" }, - /*434*/ { "[3930]1231234567890123456", ZINT_ERROR_INVALID_DATA, "" }, - /*435*/ { "[3930]123", ZINT_ERROR_INVALID_DATA, "" }, - /*436*/ { "[3935]123123456789012345", ZINT_WARN_NONCOMPLIANT, "3935123123456789012345" }, - /*437*/ { "[3935]997123456789012345", 0, "3935997123456789012345" }, - /*438*/ { "[3935]1231234567890123456", ZINT_ERROR_INVALID_DATA, "" }, - /*439*/ { "[3939]123123456789012345", ZINT_WARN_NONCOMPLIANT, "3939123123456789012345" }, - /*440*/ { "[3939]997123456789012345", 0, "3939997123456789012345" }, - /*441*/ { "[3939]1231234567890123456", ZINT_ERROR_INVALID_DATA, "" }, - /*442*/ { "[3940]1234", 0, "39401234" }, - /*443*/ { "[3940]12345", ZINT_ERROR_INVALID_DATA, "" }, - /*444*/ { "[3940]123", ZINT_ERROR_INVALID_DATA, "" }, - /*445*/ { "[3941]1234", 0, "39411234" }, - /*446*/ { "[3941]12345", ZINT_ERROR_INVALID_DATA, "" }, - /*447*/ { "[3941]123", ZINT_ERROR_INVALID_DATA, "" }, - /*448*/ { "[3942]1234", 0, "39421234" }, - /*449*/ { "[3942]12345", ZINT_ERROR_INVALID_DATA, "" }, - /*450*/ { "[3943]1234", 0, "39431234" }, - /*451*/ { "[3943]123", ZINT_ERROR_INVALID_DATA, "" }, - /*452*/ { "[3944]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*453*/ { "[3945]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*454*/ { "[3949]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*455*/ { "[3950]123456", 0, "3950123456" }, - /*456*/ { "[3950]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /*457*/ { "[3950]12345", ZINT_ERROR_INVALID_DATA, "" }, - /*458*/ { "[3951]123456", 0, "3951123456" }, - /*459*/ { "[3951]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /*460*/ { "[3952]123456", 0, "3952123456" }, - /*461*/ { "[3952]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /*462*/ { "[3953]123456", 0, "3953123456" }, - /*463*/ { "[3953]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /*464*/ { "[3954]123456", 0, "3954123456" }, - /*465*/ { "[3954]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /*466*/ { "[3955]123456", 0, "3955123456" }, - /*467*/ { "[3955]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /*468*/ { "[3956]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*469*/ { "[3959]123456", ZINT_ERROR_INVALID_DATA, "" }, - /*470*/ { "[3960]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*471*/ { "[3970]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*472*/ { "[3980]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*473*/ { "[3999]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*474*/ { "[40]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*475*/ { "[400]123456789012345678901234567890", 0, "400123456789012345678901234567890" }, - /*476*/ { "[400]1234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, - /*477*/ { "[4000]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*478*/ { "[401]1234abcdefghijklmnopqrstuvwxyz", 0, "4011234abcdefghijklmnopqrstuvwxyz" }, - /*479*/ { "[401]1234abcdefghijklmnopqrstuvwxyz1", ZINT_ERROR_INVALID_DATA, "" }, - /*480*/ { "[4010]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*481*/ { "[402]13131313131313132", ZINT_WARN_NONCOMPLIANT, "40213131313131313132" }, - /*482*/ { "[402]13131313131313130", 0, "40213131313131313130" }, - /*483*/ { "[402]1313131313131313", ZINT_ERROR_INVALID_DATA, "" }, - /*484*/ { "[4020]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*485*/ { "[403]abcdefghijklmnopqrstuvwxyz1234", 0, "403abcdefghijklmnopqrstuvwxyz1234" }, - /*486*/ { "[403]abcdefghijklmnopqrstuvwxyz12345", ZINT_ERROR_INVALID_DATA, "" }, - /*487*/ { "[4030]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*488*/ { "[404]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*489*/ { "[4040]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*490*/ { "[409]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*491*/ { "[4090]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*492*/ { "[41]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*493*/ { "[410]3898765432108", 0, "4103898765432108" }, - /*494*/ { "[410]12345678901234", ZINT_ERROR_INVALID_DATA, "" }, - /*495*/ { "[4100]12345678901234", ZINT_ERROR_INVALID_DATA, "" }, - /*496*/ { "[411]1313131313134", ZINT_WARN_NONCOMPLIANT, "4111313131313134" }, - /*497*/ { "[411]1313131313130", 0, "4111313131313130" }, - /*498*/ { "[411]13131313131", ZINT_ERROR_INVALID_DATA, "" }, - /*499*/ { "[4110]1313131313134", ZINT_ERROR_INVALID_DATA, "" }, - /*500*/ { "[412]1313131313130", 0, "4121313131313130" }, - /*501*/ { "[412]13131313131", ZINT_ERROR_INVALID_DATA, "" }, - /*502*/ { "[4120]1313131313134", ZINT_ERROR_INVALID_DATA, "" }, - /*503*/ { "[413]1313131313130", 0, "4131313131313130" }, - /*504*/ { "[413]13131313131", ZINT_ERROR_INVALID_DATA, "" }, - /*505*/ { "[4130]1313131313134", ZINT_ERROR_INVALID_DATA, "" }, - /*506*/ { "[414]1313131313130", 0, "4141313131313130" }, - /*507*/ { "[414]13131313131", ZINT_ERROR_INVALID_DATA, "" }, - /*508*/ { "[4140]1313131313134", ZINT_ERROR_INVALID_DATA, "" }, - /*509*/ { "[415]1313131313130", 0, "4151313131313130" }, - /*510*/ { "[415]13131313131", ZINT_ERROR_INVALID_DATA, "" }, - /*511*/ { "[4150]1313131313134", ZINT_ERROR_INVALID_DATA, "" }, - /*512*/ { "[416]1313131313130", 0, "4161313131313130" }, - /*513*/ { "[416]13131313131", ZINT_ERROR_INVALID_DATA, "" }, - /*514*/ { "[4160]1313131313134", ZINT_ERROR_INVALID_DATA, "" }, - /*515*/ { "[417]1313131313130", 0, "4171313131313130" }, - /*516*/ { "[417]13131313131", ZINT_ERROR_INVALID_DATA, "" }, - /*517*/ { "[4170]1313131313134", ZINT_ERROR_INVALID_DATA, "" }, - /*518*/ { "[418]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*519*/ { "[4180]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*520*/ { "[419]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*521*/ { "[4190]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*522*/ { "[42]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*523*/ { "[420]abcdefghijklmnopqrst", 0, "420abcdefghijklmnopqrst" }, - /*524*/ { "[420]abcdefghijklmnopqrstu", ZINT_ERROR_INVALID_DATA, "" }, - /*525*/ { "[4200]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*526*/ { "[421]123abcdefghi", ZINT_WARN_NONCOMPLIANT, "421123abcdefghi" }, - /*527*/ { "[421]434abcdefghi", 0, "421434abcdefghi" }, - /*528*/ { "[421]123abcdefghij", ZINT_ERROR_INVALID_DATA, "" }, - /*529*/ { "[421]1231", ZINT_WARN_NONCOMPLIANT, "4211231" }, - /*530*/ { "[421]4341", 0, "4214341" }, - /*531*/ { "[421]123", ZINT_ERROR_INVALID_DATA, "" }, - /*532*/ { "[4210]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*533*/ { "[422]123", ZINT_WARN_NONCOMPLIANT, "422123" }, - /*534*/ { "[422]004", 0, "422004" }, - /*535*/ { "[422]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*536*/ { "[422]12", ZINT_ERROR_INVALID_DATA, "" }, - /*537*/ { "[4220]123", ZINT_ERROR_INVALID_DATA, "" }, - /*538*/ { "[423]123123123123123", ZINT_WARN_NONCOMPLIANT, "423123123123123123" }, - /*539*/ { "[423]470004012887123", ZINT_WARN_NONCOMPLIANT, "423470004012887123" }, - /*540*/ { "[423]470004012887438", 0, "423470004012887438" }, - /*541*/ { "[423]1231231231231231", ZINT_ERROR_INVALID_DATA, "4231231231231231231" }, - /*542*/ { "[423]12312312312312", ZINT_WARN_NONCOMPLIANT, "42312312312312312" }, - /*543*/ { "[423]1231231231231", ZINT_WARN_NONCOMPLIANT, "4231231231231231" }, - /*544*/ { "[423]12312312312", ZINT_WARN_NONCOMPLIANT, "42312312312312" }, - /*545*/ { "[423]1231231231", ZINT_WARN_NONCOMPLIANT, "4231231231231" }, - /*546*/ { "[423]123", ZINT_WARN_NONCOMPLIANT, "423123" }, - /*547*/ { "[423]004", 0, "423004" }, - /*548*/ { "[423]12", ZINT_ERROR_INVALID_DATA, "" }, - /*549*/ { "[4230]123123123123123", ZINT_ERROR_INVALID_DATA, "" }, - /*550*/ { "[424]123", ZINT_WARN_NONCOMPLIANT, "424123" }, - /*551*/ { "[424]004", 0, "424004" }, - /*552*/ { "[424]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*553*/ { "[424]12", ZINT_ERROR_INVALID_DATA, "" }, - /*554*/ { "[4240]123", ZINT_ERROR_INVALID_DATA, "" }, - /*555*/ { "[425]123123123123123", ZINT_WARN_NONCOMPLIANT, "425123123123123123" }, - /*556*/ { "[425]010500276634894", 0, "425010500276634894" }, - /*557*/ { "[425]010500276123894", ZINT_WARN_NONCOMPLIANT, "425010500276123894" }, - /*558*/ { "[425]1231231231231231", ZINT_ERROR_INVALID_DATA, "" }, - /*559*/ { "[425]12", ZINT_ERROR_INVALID_DATA, "" }, - /*560*/ { "[4250]123123123123123", ZINT_ERROR_INVALID_DATA, "" }, - /*561*/ { "[426]123", ZINT_WARN_NONCOMPLIANT, "426123" }, - /*562*/ { "[426]426", 0, "426426" }, - /*563*/ { "[426]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*564*/ { "[426]12", ZINT_ERROR_INVALID_DATA, "" }, - /*565*/ { "[4260]123", ZINT_ERROR_INVALID_DATA, "" }, - /*566*/ { "[427]abc", 0, "427abc" }, - /*567*/ { "[427]abcd", ZINT_ERROR_INVALID_DATA, "" }, - /*568*/ { "[4270]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*569*/ { "[428]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*570*/ { "[4280]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*571*/ { "[429]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*572*/ { "[4290]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*573*/ { "[43]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*574*/ { "[430]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*575*/ { "[4300]1", 0, "43001" }, - /*576*/ { "[4300]12345678901234567890123456789012345", 0, "430012345678901234567890123456789012345" }, - /*577*/ { "[4300]123456789012345678901234567890123456", ZINT_ERROR_INVALID_DATA, "" }, - /*578*/ { "[4301]1", 0, "43011" }, - /*579*/ { "[4301]12345678901234567890123456789012345", 0, "430112345678901234567890123456789012345" }, - /*580*/ { "[4301]123456789012345678901234567890123456", ZINT_ERROR_INVALID_DATA, "" }, - /*581*/ { "[4302]1", 0, "43021" }, - /*582*/ { "[4302]1234567890123456789012345678901234567890123456789012345678901234567890", 0, "43021234567890123456789012345678901234567890123456789012345678901234567890" }, - /*583*/ { "[4302]12345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, - /*584*/ { "[4303]1", 0, "43031" }, - /*585*/ { "[4303]1234567890123456789012345678901234567890123456789012345678901234567890", 0, "43031234567890123456789012345678901234567890123456789012345678901234567890" }, - /*586*/ { "[4303]12345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, - /*587*/ { "[4304]1", 0, "43041" }, - /*588*/ { "[4304]1234567890123456789012345678901234567890123456789012345678901234567890", 0, "43041234567890123456789012345678901234567890123456789012345678901234567890" }, - /*589*/ { "[4304]12345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, - /*590*/ { "[4305]1", 0, "43051" }, - /*591*/ { "[4305]1234567890123456789012345678901234567890123456789012345678901234567890", 0, "43051234567890123456789012345678901234567890123456789012345678901234567890" }, - /*592*/ { "[4305]12345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, - /*593*/ { "[4306]1", 0, "43061" }, - /*594*/ { "[4306]1234567890123456789012345678901234567890123456789012345678901234567890", 0, "43061234567890123456789012345678901234567890123456789012345678901234567890" }, - /*595*/ { "[4306]12345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, - /*596*/ { "[4307]FR", 0, "4307FR" }, - /*597*/ { "[4307]F", ZINT_ERROR_INVALID_DATA, "" }, - /*598*/ { "[4307]FRR", ZINT_ERROR_INVALID_DATA, "" }, - /*599*/ { "[4308]1", 0, "43081" }, - /*600*/ { "[4308]123456789012345678901234567890", 0, "4308123456789012345678901234567890" }, - /*601*/ { "[4308]1234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, - /*602*/ { "[4309]1", ZINT_ERROR_INVALID_DATA, "" }, - /*603*/ { "[431]1", ZINT_ERROR_INVALID_DATA, "" }, - /*604*/ { "[4310]1", 0, "43101" }, - /*605*/ { "[4310]12345678901234567890123456789012345", 0, "431012345678901234567890123456789012345" }, - /*606*/ { "[4310]123456789012345678901234567890123456", ZINT_ERROR_INVALID_DATA, "" }, - /*607*/ { "[4311]1", 0, "43111" }, - /*608*/ { "[4311]12345678901234567890123456789012345", 0, "431112345678901234567890123456789012345" }, - /*609*/ { "[4311]123456789012345678901234567890123456", ZINT_ERROR_INVALID_DATA, "" }, - /*610*/ { "[4312]1", 0, "43121" }, - /*611*/ { "[4312]1234567890123456789012345678901234567890123456789012345678901234567890", 0, "43121234567890123456789012345678901234567890123456789012345678901234567890" }, - /*612*/ { "[4312]12345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, - /*613*/ { "[4313]1", 0, "43131" }, - /*614*/ { "[4313]1234567890123456789012345678901234567890123456789012345678901234567890", 0, "43131234567890123456789012345678901234567890123456789012345678901234567890" }, - /*615*/ { "[4313]12345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, - /*616*/ { "[4314]1", 0, "43141" }, - /*617*/ { "[4314]1234567890123456789012345678901234567890123456789012345678901234567890", 0, "43141234567890123456789012345678901234567890123456789012345678901234567890" }, - /*618*/ { "[4314]12345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, - /*619*/ { "[4315]1", 0, "43151" }, - /*620*/ { "[4315]1234567890123456789012345678901234567890123456789012345678901234567890", 0, "43151234567890123456789012345678901234567890123456789012345678901234567890" }, - /*621*/ { "[4315]12345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, - /*622*/ { "[4316]1", 0, "43161" }, - /*623*/ { "[4316]1234567890123456789012345678901234567890123456789012345678901234567890", 0, "43161234567890123456789012345678901234567890123456789012345678901234567890" }, - /*624*/ { "[4316]12345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, - /*625*/ { "[4317]FR", 0, "4317FR" }, - /*626*/ { "[4317]F", ZINT_ERROR_INVALID_DATA, "" }, - /*627*/ { "[4317]FRF", ZINT_ERROR_INVALID_DATA, "" }, - /*628*/ { "[4318]1", 0, "43181" }, - /*629*/ { "[4318]12345678901234567890", 0, "431812345678901234567890" }, - /*630*/ { "[4318]123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, - /*631*/ { "[4319]1", 0, "43191" }, - /*632*/ { "[4319]123456789012345678901234567890", 0, "4319123456789012345678901234567890" }, - /*633*/ { "[4319]1234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, - /*634*/ { "[432]1", ZINT_ERROR_INVALID_DATA, "" }, - /*635*/ { "[4320]1", 0, "43201" }, - /*636*/ { "[4320]12345678901234567890123456789012345", 0, "432012345678901234567890123456789012345" }, - /*637*/ { "[4320]123456789012345678901234567890123456", ZINT_ERROR_INVALID_DATA, "" }, - /*638*/ { "[4321]1", 0, "43211" }, - /*639*/ { "[4321]10", ZINT_ERROR_INVALID_DATA, "" }, - /*640*/ { "[4322]1", 0, "43221" }, - /*641*/ { "[4322]10", ZINT_ERROR_INVALID_DATA, "" }, - /*642*/ { "[4323]1", 0, "43231" }, - /*643*/ { "[4323]10", ZINT_ERROR_INVALID_DATA, "" }, - /*644*/ { "[4324]1212120000", 0, "43241212120000" }, - /*645*/ { "[4324]121212000", ZINT_ERROR_INVALID_DATA, "" }, - /*646*/ { "[4324]12121200000", ZINT_ERROR_INVALID_DATA, "" }, - /*647*/ { "[4325]1212120000", 0, "43251212120000" }, - /*648*/ { "[4325]121212000", ZINT_ERROR_INVALID_DATA, "" }, - /*649*/ { "[4325]12121200000", ZINT_ERROR_INVALID_DATA, "" }, - /*650*/ { "[4326]121212", 0, "4326121212" }, - /*651*/ { "[4326]12121", ZINT_ERROR_INVALID_DATA, "" }, - /*652*/ { "[4326]1212120", ZINT_ERROR_INVALID_DATA, "" }, - /*653*/ { "[4327]121212", ZINT_ERROR_INVALID_DATA, "" }, - /*654*/ { "[4328]121212", ZINT_ERROR_INVALID_DATA, "" }, - /*655*/ { "[4329]121212", ZINT_ERROR_INVALID_DATA, "" }, - /*656*/ { "[433]121212", ZINT_ERROR_INVALID_DATA, "" }, - /*657*/ { "[4330]121212", ZINT_ERROR_INVALID_DATA, "" }, - /*658*/ { "[44]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*659*/ { "[440]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*660*/ { "[4400]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*661*/ { "[49]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*662*/ { "[490]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*663*/ { "[4900]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*664*/ { "[499]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*665*/ { "[4990]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*666*/ { "[50]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*667*/ { "[500]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*668*/ { "[5000]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*669*/ { "[51]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*670*/ { "[510]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*671*/ { "[5100]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*672*/ { "[59]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*673*/ { "[590]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*674*/ { "[5900]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*675*/ { "[60]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*676*/ { "[600]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*677*/ { "[6000]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*678*/ { "[61]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*679*/ { "[610]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*680*/ { "[6100]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*681*/ { "[69]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*682*/ { "[690]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*683*/ { "[6900]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*684*/ { "[70]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*685*/ { "[700]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*686*/ { "[7000]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*687*/ { "[7001]1234567890123", 0, "70011234567890123" }, - /*688*/ { "[7001]123456789012", ZINT_ERROR_INVALID_DATA, "" }, - /*689*/ { "[7002]abcdefghijklmnopqrstuvwxyz1234", 0, "7002abcdefghijklmnopqrstuvwxyz1234" }, - /*690*/ { "[7002]abcdefghijklmnopqrstuvwxyz12345", ZINT_ERROR_INVALID_DATA, "" }, - /*691*/ { "[7003]1212121212", 0, "70031212121212" }, - /*692*/ { "[7003]121212121", ZINT_ERROR_INVALID_DATA, "" }, - /*693*/ { "[7004]1234", 0, "70041234" }, - /*694*/ { "[7004]12345", ZINT_ERROR_INVALID_DATA, "" }, - /*695*/ { "[7005]abcdefghijkl", 0, "7005abcdefghijkl" }, - /*696*/ { "[7005]abcdefghijklm", ZINT_ERROR_INVALID_DATA, "" }, - /*697*/ { "[7006]200132", ZINT_WARN_NONCOMPLIANT, "7006200132" }, - /*698*/ { "[7006]200100", ZINT_WARN_NONCOMPLIANT, "7006200100" }, - /*699*/ { "[7006]200120", 0, "7006200120" }, - /*700*/ { "[7006]2001320", ZINT_ERROR_INVALID_DATA, "" }, - /*701*/ { "[7007]010101121212", 0, "7007010101121212" }, - /*702*/ { "[7007]01010112121", ZINT_ERROR_INVALID_DATA, "" }, - /*703*/ { "[7007]A1010112121", ZINT_ERROR_INVALID_DATA, "" }, - /*704*/ { "[7007]121212", 0, "7007121212" }, - /*705*/ { "[7007]12121", ZINT_ERROR_INVALID_DATA, "" }, - /*706*/ { "[7007]1212121", ZINT_ERROR_INVALID_DATA, "" }, - /*707*/ { "[7008]abc", 0, "7008abc" }, - /*708*/ { "[7008]abcd", ZINT_ERROR_INVALID_DATA, "" }, - /*709*/ { "[7009]abcdefghij", 0, "7009abcdefghij" }, - /*710*/ { "[7009]abcdefghijk", ZINT_ERROR_INVALID_DATA, "" }, - /*711*/ { "[7010]01", 0, "701001" }, - /*712*/ { "[7010]1", 0, "70101" }, - /*713*/ { "[7010]012", ZINT_ERROR_INVALID_DATA, "" }, - /*714*/ { "[7011]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*715*/ { "[7012]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*716*/ { "[7019]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*717*/ { "[7020]abcdefghijklmnopqrst", 0, "7020abcdefghijklmnopqrst" }, - /*718*/ { "[7020]abcdefghijklmnopqrstu", ZINT_ERROR_INVALID_DATA, "" }, - /*719*/ { "[7021]abcdefghijklmnopqrst", 0, "7021abcdefghijklmnopqrst" }, - /*720*/ { "[7021]abcdefghijklmnopqrstu", ZINT_ERROR_INVALID_DATA, "" }, - /*721*/ { "[7022]abcdefghijklmnopqrst", 0, "7022abcdefghijklmnopqrst" }, - /*722*/ { "[7022]abcdefghijklmnopqrstu", ZINT_ERROR_INVALID_DATA, "" }, - /*723*/ { "[7023]1234abcdefghijklmnopqrstuvwxyz", 0, "70231234abcdefghijklmnopqrstuvwxyz" }, - /*724*/ { "[7023]1234abcdefghijklmnopqrstuvwxyza", ZINT_ERROR_INVALID_DATA, "" }, - /*725*/ { "[7024]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*726*/ { "[7025]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*727*/ { "[7029]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*728*/ { "[7030]123abcdefghijklmnopqrstuvwxyza", ZINT_WARN_NONCOMPLIANT, "7030123abcdefghijklmnopqrstuvwxyza" }, - /*729*/ { "[7030]004abcdefghijklmnopqrstuvwxyza", 0, "7030004abcdefghijklmnopqrstuvwxyza" }, - /*730*/ { "[7030]123abcdefghijklmnopqrstuvwxyzab", ZINT_ERROR_INVALID_DATA, "" }, - /*731*/ { "[7031]123abcdefghijklmnopqrstuvwxyza", ZINT_WARN_NONCOMPLIANT, "7031123abcdefghijklmnopqrstuvwxyza" }, - /*732*/ { "[7031]004abcdefghijklmnopqrstuvwxyza", 0, "7031004abcdefghijklmnopqrstuvwxyza" }, - /*733*/ { "[7031]123abcdefghijklmnopqrstuvwxyzab", ZINT_ERROR_INVALID_DATA, "" }, - /*734*/ { "[7032]004abcdefghijklmnopqrstuvwxyza", 0, "7032004abcdefghijklmnopqrstuvwxyza" }, - /*735*/ { "[7032]004abcdefghijklmnopqrstuvwxyzab", ZINT_ERROR_INVALID_DATA, "" }, - /*736*/ { "[7033]004abcdefghijklmnopqrstuvwxyza", 0, "7033004abcdefghijklmnopqrstuvwxyza" }, - /*737*/ { "[7033]004abcdefghijklmnopqrstuvwxyzab", ZINT_ERROR_INVALID_DATA, "" }, - /*738*/ { "[7034]004abcdefghijklmnopqrstuvwxyza", 0, "7034004abcdefghijklmnopqrstuvwxyza" }, - /*739*/ { "[7034]004abcdefghijklmnopqrstuvwxyzab", ZINT_ERROR_INVALID_DATA, "" }, - /*740*/ { "[7035]004abcdefghijklmnopqrstuvwxyza", 0, "7035004abcdefghijklmnopqrstuvwxyza" }, - /*741*/ { "[7035]004abcdefghijklmnopqrstuvwxyzab", ZINT_ERROR_INVALID_DATA, "" }, - /*742*/ { "[7036]004abcdefghijklmnopqrstuvwxyza", 0, "7036004abcdefghijklmnopqrstuvwxyza" }, - /*743*/ { "[7036]004abcdefghijklmnopqrstuvwxyzab", ZINT_ERROR_INVALID_DATA, "" }, - /*744*/ { "[7037]004abcdefghijklmnopqrstuvwxyza", 0, "7037004abcdefghijklmnopqrstuvwxyza" }, - /*745*/ { "[7037]004abcdefghijklmnopqrstuvwxyzab", ZINT_ERROR_INVALID_DATA, "" }, - /*746*/ { "[7038]004abcdefghijklmnopqrstuvwxyza", 0, "7038004abcdefghijklmnopqrstuvwxyza" }, - /*747*/ { "[7038]004abcdefghijklmnopqrstuvwxyzab", ZINT_ERROR_INVALID_DATA, "" }, - /*748*/ { "[7039]004abcdefghijklmnopqrstuvwxyza", 0, "7039004abcdefghijklmnopqrstuvwxyza" }, - /*749*/ { "[7039]123abcdefghijklmnopqrstuvwxyzab", ZINT_ERROR_INVALID_DATA, "" }, - /*750*/ { "[7040]1abc", 0, "70401abc" }, - /*751*/ { "[7040]1ab", ZINT_ERROR_INVALID_DATA, "" }, - /*752*/ { "[7040]1abcd", ZINT_ERROR_INVALID_DATA, "" }, - /*753*/ { "[7041]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*754*/ { "[7042]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*755*/ { "[7050]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*756*/ { "[7090]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*757*/ { "[7099]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*758*/ { "[71]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*759*/ { "[710]abcdefghijklmnopqrst", 0, "710abcdefghijklmnopqrst" }, - /*760*/ { "[710]abcdefghijklmnopqrstu", ZINT_ERROR_INVALID_DATA, "" }, - /*761*/ { "[7100]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*762*/ { "[711]abcdefghijklmnopqrst", 0, "711abcdefghijklmnopqrst" }, - /*763*/ { "[711]abcdefghijklmnopqrstu", ZINT_ERROR_INVALID_DATA, "" }, - /*764*/ { "[712]abcdefghijklmnopqrst", 0, "712abcdefghijklmnopqrst" }, - /*765*/ { "[712]abcdefghijklmnopqrstu", ZINT_ERROR_INVALID_DATA, "" }, - /*766*/ { "[713]abcdefghijklmnopqrst", 0, "713abcdefghijklmnopqrst" }, - /*767*/ { "[713]abcdefghijklmnopqrstu", ZINT_ERROR_INVALID_DATA, "" }, - /*768*/ { "[714]abcdefghijklmnopqrst", 0, "714abcdefghijklmnopqrst" }, - /*769*/ { "[714]abcdefghijklmnopqrstu", ZINT_ERROR_INVALID_DATA, "" }, - /*770*/ { "[715]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*771*/ { "[716]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*772*/ { "[719]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*773*/ { "[72]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*774*/ { "[720]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*775*/ { "[7200]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*776*/ { "[721]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*777*/ { "[7210]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*778*/ { "[7220]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*779*/ { "[7230]EMabcdefghijklmnopqrstuvwxyzab", 0, "7230EMabcdefghijklmnopqrstuvwxyzab" }, - /*780*/ { "[7230]EMabcdefghijklmnopqrstuvwxyzabc", ZINT_ERROR_INVALID_DATA, "" }, - /*781*/ { "[7230]EM", ZINT_ERROR_INVALID_DATA, "" }, - /*782*/ { "[7231]EMabcdefghijklmnopqrstuvwxyzab", 0, "7231EMabcdefghijklmnopqrstuvwxyzab" }, - /*783*/ { "[7231]EMabcdefghijklmnopqrstuvwxyzabc", ZINT_ERROR_INVALID_DATA, "" }, - /*784*/ { "[7232]EMabcdefghijklmnopqrstuvwxyzab", 0, "7232EMabcdefghijklmnopqrstuvwxyzab" }, - /*785*/ { "[7232]EMabcdefghijklmnopqrstuvwxyzabc", ZINT_ERROR_INVALID_DATA, "" }, - /*786*/ { "[7233]EMabcdefghijklmnopqrstuvwxyzab", 0, "7233EMabcdefghijklmnopqrstuvwxyzab" }, - /*787*/ { "[7233]EMabcdefghijklmnopqrstuvwxyzabc", ZINT_ERROR_INVALID_DATA, "" }, - /*788*/ { "[7234]EMabcdefghijklmnopqrstuvwxyzab", 0, "7234EMabcdefghijklmnopqrstuvwxyzab" }, - /*789*/ { "[7234]EMabcdefghijklmnopqrstuvwxyzabc", ZINT_ERROR_INVALID_DATA, "" }, - /*790*/ { "[7235]EMabcdefghijklmnopqrstuvwxyzab", 0, "7235EMabcdefghijklmnopqrstuvwxyzab" }, - /*791*/ { "[7235]EMabcdefghijklmnopqrstuvwxyzabc", ZINT_ERROR_INVALID_DATA, "" }, - /*792*/ { "[7236]EMabcdefghijklmnopqrstuvwxyzab", 0, "7236EMabcdefghijklmnopqrstuvwxyzab" }, - /*793*/ { "[7236]EMabcdefghijklmnopqrstuvwxyzabc", ZINT_ERROR_INVALID_DATA, "" }, - /*794*/ { "[7237]EMabcdefghijklmnopqrstuvwxyzab", 0, "7237EMabcdefghijklmnopqrstuvwxyzab" }, - /*795*/ { "[7237]EMabcdefghijklmnopqrstuvwxyzabc", ZINT_ERROR_INVALID_DATA, "" }, - /*796*/ { "[7238]EMabcdefghijklmnopqrstuvwxyzab", 0, "7238EMabcdefghijklmnopqrstuvwxyzab" }, - /*797*/ { "[7238]EMabcdefghijklmnopqrstuvwxyzabc", ZINT_ERROR_INVALID_DATA, "" }, - /*798*/ { "[7239]EMabcdefghijklmnopqrstuvwxyzab", 0, "7239EMabcdefghijklmnopqrstuvwxyzab" }, - /*799*/ { "[7239]EMabcdefghijklmnopqrstuvwxyzabc", ZINT_ERROR_INVALID_DATA, "" }, - /*800*/ { "[7239]E", ZINT_ERROR_INVALID_DATA, "" }, - /*801*/ { "[7240]abcdefghijklmnopqrst", 0, "7240abcdefghijklmnopqrst" }, - /*802*/ { "[7240]abcdefghijklmnopqrstu", ZINT_ERROR_INVALID_DATA, "" }, - /*803*/ { "[7241]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*804*/ { "[7249]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*805*/ { "[7250]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*806*/ { "[7299]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*807*/ { "[73]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*808*/ { "[7300]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*809*/ { "[74]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*810*/ { "[7400]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*811*/ { "[79]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*812*/ { "[7900]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*813*/ { "[7999]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*814*/ { "[80]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*815*/ { "[800]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*816*/ { "[8000]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*817*/ { "[8001]12345678901234", ZINT_WARN_NONCOMPLIANT, "800112345678901234" }, - /*818*/ { "[8001]12345678901204", 0, "800112345678901204" }, - /*819*/ { "[8001]1234123456789012345", ZINT_ERROR_INVALID_DATA, "" }, - /*820*/ { "[8002]abcdefghijklmnopqrst", 0, "8002abcdefghijklmnopqrst" }, - /*821*/ { "[8002]abcdefghijklmnopqrstu", ZINT_ERROR_INVALID_DATA, "" }, - /*822*/ { "[8003]01234567890123abcdefghijklmnop", ZINT_WARN_NONCOMPLIANT, "800301234567890123abcdefghijklmnop" }, - /*823*/ { "[8003]01234567890128abcdefghijklmnop", 0, "800301234567890128abcdefghijklmnop" }, - /*824*/ { "[8003]01234567890128abcdefghijklmnopq", ZINT_ERROR_INVALID_DATA, "" }, - /*825*/ { "[8004]abcdefghijklmnopqrstuvwxyz1234", ZINT_WARN_NONCOMPLIANT, "8004abcdefghijklmnopqrstuvwxyz1234" }, - /*826*/ { "[8004]12cdefghijklmnopqrstuvwxyz1234", 0, "800412cdefghijklmnopqrstuvwxyz1234" }, - /*827*/ { "[8004]abcdefghijklmnopqrstuvwxyz12345", ZINT_ERROR_INVALID_DATA, "" }, - /*828*/ { "[8005]123456", 0, "8005123456" }, - /*829*/ { "[8005]12345", ZINT_ERROR_INVALID_DATA, "" }, - /*830*/ { "[8005]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /*831*/ { "[8006]123456789012341212", ZINT_WARN_NONCOMPLIANT, "8006123456789012341212" }, - /*832*/ { "[8006]123456789012311212", 0, "8006123456789012311212" }, - /*833*/ { "[8006]12345678901234121", ZINT_ERROR_INVALID_DATA, "" }, - /*834*/ { "[8006]1234567890123412123", ZINT_ERROR_INVALID_DATA, "" }, - /*835*/ { "[8007]abcdefghijklmnopqrstuvwxyz12345678", ZINT_WARN_NONCOMPLIANT, "8007abcdefghijklmnopqrstuvwxyz12345678" }, - /*836*/ { "[8007]AD95EFGHIJKLMNOPQRSTUVWXYZ12345678", 0, "8007AD95EFGHIJKLMNOPQRSTUVWXYZ12345678" }, - /*837*/ { "[8007]AD95EFGHIJKLMNOPQRSTUVWXYZ123456789", ZINT_ERROR_INVALID_DATA, "" }, - /*838*/ { "[8008]123456121212", ZINT_WARN_NONCOMPLIANT, "8008123456121212" }, - /*839*/ { "[8008]121256121212", ZINT_WARN_NONCOMPLIANT, "8008121256121212" }, - /*840*/ { "[8008]121231121212", 0, "8008121231121212" }, - /*841*/ { "[8008]1234561212", ZINT_WARN_NONCOMPLIANT, "80081234561212" }, - /*842*/ { "[8008]1212311212", 0, "80081212311212" }, - /*843*/ { "[8008]12345612", ZINT_WARN_NONCOMPLIANT, "800812345612" }, - /*844*/ { "[8008]12010112", 0, "800812010112" }, - /*845*/ { "[8008]1234561", ZINT_ERROR_INVALID_DATA, "" }, - /*846*/ { "[8008]123456121", ZINT_ERROR_INVALID_DATA, "" }, - /*847*/ { "[8008]12345612121", ZINT_ERROR_INVALID_DATA, "" }, - /*848*/ { "[8008]1234561212123", ZINT_ERROR_INVALID_DATA, "" }, - /*849*/ { "[8009]12345678901234567890123456789012345678901234567890", 0, "800912345678901234567890123456789012345678901234567890" }, - /*850*/ { "[8009]123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, - /*851*/ { "[8010]1234abcdefghijklmnopqrstuvwxyz1", ZINT_ERROR_INVALID_DATA, "" }, - /*852*/ { "[8011]123456789012", 0, "8011123456789012" }, - /*853*/ { "[8011]1234567890123", ZINT_ERROR_INVALID_DATA, "" }, - /*854*/ { "[8012]abcdefghijklmnopqrst", 0, "8012abcdefghijklmnopqrst" }, - /*855*/ { "[8012]abcdefghijklmnopqrstuv", ZINT_ERROR_INVALID_DATA, "" }, - /*856*/ { "[8013]1234abcdefghijklmnopqrsQP", 0, "80131234abcdefghijklmnopqrsQP" }, - /*857*/ { "[8013]1234abcdefghijklmnopqrsQP", 0, "80131234abcdefghijklmnopqrsQP" }, - /*858*/ { "[8013]1234abcdefghijklmnopqrsQPv", ZINT_ERROR_INVALID_DATA, "" }, - /*859*/ { "[8014]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*860*/ { "[8016]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*861*/ { "[8017]313131313131313139", ZINT_WARN_NONCOMPLIANT, "8017313131313131313139" }, - /*862*/ { "[8017]313131313131313131", 0, "8017313131313131313131" }, - /*863*/ { "[8017]31313131313131313", ZINT_ERROR_INVALID_DATA, "" }, - /*864*/ { "[8017]3131313131313131390", ZINT_ERROR_INVALID_DATA, "" }, - /*865*/ { "[8018]313131313131313139", ZINT_WARN_NONCOMPLIANT, "8018313131313131313139" }, - /*866*/ { "[8018]313131313131313131", 0, "8018313131313131313131" }, - /*867*/ { "[8018]31313131313131313", ZINT_ERROR_INVALID_DATA, "" }, - /*868*/ { "[8018]3131313131313131390", ZINT_ERROR_INVALID_DATA, "" }, - /*869*/ { "[8019]1234567890", 0, "80191234567890" }, - /*870*/ { "[8019]12345678901", ZINT_ERROR_INVALID_DATA, "" }, - /*871*/ { "[8020]abcdefghijklmnopqrstuvwxy", 0, "8020abcdefghijklmnopqrstuvwxy" }, - /*872*/ { "[8020]abcdefghijklmnopqrstuvwxyz", ZINT_ERROR_INVALID_DATA, "" }, - /*873*/ { "[8021]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*874*/ { "[8025]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*875*/ { "[8026]123456789012341212", ZINT_WARN_NONCOMPLIANT, "8026123456789012341212" }, - /*876*/ { "[8026]123456789012311212", 0, "8026123456789012311212" }, - /*877*/ { "[8026]1234567890123451212", ZINT_ERROR_INVALID_DATA, "" }, - /*878*/ { "[8026]12345678901234512", ZINT_ERROR_INVALID_DATA, "" }, - /*879*/ { "[8027]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*880*/ { "[8030]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*881*/ { "[8040]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*882*/ { "[8050]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*883*/ { "[8060]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*884*/ { "[8070]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*885*/ { "[8080]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*886*/ { "[8090]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*887*/ { "[8099]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*888*/ { "[81]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*889*/ { "[8100]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*890*/ { "[8109]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*891*/ { "[8110]5123456789011234565123455123450123105123450123512345678901320123190000", 0, "81105123456789011234565123455123450123105123450123512345678901320123190000" }, - /*892*/ { "[8110]51234567890112345651234551234501231051234501235123456789013201231900001", ZINT_ERROR_INVALID_DATA, "" }, - /*893*/ { "[8111]1234", 0, "81111234" }, - /*894*/ { "[8111]12345", ZINT_ERROR_INVALID_DATA, "" }, - /*895*/ { "[8111]123", ZINT_ERROR_INVALID_DATA, "" }, - /*896*/ { "[8112]1234567890123456789012345678901234567890123456789012345678901234567890", ZINT_WARN_NONCOMPLIANT, "81121234567890123456789012345678901234567890123456789012345678901234567890" }, - /*897*/ { "[8112]12345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, - /*898*/ { "[8112]061234567890121234569123456789012345", 0, "8112061234567890121234569123456789012345" }, - /*899*/ { "[8113]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*900*/ { "[8120]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*901*/ { "[8130]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*902*/ { "[8140]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*903*/ { "[8150]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*904*/ { "[8190]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*905*/ { "[8199]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*906*/ { "[82]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*907*/ { "[8200]1234567890123456789012345678901234567890123456789012345678901234567890", 0, "82001234567890123456789012345678901234567890123456789012345678901234567890" }, - /*908*/ { "[8201]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*909*/ { "[8210]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*910*/ { "[8220]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*911*/ { "[8230]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*912*/ { "[8240]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*913*/ { "[8250]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*914*/ { "[8290]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*915*/ { "[8299]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*916*/ { "[83]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*917*/ { "[830]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*918*/ { "[8300]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*919*/ { "[84]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*920*/ { "[840]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*921*/ { "[8400]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*922*/ { "[85]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*923*/ { "[850]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*924*/ { "[8500]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*925*/ { "[89]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*926*/ { "[890]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*927*/ { "[8900]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*928*/ { "[90]abcdefghijklmnopqrstuvwxyz1234", 0, "90abcdefghijklmnopqrstuvwxyz1234" }, - /*929*/ { "[90]abcdefghijklmnopqrstuvwxyz12345", ZINT_ERROR_INVALID_DATA, "" }, - /*930*/ { "[900]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*931*/ { "[9000]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*932*/ { "[91]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890", 0, "91123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890" }, - /*933*/ { "[91]1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, - /*934*/ { "[910]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*935*/ { "[9100]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*936*/ { "[92]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890", 0, "92123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890" }, - /*937*/ { "[92]1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, - /*938*/ { "[920]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*939*/ { "[9200]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*940*/ { "[93]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890", 0, "93123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890" }, - /*941*/ { "[93]1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, - /*942*/ { "[930]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*943*/ { "[9300]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*944*/ { "[94]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890", 0, "94123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890" }, - /*945*/ { "[94]1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, - /*946*/ { "[940]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*947*/ { "[9400]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*948*/ { "[95]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890", 0, "95123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890" }, - /*949*/ { "[95]1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, - /*950*/ { "[950]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*951*/ { "[9500]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*952*/ { "[96]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890", 0, "96123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890" }, - /*953*/ { "[96]1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, - /*954*/ { "[960]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*955*/ { "[9600]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*956*/ { "[97]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890", 0, "97123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890" }, - /*957*/ { "[97]1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, - /*958*/ { "[970]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*959*/ { "[9700]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*960*/ { "[98]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890", 0, "98123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890" }, - /*961*/ { "[98]1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, - /*962*/ { "[980]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*963*/ { "[9800]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*964*/ { "[99]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890", 0, "99123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890" }, - /*965*/ { "[99]1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, - /*966*/ { "[990]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*967*/ { "[9900]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*968*/ { "[9999]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*969*/ { "[01]12345678901234[7006]200101", ZINT_WARN_NONCOMPLIANT, "01123456789012347006200101" }, - /*970*/ { "[01]12345678901231[7006]200101", 0, "01123456789012317006200101" }, - /*971*/ { "[3900]1234567890[01]12345678901234", ZINT_WARN_NONCOMPLIANT, "39001234567890[0112345678901234" }, - /*972*/ { "[3900]1234567890[01]12345678901231", 0, "39001234567890[0112345678901231" }, - /*973*/ { "[253]12345678901234[3901]12345678901234[20]12", ZINT_WARN_NONCOMPLIANT, "25312345678901234[390112345678901234[2012" }, - /*974*/ { "[253]12345678901284[3901]12345678901234[20]12", 0, "25312345678901284[390112345678901234[2012" }, - /*975*/ { "[253]12345678901234[01]12345678901234[3901]12345678901234[20]12", ZINT_WARN_NONCOMPLIANT, "25312345678901234[0112345678901234390112345678901234[2012" }, - /*976*/ { "[253]12345678901284[01]12345678901231[3901]12345678901234[20]12", 0, "25312345678901284[0112345678901231390112345678901234[2012" }, + /* 6*/ { "[1A]12", ZINT_ERROR_INVALID_DATA, "" }, + /* 7*/ { "[10]", ZINT_ERROR_INVALID_DATA, "" }, + /* 8*/ { "[90]\n", ZINT_ERROR_INVALID_DATA, "" }, + /* 9*/ { "[90]\x7F", ZINT_ERROR_INVALID_DATA, "" }, + /* 10*/ { "[90]\x80", ZINT_ERROR_INVALID_DATA, "" }, + /* 11*/ { "[00]123456789012345678", ZINT_WARN_NONCOMPLIANT, "00123456789012345678" }, + /* 12*/ { "[00]123456789012345675", 0, "00123456789012345675" }, + /* 13*/ { "[00]12345678901234567", ZINT_ERROR_INVALID_DATA, "" }, + /* 14*/ { "[00]1234567890123456789", ZINT_ERROR_INVALID_DATA, "" }, + /* 15*/ { "[00]376104250021234569", 0, "00376104250021234569" }, + /* 16*/ { "[00]376104250021234568", ZINT_WARN_NONCOMPLIANT, "00376104250021234568" }, + /* 17*/ { "[01]12345678901234", ZINT_WARN_NONCOMPLIANT, "0112345678901234" }, + /* 18*/ { "[01]12345678901231", 0, "0112345678901231" }, + /* 19*/ { "[01]123456789012345", ZINT_ERROR_INVALID_DATA, "" }, + /* 20*/ { "[02]12345678901234", ZINT_WARN_NONCOMPLIANT, "0212345678901234" }, + /* 21*/ { "[02]12345678901231", 0, "0212345678901231" }, + /* 22*/ { "[02]1234567890123", ZINT_ERROR_INVALID_DATA, "" }, + /* 23*/ { "[03]12345678901234", ZINT_ERROR_INVALID_DATA, "" }, + /* 24*/ { "[04]1234", ZINT_ERROR_INVALID_DATA, "" }, + /* 25*/ { "[05]1234", ZINT_ERROR_INVALID_DATA, "" }, + /* 26*/ { "[06]1234", ZINT_ERROR_INVALID_DATA, "" }, + /* 27*/ { "[07]1234", ZINT_ERROR_INVALID_DATA, "" }, + /* 28*/ { "[08]1234", ZINT_ERROR_INVALID_DATA, "" }, + /* 29*/ { "[09]1234", ZINT_ERROR_INVALID_DATA, "" }, + /* 30*/ { "[10]ABCD123456", 0, "10ABCD123456" }, + /* 31*/ { "[10]123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, + /* 32*/ { "[100]1234", ZINT_ERROR_INVALID_DATA, "" }, + /* 33*/ { "[1000]1234", ZINT_ERROR_INVALID_DATA, "" }, + /* 34*/ { "[11]990102", 0, "11990102" }, + /* 35*/ { "[11]9901023", ZINT_ERROR_INVALID_DATA, "" }, + /* 36*/ { "[110]990102", ZINT_ERROR_INVALID_DATA, "" }, + /* 37*/ { "[1100]990102", ZINT_ERROR_INVALID_DATA, "" }, + /* 38*/ { "[12]000100", 0, "12000100" }, + /* 39*/ { "[12]00010", ZINT_ERROR_INVALID_DATA, "" }, + /* 40*/ { "[120]000100", ZINT_ERROR_INVALID_DATA, "" }, + /* 41*/ { "[1200]000100", ZINT_ERROR_INVALID_DATA, "" }, + /* 42*/ { "[13]991301", ZINT_WARN_NONCOMPLIANT, "13991301" }, + /* 43*/ { "[13]991201", 0, "13991201" }, + /* 44*/ { "[13]9913011", ZINT_ERROR_INVALID_DATA, "" }, + /* 45*/ { "[130]991301", ZINT_ERROR_INVALID_DATA, "" }, + /* 46*/ { "[1300]991301", ZINT_ERROR_INVALID_DATA, "" }, + /* 47*/ { "[14]991201", ZINT_ERROR_INVALID_DATA, "" }, + /* 48*/ { "[140]1234", ZINT_ERROR_INVALID_DATA, "" }, + /* 49*/ { "[1400]1234", ZINT_ERROR_INVALID_DATA, "" }, + /* 50*/ { "[15]021231", 0, "15021231" }, + /* 51*/ { "[15]02123", ZINT_ERROR_INVALID_DATA, "" }, + /* 52*/ { "[150]021231", ZINT_ERROR_INVALID_DATA, "" }, + /* 53*/ { "[1500]021231", ZINT_ERROR_INVALID_DATA, "" }, + /* 54*/ { "[16]000000", ZINT_WARN_NONCOMPLIANT, "16000000" }, + /* 55*/ { "[16]000100", 0, "16000100" }, + /* 56*/ { "[16]00000", ZINT_ERROR_INVALID_DATA, "" }, + /* 57*/ { "[160]000000", ZINT_ERROR_INVALID_DATA, "" }, + /* 58*/ { "[1600]000000", ZINT_ERROR_INVALID_DATA, "" }, + /* 59*/ { "[17]010200", 0, "17010200" }, + /* 60*/ { "[17]0102000", ZINT_ERROR_INVALID_DATA, "" }, + /* 61*/ { "[170]010200", ZINT_ERROR_INVALID_DATA, "" }, + /* 62*/ { "[1700]010200", ZINT_ERROR_INVALID_DATA, "" }, + /* 63*/ { "[18]1234", ZINT_ERROR_INVALID_DATA, "" }, + /* 64*/ { "[180]1234", ZINT_ERROR_INVALID_DATA, "" }, + /* 65*/ { "[1800]1234", ZINT_ERROR_INVALID_DATA, "" }, + /* 66*/ { "[19]1234", ZINT_ERROR_INVALID_DATA, "" }, + /* 67*/ { "[190]1234", ZINT_ERROR_INVALID_DATA, "" }, + /* 68*/ { "[1900]1234", ZINT_ERROR_INVALID_DATA, "" }, + /* 69*/ { "[20]12", 0, "2012" }, + /* 70*/ { "[20]1", ZINT_ERROR_INVALID_DATA, "" }, + /* 71*/ { "[200]12", ZINT_ERROR_INVALID_DATA, "" }, + /* 72*/ { "[2000]12", ZINT_ERROR_INVALID_DATA, "" }, + /* 73*/ { "[21]A12345678", 0, "21A12345678" }, + /* 74*/ { "[21]123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, + /* 75*/ { "[210]A12345678", ZINT_ERROR_INVALID_DATA, "" }, + /* 76*/ { "[2100]1234", ZINT_ERROR_INVALID_DATA, "" }, + /* 77*/ { "[22]abcdefghijklmnopqrst", 0, "22abcdefghijklmnopqrst" }, + /* 78*/ { "[22]abcdefghijklmnopqrstu", ZINT_ERROR_INVALID_DATA, "" }, + /* 79*/ { "[220]1234", ZINT_ERROR_INVALID_DATA, "" }, + /* 80*/ { "[2200]1234", ZINT_ERROR_INVALID_DATA, "" }, + /* 81*/ { "[23]1234", ZINT_ERROR_INVALID_DATA, "" }, + /* 82*/ { "[230]1234", ZINT_ERROR_INVALID_DATA, "" }, + /* 83*/ { "[2300]1234", ZINT_ERROR_INVALID_DATA, "" }, + /* 84*/ { "[235]1abcdefghijklmnopqrstuvwxyz0", 0, "2351abcdefghijklmnopqrstuvwxyz0" }, + /* 85*/ { "[235]1abcdefghijklmnopqrstuvwxyz01", ZINT_ERROR_INVALID_DATA, "" }, + /* 86*/ { "[24]1234", ZINT_ERROR_INVALID_DATA, "" }, + /* 87*/ { "[240]abcdefghijklmnopqrstuvwxyz1234", 0, "240abcdefghijklmnopqrstuvwxyz1234" }, + /* 88*/ { "[240]abcdefghijklmnopqrstuvwxyz12345", ZINT_ERROR_INVALID_DATA, "" }, + /* 89*/ { "[2400]1234", ZINT_ERROR_INVALID_DATA, "" }, + /* 90*/ { "[241]abcdefghijklmnopqrstuvwxyz1234", 0, "241abcdefghijklmnopqrstuvwxyz1234" }, + /* 91*/ { "[241]abcdefghijklmnopqrstuvwxyz12345", ZINT_ERROR_INVALID_DATA, "" }, + /* 92*/ { "[2410]1234", ZINT_ERROR_INVALID_DATA, "" }, + /* 93*/ { "[242]12345", 0, "24212345" }, + /* 94*/ { "[242]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /* 95*/ { "[2420]1234", ZINT_ERROR_INVALID_DATA, "" }, + /* 96*/ { "[243]abcdefghijklmnopqrst", 0, "243abcdefghijklmnopqrst" }, + /* 97*/ { "[243]abcdefghijklmnopqrstu", ZINT_ERROR_INVALID_DATA, "" }, + /* 98*/ { "[2430]1234", ZINT_ERROR_INVALID_DATA, "" }, + /* 99*/ { "[244]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*100*/ { "[2440]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*101*/ { "[249]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*102*/ { "[2490]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*103*/ { "[25]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*104*/ { "[250]abcdefghijklmnopqrstuvwxyz1234", 0, "250abcdefghijklmnopqrstuvwxyz1234" }, + /*105*/ { "[250]abcdefghijklmnopqrstuvwxyz12345", ZINT_ERROR_INVALID_DATA, "" }, + /*106*/ { "[2500]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*107*/ { "[251]abcdefghijklmnopqrstuvwxyz1234", 0, "251abcdefghijklmnopqrstuvwxyz1234" }, + /*108*/ { "[251]abcdefghijklmnopqrstuvwxyz12345", ZINT_ERROR_INVALID_DATA, "" }, + /*109*/ { "[2510]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*110*/ { "[252]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*111*/ { "[2520]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*112*/ { "[253]131313131313", ZINT_ERROR_INVALID_DATA, "" }, + /*113*/ { "[253]1313131313134", ZINT_WARN_NONCOMPLIANT, "2531313131313134" }, + /*114*/ { "[253]1313131313130", 0, "2531313131313130" }, + /*115*/ { "[253]131313131313412345678901234567", ZINT_WARN_NONCOMPLIANT, "253131313131313412345678901234567" }, + /*116*/ { "[253]131313131313012345678901234567", 0, "253131313131313012345678901234567" }, + /*117*/ { "[253]1313131313134123456789012345678", ZINT_ERROR_INVALID_DATA, "" }, + /*118*/ { "[2530]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*119*/ { "[254]abcdefghijklmnopqrst", 0, "254abcdefghijklmnopqrst" }, + /*120*/ { "[254]abcdefghijklmnopqrstu", ZINT_ERROR_INVALID_DATA, "" }, + /*121*/ { "[2540]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*122*/ { "[255]131313131313", ZINT_ERROR_INVALID_DATA, "" }, + /*123*/ { "[255]1313131313134", ZINT_WARN_NONCOMPLIANT, "2551313131313134" }, + /*124*/ { "[255]1313131313130", 0, "2551313131313130" }, + /*125*/ { "[255]1313131313134123456789012", ZINT_WARN_NONCOMPLIANT, "2551313131313134123456789012" }, + /*126*/ { "[255]1313131313130123456789012", 0, "2551313131313130123456789012" }, + /*127*/ { "[255]13131313131341234567890123", ZINT_ERROR_INVALID_DATA, "" }, + /*128*/ { "[2550]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*129*/ { "[256]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*130*/ { "[2560]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*131*/ { "[259]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*132*/ { "[2590]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*133*/ { "[26]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*134*/ { "[260]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*135*/ { "[2600]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*136*/ { "[27]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*137*/ { "[270]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*138*/ { "[2700]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*139*/ { "[28]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*140*/ { "[280]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*141*/ { "[2800]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*142*/ { "[29]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*143*/ { "[290]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*144*/ { "[2900]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*145*/ { "[30]12345678", 0, "3012345678" }, + /*146*/ { "[30]123456789", ZINT_ERROR_INVALID_DATA, "" }, + /*147*/ { "[300]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*148*/ { "[3000]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*149*/ { "[31]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*150*/ { "[310]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*151*/ { "[3100]123456", 0, "3100123456" }, + /*152*/ { "[3100]12345", ZINT_ERROR_INVALID_DATA, "" }, + /*153*/ { "[3101]123456", 0, "3101123456" }, + /*154*/ { "[3101]12345", ZINT_ERROR_INVALID_DATA, "" }, + /*155*/ { "[3105]123456", 0, "3105123456" }, + /*156*/ { "[3105]12345", ZINT_ERROR_INVALID_DATA, "" }, + /*157*/ { "[3106]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*158*/ { "[3109]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*159*/ { "[3110]123456", 0, "3110123456" }, + /*160*/ { "[3110]12345", ZINT_ERROR_INVALID_DATA, "" }, + /*161*/ { "[3115]123456", 0, "3115123456" }, + /*162*/ { "[3115]12345", ZINT_ERROR_INVALID_DATA, "" }, + /*163*/ { "[3116]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*164*/ { "[3119]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*165*/ { "[3120]123456", 0, "3120123456" }, + /*166*/ { "[3120]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /*167*/ { "[3125]123456", 0, "3125123456" }, + /*168*/ { "[3125]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /*169*/ { "[3126]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*170*/ { "[3129]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*171*/ { "[3130]123456", 0, "3130123456" }, + /*172*/ { "[3130]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /*173*/ { "[3135]123456", 0, "3135123456" }, + /*174*/ { "[3135]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /*175*/ { "[3136]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*176*/ { "[3139]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*177*/ { "[3140]123456", 0, "3140123456" }, + /*178*/ { "[3140]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /*179*/ { "[3145]123456", 0, "3145123456" }, + /*180*/ { "[3145]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /*181*/ { "[3146]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*182*/ { "[3149]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*183*/ { "[3150]123456", 0, "3150123456" }, + /*184*/ { "[3150]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /*185*/ { "[3155]123456", 0, "3155123456" }, + /*186*/ { "[3155]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /*187*/ { "[3156]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*188*/ { "[3159]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*189*/ { "[3160]123456", 0, "3160123456" }, + /*190*/ { "[3160]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /*191*/ { "[3165]123456", 0, "3165123456" }, + /*192*/ { "[3165]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /*193*/ { "[3166]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*194*/ { "[3169]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*195*/ { "[3170]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*196*/ { "[3179]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*197*/ { "[3180]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*198*/ { "[3189]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*199*/ { "[3190]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*200*/ { "[3199]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*201*/ { "[32]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*202*/ { "[320]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*203*/ { "[3200]123456", 0, "3200123456" }, + /*204*/ { "[3200]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /*205*/ { "[3205]123456", 0, "3205123456" }, + /*206*/ { "[3205]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /*207*/ { "[3206]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*208*/ { "[3209]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*209*/ { "[3210]123456", 0, "3210123456" }, + /*210*/ { "[3210]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /*211*/ { "[3215]123456", 0, "3215123456" }, + /*212*/ { "[3215]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /*213*/ { "[3216]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*214*/ { "[3219]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*215*/ { "[3220]123456", 0, "3220123456" }, + /*216*/ { "[3220]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /*217*/ { "[3225]123456", 0, "3225123456" }, + /*218*/ { "[3225]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /*219*/ { "[3229]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*220*/ { "[3230]123456", 0, "3230123456" }, + /*221*/ { "[3230]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /*222*/ { "[3235]123456", 0, "3235123456" }, + /*223*/ { "[3235]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /*224*/ { "[3239]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*225*/ { "[3240]123456", 0, "3240123456" }, + /*226*/ { "[3240]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /*227*/ { "[3245]123456", 0, "3245123456" }, + /*228*/ { "[3245]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /*229*/ { "[3249]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*230*/ { "[3250]123456", 0, "3250123456" }, + /*231*/ { "[3250]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /*232*/ { "[3255]123456", 0, "3255123456" }, + /*233*/ { "[3255]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /*234*/ { "[3259]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*235*/ { "[3260]123456", 0, "3260123456" }, + /*236*/ { "[3260]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /*237*/ { "[3265]123456", 0, "3265123456" }, + /*238*/ { "[3265]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /*239*/ { "[3269]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*240*/ { "[3270]123456", 0, "3270123456" }, + /*241*/ { "[3270]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /*242*/ { "[3275]123456", 0, "3275123456" }, + /*243*/ { "[3275]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /*244*/ { "[3279]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*245*/ { "[3280]123456", 0, "3280123456" }, + /*246*/ { "[3280]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /*247*/ { "[3285]123456", 0, "3285123456" }, + /*248*/ { "[3285]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /*249*/ { "[3289]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*250*/ { "[3290]123456", 0, "3290123456" }, + /*251*/ { "[3290]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /*252*/ { "[3295]123456", 0, "3295123456" }, + /*253*/ { "[3295]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /*254*/ { "[3296]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*255*/ { "[3299]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*256*/ { "[33]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*257*/ { "[330]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*258*/ { "[3300]123456", 0, "3300123456" }, + /*259*/ { "[3300]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /*260*/ { "[3305]123456", 0, "3305123456" }, + /*261*/ { "[3305]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /*262*/ { "[3306]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*263*/ { "[3309]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*264*/ { "[3310]123456", 0, "3310123456" }, + /*265*/ { "[3310]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /*266*/ { "[3319]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*267*/ { "[3320]123456", 0, "3320123456" }, + /*268*/ { "[3320]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /*269*/ { "[3329]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*270*/ { "[3330]123456", 0, "3330123456" }, + /*271*/ { "[3330]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /*272*/ { "[3339]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*273*/ { "[3340]123456", 0, "3340123456" }, + /*274*/ { "[3340]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /*275*/ { "[3349]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*276*/ { "[3350]123456", 0, "3350123456" }, + /*277*/ { "[3350]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /*278*/ { "[3359]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*279*/ { "[3360]123456", 0, "3360123456" }, + /*280*/ { "[3360]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /*281*/ { "[3369]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*282*/ { "[3370]123456", 0, "3370123456" }, + /*283*/ { "[3370]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /*284*/ { "[3375]123456", 0, "3375123456" }, + /*285*/ { "[3375]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /*286*/ { "[3376]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*287*/ { "[3379]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*288*/ { "[3380]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*289*/ { "[3390]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*290*/ { "[3399]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*291*/ { "[34]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*292*/ { "[340]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*293*/ { "[3400]123456", 0, "3400123456" }, + /*294*/ { "[3400]12345", ZINT_ERROR_INVALID_DATA, "" }, + /*295*/ { "[3405]123456", 0, "3405123456" }, + /*296*/ { "[3405]12345", ZINT_ERROR_INVALID_DATA, "" }, + /*297*/ { "[3406]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*298*/ { "[3409]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*299*/ { "[3410]123456", 0, "3410123456" }, + /*300*/ { "[3410]12345", ZINT_ERROR_INVALID_DATA, "" }, + /*301*/ { "[3419]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*302*/ { "[3420]123456", 0, "3420123456" }, + /*303*/ { "[3420]12345", ZINT_ERROR_INVALID_DATA, "" }, + /*304*/ { "[3429]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*305*/ { "[3430]123456", 0, "3430123456" }, + /*306*/ { "[3430]12345", ZINT_ERROR_INVALID_DATA, "" }, + /*307*/ { "[3439]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*308*/ { "[3440]123456", 0, "3440123456" }, + /*309*/ { "[3440]12345", ZINT_ERROR_INVALID_DATA, "" }, + /*310*/ { "[3449]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*311*/ { "[3450]123456", 0, "3450123456" }, + /*312*/ { "[3450]12345", ZINT_ERROR_INVALID_DATA, "" }, + /*313*/ { "[3459]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*314*/ { "[3460]123456", 0, "3460123456" }, + /*315*/ { "[3460]12345", ZINT_ERROR_INVALID_DATA, "" }, + /*316*/ { "[3469]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*317*/ { "[3470]123456", 0, "3470123456" }, + /*318*/ { "[3470]12345", ZINT_ERROR_INVALID_DATA, "" }, + /*319*/ { "[3479]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*320*/ { "[3480]123456", 0, "3480123456" }, + /*321*/ { "[3480]12345", ZINT_ERROR_INVALID_DATA, "" }, + /*322*/ { "[3489]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*323*/ { "[3490]123456", 0, "3490123456" }, + /*324*/ { "[3490]12345", ZINT_ERROR_INVALID_DATA, "" }, + /*325*/ { "[3495]123456", 0, "3495123456" }, + /*326*/ { "[3495]12345", ZINT_ERROR_INVALID_DATA, "" }, + /*327*/ { "[3496]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*328*/ { "[3499]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*329*/ { "[35]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*330*/ { "[350]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*331*/ { "[3500]123456", 0, "3500123456" }, + /*332*/ { "[3500]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /*333*/ { "[3505]123456", 0, "3505123456" }, + /*334*/ { "[3505]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /*335*/ { "[3506]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*336*/ { "[3509]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*337*/ { "[3510]123456", 0, "3510123456", }, + /*338*/ { "[3510]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /*339*/ { "[3519]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*340*/ { "[3520]123456", 0, "3520123456", }, + /*341*/ { "[3520]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /*342*/ { "[3529]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*343*/ { "[3530]123456", 0, "3530123456", }, + /*344*/ { "[3530]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /*345*/ { "[3539]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*346*/ { "[3540]123456", 0, "3540123456", }, + /*347*/ { "[3540]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /*348*/ { "[3549]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*349*/ { "[3550]123456", 0, "3550123456", }, + /*350*/ { "[3550]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /*351*/ { "[3559]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*352*/ { "[3560]123456", 0, "3560123456", }, + /*353*/ { "[3560]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /*354*/ { "[3569]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*355*/ { "[3570]123456", 0, "3570123456", }, + /*356*/ { "[3570]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /*357*/ { "[3575]123456", 0, "3575123456" }, + /*358*/ { "[3376]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*359*/ { "[3579]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*360*/ { "[3580]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*361*/ { "[3590]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*362*/ { "[3599]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*363*/ { "[36]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*364*/ { "[360]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*365*/ { "[3600]123456", 0, "3600123456" }, + /*366*/ { "[3600]12345", ZINT_ERROR_INVALID_DATA, "" }, + /*367*/ { "[3605]123456", 0, "3605123456" }, + /*368*/ { "[3605]12345", ZINT_ERROR_INVALID_DATA, "" }, + /*369*/ { "[3606]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*370*/ { "[3609]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*371*/ { "[3610]123456", 0, "3610123456" }, + /*372*/ { "[3610]12345", ZINT_ERROR_INVALID_DATA, "" }, + /*373*/ { "[3619]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*374*/ { "[3620]123456", 0, "3620123456", }, + /*375*/ { "[3620]12345", ZINT_ERROR_INVALID_DATA, "" }, + /*376*/ { "[3629]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*377*/ { "[3630]123456", 0, "3630123456", }, + /*378*/ { "[3630]12345", ZINT_ERROR_INVALID_DATA, "" }, + /*379*/ { "[3639]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*380*/ { "[3640]123456", 0, "3640123456", }, + /*381*/ { "[3640]12345", ZINT_ERROR_INVALID_DATA, "" }, + /*382*/ { "[3649]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*383*/ { "[3650]123456", 0, "3650123456", }, + /*384*/ { "[3650]12345", ZINT_ERROR_INVALID_DATA, "" }, + /*385*/ { "[3659]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*386*/ { "[3660]123456", 0, "3660123456", }, + /*387*/ { "[3660]12345", ZINT_ERROR_INVALID_DATA, "" }, + /*388*/ { "[3669]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*389*/ { "[3670]123456", 0, "3670123456", }, + /*390*/ { "[3670]12345", ZINT_ERROR_INVALID_DATA, "" }, + /*391*/ { "[3679]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*392*/ { "[3680]123456", 0, "3680123456", }, + /*393*/ { "[3680]12345", ZINT_ERROR_INVALID_DATA, "" }, + /*394*/ { "[3689]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*395*/ { "[3690]123456", 0, "3690123456" }, + /*396*/ { "[3690]12345", ZINT_ERROR_INVALID_DATA, "" }, + /*397*/ { "[3695]123456", 0, "3695123456" }, + /*398*/ { "[3695]12345", ZINT_ERROR_INVALID_DATA, "" }, + /*399*/ { "[3696]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*400*/ { "[3699]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*401*/ { "[37]12345678", 0, "3712345678" }, + /*402*/ { "[37]123456789", ZINT_ERROR_INVALID_DATA, "" }, + /*403*/ { "[370]12345678", ZINT_ERROR_INVALID_DATA, "" }, + /*404*/ { "[3700]12345678", ZINT_ERROR_INVALID_DATA, "" }, + /*405*/ { "[38]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*406*/ { "[380]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*407*/ { "[3800]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*408*/ { "[39]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*409*/ { "[390]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*410*/ { "[3900]123456789012345", 0, "3900123456789012345" }, + /*411*/ { "[3900]1234567890123456", ZINT_ERROR_INVALID_DATA, "" }, + /*412*/ { "[3900]12345678901234", 0, "390012345678901234" }, + /*413*/ { "[3901]123456789012345", 0, "3901123456789012345" }, + /*414*/ { "[3901]1234567890123456", ZINT_ERROR_INVALID_DATA, "" }, + /*415*/ { "[3905]123456789012345", 0, "3905123456789012345" }, + /*416*/ { "[3909]123456789012345", 0, "3909123456789012345" }, + /*417*/ { "[3909]1234567890123456", ZINT_ERROR_INVALID_DATA, "" }, + /*418*/ { "[3910]123123456789012345", ZINT_WARN_NONCOMPLIANT, "3910123123456789012345" }, + /*419*/ { "[3910]997123456789012345", 0, "3910997123456789012345" }, + /*420*/ { "[3910]1231234567890123456", ZINT_ERROR_INVALID_DATA, "" }, + /*421*/ { "[3910]123", ZINT_ERROR_INVALID_DATA, "" }, + /*422*/ { "[3915]123123456789012345", ZINT_WARN_NONCOMPLIANT, "3915123123456789012345" }, + /*423*/ { "[3915]997123456789012345", 0, "3915997123456789012345" }, + /*424*/ { "[3915]1231234567890123456", ZINT_ERROR_INVALID_DATA, "" }, + /*425*/ { "[3919]123123456789012345", ZINT_WARN_NONCOMPLIANT, "3919123123456789012345" }, + /*426*/ { "[3919]997123456789012345", 0, "3919997123456789012345" }, + /*427*/ { "[3919]1231234567890123456", ZINT_ERROR_INVALID_DATA, "" }, + /*428*/ { "[3920]123456789012345", 0, "3920123456789012345" }, + /*429*/ { "[3920]1234567890123456", ZINT_ERROR_INVALID_DATA, "" }, + /*430*/ { "[3925]123456789012345", 0, "3925123456789012345" }, + /*431*/ { "[3925]1234567890123456", ZINT_ERROR_INVALID_DATA, "" }, + /*432*/ { "[3929]123456789012345", 0, "3929123456789012345" }, + /*433*/ { "[3929]1234567890123456", ZINT_ERROR_INVALID_DATA, "" }, + /*434*/ { "[3930]123123456789012345", ZINT_WARN_NONCOMPLIANT, "3930123123456789012345" }, + /*435*/ { "[3930]997123456789012345", 0, "3930997123456789012345" }, + /*436*/ { "[3930]1231234567890123456", ZINT_ERROR_INVALID_DATA, "" }, + /*437*/ { "[3930]123", ZINT_ERROR_INVALID_DATA, "" }, + /*438*/ { "[3935]123123456789012345", ZINT_WARN_NONCOMPLIANT, "3935123123456789012345" }, + /*439*/ { "[3935]997123456789012345", 0, "3935997123456789012345" }, + /*440*/ { "[3935]1231234567890123456", ZINT_ERROR_INVALID_DATA, "" }, + /*441*/ { "[3939]123123456789012345", ZINT_WARN_NONCOMPLIANT, "3939123123456789012345" }, + /*442*/ { "[3939]997123456789012345", 0, "3939997123456789012345" }, + /*443*/ { "[3939]1231234567890123456", ZINT_ERROR_INVALID_DATA, "" }, + /*444*/ { "[3940]1234", 0, "39401234" }, + /*445*/ { "[3940]12345", ZINT_ERROR_INVALID_DATA, "" }, + /*446*/ { "[3940]123", ZINT_ERROR_INVALID_DATA, "" }, + /*447*/ { "[3941]1234", 0, "39411234" }, + /*448*/ { "[3941]12345", ZINT_ERROR_INVALID_DATA, "" }, + /*449*/ { "[3941]123", ZINT_ERROR_INVALID_DATA, "" }, + /*450*/ { "[3942]1234", 0, "39421234" }, + /*451*/ { "[3942]12345", ZINT_ERROR_INVALID_DATA, "" }, + /*452*/ { "[3943]1234", 0, "39431234" }, + /*453*/ { "[3943]123", ZINT_ERROR_INVALID_DATA, "" }, + /*454*/ { "[3944]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*455*/ { "[3945]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*456*/ { "[3949]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*457*/ { "[3950]123456", 0, "3950123456" }, + /*458*/ { "[3950]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /*459*/ { "[3950]12345", ZINT_ERROR_INVALID_DATA, "" }, + /*460*/ { "[3951]123456", 0, "3951123456" }, + /*461*/ { "[3951]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /*462*/ { "[3952]123456", 0, "3952123456" }, + /*463*/ { "[3952]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /*464*/ { "[3953]123456", 0, "3953123456" }, + /*465*/ { "[3953]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /*466*/ { "[3954]123456", 0, "3954123456" }, + /*467*/ { "[3954]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /*468*/ { "[3955]123456", 0, "3955123456" }, + /*469*/ { "[3955]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /*470*/ { "[3956]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*471*/ { "[3959]123456", ZINT_ERROR_INVALID_DATA, "" }, + /*472*/ { "[3960]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*473*/ { "[3970]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*474*/ { "[3980]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*475*/ { "[3999]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*476*/ { "[40]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*477*/ { "[400]123456789012345678901234567890", 0, "400123456789012345678901234567890" }, + /*478*/ { "[400]1234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, + /*479*/ { "[4000]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*480*/ { "[401]1234abcdefghijklmnopqrstuvwxyz", 0, "4011234abcdefghijklmnopqrstuvwxyz" }, + /*481*/ { "[401]1234abcdefghijklmnopqrstuvwxyz1", ZINT_ERROR_INVALID_DATA, "" }, + /*482*/ { "[4010]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*483*/ { "[402]13131313131313132", ZINT_WARN_NONCOMPLIANT, "40213131313131313132" }, + /*484*/ { "[402]13131313131313130", 0, "40213131313131313130" }, + /*485*/ { "[402]1313131313131313", ZINT_ERROR_INVALID_DATA, "" }, + /*486*/ { "[4020]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*487*/ { "[403]abcdefghijklmnopqrstuvwxyz1234", 0, "403abcdefghijklmnopqrstuvwxyz1234" }, + /*488*/ { "[403]abcdefghijklmnopqrstuvwxyz12345", ZINT_ERROR_INVALID_DATA, "" }, + /*489*/ { "[4030]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*490*/ { "[404]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*491*/ { "[4040]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*492*/ { "[409]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*493*/ { "[4090]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*494*/ { "[41]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*495*/ { "[410]3898765432108", 0, "4103898765432108" }, + /*496*/ { "[410]12345678901234", ZINT_ERROR_INVALID_DATA, "" }, + /*497*/ { "[4100]12345678901234", ZINT_ERROR_INVALID_DATA, "" }, + /*498*/ { "[411]1313131313134", ZINT_WARN_NONCOMPLIANT, "4111313131313134" }, + /*499*/ { "[411]1313131313130", 0, "4111313131313130" }, + /*500*/ { "[411]13131313131", ZINT_ERROR_INVALID_DATA, "" }, + /*501*/ { "[4110]1313131313134", ZINT_ERROR_INVALID_DATA, "" }, + /*502*/ { "[412]1313131313130", 0, "4121313131313130" }, + /*503*/ { "[412]13131313131", ZINT_ERROR_INVALID_DATA, "" }, + /*504*/ { "[4120]1313131313134", ZINT_ERROR_INVALID_DATA, "" }, + /*505*/ { "[413]1313131313130", 0, "4131313131313130" }, + /*506*/ { "[413]13131313131", ZINT_ERROR_INVALID_DATA, "" }, + /*507*/ { "[4130]1313131313134", ZINT_ERROR_INVALID_DATA, "" }, + /*508*/ { "[414]1313131313130", 0, "4141313131313130" }, + /*509*/ { "[414]13131313131", ZINT_ERROR_INVALID_DATA, "" }, + /*510*/ { "[4140]1313131313134", ZINT_ERROR_INVALID_DATA, "" }, + /*511*/ { "[415]1313131313130", 0, "4151313131313130" }, + /*512*/ { "[415]13131313131", ZINT_ERROR_INVALID_DATA, "" }, + /*513*/ { "[4150]1313131313134", ZINT_ERROR_INVALID_DATA, "" }, + /*514*/ { "[416]1313131313130", 0, "4161313131313130" }, + /*515*/ { "[416]13131313131", ZINT_ERROR_INVALID_DATA, "" }, + /*516*/ { "[4160]1313131313134", ZINT_ERROR_INVALID_DATA, "" }, + /*517*/ { "[417]1313131313130", 0, "4171313131313130" }, + /*518*/ { "[417]13131313131", ZINT_ERROR_INVALID_DATA, "" }, + /*519*/ { "[4170]1313131313134", ZINT_ERROR_INVALID_DATA, "" }, + /*520*/ { "[418]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*521*/ { "[4180]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*522*/ { "[419]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*523*/ { "[4190]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*524*/ { "[42]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*525*/ { "[420]abcdefghijklmnopqrst", 0, "420abcdefghijklmnopqrst" }, + /*526*/ { "[420]abcdefghijklmnopqrstu", ZINT_ERROR_INVALID_DATA, "" }, + /*527*/ { "[4200]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*528*/ { "[421]123abcdefghi", ZINT_WARN_NONCOMPLIANT, "421123abcdefghi" }, + /*529*/ { "[421]434abcdefghi", 0, "421434abcdefghi" }, + /*530*/ { "[421]123abcdefghij", ZINT_ERROR_INVALID_DATA, "" }, + /*531*/ { "[421]1231", ZINT_WARN_NONCOMPLIANT, "4211231" }, + /*532*/ { "[421]4341", 0, "4214341" }, + /*533*/ { "[421]123", ZINT_ERROR_INVALID_DATA, "" }, + /*534*/ { "[4210]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*535*/ { "[422]123", ZINT_WARN_NONCOMPLIANT, "422123" }, + /*536*/ { "[422]004", 0, "422004" }, + /*537*/ { "[422]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*538*/ { "[422]12", ZINT_ERROR_INVALID_DATA, "" }, + /*539*/ { "[4220]123", ZINT_ERROR_INVALID_DATA, "" }, + /*540*/ { "[423]123123123123123", ZINT_WARN_NONCOMPLIANT, "423123123123123123" }, + /*541*/ { "[423]470004012887123", ZINT_WARN_NONCOMPLIANT, "423470004012887123" }, + /*542*/ { "[423]470004012887438", 0, "423470004012887438" }, + /*543*/ { "[423]1231231231231231", ZINT_ERROR_INVALID_DATA, "4231231231231231231" }, + /*544*/ { "[423]12312312312312", ZINT_WARN_NONCOMPLIANT, "42312312312312312" }, + /*545*/ { "[423]1231231231231", ZINT_WARN_NONCOMPLIANT, "4231231231231231" }, + /*546*/ { "[423]12312312312", ZINT_WARN_NONCOMPLIANT, "42312312312312" }, + /*547*/ { "[423]1231231231", ZINT_WARN_NONCOMPLIANT, "4231231231231" }, + /*548*/ { "[423]123", ZINT_WARN_NONCOMPLIANT, "423123" }, + /*549*/ { "[423]004", 0, "423004" }, + /*550*/ { "[423]12", ZINT_ERROR_INVALID_DATA, "" }, + /*551*/ { "[4230]123123123123123", ZINT_ERROR_INVALID_DATA, "" }, + /*552*/ { "[424]123", ZINT_WARN_NONCOMPLIANT, "424123" }, + /*553*/ { "[424]004", 0, "424004" }, + /*554*/ { "[424]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*555*/ { "[424]12", ZINT_ERROR_INVALID_DATA, "" }, + /*556*/ { "[4240]123", ZINT_ERROR_INVALID_DATA, "" }, + /*557*/ { "[425]123123123123123", ZINT_WARN_NONCOMPLIANT, "425123123123123123" }, + /*558*/ { "[425]010500276634894", 0, "425010500276634894" }, + /*559*/ { "[425]010500276123894", ZINT_WARN_NONCOMPLIANT, "425010500276123894" }, + /*560*/ { "[425]1231231231231231", ZINT_ERROR_INVALID_DATA, "" }, + /*561*/ { "[425]12", ZINT_ERROR_INVALID_DATA, "" }, + /*562*/ { "[4250]123123123123123", ZINT_ERROR_INVALID_DATA, "" }, + /*563*/ { "[426]123", ZINT_WARN_NONCOMPLIANT, "426123" }, + /*564*/ { "[426]426", 0, "426426" }, + /*565*/ { "[426]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*566*/ { "[426]12", ZINT_ERROR_INVALID_DATA, "" }, + /*567*/ { "[4260]123", ZINT_ERROR_INVALID_DATA, "" }, + /*568*/ { "[427]abc", 0, "427abc" }, + /*569*/ { "[427]abcd", ZINT_ERROR_INVALID_DATA, "" }, + /*570*/ { "[4270]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*571*/ { "[428]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*572*/ { "[4280]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*573*/ { "[429]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*574*/ { "[4290]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*575*/ { "[43]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*576*/ { "[430]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*577*/ { "[4300]1", 0, "43001" }, + /*578*/ { "[4300]12345678901234567890123456789012345", 0, "430012345678901234567890123456789012345" }, + /*579*/ { "[4300]123456789012345678901234567890123456", ZINT_ERROR_INVALID_DATA, "" }, + /*580*/ { "[4301]1", 0, "43011" }, + /*581*/ { "[4301]12345678901234567890123456789012345", 0, "430112345678901234567890123456789012345" }, + /*582*/ { "[4301]123456789012345678901234567890123456", ZINT_ERROR_INVALID_DATA, "" }, + /*583*/ { "[4302]1", 0, "43021" }, + /*584*/ { "[4302]1234567890123456789012345678901234567890123456789012345678901234567890", 0, "43021234567890123456789012345678901234567890123456789012345678901234567890" }, + /*585*/ { "[4302]12345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, + /*586*/ { "[4303]1", 0, "43031" }, + /*587*/ { "[4303]1234567890123456789012345678901234567890123456789012345678901234567890", 0, "43031234567890123456789012345678901234567890123456789012345678901234567890" }, + /*588*/ { "[4303]12345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, + /*589*/ { "[4304]1", 0, "43041" }, + /*590*/ { "[4304]1234567890123456789012345678901234567890123456789012345678901234567890", 0, "43041234567890123456789012345678901234567890123456789012345678901234567890" }, + /*591*/ { "[4304]12345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, + /*592*/ { "[4305]1", 0, "43051" }, + /*593*/ { "[4305]1234567890123456789012345678901234567890123456789012345678901234567890", 0, "43051234567890123456789012345678901234567890123456789012345678901234567890" }, + /*594*/ { "[4305]12345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, + /*595*/ { "[4306]1", 0, "43061" }, + /*596*/ { "[4306]1234567890123456789012345678901234567890123456789012345678901234567890", 0, "43061234567890123456789012345678901234567890123456789012345678901234567890" }, + /*597*/ { "[4306]12345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, + /*598*/ { "[4307]FR", 0, "4307FR" }, + /*599*/ { "[4307]F", ZINT_ERROR_INVALID_DATA, "" }, + /*600*/ { "[4307]FRR", ZINT_ERROR_INVALID_DATA, "" }, + /*601*/ { "[4308]1", 0, "43081" }, + /*602*/ { "[4308]123456789012345678901234567890", 0, "4308123456789012345678901234567890" }, + /*603*/ { "[4308]1234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, + /*604*/ { "[4309]1", ZINT_ERROR_INVALID_DATA, "" }, + /*605*/ { "[431]1", ZINT_ERROR_INVALID_DATA, "" }, + /*606*/ { "[4310]1", 0, "43101" }, + /*607*/ { "[4310]12345678901234567890123456789012345", 0, "431012345678901234567890123456789012345" }, + /*608*/ { "[4310]123456789012345678901234567890123456", ZINT_ERROR_INVALID_DATA, "" }, + /*609*/ { "[4311]1", 0, "43111" }, + /*610*/ { "[4311]12345678901234567890123456789012345", 0, "431112345678901234567890123456789012345" }, + /*611*/ { "[4311]123456789012345678901234567890123456", ZINT_ERROR_INVALID_DATA, "" }, + /*612*/ { "[4312]1", 0, "43121" }, + /*613*/ { "[4312]1234567890123456789012345678901234567890123456789012345678901234567890", 0, "43121234567890123456789012345678901234567890123456789012345678901234567890" }, + /*614*/ { "[4312]12345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, + /*615*/ { "[4313]1", 0, "43131" }, + /*616*/ { "[4313]1234567890123456789012345678901234567890123456789012345678901234567890", 0, "43131234567890123456789012345678901234567890123456789012345678901234567890" }, + /*617*/ { "[4313]12345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, + /*618*/ { "[4314]1", 0, "43141" }, + /*619*/ { "[4314]1234567890123456789012345678901234567890123456789012345678901234567890", 0, "43141234567890123456789012345678901234567890123456789012345678901234567890" }, + /*620*/ { "[4314]12345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, + /*621*/ { "[4315]1", 0, "43151" }, + /*622*/ { "[4315]1234567890123456789012345678901234567890123456789012345678901234567890", 0, "43151234567890123456789012345678901234567890123456789012345678901234567890" }, + /*623*/ { "[4315]12345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, + /*624*/ { "[4316]1", 0, "43161" }, + /*625*/ { "[4316]1234567890123456789012345678901234567890123456789012345678901234567890", 0, "43161234567890123456789012345678901234567890123456789012345678901234567890" }, + /*626*/ { "[4316]12345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, + /*627*/ { "[4317]FR", 0, "4317FR" }, + /*628*/ { "[4317]F", ZINT_ERROR_INVALID_DATA, "" }, + /*629*/ { "[4317]FRF", ZINT_ERROR_INVALID_DATA, "" }, + /*630*/ { "[4318]1", 0, "43181" }, + /*631*/ { "[4318]12345678901234567890", 0, "431812345678901234567890" }, + /*632*/ { "[4318]123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, + /*633*/ { "[4319]1", 0, "43191" }, + /*634*/ { "[4319]123456789012345678901234567890", 0, "4319123456789012345678901234567890" }, + /*635*/ { "[4319]1234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, + /*636*/ { "[432]1", ZINT_ERROR_INVALID_DATA, "" }, + /*637*/ { "[4320]1", 0, "43201" }, + /*638*/ { "[4320]12345678901234567890123456789012345", 0, "432012345678901234567890123456789012345" }, + /*639*/ { "[4320]123456789012345678901234567890123456", ZINT_ERROR_INVALID_DATA, "" }, + /*640*/ { "[4321]1", 0, "43211" }, + /*641*/ { "[4321]10", ZINT_ERROR_INVALID_DATA, "" }, + /*642*/ { "[4322]1", 0, "43221" }, + /*643*/ { "[4322]10", ZINT_ERROR_INVALID_DATA, "" }, + /*644*/ { "[4323]1", 0, "43231" }, + /*645*/ { "[4323]10", ZINT_ERROR_INVALID_DATA, "" }, + /*646*/ { "[4324]1212120000", 0, "43241212120000" }, + /*647*/ { "[4324]121212000", ZINT_ERROR_INVALID_DATA, "" }, + /*648*/ { "[4324]12121200000", ZINT_ERROR_INVALID_DATA, "" }, + /*649*/ { "[4325]1212120000", 0, "43251212120000" }, + /*650*/ { "[4325]121212000", ZINT_ERROR_INVALID_DATA, "" }, + /*651*/ { "[4325]12121200000", ZINT_ERROR_INVALID_DATA, "" }, + /*652*/ { "[4326]121212", 0, "4326121212" }, + /*653*/ { "[4326]12121", ZINT_ERROR_INVALID_DATA, "" }, + /*654*/ { "[4326]1212120", ZINT_ERROR_INVALID_DATA, "" }, + /*655*/ { "[4327]121212", ZINT_ERROR_INVALID_DATA, "" }, + /*656*/ { "[4328]121212", ZINT_ERROR_INVALID_DATA, "" }, + /*657*/ { "[4329]121212", ZINT_ERROR_INVALID_DATA, "" }, + /*658*/ { "[433]121212", ZINT_ERROR_INVALID_DATA, "" }, + /*659*/ { "[4330]121212", ZINT_ERROR_INVALID_DATA, "" }, + /*660*/ { "[44]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*661*/ { "[440]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*662*/ { "[4400]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*663*/ { "[49]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*664*/ { "[490]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*665*/ { "[4900]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*666*/ { "[499]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*667*/ { "[4990]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*668*/ { "[50]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*669*/ { "[500]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*670*/ { "[5000]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*671*/ { "[51]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*672*/ { "[510]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*673*/ { "[5100]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*674*/ { "[59]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*675*/ { "[590]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*676*/ { "[5900]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*677*/ { "[60]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*678*/ { "[600]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*679*/ { "[6000]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*680*/ { "[61]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*681*/ { "[610]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*682*/ { "[6100]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*683*/ { "[69]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*684*/ { "[690]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*685*/ { "[6900]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*686*/ { "[70]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*687*/ { "[700]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*688*/ { "[7000]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*689*/ { "[7001]1234567890123", 0, "70011234567890123" }, + /*690*/ { "[7001]123456789012", ZINT_ERROR_INVALID_DATA, "" }, + /*691*/ { "[7002]abcdefghijklmnopqrstuvwxyz1234", 0, "7002abcdefghijklmnopqrstuvwxyz1234" }, + /*692*/ { "[7002]abcdefghijklmnopqrstuvwxyz12345", ZINT_ERROR_INVALID_DATA, "" }, + /*693*/ { "[7003]1212121212", 0, "70031212121212" }, + /*694*/ { "[7003]121212121", ZINT_ERROR_INVALID_DATA, "" }, + /*695*/ { "[7004]1234", 0, "70041234" }, + /*696*/ { "[7004]12345", ZINT_ERROR_INVALID_DATA, "" }, + /*697*/ { "[7005]abcdefghijkl", 0, "7005abcdefghijkl" }, + /*698*/ { "[7005]abcdefghijklm", ZINT_ERROR_INVALID_DATA, "" }, + /*699*/ { "[7006]200132", ZINT_WARN_NONCOMPLIANT, "7006200132" }, + /*700*/ { "[7006]200100", ZINT_WARN_NONCOMPLIANT, "7006200100" }, + /*701*/ { "[7006]200120", 0, "7006200120" }, + /*702*/ { "[7006]2001320", ZINT_ERROR_INVALID_DATA, "" }, + /*703*/ { "[7007]010101121212", 0, "7007010101121212" }, + /*704*/ { "[7007]01010112121", ZINT_ERROR_INVALID_DATA, "" }, + /*705*/ { "[7007]A1010112121", ZINT_ERROR_INVALID_DATA, "" }, + /*706*/ { "[7007]121212", 0, "7007121212" }, + /*707*/ { "[7007]12121", ZINT_ERROR_INVALID_DATA, "" }, + /*708*/ { "[7007]1212121", ZINT_ERROR_INVALID_DATA, "" }, + /*709*/ { "[7008]abc", 0, "7008abc" }, + /*710*/ { "[7008]abcd", ZINT_ERROR_INVALID_DATA, "" }, + /*711*/ { "[7009]abcdefghij", 0, "7009abcdefghij" }, + /*712*/ { "[7009]abcdefghijk", ZINT_ERROR_INVALID_DATA, "" }, + /*713*/ { "[7010]01", 0, "701001" }, + /*714*/ { "[7010]1", 0, "70101" }, + /*715*/ { "[7010]012", ZINT_ERROR_INVALID_DATA, "" }, + /*716*/ { "[7011]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*717*/ { "[7012]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*718*/ { "[7019]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*719*/ { "[7020]abcdefghijklmnopqrst", 0, "7020abcdefghijklmnopqrst" }, + /*720*/ { "[7020]abcdefghijklmnopqrstu", ZINT_ERROR_INVALID_DATA, "" }, + /*721*/ { "[7021]abcdefghijklmnopqrst", 0, "7021abcdefghijklmnopqrst" }, + /*722*/ { "[7021]abcdefghijklmnopqrstu", ZINT_ERROR_INVALID_DATA, "" }, + /*723*/ { "[7022]abcdefghijklmnopqrst", 0, "7022abcdefghijklmnopqrst" }, + /*724*/ { "[7022]abcdefghijklmnopqrstu", ZINT_ERROR_INVALID_DATA, "" }, + /*725*/ { "[7023]1234abcdefghijklmnopqrstuvwxyz", 0, "70231234abcdefghijklmnopqrstuvwxyz" }, + /*726*/ { "[7023]1234abcdefghijklmnopqrstuvwxyza", ZINT_ERROR_INVALID_DATA, "" }, + /*727*/ { "[7024]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*728*/ { "[7025]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*729*/ { "[7029]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*730*/ { "[7030]123abcdefghijklmnopqrstuvwxyza", ZINT_WARN_NONCOMPLIANT, "7030123abcdefghijklmnopqrstuvwxyza" }, + /*731*/ { "[7030]004abcdefghijklmnopqrstuvwxyza", 0, "7030004abcdefghijklmnopqrstuvwxyza" }, + /*732*/ { "[7030]123abcdefghijklmnopqrstuvwxyzab", ZINT_ERROR_INVALID_DATA, "" }, + /*733*/ { "[7031]123abcdefghijklmnopqrstuvwxyza", ZINT_WARN_NONCOMPLIANT, "7031123abcdefghijklmnopqrstuvwxyza" }, + /*734*/ { "[7031]004abcdefghijklmnopqrstuvwxyza", 0, "7031004abcdefghijklmnopqrstuvwxyza" }, + /*735*/ { "[7031]123abcdefghijklmnopqrstuvwxyzab", ZINT_ERROR_INVALID_DATA, "" }, + /*736*/ { "[7032]004abcdefghijklmnopqrstuvwxyza", 0, "7032004abcdefghijklmnopqrstuvwxyza" }, + /*737*/ { "[7032]004abcdefghijklmnopqrstuvwxyzab", ZINT_ERROR_INVALID_DATA, "" }, + /*738*/ { "[7033]004abcdefghijklmnopqrstuvwxyza", 0, "7033004abcdefghijklmnopqrstuvwxyza" }, + /*739*/ { "[7033]004abcdefghijklmnopqrstuvwxyzab", ZINT_ERROR_INVALID_DATA, "" }, + /*740*/ { "[7034]004abcdefghijklmnopqrstuvwxyza", 0, "7034004abcdefghijklmnopqrstuvwxyza" }, + /*741*/ { "[7034]004abcdefghijklmnopqrstuvwxyzab", ZINT_ERROR_INVALID_DATA, "" }, + /*742*/ { "[7035]004abcdefghijklmnopqrstuvwxyza", 0, "7035004abcdefghijklmnopqrstuvwxyza" }, + /*743*/ { "[7035]004abcdefghijklmnopqrstuvwxyzab", ZINT_ERROR_INVALID_DATA, "" }, + /*744*/ { "[7036]004abcdefghijklmnopqrstuvwxyza", 0, "7036004abcdefghijklmnopqrstuvwxyza" }, + /*745*/ { "[7036]004abcdefghijklmnopqrstuvwxyzab", ZINT_ERROR_INVALID_DATA, "" }, + /*746*/ { "[7037]004abcdefghijklmnopqrstuvwxyza", 0, "7037004abcdefghijklmnopqrstuvwxyza" }, + /*747*/ { "[7037]004abcdefghijklmnopqrstuvwxyzab", ZINT_ERROR_INVALID_DATA, "" }, + /*748*/ { "[7038]004abcdefghijklmnopqrstuvwxyza", 0, "7038004abcdefghijklmnopqrstuvwxyza" }, + /*749*/ { "[7038]004abcdefghijklmnopqrstuvwxyzab", ZINT_ERROR_INVALID_DATA, "" }, + /*750*/ { "[7039]004abcdefghijklmnopqrstuvwxyza", 0, "7039004abcdefghijklmnopqrstuvwxyza" }, + /*751*/ { "[7039]123abcdefghijklmnopqrstuvwxyzab", ZINT_ERROR_INVALID_DATA, "" }, + /*752*/ { "[7040]1abc", 0, "70401abc" }, + /*753*/ { "[7040]1ab", ZINT_ERROR_INVALID_DATA, "" }, + /*754*/ { "[7040]1abcd", ZINT_ERROR_INVALID_DATA, "" }, + /*755*/ { "[7041]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*756*/ { "[7042]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*757*/ { "[7050]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*758*/ { "[7090]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*759*/ { "[7099]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*760*/ { "[71]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*761*/ { "[710]abcdefghijklmnopqrst", 0, "710abcdefghijklmnopqrst" }, + /*762*/ { "[710]abcdefghijklmnopqrstu", ZINT_ERROR_INVALID_DATA, "" }, + /*763*/ { "[7100]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*764*/ { "[711]abcdefghijklmnopqrst", 0, "711abcdefghijklmnopqrst" }, + /*765*/ { "[711]abcdefghijklmnopqrstu", ZINT_ERROR_INVALID_DATA, "" }, + /*766*/ { "[712]abcdefghijklmnopqrst", 0, "712abcdefghijklmnopqrst" }, + /*767*/ { "[712]abcdefghijklmnopqrstu", ZINT_ERROR_INVALID_DATA, "" }, + /*768*/ { "[713]abcdefghijklmnopqrst", 0, "713abcdefghijklmnopqrst" }, + /*769*/ { "[713]abcdefghijklmnopqrstu", ZINT_ERROR_INVALID_DATA, "" }, + /*770*/ { "[714]abcdefghijklmnopqrst", 0, "714abcdefghijklmnopqrst" }, + /*771*/ { "[714]abcdefghijklmnopqrstu", ZINT_ERROR_INVALID_DATA, "" }, + /*772*/ { "[715]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*773*/ { "[716]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*774*/ { "[719]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*775*/ { "[72]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*776*/ { "[720]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*777*/ { "[7200]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*778*/ { "[721]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*779*/ { "[7210]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*780*/ { "[7220]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*781*/ { "[7230]EMabcdefghijklmnopqrstuvwxyzab", 0, "7230EMabcdefghijklmnopqrstuvwxyzab" }, + /*782*/ { "[7230]EMabcdefghijklmnopqrstuvwxyzabc", ZINT_ERROR_INVALID_DATA, "" }, + /*783*/ { "[7230]EM", ZINT_ERROR_INVALID_DATA, "" }, + /*784*/ { "[7231]EMabcdefghijklmnopqrstuvwxyzab", 0, "7231EMabcdefghijklmnopqrstuvwxyzab" }, + /*785*/ { "[7231]EMabcdefghijklmnopqrstuvwxyzabc", ZINT_ERROR_INVALID_DATA, "" }, + /*786*/ { "[7232]EMabcdefghijklmnopqrstuvwxyzab", 0, "7232EMabcdefghijklmnopqrstuvwxyzab" }, + /*787*/ { "[7232]EMabcdefghijklmnopqrstuvwxyzabc", ZINT_ERROR_INVALID_DATA, "" }, + /*788*/ { "[7233]EMabcdefghijklmnopqrstuvwxyzab", 0, "7233EMabcdefghijklmnopqrstuvwxyzab" }, + /*789*/ { "[7233]EMabcdefghijklmnopqrstuvwxyzabc", ZINT_ERROR_INVALID_DATA, "" }, + /*790*/ { "[7234]EMabcdefghijklmnopqrstuvwxyzab", 0, "7234EMabcdefghijklmnopqrstuvwxyzab" }, + /*791*/ { "[7234]EMabcdefghijklmnopqrstuvwxyzabc", ZINT_ERROR_INVALID_DATA, "" }, + /*792*/ { "[7235]EMabcdefghijklmnopqrstuvwxyzab", 0, "7235EMabcdefghijklmnopqrstuvwxyzab" }, + /*793*/ { "[7235]EMabcdefghijklmnopqrstuvwxyzabc", ZINT_ERROR_INVALID_DATA, "" }, + /*794*/ { "[7236]EMabcdefghijklmnopqrstuvwxyzab", 0, "7236EMabcdefghijklmnopqrstuvwxyzab" }, + /*795*/ { "[7236]EMabcdefghijklmnopqrstuvwxyzabc", ZINT_ERROR_INVALID_DATA, "" }, + /*796*/ { "[7237]EMabcdefghijklmnopqrstuvwxyzab", 0, "7237EMabcdefghijklmnopqrstuvwxyzab" }, + /*797*/ { "[7237]EMabcdefghijklmnopqrstuvwxyzabc", ZINT_ERROR_INVALID_DATA, "" }, + /*798*/ { "[7238]EMabcdefghijklmnopqrstuvwxyzab", 0, "7238EMabcdefghijklmnopqrstuvwxyzab" }, + /*799*/ { "[7238]EMabcdefghijklmnopqrstuvwxyzabc", ZINT_ERROR_INVALID_DATA, "" }, + /*800*/ { "[7239]EMabcdefghijklmnopqrstuvwxyzab", 0, "7239EMabcdefghijklmnopqrstuvwxyzab" }, + /*801*/ { "[7239]EMabcdefghijklmnopqrstuvwxyzabc", ZINT_ERROR_INVALID_DATA, "" }, + /*802*/ { "[7239]E", ZINT_ERROR_INVALID_DATA, "" }, + /*803*/ { "[7240]abcdefghijklmnopqrst", 0, "7240abcdefghijklmnopqrst" }, + /*804*/ { "[7240]abcdefghijklmnopqrstu", ZINT_ERROR_INVALID_DATA, "" }, + /*805*/ { "[7241]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*806*/ { "[7249]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*807*/ { "[7250]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*808*/ { "[7299]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*809*/ { "[73]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*810*/ { "[7300]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*811*/ { "[74]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*812*/ { "[7400]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*813*/ { "[79]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*814*/ { "[7900]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*815*/ { "[7999]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*816*/ { "[80]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*817*/ { "[800]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*818*/ { "[8000]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*819*/ { "[8001]12345678901234", ZINT_WARN_NONCOMPLIANT, "800112345678901234" }, + /*820*/ { "[8001]12345678901204", 0, "800112345678901204" }, + /*821*/ { "[8001]1234123456789012345", ZINT_ERROR_INVALID_DATA, "" }, + /*822*/ { "[8002]abcdefghijklmnopqrst", 0, "8002abcdefghijklmnopqrst" }, + /*823*/ { "[8002]abcdefghijklmnopqrstu", ZINT_ERROR_INVALID_DATA, "" }, + /*824*/ { "[8003]01234567890123abcdefghijklmnop", ZINT_WARN_NONCOMPLIANT, "800301234567890123abcdefghijklmnop" }, + /*825*/ { "[8003]01234567890128abcdefghijklmnop", 0, "800301234567890128abcdefghijklmnop" }, + /*826*/ { "[8003]01234567890128abcdefghijklmnopq", ZINT_ERROR_INVALID_DATA, "" }, + /*827*/ { "[8004]abcdefghijklmnopqrstuvwxyz1234", ZINT_WARN_NONCOMPLIANT, "8004abcdefghijklmnopqrstuvwxyz1234" }, + /*828*/ { "[8004]12cdefghijklmnopqrstuvwxyz1234", 0, "800412cdefghijklmnopqrstuvwxyz1234" }, + /*829*/ { "[8004]abcdefghijklmnopqrstuvwxyz12345", ZINT_ERROR_INVALID_DATA, "" }, + /*830*/ { "[8005]123456", 0, "8005123456" }, + /*831*/ { "[8005]12345", ZINT_ERROR_INVALID_DATA, "" }, + /*832*/ { "[8005]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /*833*/ { "[8006]123456789012341212", ZINT_WARN_NONCOMPLIANT, "8006123456789012341212" }, + /*834*/ { "[8006]123456789012311212", 0, "8006123456789012311212" }, + /*835*/ { "[8006]12345678901234121", ZINT_ERROR_INVALID_DATA, "" }, + /*836*/ { "[8006]1234567890123412123", ZINT_ERROR_INVALID_DATA, "" }, + /*837*/ { "[8007]abcdefghijklmnopqrstuvwxyz12345678", ZINT_WARN_NONCOMPLIANT, "8007abcdefghijklmnopqrstuvwxyz12345678" }, + /*838*/ { "[8007]AD95EFGHIJKLMNOPQRSTUVWXYZ12345678", 0, "8007AD95EFGHIJKLMNOPQRSTUVWXYZ12345678" }, + /*839*/ { "[8007]AD95EFGHIJKLMNOPQRSTUVWXYZ123456789", ZINT_ERROR_INVALID_DATA, "" }, + /*840*/ { "[8008]123456121212", ZINT_WARN_NONCOMPLIANT, "8008123456121212" }, + /*841*/ { "[8008]121256121212", ZINT_WARN_NONCOMPLIANT, "8008121256121212" }, + /*842*/ { "[8008]121231121212", 0, "8008121231121212" }, + /*843*/ { "[8008]1234561212", ZINT_WARN_NONCOMPLIANT, "80081234561212" }, + /*844*/ { "[8008]1212311212", 0, "80081212311212" }, + /*845*/ { "[8008]12345612", ZINT_WARN_NONCOMPLIANT, "800812345612" }, + /*846*/ { "[8008]12010112", 0, "800812010112" }, + /*847*/ { "[8008]1234561", ZINT_ERROR_INVALID_DATA, "" }, + /*848*/ { "[8008]123456121", ZINT_ERROR_INVALID_DATA, "" }, + /*849*/ { "[8008]12345612121", ZINT_ERROR_INVALID_DATA, "" }, + /*850*/ { "[8008]1234561212123", ZINT_ERROR_INVALID_DATA, "" }, + /*851*/ { "[8009]12345678901234567890123456789012345678901234567890", 0, "800912345678901234567890123456789012345678901234567890" }, + /*852*/ { "[8009]123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, + /*853*/ { "[8010]1234abcdefghijklmnopqrstuvwxyz1", ZINT_ERROR_INVALID_DATA, "" }, + /*854*/ { "[8011]123456789012", 0, "8011123456789012" }, + /*855*/ { "[8011]1234567890123", ZINT_ERROR_INVALID_DATA, "" }, + /*856*/ { "[8012]abcdefghijklmnopqrst", 0, "8012abcdefghijklmnopqrst" }, + /*857*/ { "[8012]abcdefghijklmnopqrstuv", ZINT_ERROR_INVALID_DATA, "" }, + /*858*/ { "[8013]1234abcdefghijklmnopqrsQP", 0, "80131234abcdefghijklmnopqrsQP" }, + /*859*/ { "[8013]1234abcdefghijklmnopqrsQP", 0, "80131234abcdefghijklmnopqrsQP" }, + /*860*/ { "[8013]1234abcdefghijklmnopqrsQPv", ZINT_ERROR_INVALID_DATA, "" }, + /*861*/ { "[8014]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*862*/ { "[8016]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*863*/ { "[8017]313131313131313139", ZINT_WARN_NONCOMPLIANT, "8017313131313131313139" }, + /*864*/ { "[8017]313131313131313131", 0, "8017313131313131313131" }, + /*865*/ { "[8017]31313131313131313", ZINT_ERROR_INVALID_DATA, "" }, + /*866*/ { "[8017]3131313131313131390", ZINT_ERROR_INVALID_DATA, "" }, + /*867*/ { "[8018]313131313131313139", ZINT_WARN_NONCOMPLIANT, "8018313131313131313139" }, + /*868*/ { "[8018]313131313131313131", 0, "8018313131313131313131" }, + /*869*/ { "[8018]31313131313131313", ZINT_ERROR_INVALID_DATA, "" }, + /*870*/ { "[8018]3131313131313131390", ZINT_ERROR_INVALID_DATA, "" }, + /*871*/ { "[8019]1234567890", 0, "80191234567890" }, + /*872*/ { "[8019]12345678901", ZINT_ERROR_INVALID_DATA, "" }, + /*873*/ { "[8020]abcdefghijklmnopqrstuvwxy", 0, "8020abcdefghijklmnopqrstuvwxy" }, + /*874*/ { "[8020]abcdefghijklmnopqrstuvwxyz", ZINT_ERROR_INVALID_DATA, "" }, + /*875*/ { "[8021]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*876*/ { "[8025]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*877*/ { "[8026]123456789012341212", ZINT_WARN_NONCOMPLIANT, "8026123456789012341212" }, + /*878*/ { "[8026]123456789012311212", 0, "8026123456789012311212" }, + /*879*/ { "[8026]1234567890123451212", ZINT_ERROR_INVALID_DATA, "" }, + /*880*/ { "[8026]12345678901234512", ZINT_ERROR_INVALID_DATA, "" }, + /*881*/ { "[8027]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*882*/ { "[8030]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*883*/ { "[8040]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*884*/ { "[8050]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*885*/ { "[8060]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*886*/ { "[8070]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*887*/ { "[8080]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*888*/ { "[8090]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*889*/ { "[8099]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*890*/ { "[81]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*891*/ { "[8100]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*892*/ { "[8109]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*893*/ { "[8110]5123456789011234565123455123450123105123450123512345678901320123190000", 0, "81105123456789011234565123455123450123105123450123512345678901320123190000" }, + /*894*/ { "[8110]51234567890112345651234551234501231051234501235123456789013201231900001", ZINT_ERROR_INVALID_DATA, "" }, + /*895*/ { "[8111]1234", 0, "81111234" }, + /*896*/ { "[8111]12345", ZINT_ERROR_INVALID_DATA, "" }, + /*897*/ { "[8111]123", ZINT_ERROR_INVALID_DATA, "" }, + /*898*/ { "[8112]1234567890123456789012345678901234567890123456789012345678901234567890", ZINT_WARN_NONCOMPLIANT, "81121234567890123456789012345678901234567890123456789012345678901234567890" }, + /*899*/ { "[8112]12345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, + /*900*/ { "[8112]061234567890121234569123456789012345", 0, "8112061234567890121234569123456789012345" }, + /*901*/ { "[8113]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*902*/ { "[8120]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*903*/ { "[8130]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*904*/ { "[8140]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*905*/ { "[8150]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*906*/ { "[8190]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*907*/ { "[8199]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*908*/ { "[82]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*909*/ { "[8200]1234567890123456789012345678901234567890123456789012345678901234567890", 0, "82001234567890123456789012345678901234567890123456789012345678901234567890" }, + /*910*/ { "[8201]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*911*/ { "[8210]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*912*/ { "[8220]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*913*/ { "[8230]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*914*/ { "[8240]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*915*/ { "[8250]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*916*/ { "[8290]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*917*/ { "[8299]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*918*/ { "[83]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*919*/ { "[830]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*920*/ { "[8300]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*921*/ { "[84]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*922*/ { "[840]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*923*/ { "[8400]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*924*/ { "[85]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*925*/ { "[850]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*926*/ { "[8500]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*927*/ { "[89]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*928*/ { "[890]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*929*/ { "[8900]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*930*/ { "[90]abcdefghijklmnopqrstuvwxyz1234", 0, "90abcdefghijklmnopqrstuvwxyz1234" }, + /*931*/ { "[90]abcdefghijklmnopqrstuvwxyz12345", ZINT_ERROR_INVALID_DATA, "" }, + /*932*/ { "[900]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*933*/ { "[9000]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*934*/ { "[91]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890", 0, "91123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890" }, + /*935*/ { "[91]1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, + /*936*/ { "[910]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*937*/ { "[9100]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*938*/ { "[92]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890", 0, "92123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890" }, + /*939*/ { "[92]1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, + /*940*/ { "[920]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*941*/ { "[9200]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*942*/ { "[93]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890", 0, "93123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890" }, + /*943*/ { "[93]1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, + /*944*/ { "[930]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*945*/ { "[9300]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*946*/ { "[94]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890", 0, "94123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890" }, + /*947*/ { "[94]1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, + /*948*/ { "[940]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*949*/ { "[9400]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*950*/ { "[95]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890", 0, "95123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890" }, + /*951*/ { "[95]1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, + /*952*/ { "[950]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*953*/ { "[9500]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*954*/ { "[96]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890", 0, "96123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890" }, + /*955*/ { "[96]1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, + /*956*/ { "[960]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*957*/ { "[9600]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*958*/ { "[97]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890", 0, "97123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890" }, + /*959*/ { "[97]1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, + /*960*/ { "[970]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*961*/ { "[9700]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*962*/ { "[98]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890", 0, "98123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890" }, + /*963*/ { "[98]1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, + /*964*/ { "[980]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*965*/ { "[9800]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*966*/ { "[99]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890", 0, "99123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890" }, + /*967*/ { "[99]1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, + /*968*/ { "[990]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*969*/ { "[9900]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*970*/ { "[9999]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*971*/ { "[01]12345678901234[7006]200101", ZINT_WARN_NONCOMPLIANT, "01123456789012347006200101" }, + /*972*/ { "[01]12345678901231[7006]200101", 0, "01123456789012317006200101" }, + /*973*/ { "[3900]1234567890[01]12345678901234", ZINT_WARN_NONCOMPLIANT, "39001234567890[0112345678901234" }, + /*974*/ { "[3900]1234567890[01]12345678901231", 0, "39001234567890[0112345678901231" }, + /*975*/ { "[253]12345678901234[3901]12345678901234[20]12", ZINT_WARN_NONCOMPLIANT, "25312345678901234[390112345678901234[2012" }, + /*976*/ { "[253]12345678901284[3901]12345678901234[20]12", 0, "25312345678901284[390112345678901234[2012" }, + /*977*/ { "[253]12345678901234[01]12345678901234[3901]12345678901234[20]12", ZINT_WARN_NONCOMPLIANT, "25312345678901234[0112345678901234390112345678901234[2012" }, + /*978*/ { "[253]12345678901284[01]12345678901231[3901]12345678901234[20]12", 0, "25312345678901284[0112345678901231390112345678901234[2012" }, }; int data_size = ARRAY_SIZE(data); int i, length, ret; @@ -1392,354 +1394,360 @@ static void test_gs1_lint(int index, int debug) { /* 15*/ { "[8010]6789ABCDEFGHIJKLMNOPQRSTUVWXY}", ZINT_WARN_NONCOMPLIANT, "80106789ABCDEFGHIJKLMNOPQRSTUVWXY}", "261: AI (8010) position 30: Invalid CSET 39 character '}'" }, // cset39 /* 16*/ { "[8010]#-/0123456789ABCDEFGHIJKLMNOPQ", ZINT_WARN_NONCOMPLIANT, "8010#-/0123456789ABCDEFGHIJKLMNOPQ", "261: AI (8010) position 1: Non-numeric company prefix '#'" }, // key /* 17*/ { "[8010]0#-/123456789ABCDEFGHIJKLMNOPQ", ZINT_WARN_NONCOMPLIANT, "80100#-/123456789ABCDEFGHIJKLMNOPQ", "261: AI (8010) position 2: Non-numeric company prefix '#'" }, // key - /* 18*/ { "[8013]1987654Ad4X4bL5ttr2310c2K", 0, "80131987654Ad4X4bL5ttr2310c2K", "" }, // csumalpha - /* 19*/ { "[8013]12345678901234567890123NT", 0, "801312345678901234567890123NT", "" }, // csumalpha - /* 20*/ { "[8013]12345_ABCDEFGHIJKLMCP", 0, "801312345_ABCDEFGHIJKLMCP", "" }, // csumalpha - /* 21*/ { "[8013]12345_NOPQRSTUVWXYZDN", 0, "801312345_NOPQRSTUVWXYZDN", "" }, // csumalpha - /* 22*/ { "[8013]12345_abcdefghijklmN3", 0, "801312345_abcdefghijklmN3", "" }, // csumalpha - /* 23*/ { "[8013]12345_nopqrstuvwxyzP2", 0, "801312345_nopqrstuvwxyzP2", "" }, // csumalpha - /* 24*/ { "[8013]12345_!\"%&'()*+,-./LC", 0, "801312345_!\"%&'()*+,-./LC", "" }, // csumalpha - /* 25*/ { "[8013]12345_0123456789:;<=>?62", 0, "801312345_0123456789:;<=>?62", "" }, // csumalpha - /* 26*/ { "[8013]7907665Bm8v2AB", 0, "80137907665Bm8v2AB", "" }, // csumalpha - /* 27*/ { "[8013]97850l6KZm0yCD", 0, "801397850l6KZm0yCD", "" }, // csumalpha - /* 28*/ { "[8013]225803106GSpEF", 0, "8013225803106GSpEF", "" }, // csumalpha - /* 29*/ { "[8013]149512464PM+GH", 0, "8013149512464PM+GH", "" }, // csumalpha - /* 30*/ { "[8013]62577B8fRG7HJK", 0, "801362577B8fRG7HJK", "" }, // csumalpha - /* 31*/ { "[8013]515942070CYxLM", 0, "8013515942070CYxLM", "" }, // csumalpha - /* 32*/ { "[8013]390800494sP6NP", 0, "8013390800494sP6NP", "" }, // csumalpha - /* 33*/ { "[8013]386830132uO+QR", 0, "8013386830132uO+QR", "" }, // csumalpha - /* 34*/ { "[8013]53395376X1:nST", 0, "801353395376X1:nST", "" }, // csumalpha - /* 35*/ { "[8013]957813138Sb6UV", 0, "8013957813138Sb6UV", "" }, // csumalpha - /* 36*/ { "[8013]530790no0qOgWX", 0, "8013530790no0qOgWX", "" }, // csumalpha - /* 37*/ { "[8013]62185314IvwmYZ", 0, "801362185314IvwmYZ", "" }, // csumalpha - /* 38*/ { "[8013]23956qk1&dB!23", 0, "801323956qk1&dB!23", "" }, // csumalpha - /* 39*/ { "[8013]794394895ic045", 0, "8013794394895ic045", "" }, // csumalpha - /* 40*/ { "[8013]57453Uq3qA?62", 0, "801312345_0123456789:;<=>?62", "" }, // csumalpha + /* 27*/ { "[8013]7907665Bm8v2AB", 0, "80137907665Bm8v2AB", "" }, // csumalpha + /* 28*/ { "[8013]97850l6KZm0yCD", 0, "801397850l6KZm0yCD", "" }, // csumalpha + /* 29*/ { "[8013]225803106GSpEF", 0, "8013225803106GSpEF", "" }, // csumalpha + /* 30*/ { "[8013]149512464PM+GH", 0, "8013149512464PM+GH", "" }, // csumalpha + /* 31*/ { "[8013]62577B8fRG7HJK", 0, "801362577B8fRG7HJK", "" }, // csumalpha + /* 32*/ { "[8013]515942070CYxLM", 0, "8013515942070CYxLM", "" }, // csumalpha + /* 33*/ { "[8013]390800494sP6NP", 0, "8013390800494sP6NP", "" }, // csumalpha + /* 34*/ { "[8013]386830132uO+QR", 0, "8013386830132uO+QR", "" }, // csumalpha + /* 35*/ { "[8013]53395376X1:nST", 0, "801353395376X1:nST", "" }, // csumalpha + /* 36*/ { "[8013]957813138Sb6UV", 0, "8013957813138Sb6UV", "" }, // csumalpha + /* 37*/ { "[8013]530790no0qOgWX", 0, "8013530790no0qOgWX", "" }, // csumalpha + /* 38*/ { "[8013]62185314IvwmYZ", 0, "801362185314IvwmYZ", "" }, // csumalpha + /* 39*/ { "[8013]23956qk1&dB!23", 0, "801323956qk1&dB!23", "" }, // csumalpha + /* 40*/ { "[8013]794394895ic045", 0, "8013794394895ic045", "" }, // csumalpha + /* 41*/ { "[8013]57453Uq3qAwarn_level = data[i].warn_level; + } ret = ZBarcode_Encode(symbol, (unsigned char *) data[i].data, length); assert_equal(ret, data[i].ret_encode, "i:%d ZBarcode_Encode ret %d != %d (%s)\n", i, ret, data[i].ret_encode, symbol->errtxt); @@ -176,6 +188,8 @@ static void test_input(int index, int generate, int debug) { int symbology; int input_mode; int eci; + int option_1; + int option_2; char *data; int ret; int expected_eci; @@ -187,33 +201,43 @@ static void test_input(int index, int generate, int debug) { // é U+00E9 (\351, 233), UTF-8 C3A9 // β U+03B2 in ISO 8859-7 Greek (but not other ISO 8859 or Win page) (\342, 226), UTF-8 CEB2 struct item data[] = { - /* 0*/ { BARCODE_PDF417, UNICODE_MODE, -1, "é", 0, 0, 6, 103, "(12) 4 913 233 900 398 878 279 350 217 295 231 77", "" }, - /* 1*/ { BARCODE_PDF417, UNICODE_MODE, 3, "é", 0, 3, 7, 103, "(14) 6 927 3 913 233 900 162 81 551 529 607 384 164 108", "" }, - /* 2*/ { BARCODE_PDF417, UNICODE_MODE, 26, "é", 0, 26, 7, 103, "(14) 6 927 26 901 195 169 574 701 519 908 84 241 360 642", "" }, - /* 3*/ { BARCODE_PDF417, UNICODE_MODE, 9, "β", 0, 9, 7, 103, "(14) 6 927 9 913 226 900 487 92 418 278 838 500 576 84", "" }, - /* 4*/ { BARCODE_PDF417, UNICODE_MODE, -1, "β", ZINT_WARN_USES_ECI, 9, 7, 103, "Warning (14) 6 927 9 913 226 900 487 92 418 278 838 500 576 84", "" }, - /* 5*/ { BARCODE_PDF417, UNICODE_MODE, 3, "β", ZINT_ERROR_INVALID_DATA, 3, 0, 0, "Error 244: Invalid character in input data for ECI 3", "" }, - /* 6*/ { BARCODE_PDF417, UNICODE_MODE, 899, "A", 0, 899, 7, 103, "(14) 6 927 899 900 29 900 727 69 915 482 371 771 641 35", "" }, - /* 7*/ { BARCODE_PDF417, UNICODE_MODE, 900, "A", 0, 900, 7, 103, "(14) 6 926 0 0 900 29 56 795 921 763 468 267 410 129", "" }, - /* 8*/ { BARCODE_PDF417, UNICODE_MODE, 810899, "A", 0, 810899, 7, 103, "(14) 6 926 899 899 900 29 847 901 749 718 89 792 660 273", "" }, - /* 9*/ { BARCODE_PDF417, UNICODE_MODE, 810900, "A", 0, 810900, 7, 103, "(14) 6 925 0 900 29 900 652 613 857 390 38 450 415 899", "" }, - /* 10*/ { BARCODE_PDF417, UNICODE_MODE, 811799, "A", 0, 811799, 7, 103, "(14) 6 925 899 900 29 900 456 300 328 160 510 753 157 159", "" }, - /* 11*/ { BARCODE_PDF417, UNICODE_MODE, 811800, "A", ZINT_ERROR_INVALID_OPTION, 811800, 0, 0, "Error 472: Invalid ECI", "" }, - /* 12*/ { BARCODE_MICROPDF417, UNICODE_MODE, -1, "é", 0, 0, 11, 38, "(11) 913 233 900 900 805 609 847 211 598 4 603", "" }, - /* 13*/ { BARCODE_MICROPDF417, UNICODE_MODE, 3, "é", 0, 3, 11, 38, "(11) 927 3 913 233 803 477 85 249 824 813 830", "" }, - /* 14*/ { BARCODE_MICROPDF417, UNICODE_MODE, 26, "é", 0, 26, 6, 82, "(18) 927 26 901 195 169 900 288 96 509 365 709 784 713 403 219 81 851 866", "" }, - /* 15*/ { BARCODE_MICROPDF417, UNICODE_MODE, 9, "β", 0, 9, 11, 38, "(11) 927 9 913 226 23 103 74 194 394 667 324", "" }, - /* 16*/ { BARCODE_MICROPDF417, UNICODE_MODE, -1, "β", ZINT_WARN_USES_ECI, 9, 11, 38, "Warning (11) 927 9 913 226 23 103 74 194 394 667 324", "" }, - /* 17*/ { BARCODE_MICROPDF417, UNICODE_MODE, 3, "β", ZINT_ERROR_INVALID_DATA, 3, 0, 0, "Error 244: Invalid character in input data for ECI 3", "" }, - /* 18*/ { BARCODE_MICROPDF417, UNICODE_MODE, 899, "A", 0, 899, 11, 38, "(11) 927 899 900 29 533 437 884 3 617 241 747", "" }, - /* 19*/ { BARCODE_MICROPDF417, UNICODE_MODE, 900, "A", 0, 900, 6, 82, "(18) 926 0 0 900 29 900 913 543 414 141 214 886 461 1 419 422 54 495", "" }, - /* 20*/ { BARCODE_MICROPDF417, UNICODE_MODE, 810899, "A", 0, 810899, 6, 82, "(18) 926 899 899 900 29 900 351 555 241 509 787 583 3 326 41 628 534 151", "" }, - /* 21*/ { BARCODE_MICROPDF417, UNICODE_MODE, 810900, "A", 0, 810900, 11, 38, "(11) 925 0 900 29 233 533 43 483 708 659 704", "" }, - /* 22*/ { BARCODE_MICROPDF417, UNICODE_MODE, 811800, "A", ZINT_ERROR_INVALID_OPTION, 811800, 0, 0, "Error 473: Invalid ECI", "" }, - /* 23*/ { BARCODE_HIBC_PDF, UNICODE_MODE, -1, ",", ZINT_ERROR_INVALID_DATA, 0, 0, 0, "Error 203: Invalid character in data (alphanumerics, space and \"-.$/+%\" only)", "" }, - /* 24*/ { BARCODE_HIBC_MICPDF, UNICODE_MODE, -1, ",", ZINT_ERROR_INVALID_DATA, 0, 0, 0, "Error 203: Invalid character in data (alphanumerics, space and \"-.$/+%\" only)", "" }, - /* 25*/ { BARCODE_PDF417, UNICODE_MODE, -1, "AB{} C#+ de{} {}F 12{} G{} H", 0, 0, 12, 120, "(36) 28 1 865 807 896 782 855 626 807 94 865 807 896 808 776 839 176 808 32 776 839 806 208", "" }, - /* 26*/ { BARCODE_PDF417, UNICODE_MODE, -1, "{} #+ de{} 12{} {} H", 0, 0, 10, 120, "(30) 22 865 807 896 808 470 807 94 865 807 896 808 32 776 839 806 865 807 896 787 900 900", "" }, + /* 0*/ { BARCODE_PDF417, UNICODE_MODE, -1, -1, -1, "é", 0, 0, 6, 103, "(12) 4 913 233 900 398 878 279 350 217 295 231 77", "" }, + /* 1*/ { BARCODE_PDF417, UNICODE_MODE, 3, -1, -1, "é", 0, 3, 7, 103, "(14) 6 927 3 913 233 900 162 81 551 529 607 384 164 108", "" }, + /* 2*/ { BARCODE_PDF417, UNICODE_MODE, 26, -1, -1, "é", 0, 26, 7, 103, "(14) 6 927 26 901 195 169 574 701 519 908 84 241 360 642", "" }, + /* 3*/ { BARCODE_PDF417, UNICODE_MODE, 9, -1, -1, "β", 0, 9, 7, 103, "(14) 6 927 9 913 226 900 487 92 418 278 838 500 576 84", "" }, + /* 4*/ { BARCODE_PDF417, UNICODE_MODE, -1, -1, -1, "β", ZINT_WARN_USES_ECI, 9, 7, 103, "Warning (14) 6 927 9 913 226 900 487 92 418 278 838 500 576 84", "" }, + /* 5*/ { BARCODE_PDF417, UNICODE_MODE, 3, -1, -1, "β", ZINT_ERROR_INVALID_DATA, 3, 0, 0, "Error 244: Invalid character in input data for ECI 3", "" }, + /* 6*/ { BARCODE_PDF417, UNICODE_MODE, 899, -1, -1, "A", 0, 899, 7, 103, "(14) 6 927 899 900 29 900 727 69 915 482 371 771 641 35", "" }, + /* 7*/ { BARCODE_PDF417, UNICODE_MODE, 900, -1, -1, "A", 0, 900, 7, 103, "(14) 6 926 0 0 900 29 56 795 921 763 468 267 410 129", "" }, + /* 8*/ { BARCODE_PDF417, UNICODE_MODE, 810899, -1, -1, "A", 0, 810899, 7, 103, "(14) 6 926 899 899 900 29 847 901 749 718 89 792 660 273", "" }, + /* 9*/ { BARCODE_PDF417, UNICODE_MODE, 810900, -1, -1, "A", 0, 810900, 7, 103, "(14) 6 925 0 900 29 900 652 613 857 390 38 450 415 899", "" }, + /* 10*/ { BARCODE_PDF417, UNICODE_MODE, 811799, -1, -1, "A", 0, 811799, 7, 103, "(14) 6 925 899 900 29 900 456 300 328 160 510 753 157 159", "" }, + /* 11*/ { BARCODE_PDF417, UNICODE_MODE, 811800, -1, -1, "A", ZINT_ERROR_INVALID_OPTION, 811800, 0, 0, "Error 472: Invalid ECI", "" }, + /* 12*/ { BARCODE_MICROPDF417, UNICODE_MODE, -1, -1, -1, "é", 0, 0, 11, 38, "(11) 913 233 900 900 805 609 847 211 598 4 603", "" }, + /* 13*/ { BARCODE_MICROPDF417, UNICODE_MODE, 3, -1, -1, "é", 0, 3, 11, 38, "(11) 927 3 913 233 803 477 85 249 824 813 830", "" }, + /* 14*/ { BARCODE_MICROPDF417, UNICODE_MODE, 26, -1, -1, "é", 0, 26, 6, 82, "(18) 927 26 901 195 169 900 288 96 509 365 709 784 713 403 219 81 851 866", "" }, + /* 15*/ { BARCODE_MICROPDF417, UNICODE_MODE, 9, -1, -1, "β", 0, 9, 11, 38, "(11) 927 9 913 226 23 103 74 194 394 667 324", "" }, + /* 16*/ { BARCODE_MICROPDF417, UNICODE_MODE, -1, -1, -1, "β", ZINT_WARN_USES_ECI, 9, 11, 38, "Warning (11) 927 9 913 226 23 103 74 194 394 667 324", "" }, + /* 17*/ { BARCODE_MICROPDF417, UNICODE_MODE, 3, -1, -1, "β", ZINT_ERROR_INVALID_DATA, 3, 0, 0, "Error 244: Invalid character in input data for ECI 3", "" }, + /* 18*/ { BARCODE_MICROPDF417, UNICODE_MODE, 899, -1, -1, "A", 0, 899, 11, 38, "(11) 927 899 900 29 533 437 884 3 617 241 747", "" }, + /* 19*/ { BARCODE_MICROPDF417, UNICODE_MODE, 900, -1, -1, "A", 0, 900, 6, 82, "(18) 926 0 0 900 29 900 913 543 414 141 214 886 461 1 419 422 54 495", "" }, + /* 20*/ { BARCODE_MICROPDF417, UNICODE_MODE, 810899, -1, -1, "A", 0, 810899, 6, 82, "(18) 926 899 899 900 29 900 351 555 241 509 787 583 3 326 41 628 534 151", "" }, + /* 21*/ { BARCODE_MICROPDF417, UNICODE_MODE, 810900, -1, -1, "A", 0, 810900, 11, 38, "(11) 925 0 900 29 233 533 43 483 708 659 704", "" }, + /* 22*/ { BARCODE_MICROPDF417, UNICODE_MODE, 811800, -1, -1, "A", ZINT_ERROR_INVALID_OPTION, 811800, 0, 0, "Error 473: Invalid ECI", "" }, + /* 23*/ { BARCODE_HIBC_PDF, UNICODE_MODE, -1, -1, -1, ",", ZINT_ERROR_INVALID_DATA, 0, 0, 0, "Error 203: Invalid character in data (alphanumerics, space and \"-.$/+%\" only)", "" }, + /* 24*/ { BARCODE_HIBC_MICPDF, UNICODE_MODE, -1, -1, -1, ",", ZINT_ERROR_INVALID_DATA, 0, 0, 0, "Error 203: Invalid character in data (alphanumerics, space and \"-.$/+%\" only)", "" }, + /* 25*/ { BARCODE_PDF417, UNICODE_MODE, -1, -1, -1, "AB{} C#+ de{} {}F 12{} G{} H", 0, 0, 12, 120, "(36) 28 1 865 807 896 782 855 626 807 94 865 807 896 808 776 839 176 808 32 776 839 806 208", "" }, + /* 26*/ { BARCODE_PDF417, UNICODE_MODE, -1, -1, -1, "{} #+ de{} 12{} {} H", 0, 0, 10, 120, "(30) 22 865 807 896 808 470 807 94 865 807 896 808 32 776 839 806 865 807 896 787 900 900", "" }, + /* 27*/ { BARCODE_PDF417, UNICODE_MODE, -1, -1, -1, "A", 0, 0, 5, 103, "(10) 2 29 478 509 903 637 74 490 760 21", "" }, + /* 28*/ { BARCODE_PDF417, UNICODE_MODE, -1, 0, -1, "A", 0, 0, 4, 86, "(4) 2 29 347 502", "" }, + /* 29*/ { BARCODE_PDF417, UNICODE_MODE, -1, 1, -1, "A", 0, 0, 6, 86, "(6) 2 29 752 533 551 139", "" }, + /* 30*/ { BARCODE_PDF417, UNICODE_MODE, -1, 2, -1, "A", 0, 0, 5, 103, "(10) 2 29 478 509 903 637 74 490 760 21", "" }, + /* 31*/ { BARCODE_PDF417, UNICODE_MODE, -1, 3, -1, "A", 0, 0, 9, 103, "(18) 2 29 290 888 64 789 390 182 22 197 347 41 298 467 387 917 455 196", "" }, + /* 32*/ { BARCODE_PDF417, UNICODE_MODE, -1, 4, -1, "A", 0, 0, 12, 120, "(36) 4 29 900 900 702 212 753 721 695 584 222 459 110 594 813 465 718 912 667 349 852 602", "" }, + /* 33*/ { BARCODE_PDF417, UNICODE_MODE, -1, 5, -1, "A", 0, 0, 14, 154, "(70) 6 29 900 900 900 900 774 599 527 418 850 374 921 763 922 772 572 661 584 902 578 696", "" }, + /* 34*/ { BARCODE_PDF417, UNICODE_MODE, -1, 6, -1, "A", 0, 0, 19, 188, "(133) 5 29 900 900 900 113 261 822 368 600 652 404 869 860 902 184 702 611 323 195 794 566", "" }, + /* 35*/ { BARCODE_PDF417, UNICODE_MODE, -1, 7, -1, "A", 0, 0, 29, 222, "(261) 5 29 900 900 900 384 614 456 20 422 177 78 492 215 859 765 864 755 572 621 891 97 538", "" }, + /* 36*/ { BARCODE_PDF417, UNICODE_MODE, -1, 8, -1, "A", 0, 0, 40, 290, "(520) 8 29 900 900 900 900 900 900 255 576 871 499 885 500 866 196 784 681 589 448 428 108", "" }, }; int data_size = ARRAY_SIZE(data); int i, length, ret; @@ -232,14 +256,14 @@ static void test_input(int index, int generate, int debug) { symbol->debug = ZINT_DEBUG_TEST; // Needed to get codeword dump in errtxt - length = testUtilSetSymbol(symbol, data[i].symbology, data[i].input_mode, data[i].eci, -1 /*option_1*/, -1, -1, -1 /*output_options*/, data[i].data, -1, debug); + length = testUtilSetSymbol(symbol, data[i].symbology, data[i].input_mode, data[i].eci, data[i].option_1, data[i].option_2, -1, -1 /*output_options*/, data[i].data, -1, debug); ret = ZBarcode_Encode(symbol, (unsigned char *) data[i].data, length); assert_equal(ret, data[i].ret, "i:%d ZBarcode_Encode ret %d != %d (%s)\n", i, ret, data[i].ret, symbol->errtxt); if (generate) { - printf(" /*%3d*/ { %s, %s, %d, \"%s\", %s, %d, %d, %d, \"%s\", \"%s\" },\n", - i, testUtilBarcodeName(data[i].symbology), testUtilInputModeName(data[i].input_mode), data[i].eci, + printf(" /*%3d*/ { %s, %s, %d, %d, %d, \"%s\", %s, %d, %d, %d, \"%s\", \"%s\" },\n", + i, testUtilBarcodeName(data[i].symbology), testUtilInputModeName(data[i].input_mode), data[i].eci, data[i].option_1, data[i].option_2, testUtilEscape(data[i].data, length, escaped, sizeof(escaped)), testUtilErrorName(data[i].ret), symbol->eci, symbol->rows, symbol->width, symbol->errtxt, data[i].comment); } else { @@ -334,14 +358,25 @@ static void test_encode(int index, int generate, int debug) { "11111111010101000111111001011101101010000001001111010010111001111110111111101000101001" "11111111010101000111011010000110001000100111001110011110110100111000111111101000101001" }, - /* 4*/ { BARCODE_PDF417, -1, UNICODE_MODE, 1, 4, "0123456&\015\011,:#-.$/+%*=^ 789", 0, 5, 137, 1, "Text Compaction Mixed", + /* 4*/ { BARCODE_PDF417, -1, UNICODE_MODE, 2, 2, "abcdefgABCDEFG", 0, 9, 103, 1, "Text Compaction Lower Alpha", + "1111111101010100011111010101111100110101000001100001000001010000010011110101011110000111111101000101001" + "1111111101010100011110101000010000111101011100111001110100111001100011110101001000000111111101000101001" + "1111111101010100011101010111111000111110010111101101000001110100110010101000011110000111111101000101001" + "1111111101010100011010111100111110111101010111100001010011100111000010101111001111000111111101000101001" + "1111111101010100011010111000001000111110100010011001101000000111001011110101110011100111111101000101001" + "1111111101010100011110101111010000100111111001110101011111000011010011110101111101100111111101000101001" + "1111111101010100011101001110111110110010000101100001001110111101100011010011101111000111111101000101001" + "1111111101010100011111101001011100111111011010110001011100111111010010101111110111000111111101000101001" + "1111111101010100011010011011111100100011101100011101010111011111100011111010011101000111111101000101001" + }, + /* 5*/ { BARCODE_PDF417, -1, UNICODE_MODE, 1, 4, "0123456&\015\011,:#-.$/+%*=^ 789", 0, 5, 137, 1, "Text Compaction Mixed", "11111111010101000111101010111100001110101100111100010000110111001100110101111001111101010001110111000011101010011100000111111101000101001" "11111111010101000111111010100111001010001111000001011101101111001100110110011110010001110010000011010011111101010111000111111101000101001" "11111111010101000110101001111100001100111010000111011011110010110000100000101011110001101111101010000011101010011111100111111101000101001" "11111111010101000101011110011110001000010000100001010010011000011000110010000100110001000011000110010010101111101111100111111101000101001" "11111111010101000111010111000110001001111001001111010000101111101100100011110010111101001111110110111011101011100110000111111101000101001" }, - /* 5*/ { BARCODE_PDF417, -1, UNICODE_MODE, 3, 2, ";<>@[\\]_'~!\015\011,:\012-.$/\"|*()?{", 0, 16, 103, 1, "Text Compaction Punctuation", + /* 6*/ { BARCODE_PDF417, -1, UNICODE_MODE, 3, 2, ";<>@[\\]_'~!\015\011,:\012-.$/\"|*()?{", 0, 16, 103, 1, "Text Compaction Punctuation", "1111111101010100011111010100111110111010110011110001000111011100100011110101011110000111111101000101001" "1111111101010100011111010100001100111111010101110001101011111101111011110101000100000111111101000101001" "1111111101010100011101010111111000101000001000111101011011001111000011010100001111100111111101000101001" @@ -359,7 +394,50 @@ static void test_encode(int index, int generate, int debug) { "1111111101010100011101000011111010111111010001101001011000010011100010010101111000000111111101000101001" "1111111101010100011001011011100000110011001100001101100100101100000011110010100011110111111101000101001" }, - /* 6*/ { BARCODE_PDF417, -1, UNICODE_MODE, -1, -1, ";;;;;é;;;;;", 0, 7, 120, 0, "BWIPP different encodation", + /* 7*/ { BARCODE_PDF417, -1, UNICODE_MODE, 4, 2, "\015\015\015\015\010\015", 0, 20, 103, 0, "Text Compaction Punctuation 1 Mixed -> Text Byte; BWIPP uses Byte only", + "1111111101010100011010100011000000110101000011000001110001110110110011110101011110000111111101000101001" + "1111111101010100011110101101100000101100101111110001111001000110110011111010100011000111111101000101001" + "1111111101010100011101010111111000110011111101100101010100001111000011010110111111000111111101000101001" + "1111111101010100011110100101111000111010110111100001000011000110010010101111001111000111111101000101001" + "1111111101010100011110101111011110111001011100110001010011110010000011010111000010000111111101000101001" + "1111111101010100011110101111010000110011111001000101011100100110000011010111111010000111111101000101001" + "1111111101010100011010011100011110110010001100011101000100111000111011010011101111000111111101000101001" + "1111111101010100011111010010001100111000110011101001111000100001010011110100101000000111111101000101001" + "1111111101010100011010011011111100110001110010011101000001111010100011111010011100010111111101000101001" + "1111111101010100010100011100111000100001101100000101101000110011100011010001100011100111111101000101001" + "1111111101010100011010011110110000110010000111000101110100110000100011010011100010000111111101000101001" + "1111111101010100010100010001111000100000101101111101000111010000110011111010001110010111111101000101001" + "1111111101010100011101000001011100111100110100111001011110001111001010100001100000110111111101000101001" + "1111111101010100011101000110010000111000001101110101101011110000011011110100010001000111111101000101001" + "1111111101010100011101000011111010101101000111000001101111000001011011001010011111000111111101000101001" + "1111111101010100011100101101111000100001100110010001010011000110000011110010100011110111111101000101001" + "1111111101010100011111010000101100111000001011101101000101111000001010100011110000010111111101000101001" + "1111111101010100010010111011111100111000110101111101101110100011100011001011111101000111111101000101001" + "1111111101010100011101101000011000100000100011001101011001111101111011111011010011110111111101000101001" + "1111111101010100011110100000110110111110111011001001111100001010011010100001111101100111111101000101001" + }, + /* 8*/ { BARCODE_PDF417, -1, UNICODE_MODE, 4, 3, "??????ABCDEFG??????abcdef??????%%%%%%", 0, 19, 120, 1, "Text Compaction Punctuation Alpha Punctuation Lower Punctuation Mixed", + "111111110101010001101010001100000011010111001111000100011101110010001100111000110010011111010101111100111111101000101001" + "111111110101010001111010100000010011111001110011010111110011100110101101111100101111011111010100011000111111101000101001" + "111111110101010001010100111100000011111010111101100101000100000111101111100101111011010101101111100000111111101000101001" + "111111110101010001111010010111100010001110111001000110011100011001001100111000110010011010111100111110111111101000101001" + "111111110101010001110101111011100011111001110011010100111110100011101111110101011100011010111000010000111111101000101001" + "111111110101010001111101011110110010100110011111000101000001000111101000000110100111011101011111000010111111101000101001" + "111111110101010001101001110001111011001110001100100110011100011001001100111000110010011101001110111110111111101000101001" + "111111110101010001111010010001000010001111001011110111100010000010101111000100000101011110100101000000111111101000101001" + "111111110101010001111110100110010010001110110001110100001001011110001001111001101100010100111001111110111111101000101001" + "111111110101010001010001110011100011000110110000110110001011100111101100111001100001010100011000011000111111101000101001" + "111111110101010001010011110100000011011110111111010100000101111000101110110111001000011010011100010000111111101000101001" + "111111110101010001101000100011111011000101101111110110111110010001001011010011100000010100011101111110111111101000101001" + "111111110101010001110100000101110010010001000000100100000100110110001100110001010000011010000111011110111111101000101001" + "111111110101010001111101000110111010011110001011110111110101000011001111001001000010011110100010001000111111101000101001" + "111111110101010001010000010111100010111100010001000111001001111101001110011111101010010010100111100000111111101000101001" + "111111110101010001110010110111100010100011000110000110001110001100101000010010010000010010100001000000111111101000101001" + "111111110101010001111010000101000010000010111101000111010001101000001111000001001001010100011110000010111111101000101001" + "111111110101010001111100101110010010011100000100110100111010000110001100110100001111011100101111100010111111101000101001" + "111111110101010001110110100001100010011001111001110101111011110001001011011100011000011011010001000000111111101000101001" + }, + /* 9*/ { BARCODE_PDF417, -1, UNICODE_MODE, -1, -1, ";;;;;é;;;;;", 0, 7, 120, 0, "BWIPP different encodation", "111111110101010001111101010111110011101011011110000100011101110010001110101011100000011111010101111100111111101000101001" "111111110101010001111101010001100011111010101100000111110101110111101011111100100011011110101001000000111111101000101001" "111111110101010001010100111100000010110010000001110110001111100100101000000110100111011010100011111000111111101000101001" @@ -368,14 +446,14 @@ static void test_encode(int index, int generate, int debug) { "111111110101010001111101011110110010111000110001110111011111100100101111101001111011011110101111000010111111101000101001" "111111110101010001110100111011111010110011001000000100001100110001001001110011100100011101001110111110111111101000101001" }, - /* 7*/ { BARCODE_PDF417, -1, UNICODE_MODE, 2, 3, "12345678901234", 0, 5, 120, 1, "Numeric Compaction", + /* 10*/ { BARCODE_PDF417, -1, UNICODE_MODE, 2, 3, "12345678901234", 0, 5, 120, 1, "Numeric Compaction", "111111110101010001111010101111000011101010001110000100111101111010001001011100001110011111010101111100111111101000101001" "111111110101010001111110101000111011010000001110010111111011010011001111010100000010011111101010111000111111101000101001" "111111110101010001010100111100000010111000110011100101110011000011101110001111110101011101010001111110111111101000101001" "111111110101010001010111100111100010001100001100010100001100011101101110101100111100011010111100111110111111101000101001" "111111110101010001110101110000110011000000101110010110001001110000101011001000111111011101011100110000111111101000101001" }, - /* 8*/ { BARCODE_PDF417, -1, UNICODE_MODE, 2, 3, "1234567890123456789012345678901234567890123", 0, 9, 120, 1, "Numeric Compaction 43 consecutive", + /* 11*/ { BARCODE_PDF417, -1, UNICODE_MODE, 2, 3, "1234567890123456789012345678901234567890123", 0, 9, 120, 1, "Numeric Compaction 43 consecutive", "111111110101010001111101010111110011010110001110000100111101111010001101001101110000011111010101111100111111101000101001" "111111110101010001111010100001000011010011100001000110100111101100001110000101100001011110101001000000111111101000101001" "111111110101010001010100111100000011111010111000010110010010011111001000011010000111010101000011110000111111101000101001" @@ -386,7 +464,7 @@ static void test_encode(int index, int generate, int debug) { "111111110101010001111110100101110010100111100001000110000101111001101110010110000100010101111110111000111111101000101001" "111111110101010001111110100110010011100100111110100100111110011000101001111000010001011111010011101000111111101000101001" }, - /* 9*/ { BARCODE_PDF417, -1, UNICODE_MODE, 2, 3, "12345678901234567890123456789012345678901234", 0, 9, 120, 1, "Numeric Compaction 44 consecutive", + /* 12*/ { BARCODE_PDF417, -1, UNICODE_MODE, 2, 3, "12345678901234567890123456789012345678901234", 0, 9, 120, 1, "Numeric Compaction 44 consecutive", "111111110101010001111101010111110011010110001110000100111101111010001000100011000011011111010101111100111111101000101001" "111111110101010001111010100001000011101001100100000111010001100001001110010000001101011110101001000000111111101000101001" "111111110101010001010100111100000011111100010110100101001100001111101010110011111000010101000011110000111111101000101001" @@ -397,7 +475,7 @@ static void test_encode(int index, int generate, int debug) { "111111110101010001111110100101110011100110011101000100110001011111101101001110000001010101111110111000111111101000101001" "111111110101010001111110100110010010111001100011100101000110111110001001100001000111011111010011101000111111101000101001" }, - /* 10*/ { BARCODE_PDF417, -1, UNICODE_MODE, 2, 3, "123456789012345678901234567890123456789012345", 0, 9, 120, 1, "Numeric Compaction 45 consecutive", + /* 13*/ { BARCODE_PDF417, -1, UNICODE_MODE, 2, 3, "123456789012345678901234567890123456789012345", 0, 9, 120, 1, "Numeric Compaction 45 consecutive", "111111110101010001111101010111110011010110001110000100111101111010001000100011000011011111010101111100111111101000101001" "111111110101010001111010100001000011101001100100000111010001100001001110010000001101011110101001000000111111101000101001" "111111110101010001010100111100000011111100010110100101001100001111101010110011111000010101000011110000111111101000101001" @@ -408,7 +486,7 @@ static void test_encode(int index, int generate, int debug) { "111111110101010001111110100101110011110001001101100111101001110011101101111010111110010101111110111000111111101000101001" "111111110101010001111110100110010011011110011001110110011100100011101100100100011111011111010011101000111111101000101001" }, - /* 11*/ { BARCODE_PDF417, -1, UNICODE_MODE, 2, 3, "123456789012345678901234567890123456789012345678901234567890123456789012345678901234567", 0, 14, 120, 1, "Numeric Compaction 87 consecutive", + /* 14*/ { BARCODE_PDF417, -1, UNICODE_MODE, 2, 3, "123456789012345678901234567890123456789012345678901234567890123456789012345678901234567", 0, 14, 120, 1, "Numeric Compaction 87 consecutive", "111111110101010001111010100111100011111010111111010100111101111010001000100011000011011111010101111100111111101000101001" "111111110101010001111110101000111011101001100100000111010001100001001110010000001101011111101010011100111111101000101001" "111111110101010001010100111100000011111100010110100101001100001111101010110011111000011101010001111110111111101000101001" @@ -424,7 +502,7 @@ static void test_encode(int index, int generate, int debug) { "111111110101010001010000010100000011110111001001100110100000100110001110111100011010011010000111011110111111101000101001" "111111110101010001111101000100011011100101110011000111100011001101001000001011110001011110100010010000111111101000101001" }, - /* 12*/ { BARCODE_PDF417, -1, UNICODE_MODE, 2, 3, "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678", 0, 14, 120, 1, "Numeric Compaction 88 consecutive", + /* 15*/ { BARCODE_PDF417, -1, UNICODE_MODE, 2, 3, "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678", 0, 14, 120, 1, "Numeric Compaction 88 consecutive", "111111110101010001111010100111100011111010111111010100111101111010001000100011000011011111010101111100111111101000101001" "111111110101010001111110101000111011101001100100000111010001100001001110010000001101011111101010011100111111101000101001" "111111110101010001010100111100000011111100010110100101001100001111101010110011111000011101010001111110111111101000101001" @@ -440,7 +518,7 @@ static void test_encode(int index, int generate, int debug) { "111111110101010001010000010100000011100010110011110111011001100111001110011010000110011010000111011110111111101000101001" "111111110101010001111101000100011011110010110000110111011100111100101111010000110011011110100010010000111111101000101001" }, - /* 13*/ { BARCODE_PDF417, -1, UNICODE_MODE, 2, 3, "12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789", 0, 14, 120, 1, "Numeric Compaction 89 consecutive", + /* 16*/ { BARCODE_PDF417, -1, UNICODE_MODE, 2, 3, "12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789", 0, 14, 120, 1, "Numeric Compaction 89 consecutive", "111111110101010001111010100111100011111010111111010100111101111010001000100011000011011111010101111100111111101000101001" "111111110101010001111110101000111011101001100100000111010001100001001110010000001101011111101010011100111111101000101001" "111111110101010001010100111100000011111100010110100101001100001111101010110011111000011101010001111110111111101000101001" @@ -456,7 +534,7 @@ static void test_encode(int index, int generate, int debug) { "111111110101010001010000010100000011100110011001110100111011110110001100010000100110011010000111011110111111101000101001" "111111110101010001111101000100011011100101110001100110001001110100001010001111000001011110100010010000111111101000101001" }, - /* 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", + /* 17*/ { 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" @@ -468,19 +546,39 @@ static void test_encode(int index, int generate, int debug) { "111111110101010001111110100110010010111111011100100110001111001011001011001100111100010100110111110000111111101000101001" "111111110101010001010001100000110010000110001100100110011100110100001100100100110000010100011000011000111111101000101001" }, - /* 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", + /* 18*/ { BARCODE_PDF417, -1, UNICODE_MODE, 1, 4, "\177\177\177\177\177", 0, 3, 137, 1, "Byte Compaction", + "11111111010101000111010101110000001101010000110000010000010000100010101000001001000001010000010010000011101010011100000111111101000101001" + "11111111010101000111101010001000001111101000100011011111010001000110111110100010001101011111101011000011111010101100000111111101000101001" + "11111111010101000110101001111100001100011110101100011001101011110000100000111010110001011110011100111010101000111100000111111101000101001" + }, + /* 19*/ { BARCODE_PDF417, -1, UNICODE_MODE, 1, 4, "\177\177\177\177\177\177", 0, 3, 137, 1, "Byte Compaction, mod 6 == 0 (924 emitted)", + "11111111010101000111010101110000001101010000110000011000111000110100111001001100111101000010100001000011101010011100000111111101000101001" + "11111111010101000111101010001000001110010000111011010100111110000110111101001100001101011111101011000011111010101100000111111101000101001" + "11111111010101000110101001111100001011111011101100010000001110100110110000011010111101111010111100001010101000111100000111111101000101001" + }, + /* 20*/ { BARCODE_PDF417, -1, UNICODE_MODE, 1, 4, "\177\177\177\177\177\177\177", 0, 3, 137, 1, "Byte Compaction", + "11111111010101000111010101110000001101010000110000010000010000100010111001001100111101000010100001000011101010011100000111111101000101001" + "11111111010101000111101010001000001110010000111011010100111110000110111101001100001101111101000100011011111010101100000111111101000101001" + "11111111010101000110101001111100001011000110011110010110001000111000100011010000111001001100100001110010101000111100000111111101000101001" + }, + /* 21*/ { 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" }, - /* 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)", + /* 22*/ { 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" }, - /* 17*/ { BARCODE_PDF417, -1, UNICODE_MODE, -1, 5, "ABCDEF1234567890123\177\177\177\177VWXYZ", 0, 6, 154, 1, "Text, Numeric, Byte, Text", + /* 23*/ { BARCODE_PDF417, -1, UNICODE_MODE, -1, 5, "1\177", 0, 3, 154, 1, "Byte Compaction, 1 Numeric, 1 Byte", + "1111111101010100011101010111000000111010100011100001000001000010001011010011011100000101000001001000001000011000110010011110101001111000111111101000101001" + "1111111101010100011110101000010000101111110101100001011111101011000011101001110110000111000010110100001110000110011101011111010101100000111111101000101001" + "1111111101010100011101010011111100100111100000100101101100010011110010111100000110110101101110111110001001101011100000010101000011110000111111101000101001" + }, + /* 24*/ { BARCODE_PDF417, -1, UNICODE_MODE, -1, 5, "ABCDEF1234567890123\177\177\177\177VWXYZ", 0, 6, 154, 1, "Text, Numeric, Byte, Text", "1111111101010100011110101011110000110101110111100001111010101111000010100111001110000110100000101100001001111011110100011110101001111000111111101000101001" "1111111101010100011110101000010000111101011001100001010011110000100011111100011101010110000010111000101111001011011000011111101010111000111111101000101001" "1111111101010100011101010011111100110011111101100101010000001011110010100000010111100101000000101111001010000001011110010101000011110000111111101000101001" @@ -488,7 +586,63 @@ static void test_encode(int index, int generate, int debug) { "1111111101010100011010111000001000101111110101100001011111101011000011001011111001110111100100100100001011111101011000011101011100110000111111101000101001" "1111111101010100011111010111100110110111110110011001101001011111000010101110011111100100100001000111101011000000101110011110101111101100111111101000101001" }, - /* 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", + /* 25*/ { BARCODE_PDF417, -1, UNICODE_MODE, 6, 5, "ABCDEF1234567890123\177\177\177\177VWXYZ", 0, 30, 154, 1, "ECC 6: Text, Numeric, Byte, Text", + "1111111101010100010101000001000000110101110111100001111010101111000010100111001110000110100000101100001001111011110100011110101001111000111111101000101001" + "1111111101010100011110101100011000111101011001100001010011110000100011111100011101010110000010111000101111001011011000011111010100001100111111101000101001" + "1111111101010100011101010011111100110011111101100101010000001011110010100000010111100101000000101111001010000001011110011111101011000010111111101000101001" + "1111111101010100011101001001110000100001100011001001000110111101110011110111101101100110111100111000101000011000110010011111010111111010111111101000101001" + "1111111101010100010101111000010000101111110101100001011111101011000011110001010000010100001001111000101011110011011111011101011100000110111111101000101001" + "1111111101010100011111010111100110100111011000111001111010001111010011001111001011000111001111110100101101110000101110011101001011111100111111101000101001" + "1111111101010100010100111100111100110011000010000101010000100000100011110011110101000110111100111001001101000110111000011010011100111100111111101000101001" + "1111111101010100011111010011011100101000111100100001101001110010000010000001011110100110111001111101001001100010111111011110100100100000111111101000101001" + "1111111101010100011010011001111110111111001011101101011111000110100011010101111100000100001110010001101010111001111110011101001111100100111111101000101001" + "1111111101010100010100011110111100111101111010001001101000110001110011110100101111000111101100101110001001001000010000010100011101110000111111101000101001" + "1111111101010100010100111100001000111000010110010001110011000111001011100101100000100100111011111101001111110111001010011101001110000110111111101000101001" + "1111111101010100010100010000011110111001000111110101001111001100011010100001101111100100110000001011101011100110000111010100001011110000111111101000101001" + "1111111101010100011101000001001110100001011000001101101111000111001010100001110001110100010100001000001010000110110000010100000101000000111111101000101001" + "1111111101010100011101000111011000110011111101011101101001111011000010001110111111010111110111011000101111011101110010011110100010000010111111101000101001" + "1111111101010100010100000100111100110000111110100101101111010001100010001111000100100101110000010011001000101000111100011111100101101000111111101000101001" + "1111111101010100011001011001110000100111000111010001011000011010000011001100011001100100010100010000001010111110111110010010100000100000111111101000101001" + "1111111101010100011101000011001000101111110100110001111101011011100010011101001111100110000001001110101111100010101100010100011111001100111111101000101001" + "1111111101010100011111001011100010110000111010111001101010000111110011111010111000100101111011001100001000011101000110010110100111000000111111101000101001" + "1111111101010100011101101000001100101110011100010001111001111010100010110011110111000100101000001000001011110011110100011110110100011100111111101000101001" + "1111111101010100010100000111101000111110001010011001111100011001001010110111111000110111100100100100001111110001101011011111010000010110111111101000101001" + "1111111101010100010110110111100000101111000010100001000111101000010011011010000111100100011010011100001001111000001001010110111011111000111111101000101001" + "1111111101010100010110111000011000101111001111001001000011011100011011100001101000110110011000011001101101001000001100010110111001100000111111101000101001" + "1111111101010100011100101100001000110110011110000101110010011101100011110100011000110111110110010100001011100010011111011111001010000110111111101000101001" + "1111111101010100011110010011110010100011111001101001001111000110011010001110110011100110000101011111001111110101101000010110010000111000111111101000101001" + "1111111101010100011001000100110000110100111001111001011100111101100011010000100011000110011011000110001101011001110000011011001000000100111111101000101001" + "1111111101010100011001011111001110110110111110011001110001001100100010010001111010000111101000100100001011111101101110010010111100100000111111101000101001" + "1111111101010100011111100100011010110100000101111101011001110111110010111000110111000110001001111110101111011011111001010110001001110000111111101000101001" + "1111111101010100010010001110001110100110000110010001100001001100111011101001110111110110111100011100101110101001110000010010001110111000111111101000101001" + "1111111101010100011100100110100000110101111011000001100110011110100010000010001111010111001011001000001001000011110100011110110110100000111111101000101001" + "1111111101010100010110001110111110111110001011100101111101100111101010000111010110000110110010111100001111101011100100010110000011011110111111101000101001" + }, + /* 26*/ { BARCODE_PDF417, -1, UNICODE_MODE, -1, 5, "ABCDEF1234567890123\177\177\177\177YZ1234567890123", 0, 6, 154, 1, "Text, Numeric, Byte, 2 Text, Numeric", + "1111111101010100011110101011110000110101110111100001111010101111000010100111001110000110100000101100001001111011110100011110101001111000111111101000101001" + "1111111101010100011110101000010000111101011001100001010011110000100011111100011101010110000010111000101111001011011000011111101010111000111111101000101001" + "1111111101010100011101010011111100100000111100101001111011011111010010011100001001100100110001000011101110100011111001010101000011110000111111101000101001" + "1111111101010100010101111001111000101101111011100001001111011110100011110101100111110110100001000011001000001001101100011111010111111010111111101000101001" + "1111111101010100011010111000001000110000010111000101111001011011000010110001111101000111010011100011001110110111010000011101011100110000111111101000101001" + "1111111101010100011111010111100110100001100110111101100110101111000010110011011110000111011100010111101001001001111000011110101111101100111111101000101001" + }, + /* 27*/ { BARCODE_PDF417, -1, UNICODE_MODE, -1, -1, "ABCDEFGHIJKLMOPQRSTUVWXYZABCDEFGHIJKLMOPQRSTUVWXYZABCDEFGHIJKLMOPQRSTUVWXYZABCDEFGHIJKLMOPQRSTUVWXYZ", 0, 14, 154, 1, "ECC 3", + "1111111101010100011110101001111000111010011001111001111010101111000010100111001110000110100000101100001111011010000111011110101001111000111111101000101001" + "1111111101010100011110101000001000100101111001000001110110111100110011101100111100110111000101100100001110001001110011011111101010011100111111101000101001" + "1111111101010100011101010011111100110111100010011001000001000101111010011110011000110101111100011001001111101011110110010101000001111000111111101000101001" + "1111111101010100011111010111111010101000111011100001110010110111100010010011000011000101100111100011101011000011000010011111010111111010111111101000101001" + "1111111101010100011010111000000100111001000001101001001101011111100010011001011111100111110111001100101100001011110110011101011100011000111111101000101001" + "1111111101010100011111010111100110110111110001000101110101011111100010100110011111000101000001000111101011011001111000011110101111100110111111101000101001" + "1111111101010100011010011100111100110010001001100001100100001101110010001011000110000110001000100110001001100011001000011010011100111100111111101000101001" + "1111111101010100011111010010011000110011001111010001111001100001101011000110111100100110000100011101001111010111001110010101111110011100111111101000101001" + "1111111101010100011010011001111110101000100000111101111100101111011011100100111110010101100001000011101001101110111110010100111011111100111111101000101001" + "1111111101010100010100011101110000111101110101100001001100111100111011100110000100110110001101000100001000110011001000010100011101110000111111101000101001" + "1111111101010100011010011100000100111000110011101001011111101011000010111111010110000101111110101100001111010100001000011101001110011000111111101000101001" + "1111111101010100010100010000011110100100110001111101011011000111100011000111100101100110010101111100001111101000111010010100011000111110111111101000101001" + "1111111101010100010100000101000000111101100100011101000011011010000011001000000101100110100000010011001010000110000011010100000101000000111111101000101001" + "1111111101010100011101000110100000100111101001111001111100100101100011110101101100000111100010011001101111000100000101011110100010010000111111101000101001" + }, + /* 28*/ { 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" @@ -496,7 +650,7 @@ static void test_encode(int index, int generate, int debug) { "111111110101010001111010111000111011011000001111010110010011101000001" "111111110101010001111010111101000011110100111101000110010010011111001" }, - /* 19*/ { BARCODE_PDF417COMP, -1, UNICODE_MODE, 4, 4, "ABCDEFG", 0, 10, 103, 1, "", + /* 29*/ { BARCODE_PDF417COMP, -1, UNICODE_MODE, 4, 4, "ABCDEFG", 0, 10, 103, 1, "", "1111111101010100011101010011100000110101000011000001111010101111000010100111001110000110100000101100001" "1111111101010100011110101000000100110100000011100101011111101011000010111111010110000101111110101100001" "1111111101010100011010100111110000101111001100011001000001111010100010011111001100100111001011111001001" @@ -508,7 +662,7 @@ static void test_encode(int index, int generate, int debug) { "1111111101010100010100110011111000100110000110111101100111000010111010010001011110000110011111010001001" "1111111101010100010100011000001100110001101010000001100011000110011011001001101110000111110111110101001" }, - /* 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", + /* 30*/ { 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" @@ -518,7 +672,7 @@ static void test_encode(int index, int generate, int debug) { "111111110101010001110100111011111010100110001100000110100011100111101111010010111100011101001110111110111111101000101001" "111111110101010001111101001011000011100001001100100111010000011001001111011000110100010101111110111000111111101000101001" }, - /* 21*/ { BARCODE_HIBC_PDF, -1, UNICODE_MODE, 1, 3, "A123BJC5D6E71", 0, 6, 120, 1, "BWIPP example", + /* 31*/ { BARCODE_HIBC_PDF, -1, UNICODE_MODE, 1, 3, "A123BJC5D6E71", 0, 6, 120, 1, "BWIPP example", "111111110101010001111010101111000011110101101111100100000100010010001000011011100110011111010101111100111111101000101001" "111111110101010001111010100010000011110000010001010110101111110111101111000001000101011111101010111000111111101000101001" "111111110101010001010100111100000010110001100011110101111110111101101000111100011011010101000111100000111111101000101001" @@ -526,7 +680,7 @@ static void test_encode(int index, int generate, int debug) { "111111110101010001111010111000111011010111110011100110100000011100101111110101000111011101011100110000111111101000101001" "111111110101010001111101011110110010011100110011100100011110110011001011001011100000011110101111000100111111101000101001" }, - /* 22*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 1, "ABCDEFGHIJKLMNOPQRSTUV", 0, 20, 38, 1, "ISO 24728:2006 Figure 1 1st 1x20, same", + /* 32*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 1, "ABCDEFGHIJKLMNOPQRSTUV", 0, 20, 38, 1, "ISO 24728:2006 Figure 1 1st 1x20, same", "11110101001000011000110010011110101001" "11100101001111110101011100011100101001" "11101101001010011001111100011101101001" @@ -548,7 +702,7 @@ static void test_encode(int index, int generate, int debug) { "11011101001111011111011010011011101001" "11011001001100010001110100011011001001" }, - /* 23*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 2, "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCD", 0, 20, 55, 1, "ISO 24728:2006 Figure 1 2nd 2x20, same", + /* 33*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 2, "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCD", 0, 20, 55, 1, "ISO 24728:2006 Figure 1 2nd 2x20, same", "1111010100100001100011001001111010101111000011110101001" "1110010100110101111110111101111101000100110011100101001" "1110110100101101100111100001011001110011111011101101001" @@ -570,7 +724,7 @@ static void test_encode(int index, int generate, int debug) { "1101110100111010110011110001000001001101100011011101001" "1101100100111100110110100001001001111001000011011001001" }, - /* 24*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 3, "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMN", 0, 20, 82, 1, "ISO 24728:2006 Figure 1 3rd 3x20", + /* 34*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 3, "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMN", 0, 20, 82, 1, "ISO 24728:2006 Figure 1 3rd 3x20", "1100100010100001100011001001011110010111101010111100001010011100111000011100101101" "1110100010111110100010011001011110110101000011111001101001011110010000011000101101" "1110110010111100010111101001001110110110111011001111001001100001000111011000101001" @@ -592,7 +746,7 @@ static void test_encode(int index, int generate, int debug) { "1111010100101111011110100001011001000111110011010111101011110111110110011010000101" "1110010100110010001111011001011001100111000010111011001110001011100110011011000101" }, - /* 25*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 4, "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZAB", 0, 20, 99, 1, "ISO 24728:2006 Figure 1 4th 4x20, same", + /* 35*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 4, "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZAB", 0, 20, 99, 1, "ISO 24728:2006 Figure 1 4th 4x20, same", "110010001010000110001100100111101010111100001011110010101001110011100001101000001011000011100101101" "111010001010100001111100110100101111001000001011110110111011011110011001101100111100100011000101101" "111011001010011000010001110110011101000011101001110110110111100101100001000001010111100011000101001" @@ -614,7 +768,7 @@ static void test_encode(int index, int generate, int debug) { "111101010011100011101010000110001011101111001011001000111110111101011001100101110111100011010000101" "111001010010001000001111010111100010100001001011001100100111101101111101001110100111110011011000101" }, - /* 26*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 1, "123456789012345", 0, 14, 38, 1, "Number Compaction", + /* 36*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 1, "123456789012345", 0, 14, 38, 1, "Number Compaction", "11101110101011111101001100011101110101" "11100110101110101011111100011100110101" "11110110101000001011001100011110110101" @@ -630,7 +784,7 @@ static void test_encode(int index, int generate, int debug) { "11100101001101011110000110011100101001" "11101101001101000111111001011101101001" }, - /* 27*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 2, "\177\177\177", 0, 8, 55, 1, "Byte Compaction", + /* 37*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 2, "\177\177\177", 0, 8, 55, 1, "Byte Compaction", "1100100010100000100001000101010000010010000011001000101" "1110100010111110100010001101111101000100011011101000101" "1110110010110001111100100101100011111001001011101100101" @@ -640,7 +794,7 @@ static void test_encode(int index, int generate, int debug) { "1100111010111001111001100101000001001101100011001110101" "1110111010111000101111011101110001000011010011101110101" }, - /* 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)", + /* 38*/ { 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" @@ -650,7 +804,7 @@ static void test_encode(int index, int generate, int debug) { "1100111010100100010000100001110111101100001011001110101" "1110111010111110011010100001101100001111010011101110101" }, - /* 29*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 3, "ABCDEFG\177\177\177", 0, 8, 82, 1, "Text & Byte Compaction", + /* 39*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 3, "ABCDEFG\177\177\177", 0, 8, 82, 1, "Text & Byte Compaction", "1100111010100001100011001001000010110111101010111100001010011100111000011001110101" "1110111010111110100010011001000010010110100000011100101101111110101110011101110101" "1110011010101000000101111001000011010101000000101111001010000001011110011100110101" @@ -660,7 +814,7 @@ static void test_encode(int index, int generate, int debug) { "1100001010111110111010111001001100010110011100011000101101100001100110011000010101" "1100011010110100011100001001001110010110110000111101001100011011110010011000110101" }, - /* 30*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 4, "\177\177\177abcdefgh1234567890123", 0, 8, 99, 1, "Byte & Text & Numeric Compaction", + /* 40*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 4, "\177\177\177abcdefgh1234567890123", 0, 8, 99, 1, "Byte & Text & Numeric Compaction", "110011101010000010000100010101000001001000001000010110101000001001000001010000010010000011001110101" "111011101010111111010110000110000010111001001000010010111101011100111001110100111001100011101110101" "111001101011111001011110110101100110011110001000011010100001111000101001111110101100010011100110101" @@ -670,7 +824,7 @@ static void test_encode(int index, int generate, int debug) { "110000101011000011010000100100000101101100001001100010101110111110111001111001110010110011000010101" "110001101011101110111100010100100011110100001001110010100000101111000101111001010010000011000110101" }, - /* 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", + /* 41*/ { 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" @@ -680,7 +834,7 @@ static void test_encode(int index, int generate, int debug) { "110000101010110110001000000111000101100111101001100010110111101110000101100010101100000011000010101" "110001101011110110000011010111100100001101101001110010101101011111100001111001000110011011000110101" }, - /* 32*/ { BARCODE_HIBC_MICPDF, -1, UNICODE_MODE, -1, 1, "/EAH783", 0, 17, 38, 1, "HIBC Provider Applications Standard (PAS) example", + /* 42*/ { BARCODE_HIBC_MICPDF, -1, UNICODE_MODE, -1, 1, "/EAH783", 0, 17, 38, 1, "HIBC Provider Applications Standard (PAS) example", "11001101001100011111001001011001101001" "11011101001000001000100100011011101001" "11011001001000100011110100011011001001" @@ -699,7 +853,7 @@ static void test_encode(int index, int generate, int debug) { "11010000101101100100001111011010000101" "11011000101110111000100010011011000101" }, - /* 33*/ { BARCODE_PDF417, 9, DATA_MODE, -1, -1, "\342", 0, 7, 103, 1, "β", + /* 43*/ { BARCODE_PDF417, 9, DATA_MODE, -1, -1, "\342", 0, 7, 103, 1, "β", "1111111101010100011111010101111100110101000110000001100011100011001011110101011110000111111101000101001" "1111111101010100011111010100011000111110101000011001011111100100011011110101001000000111111101000101001" "1111111101010100011101010111111000110110010011110001100011111001001011010100011111000111111101000101001" @@ -708,7 +862,7 @@ static void test_encode(int index, int generate, int debug) { "1111111101010100011110101111010000100011110001000101000110010111000011110101111000010111111101000101001" "1111111101010100011101001110111110101110001110001001010001101100000011010011101111000111111101000101001" }, - /* 34*/ { BARCODE_MICROPDF417, 9, DATA_MODE, -1, 1, "\342\343", 0, 14, 38, 1, "βγ", + /* 44*/ { BARCODE_MICROPDF417, 9, DATA_MODE, -1, 1, "\342\343", 0, 14, 38, 1, "βγ", "11101110101001111110010110011101110101" "11100110101101010000111110011100110101" "11110110101000001000010001011110110101" @@ -724,6 +878,624 @@ static void test_encode(int index, int generate, int debug) { "11100101001011100101111100011100101001" "11101101001101001001111100011101101001" }, + /* 45*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 1, "12345678", 0, 11, 38, 0, "1 columns x 11 rows, variant 1; BWIPP uses byte compaction TODO: investigate", + "11001000101001111011110100011100110101" + "11101000101110100011000001011110110101" + "11101100101000011010011100011110010101" + "11001100101100110011000011011100010101" + "11011100101111100001010110011000010101" + "11011110101101100100111100011000110101" + "11001110101011110011111011011000100101" + "11101110101000110111110010011100100101" + "11100110101011011110111111011110100101" + "11110110101001000001000010011110101101" + "11110010101110001001110110011110101001" + }, + /* 46*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 1, "123456789012345678901234567890", 0, 20, 38, 1, "1 columns x 20 rows, variant 4", + "11110101001001111011110100011110101001" + "11100101001111101010011000011100101001" + "11101101001111110010011001011101101001" + "11101001001001110011110110011101001001" + "11101001101111100010100110011101001101" + "11101011101010000010111100011101011101" + "11101011001011000111100111011101011001" + "11101010001110100000111011011101010001" + "11001010001110011101001111011001010001" + "11001011001100101110011110011001011001" + "11001011101100111011111010011001011101" + "11001001101011011000111100011001001101" + "11001101101100110000010010011001101101" + "11101101101100100011110110011101101101" + "11100101101001111110111001011100101101" + "11000101101001110011100100011000101101" + "11000101001010000111100100011000101001" + "11001101001011111101110001011001101001" + "11011101001011110111101000011011101001" + "11011001001010001111000010011011001001" + }, + /* 47*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 1, "1234567890123456789012345678901234567890", 0, 24, 38, 1, "1 columns x 24 rows, variant 5", + "11100110101000011110001010011110100101" + "11110110101101001000011000011110101101" + "11110010101101000011100010011110101001" + "11100010101001000011011111011100101001" + "11000010101011000011001000011101101001" + "11000110101100010111000100011101001001" + "11000100101110110101111100011101001101" + "11100100101101011100011110011101011101" + "11110100101001001111000001011101011001" + "11110101101110001110101111011101010001" + "11110101001101100001000010011001010001" + "11100101001110111011110100011001011001" + "11101101001111110100111011011001011101" + "11101001001000010000110011011001001101" + "11101001101111010000010010011001101101" + "11101011101100011111001001011101101101" + "11101011001000010011100111011100101101" + "11101010001111101100001001011000101101" + "11001010001011101101110000011000101001" + "11001011001000010011011000011001101001" + "11001011101100110111100100011011101001" + "11001001101001110011011100011011001001" + "11001101101000101101100000011011001101" + "11101101101111000010010010011011011101" + }, + /* 48*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 1, "12345678901234567890123456789012345678901234567890", 0, 28, 38, 1, "1 columns x 28 rows, variant 6", + "11101011001001111011110100011100101101" + "11101010001100010111110111011000101101" + "11001010001110100111110001011000101001" + "11001011001010000011000110011001101001" + "11001011101110010000001101011011101001" + "11001001101111110001011010011011001001" + "11001101101010011110111100011011001101" + "11101101101111110101101111011011011101" + "11100101101101101000111100011011011001" + "11000101101001100111000011011011010001" + "11000101001101111101001111011010010001" + "11001101001000111001011000011010110001" + "11011101001100010001000011011010111001" + "11011001001011111001011100011010111101" + "11011001101010110111110000011010011101" + "11011011101110111010100000011010011001" + "11011011001111110101011100011010001001" + "11011010001000011100001011011010001101" + "11010010001010001100011000011010000101" + "11010110001011111101011000011011000101" + "11010111001110111110101100011001000101" + "11010111101101011110111110011101000101" + "11010011101011110100111100011101100101" + "11010011001011101110111100011001100101" + "11010001001000101100001100011011100101" + "11010001101111101000100011011011110101" + "11010000101001111001100110011001110101" + "11011000101110101011100000011101110101" + }, + /* 49*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 2, "ABCDEFGHIJKLMNOPQRSTU", 0, 11, 55, 1, "2 columns x 11 rows, variant 8", + "1100100010100001100011001001111010101111000011100110101" + "1110100010110101111110111101111101000100110011110110101" + "1110110010101101100111100001011001110011111011110010101" + "1100110010110010000110111001110001011001111011100010101" + "1101110010111001000001101001001101011111100011000010101" + "1101111010110111100101100001100001101001111011000110101" + "1100111010100001100011001001110010000101110011000100101" + "1110111010111101110111010001111100001010110011100100101" + "1110011010110010001001111101101100101111000011110100101" + "1111011010111000110100001101000101110111000011110101101" + "1111001010110001011100000101000100011110001011110101001" + }, + /* 50*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 2, "ABCDEFGHIJKLMNOPQRSTUVWXYZA", 0, 14, 55, 1, "2 columns x 14 rows, variant 9", + "1110111010101111110101100001111110101011100011101110101" + "1110011010101001100111110001010000010001111011100110101" + "1111011010111101101000011101100100010011000011110110101" + "1111001010111011011110011001101100111100100011110010101" + "1110001010100110000100011101100111010000111011100010101" + "1100001010111001100001001101100011010001000011000010101" + "1100011010110000101111011001110001100111010011000110101" + "1100010010101011100011111101100011111001001011000100101" + "1110010010100001100011001001000011000110010011100100101" + "1111010010101111110101100001110111000111101011110100101" + "1111010110101111110111001001111001011110100011110101101" + "1111010100101010000010000001110100001001110011110101001" + "1110010100101111100110111101110110011110011011100101001" + "1110110100100000011010111001100111101000011011101101001" + }, + /* 51*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 2, "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL", 0, 17, 55, 1, "2 columns x 17 rows, variant 10", + "1100110100110001111100100101110101011111100011001101001" + "1101110100101001110011100001101000001011000011011101001" + "1101100100101000011111001101001011110010000011011001001" + "1101100110111100010111101001101110110011110011011001101" + "1101101110111101110101100001001100111100111011011011101" + "1101101100100110010111111001111101110011001011011011001" + "1101101000110111110101000001101111100010001011011010001" + "1101001000111101010111100001010011100111000011010010001" + "1101011000111110100010011001010000111110011011010110001" + "1101011100101100111001111101111000101111010011010111001" + "1101011110100001100011001001000011000110010011010111101" + "1101001110101111110101100001011111101011000011010011101" + "1101001100101110100000110001001111001010000011010011001" + "1101000100111001000110111101110011000010011011010001001" + "1101000110111111001010111001111000101100110011010001101" + "1101000010101110011101111001010010011110000011010000101" + "1101100010100101111101111101000110000011010011011000101" + }, + /* 52*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 2, "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFG", 0, 23, 55, 1, "2 columns x 23 rows, variant 12", + "1110011010110001111100100101110101011111100011110100101" + "1111011010101001110011100001101000001011000011110101101" + "1111001010101000011111001101001011110010000011110101001" + "1110001010111100010111101001101110110011110011100101001" + "1100001010111101110101100001001100111100111011101101001" + "1100011010100110010111111001111101110011001011101001001" + "1100010010110111110101000001101111100010001011101001101" + "1110010010111101010111100001010011100111000011101011101" + "1111010010111110100010011001010000111110011011101011001" + "1111010110101100111001111101111000101111010011101010001" + "1111010100111000101100111101111011101011000011001010001" + "1110010100100110101111110001001100101111110011001011001" + "1110110100100000101011110001101111101010000011001011101" + "1110100100110011100111001101111010101111000011001001101" + "1110100110110101111110111101111101000100110011001101101" + "1110101110111110010011100101100011111001001011101101101" + "1110101100100001100011001001110111100110010011100101101" + "1110101000110111011111001001110000100011010011000101101" + "1100101000100011010011100001011000100000111011000101001" + "1100101100111010001001110001101000101100000011001101001" + "1100101110111010000001101001011001111100010011011101001" + "1100100110101100011011110001111101101111010011011001001" + "1100110110100001000010000101100010001000011011011001101" + }, + /* 53*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 2, "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQ", 0, 26, 55, 1, "2 columns x 26 rows, variant 13", + "1100101000110001111100100101110101011111100011000101001" + "1100101100101001110011100001101000001011000011001101001" + "1100101110101000011111001101001011110010000011011101001" + "1100100110111100010111101001101110110011110011011001001" + "1100110110111101110101100001001100111100111011011001101" + "1110110110100110010111111001111101110011001011011011101" + "1110010110110111110101000001101111100010001011011011001" + "1100010110111101010111100001010011100111000011011010001" + "1100010100111110100010011001010000111110011011010010001" + "1100110100101100111001111101111000101111010011010110001" + "1101110100111000101100111101111011101011000011010111001" + "1101100100100110101111110001001100101111110011010111101" + "1101100110100000101011110001101111101010000011010011101" + "1101101110110011100111001101111010101111000011010011001" + "1101101100110101111110111101111101000100110011010001001" + "1101101000101101100111100001011001110011111011010001101" + "1101001000110010000110111001110001011001111011010000101" + "1101011000111001000001101001111001101100100011011000101" + "1101011100110001111100100101101001000011111011001000101" + "1101011110100100001101100001011100011100010011101000101" + "1101001110100010011110100001111110110100110011101100101" + "1101001100111101011111001101100011101001110011001100101" + "1101000100110111011110011101011100011100010011011100101" + "1101000110100111011011111101110110011101000011011110101" + "1101000010100010111011111101010100011110000011001110101" + "1101100010110001000001011001110101000111000011101110101" + }, + /* 54*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 3, "ABCDEFGHIJ", 0, 6, 82, 1, "3 columns x 6 rows, variant 14", + "1100100010100001100011001001011001110111101010111100001010011100111000011001000101" + "1110100010111110100010011001001001110101000011111001101001011110010000011101000101" + "1110110010110100010001111101001101110110000101001111101001000100111100011101100101" + "1100110010111101101001110001000101110100100011101110001011110011110001011001100101" + "1101110010111010011110011101000100110111011100111100101110100111001100011011100101" + "1101111010100001111010000101000110110100110100000011101100100111111001011011110101" + }, + /* 55*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 3, "ABCDEFGHIJKLMNOPQRSTU", 0, 10, 82, 1, "3 columns x 10 rows, variant 16", + "1100010010110001111100100101001111010111010101111110001010011001111100011000100101" + "1110010010110100000101100001011111010111101101000011101100100010011000011100100101" + "1111010010111011011110011001011110010110110011110010001110010000011010011110100101" + "1111010110110011101000011101011110110110111100101100001100001101001111011110101101" + "1111010100100001100011001001001110110100001100011001001101110001101000011110101001" + "1110010100110000100111010001001110100111010001110110001101011100000100011100101001" + "1110110100110100110011111101001100100110011100001011101000110010000111011101101001" + "1110100100101011110011110001001100110100001001001000001101101000001000011101001001" + "1110100110101011111001100001001000110101110010011111001111101100101000011101001101" + "1110101110110111101100111001001000010110111110000101001001110001101110011101011101" + }, + /* 56*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 3, "ABCDEFGHIJKLMNOPQRSTUVWXYZABCD", 0, 12, 82, 1, "3 columns x 12 rows, variant 17", + "1110101100100001100011001001011000010111101010111100001010011100111000011101011001" + "1110101000111110100010011001011100010101000011111001101001011110010000011101010001" + "1100101000111100010111101001011100110110111011001111001001100001000111011001010001" + "1100101100100110011110011101011100100111001100001001101100011010001000011001011001" + "1100101110110000101111011001011101100111000110011101001111110101011100011001011101" + "1100100110101001100111110001001101100110001111100100101100011111001001011001001101" + "1100110110110011010000100001000101100100011101110010001101100100000010011001101101" + "1110110110111101011000110001000101000111101110111010001111110111010100011101101101" + "1110010110100011010111000001001101000101110000001011001110101111101000011100101101" + "1100010110101100001110001101011101000110111000111001101110001011011110011000101101" + "1100010100111101100011000101011001000110110001111000101100011001111001011000101001" + "1100110100101010000011110001011001100111001111101011001111010111100010011001101001" + }, + /* 57*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 3, "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHI", 0, 15, 82, 1, "3 columns x 15 rows, variant 18", + "1101110100100001100011001001011000100111101010111100001010011100111000011011101001" + "1101100100111110100010011001011000110101000011111001101001011110010000011011001001" + "1101100110111100010111101001010000110110111011001111001001100001000111011011001101" + "1101101110100110011110011101010001110111001100001001101100011010001000011011011101" + "1101101100110000101111011001010001100111000110011101001111110101011100011011011001" + "1101101000101001100111110001010011100101000001000111101011011001111000011011010001" + "1101001000110110011100111001010011000100001100011001001000011000110010011010010001" + "1101011000101111110101100001010111000101111110101100001011111101011000011010110001" + "1101011100110111100100001101010110000111011010011111001101111001011000011010111001" + "1101011110110011100110000101010010000100010110000011001011110001111001011010111101" + "1101001110111010001100100001011010000100111110100011101011010001111110011010011101" + "1101001100110011110010110001001010000110011111101100101000111000101100011010011001" + "1101000100100001100110010001001011000100000100001010001111010000101111011010001001" + "1101000110111110101101110001001011100101111110101100001111100110100001011010001101" + "1101000010111011101011110001011011100100011100000101101011000110001111011010000101" + }, + /* 58*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 3, "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRST", 0, 26, 82, 1, "3 columns x 26 rows, variant 20", + "1100100010100001100011001001000011010111101010111100001010011100111000011110100101" + "1110100010111110100010011001000111010101000011111001101001011110010000011110101101" + "1110110010111100010111101001000110010110111011001111001001100001000111011110101001" + "1100110010100110011110011101000100010111001100001001101100011010001000011100101001" + "1101110010110000101111011001001100010111000110011101001111110101011100011101101001" + "1101111010101001100111110001001110010101000001000111101011011001111000011101001001" + "1100111010110010001001100001001111010110010000110111001110001011001111011101001101" + "1110111010111001000001101001011111010100110101111110001001100101111110011101011101" + "1110011010100000101011110001011110010110111110101000001101111100010001011101011001" + "1111011010111101010111100001011110110101001110011100001101000001011000011101010001" + "1111001010101000011111001101001110110100101111001000001110110111100110011001010001" + "1110001010110111011001111001001110100100110000100011101100111010000111011001011001" + "1100001010111001100001001101001100100100001100011001001000011000110010011001011101" + "1100011010101111110101100001001100110101111110101100001011111101011000011001001101" + "1100010010110001111100100101001000110110001111100100101100011111001001011001101101" + "1110010010100001100011001001001000010101000000100000101001111011110100011101101101" + "1111010010100111001011111001011000010111101101100100001111010111000111011100101101" + "1111010110101101001110000001011100010110011111101101001100011101000111011000101101" + "1111010100111001110001010001011100110100111000111010001111001101000111011000101001" + "1110010100111000101100001001011100100111000110011101001100011011110001011001101001" + "1110110100100111000010011001011101100100000110110111101010011011111000011011101001" + "1110100100110010000110011101001101100111001111011000101110010001011100011011001001" + "1110100110110001011110001101000101100111100001011001101111001101101000011011001101" + "1110101110110011110010001101000101000100111101001000001101111101100110011011011101" + "1110101100100110011010000001001101000111011110001100101100110000100100011011011001" + "1110101000111100010100100001011101000101111101001110001111100100010011011011010001" + }, + /* 59*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 3, "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ", 0, 32, 82, 1, "3 columns x 26 rows, variant 20", + "1110110100110001111100100101011101100111010101111110001010011001111100011011101001" + "1110100100110100000101100001001101100111101101000011101100100010011000011011001001" + "1110100110111011011110011001000101100110110011110010001110010000011010011011001101" + "1110101110110011101000011101000101000110111100101100001000001010111100011011011101" + "1110101100100011001100100001001101000110011100111001101111010101111000011011011001" + "1110101000110101111110111101011101000111110100010011001010000111110011011011010001" + "1100101000101100111001111101011001000111100010111101001101110110011110011010010001" + "1100101100111101110101100001011001100100110011110011101110011000010011011010110001" + "1100101110111110111001100101011000100110000101111011001110001100111010011010111001" + "1100100110111010101111110001011000110101001100111110001010000010001111011010111101" + "1100110110111101101000011101010000110110010001001100001100100001101110011010011101" + "1110110110110110011110010001010001110111001000001101001001101011111100011010011001" + "1110010110110111100101100001010001100100000101011110001101111101010000011010001001" + "1100010110110011100111001101010011100111101010111100001010011100111000011010001101" + "1100010100111110100010011001010011000101000011111001101001011110010000011010000101" + "1100110100111100010111101001010111000110111011001111001001100001000111011011000101" + "1101110100100110011110011101010110000111001100001001101100011010001000011001000101" + "1101100100110000101111011001010010000111000110011101001011111101011000011101000101" + "1101100110110001111100100101011010000110001111100100101100011111001001011101100101" + "1101101110100001100011001001001010000111101111101101001110110000100011011001100101" + "1101101100100001011111001101001011000111010000111001101110011011101000011011100101" + "1101101000110011111101100101001011100101111100011101101100100100111110011011110101" + "1101001000101000010001000001011011100100110111001100001110111010100000011001110101" + "1101011000101011111100111001011011110111110001110110101111110101001110011101110101" + "1101011100100011001001110001011001110100011110101000001100111110010010011100110101" + "1101011110111011100010000101001001110101101111001110001001100111000011011110110101" + "1101001110100111111010011001001101110100011001111101001111000100110011011110010101" + "1101001100100011101011000001000101110111010111110010001000010010011110011100010101" + "1101000100111000010010011101000100110100001011000001101000101111001111011000010101" + "1101000110111110010000101101000110110111001101111001101111110110001011011000110101" + "1101000010110010100001111101000010110100111100110011001111010000111101011000100101" + "1101100010101110011101000001000010010110000100010001101110001101000011011100100101" + }, + /* 60*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 3, "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ", 0, 38, 82, 1, "3 columns x 38 rows, variant 22", + "1100010010110001111100100101000101100111010101111110001010011001111100011010011101" + "1110010010110100000101100001000101000111101101000011101100100010011000011010011001" + "1111010010111011011110011001001101000110110011110010001110010000011010011010001001" + "1111010110110011101000011101011101000110111100101100001000001010111100011010001101" + "1111010100100011001100100001011001000110011100111001101111010101111000011010000101" + "1110010100110101111110111101011001100111110100010011001010000111110011011011000101" + "1110110100101100111001111101011000100111100010111101001101110110011110011001000101" + "1110100100111101110101100001011000110100110011110011101110011000010011011101000101" + "1110100110111110111001100101010000110110000101111011001110001100111010011101100101" + "1110101110111010101111110001010001110101001100111110001010000010001111011001100101" + "1110101100111101101000011101010001100110010001001100001100100001101110011011100101" + "1110101000110110011110010001010011100111001000001101001001101011111100011011110101" + "1100101000110111100101100001010011000100000101011110001101111101010000011001110101" + "1100101100110011100111001101010111000111101010111100001010011100111000011101110101" + "1100101110111110100010011001010110000101000011111001101001011110010000011100110101" + "1100100110111100010111101001010010000110111011001111001001100001000111011110110101" + "1100110110100110011110011101011010000111001100001001101100011010001000011110010101" + "1110110110110000101111011001001010000111000110011101001111110101011100011100010101" + "1110010110101001100111110001001011000101000001000111101011011001111000011000010101" + "1100010110110010001001100001001011100110010000110111001110001011001111011000110101" + "1100010100111001000001101001011011100100110101111110001001100101111110011000100101" + "1100110100100000101011110001011011110110111110101000001101111100010001011100100101" + "1101110100100001100011001001011001110100001100011001001000011000110010011110100101" + "1101100100101111110101100001001001110110110011110001001110000101100100011110101101" + "1101100110101111000001001001001101110111111001011000101000110001011100011110101001" + "1101101110110111000110010001000101110101001111001111001100100101100000011100101001" + "1101101100101100011111000101000100110101111110011011101011100011111101011101101001" + "1101101000101111010000001001000110110101110011101111001001110011101111011101001001" + "1101001000111110111010011101000010110110110011100111001100100001001100011101001101" + "1101011000100101111000010001000010010100111111001011001101001110010000011101011101" + "1101011100100011101000110001000011010110011100001011101011101001100000011101011001" + "1101011110110110000110011001000111010111000011010001101001000100001000011101010001" + "1101001110110101110000001001000110010110010011111011101111010001100110011001010001" + "1101001100111110001011101001000100010100011001001110001011111011100011011001011001" + "1101000100100100001100001101001100010111011000010001101001011100111000011001011101" + "1101000110110000010011100101001110010101100111110001001111010111000111011001001101" + "1101000010110100101111100001001111010101000000100111101011101111011111011001101101" + "1101100010111011101100001101011111010100000101000010001011110111100010011101101101" + }, + /* 61*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 3, "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ", 0, 44, 82, 1, "3 columns x 44 rows, variant 23", + "1100100010100001100011001001011000010111101010111100001010011100111000011010001001" + "1110100010111110100010011001011100010101000011111001101001011110010000011010001101" + "1110110010111100010111101001011100110110111011001111001001100001000111011010000101" + "1100110010100110011110011101011100100111001100001001101100011010001000011011000101" + "1101110010110000101111011001011101100111000110011101001111110101011100011001000101" + "1101111010101001100111110001001101100101000001000111101011011001111000011101000101" + "1100111010110010001001100001000101100110010000110111001110001011001111011101100101" + "1110111010111001000001101001000101000100110101111110001001100101111110011001100101" + "1110011010100000101011110001001101000110111110101000001101111100010001011011100101" + "1111011010111101010111100001011101000101001110011100001101000001011000011011110101" + "1111001010101000011111001101011001000100101111001000001110110111100110011001110101" + "1110001010110111011001111001011001100100110000100011101100111010000111011101110101" + "1100001010111001100001001101011000100110001101000100001000110011001000011100110101" + "1100011010111000110011101001011000110111111010101110001101011111101111011110110101" + "1100010010101000001000111101010000110101101100111100001011001110011111011110010101" + "1110010010110010000110111001010001110111000101100111101111011101011000011100010101" + "1111010010100110101111110001010001100100110010111111001111101110011001011000010101" + "1111010110110111110101000001010011100110111110001000101110101011111100011000110101" + "1111010100101001110011100001010011000110100000101100001111011010000111011000100101" + "1110010100100101111001000001010111000111011011110011001101100111100100011100100101" + "1110110100100110000100011101010110000110011101000011101101111001011000011110100101" + "1110100100110001101000100001010010000100011001100100001100111001110011011110101101" + "1110100110111111010101110001011010000110101111110111101111101000100110011110101001" + "1110101110101101100111100001001010000101100111001111101111000101111010011100101001" + "1110101100111000101100111101001011000111101110101100001001100111100111011101101001" + "1110101000100110010111111001001011100111110111001100101100001011110110011101001001" + "1100101000110111110001000101011011100110001111100100101100011111001001011101001101" + "1100101100100001100011001001011011110111100100100111101110010000101110011101011101" + "1100101110111100010001101101011001110111011100111101001111100010101100011101011001" + "1100100110111001100101111101001001110110010100001111101011000010000111011101010001" + "1100110110100011000110100001001101110101100110001000001110001001000111011001010001" + "1110110110101101001111110001000101110111011000111101101111000101000010011001011001" + "1110010110100111100000100101000100110111000100111110101001100010000111011001011101" + "1100010110100010000100100001000110110111010011001111001000101000010000011001001101" + "1100010100101111000100111101000010110110001011100100001111000001010001011001101101" + "1100110100101110100110000001000010010101111011000011001000110011001111011101101101" + "1101110100110001110110010001000011010100011011100110001001100001100100011100101101" + "1101100100100111110001011101000111010100011110101111001110100110000100011000101101" + "1101100110101100110111100001000110010111001001111100101011110010001000011000101001" + "1101101110111011000001011001000100010101000111000111001001110001110010011001101001" + "1101101100101111101100111101001100010111101000100000101110100111100111011011101001" + "1101101000110111100001011001001110010111110100001110101001100100001110011011001001" + "1101001000111000100010011101001111010110000010010011001111011101000110011011001101" + "1101011000100100011111011001011111010111011100111100101001011110100000011011011101" + }, + /* 62*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 4, "ABCDEFG", 0, 4, 99, 1, "4 columns x 4 rows, variant 24", + "110100111010111111010110000111111010101110001001110110110101111110111101111101000100110011010010001" + "110100110011111001001110010110001111100100101001110100110001111100100101100011111001001011010110001" + "110100010011000110100010000101101111101111001001100100110100110000111001110011100101000011010111001" + "110100011011111011001001000110100111000010001001100110101011111101110001110110111100110011010111101" + }, + /* 63*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 4, "ABCDEFGHIJKLMNOPQRS", 0, 6, 99, 1, "4 columns x 6 rows, variant 25", + "110010001010000110001100100111101010111100001011001110101001110011100001101000001011000011001000101" + "111010001010100001111100110100101111001000001001001110111011011110011001101100111100100011101000101" + "111011001010011000010001110110011101000011101001101110101111001000000101100011111001001011101100101" + "110011001010010001000000100110100001000011001000101110110111011000010001110010111011111011001100101" + "110111001011000110011110010101101111100001001000100110111110001010110001111101100010001011011100101" + "110111101010001110110001110100000100101111001000110110110111100000101101111000101111001011011110101" + }, + /* 64*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 4, "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJK", 0, 10, 99, 1, "4 columns x 10 rows, variant 27", + "110001001011000111110010010111010101111110001001111010101001100111110001010000010001111011000100101" + "111001001011110110100001110110010001001100001011111010110010000110111001110001011001111011100100101" + "111101001011100100000110100100110101111110001011110010100110010111111001111101110011001011110100101" + "111101011011011111010100000110111110001000101011110110111010101111110001010011001111100011110101101" + "111101010011010000010110000111101101000011101001110110110010001001100001101100001000010011110101001" + "111001010010111111010110000101111110101100001001110100101111110101100001011111101011000011100101001" + "111011010010001110111011110111110101110001001001100100100110001000011101110010111111011011101101001" + "111010010010001000100000010100100010000100001001100110110110000100010001110001001000111011101001001" + "111010011011101100000111010110111111010111001001000110100010011111011001111010110000110011101001101" + "111010111011001111110110010100011101000011001001000010101111100110010001011100001100111011101011101" + }, + /* 65*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 4, "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCD", 0, 12, 99, 1, "4 columns x 12 rows, variant 28", + "111010110010000110001100100111101010111100001011000010101001110011100001101000001011000011101011001" + "111010100010100001111100110100101111001000001011100010111011011110011001101100111100100011101010001" + "110010100010011000010001110110011101000011101011100110110111100101100001000001010111100011001010001" + "110010110010001100110010000110011100111001101011100100111101010111100001010011100111000011001011001" + "110010111011111010001001100101000011111001101011101100100101111001000001110110111100110011001011101" + "110010011011011101100111100100110000100011101001101100110011101000011101101111001011000011001001101" + "110011011011000110100010000100011001100100001000101100110011100111001101111010101111000011001101101" + "111011011011010111111011110101111110101100001000101000111101100111001101011100100011111011101101101" + "111001011011101100100111110100010110001111101001101000111101011110000101110010111110001011100101101" + "110001011011000001000010110111010101110000001011101000111110100101111101101100011100111011000101101" + "110001010010001111001011110111101101100010001011001000111100111011101001111001100011001011000101001" + "110011010011101111110100100101011100111111001011001100100001111000101001001111101110110011001101001" + }, + /* 66*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 4, "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHI", 0, 15, 99, 1, "4 columns x 15 rows, variant 29", + "110111010010000110001100100111101010111100001011000100101001110011100001101000001011000011011101001" + "110110010010100001111100110100101111001000001011000110111011011110011001101100111100100011011001001" + "110110011010011000010001110110011101000011101010000110110111100101100001000001010111100011011001101" + "110110111010001100110010000110011100111001101010001110111101010111100001010011100111000011011011101" + "110110110011111010001001100101000011111001101010001100100101111001000001110110111100110011011011001" + "110110100011011101100111100100110000100011101010011100110011101000011101101111001011000011011010001" + "110100100011000110100010000100011001100100001010011000110011100111001101111010101111000011010010001" + "110101100011010111111011110111110100010011001010111000101000011111001101111110110100110011010110001" + "110101110011000111110010010110001111100100101010110000110001111100100101100011111001001011010111001" + "110101111010000110001100100100001100011001001010010000100001100011001001110110100110000011010111101" + "110100111010111100101111000100111110100111001011010000111001101110100001011001111100010011010011101" + "110100110010000110010011100111001011111000101001010000110011100100111001110011111101001011010011001" + "110100010011000111011001000110100110000111001001011000111001000010111001111001101000111011010001001" + "110100011010111010000111110110001000111001001001011100111101100000110101100100011101000011010001101" + "110100001010011110100100000100111110011010001011011100111011111101001001011101100011100011010000101" + }, + /* 67*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 4, "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ", 0, 20, 99, 1, "4 columns x 20 rows, variant 30", + "110010001010000110001100100111101010111100001011110010101001110011100001101000001011000011100101101" + "111010001010100001111100110100101111001000001011110110111011011110011001101100111100100011000101101" + "111011001010011000010001110110011101000011101001110110110111100101100001000001010111100011000101001" + "110011001010001100110010000110011100111001101001110100111101010111100001010011100111000011001101001" + "110111001011111010001001100101000011111001101001100100100101111001000001110110111100110011011101001" + "110111101011011101100111100100110000100011101001100110110011101000011101101111001011000011011001001" + "110011101011000110100010000100011001100100001001000110110011100111001101111010101111000011011001101" + "111011101011010111111011110111110100010011001001000010101000011111001101001011110010000011011011101" + "111001101011110001011110100110111011001111001011000010100110000100011101100111010000111011011011001" + "111101101011100110000100110110001101000100001011100010100011001100100001100111001110011011011010001" + "111100101010111111010110000101111110101100001011100110101111110101100001011111101011000011010010001" + "111000101011000111110010010110001111100100101011100100110001111100100101100011111001001011010110001" + "110000101010000110001100100100001100011001001011101100100001100011001001000011000110010011010111001" + "110001101010111111010110000101111110101100001001101100111110110010010001101111101001111011010111101" + "110001001011111101011100110111100010111100101000101100100011011011110001010010000011110011010011101" + "111001001010000100001100110110011100011010001000101000110111101111001101100001001100111011010011001" + "111101001010111101000011110111100011001101001001101000110100001110000101101111110100111011010001001" + "111101011010111100000110110100110001100111101011101000101100010000011101000001111011011011010001101" + "111101010011001100001010000100010001000000101011001000100001100110100001110111001000100011010000101" + "111001010011100101100100000111000110111000101011001100111110010010001101110001011101100011011000101" + }, + /* 68*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 4, "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ", 0, 26, 99, 1, "4 columns x 26 rows, variant 31", + "110010001010000110001100100111101010111100001000011010101001110011100001101000001011000011110100101" + "111010001010100001111100110100101111001000001000111010111011011110011001101100111100100011110101101" + "111011001010011000010001110110011101000011101000110010110111100101100001000001010111100011110101001" + "110011001010001100110010000110011100111001101000100010111101010111100001010011100111000011100101001" + "110111001011111010001001100101000011111001101001100010100101111001000001110110111100110011101101001" + "110111101011011101100111100100110000100011101001110010110011101000011101101111001011000011101001001" + "110011101011000110100010000100011001100100001001111010110011100111001101111010101111000011101001101" + "111011101011010111111011110111110100010011001011111010101000011111001101001011110010000011101011101" + "111001101011110001011110100110111011001111001011110010100110000100011101100111010000111011101011001" + "111101101011100110000100110110001101000100001011110110100011001100100001100111001110011011101010001" + "111100101011111101010111000110101111110111101001110110111110100010011001010000111110011011001010001" + "111000101010110011100111110111100010111101001001110100110111011001111001001100001000111011001011001" + "110000101010011001111001110111001100001001101001100100110001101000100001000110011001000011001011101" + "110001101011100011001110100111111010101110001001100110110101111110111101111101000100110011001001101" + "110001001010110110011110000101100111001111101001000110111100010111101001101110110011110011001101101" + "111001001011110111010110000100110011110011101001000010111001100001001101100011010001000011101101101" + "111101001011000010111101100111000110011101001011000010101111110101100001011111101011000011100101101" + "111101011011000111110010010110001111100100101011100010110001111100100101100011111001001011000101101" + "111101010011000111011000010101100001110011001011100110101100111011000001000010010000100011000101001" + "111001010011100100111000110110000100011100101011100100111100101010000001001111100100111011001101001" + "111011010010110100011100000101101000000111001011101100100000110010011101100111110001010011011101001" + "111010010010010000110000110110000100010110001001101100100001000110011001010011101110000011011001001" + "111010011011110001100110100110001000011100101000101100110000010111010001111101100110011011011001101" + "111010111010011111001100100100010100001111001000101000100111100000101001001111100111011011011011101" + "111010110011000110000100100100100001001000001001101000100000100011001101000011001100001011011011001" + "111010100011110100010010000111000001101110101011101000111001001110011001101111101001111011011010001" + }, + /* 69*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 4, "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ", 0, 32, 99, 1, "4 columns x 32 rows, variant 32", + "111011010011000111110010010111010101111110001011101100101001100111110001010000010001111011011101001" + "111010010011110110100001110110010001001100001001101100110010000110111001110001011001111011011001001" + "111010011011100100000110100100110101111110001000101100100110010111111001111101110011001011011001101" + "111010111011011111010100000110111110001000101000101000111010101111110001010011001111100011011011101" + "111010110011010000010110000111101101000011101001101000110010001001100001100100001101110011011011001" + "111010100011011001111001000111001000001101001011101000100110101111110001001100101111110011011010001" + "110010100010000010101111000110111110101000001011001000110111110001000101110101011111100011010010001" + "110010110010100111001110000110100000101100001011001100111101101000011101100100010011000011010110001" + "110010111011101101111001100110110011110010001011000100111001000001101001001101011111100011010111001" + "110010011011011110010110000100000101011110001011000110110111110101000001101111100010001011010111101" + "110011011011110101011110000101001110011100001010000110110100000101100001111011010000111011010011101" + "111011011010010111100100000111011011110011001010001110110110011110010001110010000011010011010011001" + "111001011011001110100001110110111100101100001010001100100000101011110001101111101010000011010001001" + "110001011011001110011100110111101010111100001010011100101001110011100001101000001011000011010001101" + "110001010010100001111100110100101111001000001010011000111011011110011001101100111100100011010000101" + "110011010010011000010001110110011101000011101010111000110111100101100001000001010111100011011000101" + "110111010010001100110010000110011100111001101010110000111101010111100001010011100111000011001000101" + "110110010011111010001001100101000011111001101010010000100101111001000001110110111100110011101000101" + "110110011011011101100111100100110000100011101011010000110011101000011101101111001011000011101100101" + "110110111011000110100010000100011001100100001001010000110011100111001101000011000110010011001100101" + "110110110010111111010110000101111110101100001001011000101111110101100001011111101011000011011100101" + "110110100011000111110010010110001111100100101001011100110001111100100101100011111001001011011110101" + "110100100010000110001100100100001100011001001011011100110111100111000101100001100010100011001110101" + "110101100011111010000101100111001000001101001011011110111100011011010001111101010001100011101110101" + "110101110010000001110010110101110100001100001011001110101001001111000001111110101100100011100110101" + "110101111011000010110011100101101111100111101001001110110011000100001001001101110110000011110110101" + "110100111011110100011011000100101111100110001001101110100100111100001001111000100100100011110010101" + "110100110011100111101001110111100101111101101000101110100000100100111101111110101100010011100010101" + "110100010010011000011010000100001100011001001000100110100110000110100001101100100100000011000010101" + "110100011010110111111000110111110000101011001000110110111010001100000101111000110110001011000110101" + "110100001010110000100001110101110000011011101000010110101110000010110001101111110011010011000100101" + "110110001010010000001001000110011101100001001000010010111110010101111101110001000100111011100100101" + }, + /* 70*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 4, "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ", 0, 38, 99, 1, "4 columns x 38 rows, variant 33", + "110001001011000111110010010111010101111110001000101100101001100111110001010000010001111011010011101" + "111001001011110110100001110110010001001100001000101000110010000110111001110001011001111011010011001" + "111101001011100100000110100100110101111110001001101000100110010111111001111101110011001011010001001" + "111101011011011111010100000110111110001000101011101000111010101111110001010011001111100011010001101" + "111101010011010000010110000111101101000011101011001000110010001001100001100100001101110011010000101" + "111001010011011001111001000111001000001101001011001100100110101111110001001100101111110011011000101" + "111011010010000010101111000110111110101000001011000100110111110001000101110101011111100011001000101" + "111010010010100111001110000110100000101100001011000110111101101000011101100100010011000011101000101" + "111010011011101101111001100110110011110010001010000110111001000001101001001101011111100011101100101" + "111010111011011110010110000100000101011110001010001110110111110101000001101111100010001011001100101" + "111010110011110101011110000101001110011100001010001100110100000101100001111011010000111011011100101" + "111010100010010111100100000111011011110011001010011100110110011110010001110010000011010011011110101" + "110010100011001110100001110110111100101100001010011000100000101011110001101111101010000011001110101" + "110010110011001110011100110111101010111100001010111000101001110011100001101000001011000011101110101" + "110010111010100001111100110100101111001000001010110000111011011110011001101100111100100011100110101" + "110010011010011000010001110110011101000011101010010000110111100101100001000001010111100011110110101" + "110011011010001100110010000110011100111001101011010000111101010111100001010011100111000011110010101" + "111011011011111010001001100101000011111001101001010000100101111001000001110110111100110011100010101" + "111001011011011101100111100100110000100011101001011000110011101000011101101111001011000011000010101" + "110001011011000110100010000100011001100100001001011100110011100111001101111010101111000011000110101" + "110001010011010111111011110111110100010011001011011100101000011111001101001011110010000011000100101" + "110011010011110001011110100110111011001111001011011110100110000100011101100111010000111011100100101" + "110111010011100110000100110110001101000100001011001110100011001100100001100111001110011011110100101" + "110110010010111111010110000101111110101100001001001110101111110101100001011111101011000011110101101" + "110110011011000111110010010110001111100100101001101110110001111100100101100011111001001011110101001" + "110110111010000110001100100100001100011001001000101110100001100011001001000011000110010011100101001" + "110110110010111111010110000101111110101100001000100110101111110101100001011111101011000011101101001" + "110110100011011111101101000100001100101110001000110110110110010111100001001111011000110011101001001" + "110100100011100011101000100110000010001001101000010110111101111010000101000001000011011011101001101" + "110101100011100010001110110110110001111000101000010010101111101000011101001000011110010011101011101" + "110101110011010100001111100101111101110011001000011010101110000010110001011000100000111011101011001" + "110101111010000100010100000110001101100001101000111010111101110100001101011101111001100011101010001" + "110100111011101001110000110100100111101000001000110010111111001010111001110100000011010011001010001" + "110100110010001111010000100111111010011000101000100010101001000011110001011110010001000011001011001" + "110100010011110111101001000110011110111000101001100010110011001010000001101110110000100011001011101" + "110100011011001011110000110100110001111100101001110010101110011011111101001011110100000011001001101" + "110100001011001111001011000110011111010001001001111010100100101111000001011100000100011011001101101" + "110110001011011101111001110111101101100111101011111010110100011001110001100110100001000011101101101" + }, + /* 71*/ { BARCODE_MICROPDF417, -1, UNICODE_MODE, -1, 4, "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ", 0, 44, 99, 1, "4 columns x 44 rows, variant 34", + "110010001010000110001100100111101010111100001011000010101001110011100001101000001011000011010001001" + "111010001010100001111100110100101111001000001011100010111011011110011001101100111100100011010001101" + "111011001010011000010001110110011101000011101011100110110111100101100001000001010111100011010000101" + "110011001010001100110010000110011100111001101011100100111101010111100001010011100111000011011000101" + "110111001011111010001001100101000011111001101011101100100101111001000001110110111100110011001000101" + "110111101011011101100111100100110000100011101001101100110011101000011101101111001011000011101000101" + "110011101011000110100010000100011001100100001000101100110011100111001101111010101111000011101100101" + "111011101011010111111011110111110100010011001000101000101000011111001101001011110010000011001100101" + "111001101011110001011110100110111011001111001001101000100110000100011101100111010000111011011100101" + "111101101011100110000100110110001101000100001011101000100011001100100001100111001110011011011110101" + "111100101011111101010111000110101111110111101011001000111110100010011001010000111110011011001110101" + "111000101010110011100111110111100010111101001011001100110111011001111001001100001000111011101110101" + "110000101010011001111001110111001100001001101011000100110001101000100001000110011001000011100110101" + "110001101011100011001110100111111010101110001011000110110101111110111101111101000100110011110110101" + "110001001010110110011110000101100111001111101010000110111100010111101001101110110011110011110010101" + "111001001011110111010110000100110011110011101010001110111001100001001101100011010001000011100010101" + "111101001011000010111101100111000110011101001010001100111111010101110001101011111101111011000010101" + "111101011010100000100011110101101100111100001010011100101100111001111101111000101111010011000110101" + "111101010011100010110011110111101110101100001010011000100110011110011101110011000010011011000100101" + "111001010011111011100110010110000101111011001010111000111000110011101001111110101011100011100100101" + "111011010010100110011111000101000001000111101010110000101101100111100001011001110011111011110100101" + "111010010011001000011011100111000101100111101010010000111101110101100001001100111100111011110101101" + "111010011010011001011111100111110111001100101011010000110000101111011001110001100111010011110101001" + "111010111011101010111111000101001100111110001001010000101000001000111101011011001111000011100101001" + "111010110011001000100110000110010000110111001001011000111000101100111101111011101011000011101101001" + "111010100010011010111111000100110010111111001001011100111110111001100101100001011110110011101001001" + "110010100011011111000100010111010101111110001011011100101001100111110001010000010001111011101001101" + "110010110011110110100001110110010001001100001011011110110010000110111001110001011001111011101011101" + "110010111011100100000110100100110101111110001011001110100110010111111001111101110011001011101011001" + "110010011011011111010100000110111110001000101001001110110001111100100101100011111001001011101010001" + "110011011010000110001100100100001100011001001001101110100001100011001001000011000110010011001010001" + "111011011010111111010110000101111110101100001000101110111000100001101001111011110111101011001011001" + "111001011010101100011111000101111000010010001000100110101000100011110001101110110011110011001011101" + "110001011010001011000110000111001000110111101000110110111101010111100001011000011100110011001001101" + "110001010011001001110100000111100010100000101000010110111100111011101001111001010000001011001101101" + "110011010010011110110001100100011101101110001000010010100101000001111001111010111110110011101101101" + "110111010011100011001011000110000110110011001000011010101111001111010001100001001100111011100101101" + "110110010011110001000110110111101001000010001000111010110001001110100001011111010000111011000101101" + "110110011010001101001110000101110000010001101000110010100111000110011101000011010000111011000101001" + "110110111010000010100010000110001110110000101000100010110110110110000001000011000110100011001101001" + "110110110011110001100110010111101001110111001001100010111000100110100001001110100111110011011101001" + "110110100011000101101111110100100001101111101001110010110000011101011101001011011111000011011001001" + "110100100011100011101100110111010111001111101001111010100001000110110001110100110111100011011001101" + "110101100011001000011101000111110100101100001011111010110101111101110001101101111010000011011011101" + }, }; int data_size = ARRAY_SIZE(data); int i, length, ret; diff --git a/backend/tests/test_postal.c b/backend/tests/test_postal.c index 5eab3c77..92dfd49f 100644 --- a/backend/tests/test_postal.c +++ b/backend/tests/test_postal.c @@ -167,6 +167,8 @@ static void test_japanpost(int index, int debug) { /* 0*/ { "123", 0, 0, 8, 3, 133, "Check 3" }, /* 1*/ { "123456-AB", 0, 0, 8, 3, 133, "Check 10" }, /* 2*/ { "123456", 0, 0, 8, 3, 133, "Check 11" }, + /* 3*/ { "999980-KZ", 0, 0, 8, 3, 133, "Check 18" }, + /* 4*/ { "987654-TU", 0, 0, 8, 3, 133, "Check 0" }, }; int data_size = ARRAY_SIZE(data); int i, length, ret; @@ -205,50 +207,57 @@ static void test_input(int index, int debug) { struct item { int symbology; + int option_2; + float height; char *data; int ret; int expected_rows; int expected_width; + float expected_height; }; // s/\/\*[ 0-9]*\*\//\=printf("\/*%3d*\/", line(".") - line("'<")) struct item data[] = { - /* 0*/ { BARCODE_FLAT, "1234567890", 0, 1, 90 }, - /* 1*/ { BARCODE_FLAT, "A", ZINT_ERROR_INVALID_DATA, -1, -1 }, - /* 2*/ { BARCODE_POSTNET, "12345", 0, 2, 63 }, - /* 3*/ { BARCODE_POSTNET, "123457689", 0, 2, 103 }, - /* 4*/ { BARCODE_POSTNET, "12345768901", 0, 2, 123 }, - /* 5*/ { BARCODE_POSTNET, "0", ZINT_WARN_NONCOMPLIANT, 2, 23 }, - /* 6*/ { BARCODE_POSTNET, "1234", ZINT_WARN_NONCOMPLIANT, 2, 53 }, - /* 7*/ { BARCODE_POSTNET, "123456", ZINT_WARN_NONCOMPLIANT, 2, 73 }, - /* 8*/ { BARCODE_POSTNET, "123456789012", ZINT_WARN_NONCOMPLIANT, 2, 133 }, - /* 9*/ { BARCODE_POSTNET, "1234A", ZINT_ERROR_INVALID_DATA, -1, -1 }, - /* 10*/ { BARCODE_FIM, "a", 0, 1, 17 }, - /* 11*/ { BARCODE_FIM, "b", 0, 1, 17 }, - /* 12*/ { BARCODE_FIM, "c", 0, 1, 17 }, - /* 13*/ { BARCODE_FIM, "d", 0, 1, 17 }, - /* 14*/ { BARCODE_FIM, "ad", ZINT_ERROR_TOO_LONG, -1, -1 }, - /* 15*/ { BARCODE_FIM, "e", ZINT_ERROR_INVALID_DATA, -1, -1 }, - /* 16*/ { BARCODE_RM4SCC, "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ", 0, 3, 299 }, - /* 17*/ { BARCODE_RM4SCC, "a", 0, 3, 19 }, // Converts to upper - /* 18*/ { BARCODE_RM4SCC, ",", ZINT_ERROR_INVALID_DATA, -1, -1 }, - /* 19*/ { BARCODE_JAPANPOST, "1234567890-ABCDEFGH", 0, 3, 133 }, - /* 20*/ { BARCODE_JAPANPOST, "a", 0, 3, 133 }, // Converts to upper - /* 21*/ { BARCODE_JAPANPOST, ",", ZINT_ERROR_INVALID_DATA, -1, -1 }, - /* 22*/ { BARCODE_KOREAPOST, "123456", 0, 1, 167 }, - /* 23*/ { BARCODE_KOREAPOST, "A", ZINT_ERROR_INVALID_DATA, -1, -1 }, - /* 24*/ { BARCODE_PLANET, "12345678901", 0, 2, 123 }, - /* 25*/ { BARCODE_PLANET, "1234567890123", 0, 2, 143 }, - /* 26*/ { BARCODE_PLANET, "0", ZINT_WARN_NONCOMPLIANT, 2, 23 }, - /* 27*/ { BARCODE_PLANET, "1234567890", ZINT_WARN_NONCOMPLIANT, 2, 113 }, - /* 28*/ { BARCODE_PLANET, "123456789012", ZINT_WARN_NONCOMPLIANT, 2, 133 }, - /* 29*/ { BARCODE_PLANET, "12345678901234", ZINT_WARN_NONCOMPLIANT, 2, 153 }, - /* 30*/ { BARCODE_PLANET, "1234567890A", ZINT_ERROR_INVALID_DATA, -1, -1 }, - /* 31*/ { BARCODE_KIX, "0123456789ABCDEFGH", 0, 3, 143 }, - /* 32*/ { BARCODE_KIX, "a", 0, 3, 7 }, // Converts to upper - /* 33*/ { BARCODE_KIX, ",", ZINT_ERROR_INVALID_DATA, -1, -1 }, - /* 34*/ { BARCODE_DAFT, "DAFT", 0, 3, 7 }, - /* 35*/ { BARCODE_DAFT, "a", 0, 3, 1 }, // Converts to upper - /* 36*/ { BARCODE_DAFT, "B", ZINT_ERROR_INVALID_DATA, -1, -1 }, + /* 0*/ { BARCODE_FLAT, -1, 0, "1234567890", 0, 1, 90, 50 }, + /* 1*/ { BARCODE_FLAT, -1, 0, "A", ZINT_ERROR_INVALID_DATA, -1, -1, -1 }, + /* 2*/ { BARCODE_POSTNET, -1, 0, "12345", 0, 2, 63, 12 }, + /* 3*/ { BARCODE_POSTNET, -1, 0, "123457689", 0, 2, 103, 12 }, + /* 4*/ { BARCODE_POSTNET, -1, 0, "12345768901", 0, 2, 123, 12 }, + /* 5*/ { BARCODE_POSTNET, -1, 0, "0", ZINT_WARN_NONCOMPLIANT, 2, 23, 12 }, + /* 6*/ { BARCODE_POSTNET, -1, 0, "1234", ZINT_WARN_NONCOMPLIANT, 2, 53, 12 }, + /* 7*/ { BARCODE_POSTNET, -1, 0, "123456", ZINT_WARN_NONCOMPLIANT, 2, 73, 12 }, + /* 8*/ { BARCODE_POSTNET, -1, 0, "123456789012", ZINT_WARN_NONCOMPLIANT, 2, 133, 12 }, + /* 9*/ { BARCODE_POSTNET, -1, 0, "1234A", ZINT_ERROR_INVALID_DATA, -1, -1, -1 }, + /* 10*/ { BARCODE_POSTNET, -1, 0.9, "12345", 0, 2, 63, 1 }, + /* 11*/ { BARCODE_FIM, -1, 0, "a", 0, 1, 17, 50 }, + /* 12*/ { BARCODE_FIM, -1, 0, "b", 0, 1, 17, 50 }, + /* 13*/ { BARCODE_FIM, -1, 0, "c", 0, 1, 17, 50 }, + /* 14*/ { BARCODE_FIM, -1, 0, "d", 0, 1, 17, 50 }, + /* 15*/ { BARCODE_FIM, -1, 0, "ad", ZINT_ERROR_TOO_LONG, -1, -1, -1 }, + /* 16*/ { BARCODE_FIM, -1, 0, "e", ZINT_ERROR_INVALID_DATA, -1, -1, -1 }, + /* 17*/ { BARCODE_RM4SCC, -1, 0, "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ", 0, 3, 299, 8 }, + /* 18*/ { BARCODE_RM4SCC, -1, 0, "a", 0, 3, 19, 8 }, // Converts to upper + /* 19*/ { BARCODE_RM4SCC, -1, 0, ",", ZINT_ERROR_INVALID_DATA, -1, -1, -1 }, + /* 20*/ { BARCODE_JAPANPOST, -1, 0, "1234567890-ABCDEFGH", 0, 3, 133, 8 }, + /* 21*/ { BARCODE_JAPANPOST, -1, 0, "a", 0, 3, 133, 8 }, // Converts to upper + /* 22*/ { BARCODE_JAPANPOST, -1, 0, ",", ZINT_ERROR_INVALID_DATA, -1, -1, -1 }, + /* 23*/ { BARCODE_KOREAPOST, -1, 0, "123456", 0, 1, 167, 50 }, + /* 24*/ { BARCODE_KOREAPOST, -1, 0, "A", ZINT_ERROR_INVALID_DATA, -1, -1, -1 }, + /* 25*/ { BARCODE_PLANET, -1, 0, "12345678901", 0, 2, 123, 12 }, + /* 26*/ { BARCODE_PLANET, -1, 0, "1234567890123", 0, 2, 143, 12 }, + /* 27*/ { BARCODE_PLANET, -1, 0, "0", ZINT_WARN_NONCOMPLIANT, 2, 23, 12 }, + /* 28*/ { BARCODE_PLANET, -1, 0, "1234567890", ZINT_WARN_NONCOMPLIANT, 2, 113, 12 }, + /* 29*/ { BARCODE_PLANET, -1, 0, "123456789012", ZINT_WARN_NONCOMPLIANT, 2, 133, 12 }, + /* 30*/ { BARCODE_PLANET, -1, 0, "12345678901234", ZINT_WARN_NONCOMPLIANT, 2, 153, 12 }, + /* 31*/ { BARCODE_PLANET, -1, 0, "1234567890A", ZINT_ERROR_INVALID_DATA, -1, -1, -1 }, + /* 32*/ { BARCODE_KIX, -1, 0, "0123456789ABCDEFGH", 0, 3, 143, 8 }, + /* 33*/ { BARCODE_KIX, -1, 0, "a", 0, 3, 7, 8 }, // Converts to upper + /* 34*/ { BARCODE_KIX, -1, 0, ",", ZINT_ERROR_INVALID_DATA, -1, -1, -1 }, + /* 35*/ { BARCODE_DAFT, -1, 0, "DAFT", 0, 3, 7, 8 }, + /* 36*/ { BARCODE_DAFT, -1, 0, "a", 0, 3, 1, 8 }, // Converts to upper + /* 37*/ { BARCODE_DAFT, -1, 0, "B", ZINT_ERROR_INVALID_DATA, -1, -1, -1 }, + /* 38*/ { BARCODE_DAFT, -1, 1.9, "DAFT", 0, 3, 7, 2 }, + /* 39*/ { BARCODE_DAFT, 500, 0.9, "DAFT", 0, 3, 7, 2 }, // 50% ratio + /* 40*/ { BARCODE_DAFT, 500, 0.4, "DAFT", 0, 3, 7, 8 }, // 50% ratio }; int data_size = ARRAY_SIZE(data); int i, length, ret; @@ -263,7 +272,10 @@ static void test_input(int index, int debug) { symbol = ZBarcode_Create(); assert_nonnull(symbol, "Symbol not created\n"); - length = testUtilSetSymbol(symbol, data[i].symbology, -1 /*input_mode*/, -1 /*eci*/, -1 /*option_1*/, -1, -1, -1 /*output_options*/, data[i].data, -1, debug); + length = testUtilSetSymbol(symbol, data[i].symbology, -1 /*input_mode*/, -1 /*eci*/, -1 /*option_1*/, data[i].option_2, -1, -1 /*output_options*/, data[i].data, -1, debug); + if (data[i].height) { + symbol->height = data[i].height; + } ret = ZBarcode_Encode(symbol, (unsigned char *) data[i].data, length); assert_equal(ret, data[i].ret, "i:%d ZBarcode_Encode ret %d != %d (%s)\n", i, ret, data[i].ret, symbol->errtxt); @@ -271,6 +283,7 @@ static void test_input(int index, int debug) { if (ret < ZINT_ERROR) { assert_equal(symbol->rows, data[i].expected_rows, "i:%d symbol->rows %d != %d\n", i, symbol->rows, data[i].expected_rows); assert_equal(symbol->width, data[i].expected_width, "i:%d symbol->width %d != %d\n", i, symbol->width, data[i].expected_width); + assert_equal(symbol->height, data[i].expected_height, "i:%d symbol->height %g != %g\n", i, symbol->height, data[i].expected_height); } ZBarcode_Delete(symbol); @@ -334,39 +347,42 @@ static void test_encode(int index, int generate, int debug) { /* 9*/ { BARCODE_KOREAPOST, "010230", 0, 1, 167, "Verified manually against tec-it", "10001000100000000000100010000000000010001000100000001000000010001000100010001000100000000000100000000001000100010001000100010001000000000001000000010001000000010001000" }, - /* 10*/ { BARCODE_PLANET, "4012345235636", 0, 2, 143, "USPS Publication 197 (2004) Exhibit 4; verified manually against tec-it", + /* 10*/ { BARCODE_KOREAPOST, "923457", 0, 1, 168, "Verified manually against tec-it", + "000010001000100000001000100000001000000010001000000010001000000010001000100000000000100010001000000010000000100010001000100010000000100000001000100010001000000000001000" + }, + /* 11*/ { BARCODE_PLANET, "4012345235636", 0, 2, 143, "USPS Publication 197 (2004) Exhibit 4; verified manually against tec-it", "10100010100000001010101010100000101000100010100000101000101000100010001010100010001010000010100010001010000010101010000010100000101010000010101" "10101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101" }, - /* 11*/ { BARCODE_PLANET, "40123452356", 0, 2, 123, "Verified manually against tec-it", + /* 12*/ { BARCODE_PLANET, "40123452356", 0, 2, 123, "Verified manually against tec-it", "101000101000000010101010101000001010001000101000001010001010001000100010101000100010100000101000100010100000101010001000101" "101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101" }, - /* 12*/ { BARCODE_PLANET, "5020140235635", 0, 2, 143, "USPS Publication 197 (2004) Exhibit 6; verified manually against tec-it", + /* 13*/ { BARCODE_PLANET, "5020140235635", 0, 2, 143, "USPS Publication 197 (2004) Exhibit 6; verified manually against tec-it", "10100010001000001010101010001000000010101010101000001000101000000010101010100010001010000010100010001010000010101010000010100010001010001010001" "10101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101" }, - /* 13*/ { BARCODE_KIX, "2500GG30250", 0, 3, 87, "PostNL Handleiding KIX code Section 2.1 Example 1", + /* 14*/ { BARCODE_KIX, "2500GG30250", 0, 3, 87, "PostNL Handleiding KIX code Section 2.1 Example 1", "000010100000101000001010000010100010100000101000000010100000101000001010000010100000101" "101010101010101010101010101010101010101010101010101010101010101010101010101010101010101" "001010001010000000001010000010101000100010001000100000100000101000101000101000000000101" }, - /* 14*/ { BARCODE_KIX, "2130VA80430", 0, 3, 87, "PostNL Handleiding KIX code Section 2.1 Example 2", + /* 15*/ { BARCODE_KIX, "2130VA80430", 0, 3, 87, "PostNL Handleiding KIX code Section 2.1 Example 2", "000010100000101000001010000010101010000000100010001000100000101000001010000010100000101" "101010101010101010101010101010101010101010101010101010101010101010101010101010101010101" "001010000010001010000010000010100010001010001000001010000000101010001000100000100000101" }, - /* 15*/ { BARCODE_KIX, "1231GF156X2", 0, 3, 87, "PostNL Handleiding KIX code Section 2.1 Example 3", + /* 16*/ { BARCODE_KIX, "1231GF156X2", 0, 3, 87, "PostNL Handleiding KIX code Section 2.1 Example 3", "000010100000101000001010000010100010100000101000000010100000101000100010101000000000101" "101010101010101010101010101010101010101010101010101010101010101010101010101010101010101" "001000100010100010000010001000101000100010000010001000101010000000001010100000100010100" }, - /* 16*/ { BARCODE_KIX, "1231FZ13Xhs", 0, 3, 87, "PostNL Handleiding KIX code Section 2.1 Example 4", + /* 17*/ { BARCODE_KIX, "1231FZ13Xhs", 0, 3, 87, "PostNL Handleiding KIX code Section 2.1 Example 4", "000010100000101000001010000010100010100010100000000010100000101010100000001010001000100" "101010101010101010101010101010101010101010101010101010101010101010101010101010101010101" "001000100010100010000010001000101000001010100000001000101000001010000010101000001000100" }, - /* 17*/ { BARCODE_DAFT, "DAFTTFADFATDTATFT", 0, 3, 33, "Verified manually against tec-it", + /* 18*/ { BARCODE_DAFT, "DAFTTFADFATDTATFT", 0, 3, 33, "Verified manually against tec-it", "001010000010100010100000001000100" "101010101010101010101010101010101" "100010000010001010000010000000100" diff --git a/backend/tests/test_qr.c b/backend/tests/test_qr.c index 63656abb..91cdfeb8 100644 --- a/backend/tests/test_qr.c +++ b/backend/tests/test_qr.c @@ -269,6 +269,7 @@ static void test_qr_input(int index, int generate, int debug) { /*123*/ { UNICODE_MODE, 170, -1, "?", 0, 170, "78 0A A4 01 3F 00 EC 11 EC", "ECI-170 B1 (ASCII invariant)" }, /*124*/ { DATA_MODE, 899, -1, "\200", 0, 899, "78 38 34 01 80 00 EC 11 EC", "ECI-899 B1 (8-bit binary)" }, /*125*/ { UNICODE_MODE, 900, -1, "é", 0, 900, "78 38 44 02 C3 A9 00 EC 11", "ECI-900 B2 (no conversion)" }, + /*126*/ { UNICODE_MODE, 16384, -1, "é", 0, 16384, "7C 04 00 04 02 C3 A9 00 EC", "ECI-16384 B2 (no conversion)" }, }; int data_size = ARRAY_SIZE(data); int i, length, ret; @@ -333,6 +334,7 @@ static void test_qr_gs1(int index, int generate, int debug) { /* 9*/ { GS1_MODE, "[91]%%%[20]12", 0, "52 06 99 6D A9 B5 36 A6 B0 00 21 00 EC", "A10(13)" }, /* 10*/ { GS1_MODE, "[91]A%%%%1234567890123AA%", 0, "52 05 99 63 D1 B5 36 A6 D4 98 40 D1 ED C8 C5 40 C3 20 21 CC DA 80", "A7(11) N13 A3(4)" }, /* 11*/ { GS1_MODE, "[91]%23%%6789%%%34567%%%%234%%%%%", 0, "(34) 52 17 19 6D A8 17 76 A6 D4 22 A5 C7 6A 6D 4D A8 22 C7 39 61 DA 9B 53 6A 6B 01 17 B5", "A31(46)" }, + /* 12*/ { GS1_MODE, "[91]ABCDEFGHI[92]ABCDEF", 0, "52 0A 19 63 9A 8A 54 2A E1 6A 06 5C E6 A2 95 0A", "A20(23)" }, }; int data_size = ARRAY_SIZE(data); int i, length, ret; @@ -1450,6 +1452,7 @@ static void test_microqr_options(int index, int debug) { /* 46*/ { "ABCDEFGHIJABCDEFGH", 2, 4, 0, 0, 17, -1 }, // 18 alphanumerics, ECC 2, version 4 /* 47*/ { "ABCDEFGHIJABCDEFGH", 3, 4, ZINT_ERROR_TOO_LONG, -1, 0, -1 }, /* 48*/ { "ABCDEFGHIJABC", 3, 4, 0, 0, 17, -1 }, // 13 alphanumerics, ECC 3 (Q), version 4 + /* 49*/ { "123456789012345678901234567890123456", -1, -1, ZINT_ERROR_TOO_LONG, -1, 0, -1 }, // 35 absolute max }; int data_size = ARRAY_SIZE(data); int i, length, ret; @@ -2139,6 +2142,8 @@ static void test_upnqr_input(int index, int generate, int debug) { /* 0*/ { UNICODE_MODE, "ĄŔ", 0, "(415) 70 44 00 02 A1 C0 00 EC 11 EC 11 EC 11 EC 11 EC 11 EC 11 EC 11 EC 11 EC 11 EC 11 EC", "ECI-4 B2 (ISO 8859-2)" }, /* 1*/ { UNICODE_MODE, "é", 0, "(415) 70 44 00 01 E9 00 EC 11 EC 11 EC 11 EC 11 EC 11 EC 11 EC 11 EC 11 EC 11 EC 11 EC 11", "ECI-4 B1 (ISO 8859-2)" }, /* 2*/ { UNICODE_MODE, "β", ZINT_ERROR_INVALID_DATA, "Error 572: Invalid character in input data for ECI 4", "β not in ISO 8859-2" }, + /* 3*/ { DATA_MODE, "\300\241", 0, "(415) 70 44 00 02 C0 A1 00 EC 11 EC 11 EC 11 EC 11 EC 11 EC 11 EC 11 EC 11 EC 11 EC 11 EC", "ŔĄ" }, + /* 4*/ { GS1_MODE, "[20]12", ZINT_ERROR_INVALID_OPTION, "Error 220: Selected symbology does not support GS1 mode", "" }, }; int data_size = ARRAY_SIZE(data); int i, length, ret; @@ -2161,7 +2166,9 @@ static void test_upnqr_input(int index, int generate, int debug) { ret = ZBarcode_Encode(symbol, (unsigned char *) data[i].data, length); assert_equal(ret, data[i].ret, "i:%d ZBarcode_Encode ret %d != %d\n", i, ret, data[i].ret); - assert_equal(symbol->eci, 4, "i:%d ZBarcode_Encode symbol->eci %d != 4\n", i, symbol->eci); + if (ret < ZINT_ERROR) { + assert_equal(symbol->eci, 4, "i:%d ZBarcode_Encode symbol->eci %d != 4\n", i, symbol->eci); + } if (generate) { printf(" /*%3d*/ { %s, \"%s\", %s, \"%s\", \"%s\" },\n", diff --git a/backend/tests/testcommon.c b/backend/tests/testcommon.c index 29726992..d232da5f 100644 --- a/backend/tests/testcommon.c +++ b/backend/tests/testcommon.c @@ -2428,8 +2428,10 @@ int testUtilBwipp(int index, const struct zint_symbol *symbol, int option_1, int } else { bwipp_row_height[r] = symbol->row_height[r] ? symbol->row_height[r] : linear_row_height; } - /*fprintf(stderr, "bwipp_row_height[%d] %d, symbol->row_height[%d] %d\n", - r, bwipp_row_height[r], r, symbol->row_height[r]);*/ + if ((symbol->debug & ZINT_DEBUG_TEST_PRINT) && !(symbol->debug & ZINT_DEBUG_TEST_LESS_NOISY)) { + fprintf(stderr, "bwipp_row_height[%d] %d, symbol->row_height[%d] %g\n", + r, bwipp_row_height[r], r, symbol->row_height[r]); + } } if ((symbol->input_mode & 0x07) == UNICODE_MODE && ZBarcode_Cap(symbology, ZINT_CAP_ECI) diff --git a/backend/tests/tools/bwipp_dump-barcode.ps.diff b/backend/tests/tools/bwipp_dump-barcode.ps.diff index 9ceeeade..0b62606b 100644 --- a/backend/tests/tools/bwipp_dump-barcode.ps.diff +++ b/backend/tests/tools/bwipp_dump-barcode.ps.diff @@ -1,6 +1,6 @@ ---- ../../../../postscriptbarcode/build/monolithic/barcode.ps 2021-03-22 15:06:47.498155878 +0000 -+++ ../tools/bwipp_dump.ps 2021-03-27 03:44:50.998203506 +0000 -@@ -26198,34 +26198,80 @@ +--- /home/mburke/code/bwipp/postscriptbarcode/build/monolithic/barcode.ps 2021-08-05 14:58:19.638816396 +0100 ++++ backend/tests/tools/bwipp_dump.ps 2021-08-05 14:59:04.030459474 +0100 +@@ -26289,34 +26289,80 @@ pop } ifelse @@ -100,7 +100,7 @@ end -@@ -26284,7 +26330,7 @@ +@@ -26375,7 +26421,7 @@ pop } ifelse @@ -109,7 +109,7 @@ % Get the result of encoding with ean8 and gs1-cc options (lintype) (ean8) put -@@ -26292,29 +26338,75 @@ +@@ -26383,29 +26429,75 @@ options (dontdraw) true put % Plot the linear part @@ -205,7 +205,7 @@ end -@@ -26373,34 +26465,80 @@ +@@ -26464,34 +26556,80 @@ pop } ifelse @@ -305,7 +305,7 @@ end -@@ -26474,34 +26612,80 @@ +@@ -26565,34 +26703,80 @@ /opt options >> def @@ -405,7 +405,7 @@ end -@@ -26560,7 +26744,7 @@ +@@ -26651,7 +26835,7 @@ pop } ifelse @@ -414,7 +414,7 @@ options (lintype) (databaromni) put options (linkage) true put -@@ -26571,7 +26755,7 @@ +@@ -26662,7 +26846,7 @@ linear options //databaromni exec dup (sbs) get /linsbs exch def dup (bhs) get 0 get 72 mul /linheight exch def @@ -423,7 +423,7 @@ % Plot the separator /sepfinder { -@@ -26602,20 +26786,66 @@ +@@ -26693,20 +26877,66 @@ sep 0 [0 0 0] putinterval sep sep length 4 sub [0 0 0 0] putinterval 18 sepfinder 64 sepfinder @@ -502,7 +502,7 @@ end -@@ -26673,7 +26903,7 @@ +@@ -26764,7 +26994,7 @@ pop } ifelse @@ -511,7 +511,7 @@ options (lintype) (databarstacked) put options (linkage) true put -@@ -26684,7 +26914,7 @@ +@@ -26775,7 +27005,7 @@ linear options //databarstacked exec dup (pixs) get 0 2 index (pixx) get getinterval /bot exch def dup (pixy) get /linheight exch def @@ -520,7 +520,7 @@ % Plot the separator /sepfinder { -@@ -26712,20 +26942,52 @@ +@@ -26803,20 +27033,52 @@ sep 0 [ 0 0 0 0 ] putinterval sep sep length 4 sub [ 0 0 0 0 ] putinterval 18 sepfinder @@ -585,7 +585,7 @@ end -@@ -26783,7 +27045,7 @@ +@@ -26874,7 +27136,7 @@ pop } ifelse @@ -594,7 +594,7 @@ options (lintype) (databarstackedomni) put options (linkage) true put -@@ -26794,7 +27056,7 @@ +@@ -26885,7 +27147,7 @@ linear options //databarstackedomni exec dup (pixs) get 0 2 index (pixx) get getinterval /bot exch def dup (pixy) get /linheight exch def @@ -603,7 +603,7 @@ % Plot the separator /sepfinder { -@@ -26822,20 +27084,52 @@ +@@ -26913,20 +27175,52 @@ sep 0 [ 0 0 0 0 ] putinterval sep sep length 4 sub [ 0 0 0 0 ] putinterval 18 sepfinder @@ -668,7 +668,7 @@ end -@@ -27008,7 +27302,7 @@ +@@ -27099,7 +27393,7 @@ pop } ifelse @@ -677,7 +677,7 @@ options (lintype) (databarlimited) put options (linkage) true put -@@ -27019,7 +27313,7 @@ +@@ -27110,7 +27404,7 @@ linear options //databarlimited exec dup (sbs) get /linsbs exch def dup (bhs) get 0 get 72 mul /linheight exch def @@ -686,7 +686,7 @@ % Plot the separator mark -@@ -27027,22 +27321,68 @@ +@@ -27118,22 +27412,68 @@ counttomark 1 sub array astore /sep exch def pop pop sep 0 [0 0 0] putinterval sep sep length 9 sub [0 0 0 0 0 0 0 0 0] putinterval % 4 + 5 right guard spaces @@ -769,7 +769,7 @@ end -@@ -27101,7 +27441,7 @@ +@@ -27192,7 +27532,7 @@ pop } ifelse @@ -778,7 +778,7 @@ options (lintype) (databarexpanded) put options (linkage) true put -@@ -27112,7 +27452,7 @@ +@@ -27203,7 +27543,7 @@ linear options //databarexpanded exec dup (sbs) get /linsbs exch def dup (bhs) get 0 get 72 mul /linheight exch def @@ -787,7 +787,7 @@ % Plot the separator /sepfinder { -@@ -27141,20 +27481,60 @@ +@@ -27232,20 +27572,60 @@ 18 98 bot length 13 sub {} for 69 98 bot length 13 sub {} for ] {sepfinder} forall @@ -860,7 +860,7 @@ end -@@ -27212,7 +27592,7 @@ +@@ -27303,7 +27683,7 @@ pop } ifelse @@ -869,7 +869,7 @@ options (lintype) (databarexpandedstacked) put options (linkage) true put -@@ -27223,7 +27603,7 @@ +@@ -27314,7 +27694,7 @@ linear options //databarexpandedstacked exec dup (pixs) get 0 2 index (pixx) get getinterval /bot exch def dup (pixy) get /linheight exch def @@ -878,7 +878,7 @@ % Plot the separator /sepfinder { -@@ -27249,21 +27629,49 @@ +@@ -27340,21 +27720,49 @@ 19 98 bot length 13 sub {} for 70 98 bot length 13 sub {} for ] {sepfinder} forall @@ -941,7 +941,7 @@ end -@@ -27322,7 +27730,7 @@ +@@ -27413,7 +27821,7 @@ pop } ifelse @@ -950,7 +950,7 @@ options (inkspread) (0) put options (dontdraw) true put -@@ -27349,35 +27757,87 @@ +@@ -27440,35 +27848,87 @@ linear << options {} forall >> //gs1-128 exec dup (sbs) get /linsbs exch def dup (bhs) get 0 get 72 mul /linheight exch def @@ -1052,7 +1052,7 @@ end -@@ -28810,3 +29270,189 @@ +@@ -28901,3 +29361,189 @@ % --END ENCODER hibcazteccode-- % --END TEMPLATE-- diff --git a/backend/tests/tools/bwipp_dump.ps.tar.xz b/backend/tests/tools/bwipp_dump.ps.tar.xz index b276afff..00132dff 100644 Binary files a/backend/tests/tools/bwipp_dump.ps.tar.xz and b/backend/tests/tools/bwipp_dump.ps.tar.xz differ diff --git a/docs/manual.txt b/docs/manual.txt index 311b527a..873ee682 100644 --- a/docs/manual.txt +++ b/docs/manual.txt @@ -397,7 +397,7 @@ This specifies a symbol height of 100 times the X-dimension of the symbol. 4.5 Adjusting whitespace ------------------------ The amount of horizontal whitespace to the left and right of the generated -barcode can be altered using the –w or --whitesp switch. For example: +barcode can be altered using the -w or --whitesp switch. For example: zint -w 10 -d "This Text" @@ -702,15 +702,15 @@ zint -b 58 --binary -d "UTF-8 data" --------------------- Data can be batch processed by reading from a text file and producing a separate barcode image for each line of text in that file. To do this use the ---batch switch. To select the input file from which to read data use the –i +--batch switch. To select the input file from which to read data use the -i option. Zint will automatically detect the end of a line of text (in either Unix or Windows formatted text files) and produce a symbol each time it finds -this. Input files should end with a line feed character – if this is not present +this. Input files should end with a line feed character - if this is not present then Zint will not encode the last line of text, and will warn you that there is a problem. By default Zint will output numbered filenames starting with 00001.png, -00002.png etc. To change this behaviour use the –o option in combination with +00002.png etc. To change this behaviour use the -o option in combination with --batch using special characters in the output file name as shown in the table below: @@ -861,7 +861,7 @@ int main() When compiling this code it will need to be linked with the libzint library using the -lzint option: -gcc -o simple simple.c –lzint +gcc -o simple simple.c -lzint 5.2 Encoding and Saving to File ------------------------------- @@ -2015,11 +2015,11 @@ standard maximum symbol size of 925 codewords which (at error correction level 0) allows a maximum data size of 1850 text characters, or 2710 digits. The width of the generated PDF417 symbol can be specified at the command line using the --cols switch followed by a number between 1 and 30, and the amount of -check digit information can be specified by using the --secure switch +error correction information can be specified by using the --secure switch followed by a number between 0 and 8 where the number of codewords used for -check information is determined by 2^(value + 1). If using the API these values -are assigned to option_2 and option_1 respectively. The default level of check -information is determined by the amount of data being encoded. This symbology +error correction is determined by 2^(value + 1). If using the API these values +are assigned to option_2 and option_1 respectively. The default level of error +correction is determined by the amount of data being encoded. This symbology uses Latin-1 character encoding by default but also supports the ECI encoding mechanism. A separate symbology ID can be used to encode Health Industry Barcode (HIBC) data which adds a leading '+' character and a modulo-49 check @@ -3072,7 +3072,7 @@ international standards: > ISO/IEC 16022:2006 Information technology - Automatic identification and data capture techniques - Data Matrix ECC200 bar code symbology specification > ISO/IEC 16023:2000 Information technology - International symbology - specification – MaxiCode + specification - MaxiCode > ISO/IEC 16388:2007 Information technology - Automatic identification and data capture techniques - Code 39 bar code symbology specification > ISO/IEC 18004:2015 Information technology - Automatic identification and data @@ -3093,6 +3093,9 @@ international standards: (rMQR) bar code symbology specification > ISO/IEC 16390:2007 Information technology - Automatic identification and data capture techniques - Interleaved 2 of 5 bar code symbology specification +> ISO/IEC 21471:2020 Information technology - Automatic identification and data + capture techniques - Extended rectangular data matrix (DMRE) bar code + symbology specification > Uniform Symbology Specification Code One (AIM Inc., 1994) > ANSI/AIM BC12-1998 - Uniform Symbology Specification Channel Code > ANSI/AIM BC6-2000 - Uniform Symbology Specification Code 49 @@ -3100,19 +3103,19 @@ international standards: > ANSI/HIBC 2.6-2016 - The Health Industry Bar Code (HIBC) Supplier Labeling Standard > AIM ISS-X-24 - Uniform Symbology Specification Codablock-F -> AIMD013 (v 1.34a) – Information technology – Automatic identification and data - capture techniques – Bar code symbology specification – DotCode (Revised - 19th Feb 2009) +> AIM TSC1705001 (v 4.0 Draft 0.15) - Information technology - Automatic + identification and data capture techniques - Bar code symbology + specification - DotCode (Revised 28th May 2019) > AIMD014 (v 1.63) - Information technology, Automatic identification and data capture techniques - Bar code symbology specification - Grid Matrix (Released 9th Dec 2008) -> AIMD/TSC15032-43 (v 0.99c) - International Technical Specification – +> AIMD/TSC15032-43 (v 0.99c) - International Technical Specification - Ultracode Symbology (Draft) (Released 4th Nov 2015) > GS1 General Specifications Release 21.0.1 (Jan 2021) -> AIM ITS/04-001 International Technical Standard – Extended Channel +> AIM ITS/04-001 International Technical Standard - Extended Channel Interpretations Part 1: Identification Schemes and Protocol (Released 24th May 2004) -> AIM ITS/04-023 International Technical Standard – Extended Channel +> AIM ITS/04-023 International Technical Standard - Extended Channel Interpretations Part 3: Register (Released 15th July 2004) diff --git a/frontend_qt/mainWindow.ui b/frontend_qt/mainWindow.ui index 201bbfc8..722982ee 100644 --- a/frontend_qt/mainWindow.ui +++ b/frontend_qt/mainWindow.ui @@ -22,7 +22,7 @@ 400 - 480 + 485 @@ -109,13 +109,13 @@ 0 - 320 + 325 16777215 - 320 + 325 diff --git a/win32/README b/win32/README index eda28bd2..ddb1743c 100644 --- a/win32/README +++ b/win32/README @@ -128,7 +128,8 @@ To build lpng use -DPNG_STATIC=ON -DPNG_SHARED=OFF -B build Recent versions of Qt no longer supply a specific component for Visual Studio -2015, but you can use "MSVC 2017 32-bit" instead as it's compatible. +2015 32-bit, but you can use "MSVC 2017 32-bit" or "MSVC 2019 32-bit" instead as +they're compatible. For information on building a standalone version of Zint Studio using Visual Studio 2015, see "frontend_qt\howto_build_qzint_using_msvs2015.txt"