UPC/EAN, ITF14: quiet zones, addongap; raster/vector: sync code, use double

This commit is contained in:
gitlost
2020-07-15 19:00:12 +01:00
parent e90c273165
commit 2a19b883a5
55 changed files with 2917 additions and 1351 deletions

View File

@ -55,22 +55,22 @@ static void test_eanx_leading_zeroes(int index, int debug) {
/* 5*/ { BARCODE_EANX_CC, "123456", "[21]A12345678", 0, 8, 72 },
/* 6*/ { BARCODE_EANX_CC, "1234567", "[21]A12345678", 0, 8, 72 },
/* 7*/ { BARCODE_EANX_CC, "12345678", "[21]A12345678", 0, 7, 99 }, // EAN-13
/* 8*/ { BARCODE_EANX_CC, "1+12", "[21]A12345678", 0, 8, 101 }, // EAN-8 + EAN-2
/* 9*/ { BARCODE_EANX_CC, "12+12", "[21]A12345678", 0, 8, 101 },
/*10*/ { BARCODE_EANX_CC, "123+12", "[21]A12345678", 0, 8, 101 },
/*11*/ { BARCODE_EANX_CC, "1234+12", "[21]A12345678", 0, 8, 101 },
/*12*/ { BARCODE_EANX_CC, "12345+12", "[21]A12345678", 0, 8, 101 },
/*13*/ { BARCODE_EANX_CC, "123456+12", "[21]A12345678", 0, 8, 101 },
/*14*/ { BARCODE_EANX_CC, "1234567+12", "[21]A12345678", 0, 8, 101 },
/*15*/ { BARCODE_EANX_CC, "12345678+12", "[21]A12345678", 0, 7, 128 }, // EAN-13 + EAN-2
/*16*/ { BARCODE_EANX_CC, "1+123", "[21]A12345678", 0, 8, 128 }, // EAN-8 + EAN-5
/*17*/ { BARCODE_EANX_CC, "12+123", "[21]A12345678", 0, 8, 128 },
/*18*/ { BARCODE_EANX_CC, "123+123", "[21]A12345678", 0, 8, 128 },
/*19*/ { BARCODE_EANX_CC, "1234+123", "[21]A12345678", 0, 8, 128 },
/*20*/ { BARCODE_EANX_CC, "12345+123", "[21]A12345678", 0, 8, 128 },
/*21*/ { BARCODE_EANX_CC, "123456+123", "[21]A12345678", 0, 8, 128 },
/*22*/ { BARCODE_EANX_CC, "1234567+123", "[21]A12345678", 0, 8, 128 },
/*23*/ { BARCODE_EANX_CC, "12345678+123", "[21]A12345678", 0, 7, 155 }, // EAN-13 + EAN-5
/* 8*/ { BARCODE_EANX_CC, "1+12", "[21]A12345678", 0, 8, 99 }, // EAN-8 + EAN-2
/* 9*/ { BARCODE_EANX_CC, "12+12", "[21]A12345678", 0, 8, 99 },
/*10*/ { BARCODE_EANX_CC, "123+12", "[21]A12345678", 0, 8, 99 },
/*11*/ { BARCODE_EANX_CC, "1234+12", "[21]A12345678", 0, 8, 99 },
/*12*/ { BARCODE_EANX_CC, "12345+12", "[21]A12345678", 0, 8, 99 },
/*13*/ { BARCODE_EANX_CC, "123456+12", "[21]A12345678", 0, 8, 99 },
/*14*/ { BARCODE_EANX_CC, "1234567+12", "[21]A12345678", 0, 8, 99 },
/*15*/ { BARCODE_EANX_CC, "12345678+12", "[21]A12345678", 0, 7, 126 }, // EAN-13 + EAN-2
/*16*/ { BARCODE_EANX_CC, "1+123", "[21]A12345678", 0, 8, 126 }, // EAN-8 + EAN-5
/*17*/ { BARCODE_EANX_CC, "12+123", "[21]A12345678", 0, 8, 126 },
/*18*/ { BARCODE_EANX_CC, "123+123", "[21]A12345678", 0, 8, 126 },
/*19*/ { BARCODE_EANX_CC, "1234+123", "[21]A12345678", 0, 8, 126 },
/*20*/ { BARCODE_EANX_CC, "12345+123", "[21]A12345678", 0, 8, 126 },
/*21*/ { BARCODE_EANX_CC, "123456+123", "[21]A12345678", 0, 8, 126 },
/*22*/ { BARCODE_EANX_CC, "1234567+123", "[21]A12345678", 0, 8, 126 },
/*23*/ { BARCODE_EANX_CC, "12345678+123", "[21]A12345678", 0, 7, 153 }, // EAN-13 + EAN-5
};
int data_size = sizeof(data) / sizeof(struct item);
@ -1129,6 +1129,93 @@ static void test_examples(int index, int generate, int debug) {
"000000000101100011000010100010011001001101001100011011101001110001110100100111101011001000010010100110001100100111001010000100010111001000100111000101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
"000000011010011100111101011101100110110010110011100100010110001110001011011000010100110111101101011001110011011000110101111011101000110111011000111010110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
},
/*56*/ { BARCODE_EANX_CC, 1, "123456789012+12", "[91]123456789012345678901", 0, 8, 126, "Example of EAN-13 with 2-digit addon, CC-A 4 cols, 4 rows",
"110100100011110011010011100101110111000100001001000110101110111001000001100000100110111011101100101000000000000000000000000000"
"110101100011101011001000000110011110101111101001000010110010111101100001100100111000001011001100101000000000000000000000000000"
"110101110011101011111010000111111001101110101011000010111110101111001101001101001110000011011100101000000000000000000000000000"
"110101111010001100110000100100001011100011101011100010100011100111000101101000100011000011011110101000000000000000000000000000"
"000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000"
"001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000"
"000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000"
"000101001001101111010011101011000100001010010001010101001000111010011100101100110110110010010001010000000101100110010100100110"
},
/*57*/ { BARCODE_EANX_CC, 1, "123456789012+54321", "[91]1234567890", 0, 7, 153, "Example of EAN-13 with 5-digit addon, CC-B 4 cols, 3 rows",
"110110111011110011010011100101110111000100001001110100101110111001000001100000100110111011011000101000000000000000000000000000000000000000000000000000000"
"110110110011111101010011100111110001001001101001100100110100011100010001001011111100111011001000101000000000000000000000000000000000000000000000000000000"
"110110100010100000101111000111001111001011101001100110110011111010010001001111101101000011101000101000000000000000000000000000000000000000000000000000000"
"000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000"
"001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000"
"000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000"
"000101001001101111010011101011000100001010010001010101001000111010011100101100110110110010010001010000000101101110010101000110101000010100100110100110010"
},
/*58*/ { BARCODE_UPCA_CC, 1, "12345678901+12", "[91]123456789", 0, 7, 128, "Example of UPC-A with 2-digit addon, CC-A 4 cols, 3 rows",
"11011011101111001101001110010111011100010000100111010010111011100100000110000010011011101101100010100000000000000000000000000000"
"11011011001110011100111101011000010001110010100110010011101011001000000100101111110011101100100010100000000000000000000000000000"
"11011010001000011110010001010111101000000100100110011010001110000101100110111000100011101110100010100000000000000000000000000000"
"00010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000"
"00100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000"
"00010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000"
"00010100110010010011011110101000110110001010111101010100010010010001110100111001011001101101100101000000000101100110010100100110"
},
/*59*/ { BARCODE_UPCA_CC, 2, "12345678901+12121", "[91]1234567890123", 0, 8, 155, "Example of UPC-A with 5-digit addon, CC-B 4 cols, 4 rows",
"11010011101000111110100111011011111101011100100111011011010000111101100110010111000010001101001000100000000000000000000000000000000000000000000000000000000"
"11010011001011001001110000010111110110000010100111010011011111100110100111010011111001001101011000100000000000000000000000000000000000000000000000000000000"
"11010001001110011010000110011001000001011000100110010010011110111101000111000111010001001101011100100000000000000000000000000000000000000000000000000000000"
"11010001101100010111000001011101101110010000100110011011111000101011000111100010010100001101011110100000000000000000000000000000000000000000000000000000000"
"00010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000"
"00100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000"
"00010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000"
"00010100110010010011011110101000110110001010111101010100010010010001110100111001011001101101100101000000000101100110010100100110101100110100110110100110010"
},
/*60*/ { BARCODE_UPCE_CC, 1, "0654321+89", "[91]1", 0, 9, 82, "Example of UPC-E with 2-digit addon, CC-A 2 cols, 5 rows",
"1101100110111101110101111101010001000111100011110101001000000000000000000000000000"
"1101101110111011000010001101110010101110000011100101001000000000000000000000000000"
"1101101100110001011111011101111010000100100011101101001000000000000000000000000000"
"1101101000100111011100111101110011110101110011101001001000000000000000000000000000"
"1101001000110011001000000101110100011011110011101001101000000000000000000000000000"
"0001000000000000000000000000000000000000000000000000010000000000000000000000000000"
"0010000000000000000000000000000000000000000000000000001000000000000000000000000000"
"0001000000000000000000000000000000000000000000000000010000000000000000000000000000"
"0001010000101011000100111010111101001101100110010101010000000101101101110100101110"
},
/*61*/ { BARCODE_UPCE_CC, 2, "1876543+56789", "[91]12345", 0, 12, 109, "Example of UPC-E with 5-digit addon, CC-B 2 cols, 8 rows",
"1100100010111011111011101001000001000010001011001000101000000000000000000000000000000000000000000000000000000"
"1110100010110100001111011001100101110000100011101000101000000000000000000000000000000000000000000000000000000"
"1110110010111011001001111101000111100100001011101100101000000000000000000000000000000000000000000000000000000"
"1100110010110011101100010001010111110111110011001100101000000000000000000000000000000000000000000000000000000"
"1101110010111110010011011101001111110100110011011100101000000000000000000000000000000000000000000000000000000"
"1101111010110011100001011101001101000011100011011110101000000000000000000000000000000000000000000000000000000"
"1100111010101000100000100001011110111110110011001110101000000000000000000000000000000000000000000000000000000"
"1110111010101111001011110001011110001001111011101110101000000000000000000000000000000000000000000000000000000"
"0001000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000"
"0010000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000"
"0001000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000"
"0001010110111001000100001010110001010001101000010101010000000101101100010101011110100100010101101110100101110"
},
/*62*/ { BARCODE_EANX_CC, 1, "9876543+65", "[91]1234567", 0, 8, 99, "Example of EAN-8 with 2-digit addon, CC-A 3 cols, 4 rows",
"100100011111001101010011000111000101110011001100010111010000011101001101000000000000000000000000000"
"110111111001101001010111000110111100101100001111000100111101011101011101000000000000000000000000000"
"100001011000001101010110000101011111011111001110100100001110011101011001000000000000000000000000000"
"111100100011001101010010000110010011111011101010011111000110011101010001000000000000000000000000000"
"000010000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000"
"000100000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000"
"000010000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000"
"000010100010110110111011101101011110101010011101011100100001011100101010000000101101011110101110010"
},
/*63*/ { BARCODE_EANX_CC, 2, "9876543+74083", "[91]123456789012345678", 0, 12, 136, "Example of EAN-8 with 5-digit addon, CC-B 3 cols, 8 rows",
"1100111010111011111011101001000010110100000100001000101111101101001111011001110101000000000000000000000000000000000000000000000000000000"
"1110111010110010111000010001000010010111001011001000001110001101110100011101110101000000000000000000000000000000000000000000000000000000"
"1110011010110111111001101001000011010101000101111000001100100110111111011100110101000000000000000000000000000000000000000000000000000000"
"1111011010111011010000110001000111010110000110110011001110011010011000011110110101000000000000000000000000000000000000000000000000000000"
"1111001010111011011100100001000110010111011101111001001010011110000100011110010101000000000000000000000000000000000000000000000000000000"
"1110001010111111010110001001000100010111001011111101101001111000011011011100010101000000000000000000000000000000000000000000000000000000"
"1100001010111100100010111101001100010111001111001100101001110001110010011000010101000000000000000000000000000000000000000000000000000000"
"1100011010110011001111010001001110010111110111101110101011100111111001011000110101000000000000000000000000000000000000000000000000000000"
"0000000000000010000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000"
"0000000000000100000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000"
"0000000000000010000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000"
"0000000000000010100010110110111011101101011110101010011101011100100001011100101010000000101101110110100111010100011010101101110101000010"
},
};
int data_size = sizeof(data) / sizeof(struct item);
@ -1469,7 +1556,7 @@ static void test_ean128_cc_shift(int index, int generate, int debug) {
if (do_bwipp && testUtilCanBwipp(symbol->symbology, data[i].option_1, -1, -1, debug)) {
if (!data[i].bwipp_cmp) {
if (debug & ZINT_DEBUG_TEST_PRINT) printf("%d: %s skipped, not BWIPP compatible\n", i, testUtilBarcodeName(symbol->symbology));
if (debug & ZINT_DEBUG_TEST_PRINT) printf("%d: %s not BWIPP compatible (%s)\n", i, testUtilBarcodeName(symbol->symbology), data[i].comment);
} else {
ret = testUtilBwipp(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(data[i].symbology), ret);