mirror of
https://github.com/python-LimeReport/LimeReport.git
synced 2024-12-26 05:18:11 +03:00
2118 lines
180 KiB
C
2118 lines
180 KiB
C
|
/*
|
||
|
libzint - the open source barcode library
|
||
|
Copyright (C) 2019 - 2021 Robin Stuart <rstuart114@gmail.com>
|
||
|
|
||
|
Redistribution and use in source and binary forms, with or without
|
||
|
modification, are permitted provided that the following conditions
|
||
|
are met:
|
||
|
|
||
|
1. Redistributions of source code must retain the above copyright
|
||
|
notice, this list of conditions and the following disclaimer.
|
||
|
2. Redistributions in binary form must reproduce the above copyright
|
||
|
notice, this list of conditions and the following disclaimer in the
|
||
|
documentation and/or other materials provided with the distribution.
|
||
|
3. Neither the name of the project nor the names of its contributors
|
||
|
may be used to endorse or promote products derived from this software
|
||
|
without specific prior written permission.
|
||
|
|
||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||
|
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||
|
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||
|
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
|
||
|
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||
|
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||
|
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||
|
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||
|
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||
|
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||
|
SUCH DAMAGE.
|
||
|
*/
|
||
|
/* vim: set ts=4 sw=4 et : */
|
||
|
|
||
|
#include "testcommon.h"
|
||
|
|
||
|
/*
|
||
|
* Check that GS1_128-based and DBAR_EXP-based symbologies reduce GS1 data
|
||
|
*/
|
||
|
static void test_gs1_reduce(int index, int generate, int debug) {
|
||
|
|
||
|
struct item {
|
||
|
int symbology;
|
||
|
int input_mode;
|
||
|
char *data;
|
||
|
char *composite;
|
||
|
int ret;
|
||
|
|
||
|
char *comment;
|
||
|
char *expected;
|
||
|
};
|
||
|
struct item data[] = {
|
||
|
/* 0*/ { BARCODE_GS1_128, -1, "12345678901234", "", ZINT_ERROR_INVALID_DATA, "GS1 data required", "" },
|
||
|
/* 1*/ { BARCODE_GS1_128, -1, "[01]12345678901231", "", 0, "Input mode ignored; verified manually against tec-it",
|
||
|
"11010011100111101011101100110110010110011100100010110001110001011011000010100110111101101011001110011011000110100001100101100011101011"
|
||
|
},
|
||
|
/* 2*/ { BARCODE_GS1_128, GS1_MODE, "[01]12345678901231", "", 0, "Input mode ignored",
|
||
|
"11010011100111101011101100110110010110011100100010110001110001011011000010100110111101101011001110011011000110100001100101100011101011"
|
||
|
},
|
||
|
/* 3*/ { BARCODE_GS1_128, UNICODE_MODE, "[01]12345678901231", "", 0, "Input mode ignored",
|
||
|
"11010011100111101011101100110110010110011100100010110001110001011011000010100110111101101011001110011011000110100001100101100011101011"
|
||
|
},
|
||
|
/* 4*/ { BARCODE_GS1_128, GS1PARENS_MODE, "(01)12345678901231", "", 0, "Input mode ignored (parentheses instead of square brackets)",
|
||
|
"11010011100111101011101100110110010110011100100010110001110001011011000010100110111101101011001110011011000110100001100101100011101011"
|
||
|
},
|
||
|
/* 5*/ { BARCODE_GS1_128_CC, -1, "[01]12345678901231", "[21]1234", 0, "Input mode ignored",
|
||
|
"0000000000000000000001101101110110100001000001101001100111011000010011101001100001010001100010010011011000000110110001010000000000000000000000000"
|
||
|
"0000000000000000000001101101100111110100010011001101011100100000010011001001001111001011110011101011001000000110010001010000000000000000000000000"
|
||
|
"0000000000000000000001101101000101111100110000101001111010000001010011001101011101110011110010011110110000110111010001010000000000000000000000000"
|
||
|
"0010110001100001010001001100100110100110001101110100111000111010010011110101100100001001010011000110010011100100010100001000101001110011100010100"
|
||
|
"1101001110011110101110110011011001011001110010001011000111000101101100001010011011110110101100111001101100011011101011110111010110001100011101011"
|
||
|
},
|
||
|
/* 6*/ { BARCODE_GS1_128_CC, GS1_MODE, "[01]12345678901231", "[21]1234", 0, "Input mode ignored",
|
||
|
"0000000000000000000001101101110110100001000001101001100111011000010011101001100001010001100010010011011000000110110001010000000000000000000000000"
|
||
|
"0000000000000000000001101101100111110100010011001101011100100000010011001001001111001011110011101011001000000110010001010000000000000000000000000"
|
||
|
"0000000000000000000001101101000101111100110000101001111010000001010011001101011101110011110010011110110000110111010001010000000000000000000000000"
|
||
|
"0010110001100001010001001100100110100110001101110100111000111010010011110101100100001001010011000110010011100100010100001000101001110011100010100"
|
||
|
"1101001110011110101110110011011001011001110010001011000111000101101100001010011011110110101100111001101100011011101011110111010110001100011101011"
|
||
|
},
|
||
|
/* 7*/ { BARCODE_GS1_128_CC, UNICODE_MODE, "[01]12345678901231", "[21]1234", 0, "Input mode ignored",
|
||
|
"0000000000000000000001101101110110100001000001101001100111011000010011101001100001010001100010010011011000000110110001010000000000000000000000000"
|
||
|
"0000000000000000000001101101100111110100010011001101011100100000010011001001001111001011110011101011001000000110010001010000000000000000000000000"
|
||
|
"0000000000000000000001101101000101111100110000101001111010000001010011001101011101110011110010011110110000110111010001010000000000000000000000000"
|
||
|
"0010110001100001010001001100100110100110001101110100111000111010010011110101100100001001010011000110010011100100010100001000101001110011100010100"
|
||
|
"1101001110011110101110110011011001011001110010001011000111000101101100001010011011110110101100111001101100011011101011110111010110001100011101011"
|
||
|
},
|
||
|
/* 8*/ { BARCODE_GS1_128_CC, GS1PARENS_MODE, "(01)12345678901231", "(21)1234", 0, "Input mode ignored (parentheses instead of square brackets)",
|
||
|
"0000000000000000000001101101110110100001000001101001100111011000010011101001100001010001100010010011011000000110110001010000000000000000000000000"
|
||
|
"0000000000000000000001101101100111110100010011001101011100100000010011001001001111001011110011101011001000000110010001010000000000000000000000000"
|
||
|
"0000000000000000000001101101000101111100110000101001111010000001010011001101011101110011110010011110110000110111010001010000000000000000000000000"
|
||
|
"0010110001100001010001001100100110100110001101110100111000111010010011110101100100001001010011000110010011100100010100001000101001110011100010100"
|
||
|
"1101001110011110101110110011011001011001110010001011000111000101101100001010011011110110101100111001101100011011101011110111010110001100011101011"
|
||
|
},
|
||
|
/* 9*/ { BARCODE_EAN14, -1, "1234567890123", "", 0, "Input mode ignored; verified manually against tec-it",
|
||
|
"11010011100111101011101100110110010110011100100010110001110001011011000010100110111101101011001110011011000110100001100101100011101011"
|
||
|
},
|
||
|
/*10*/ { BARCODE_EAN14, GS1_MODE, "1234567890123", "", 0, "Input mode ignored",
|
||
|
"11010011100111101011101100110110010110011100100010110001110001011011000010100110111101101011001110011011000110100001100101100011101011"
|
||
|
},
|
||
|
/*11*/ { BARCODE_EAN14, UNICODE_MODE, "1234567890123", "", 0, "Input mode ignored",
|
||
|
"11010011100111101011101100110110010110011100100010110001110001011011000010100110111101101011001110011011000110100001100101100011101011"
|
||
|
},
|
||
|
/*12*/ { BARCODE_EAN14, GS1PARENS_MODE, "1234567890123", "", 0, "Input mode ignored (parentheses instead of square brackets)",
|
||
|
"11010011100111101011101100110110010110011100100010110001110001011011000010100110111101101011001110011011000110100001100101100011101011"
|
||
|
},
|
||
|
/*13*/ { BARCODE_NVE18, -1, "12345678901234567", "", 0, "Input mode ignored; verified manually against tec-it",
|
||
|
"110100111001111010111011011001100101100111001000101100011100010110110000101001101111011010110011100100010110001110001011011000010010101101110001100011101011"
|
||
|
},
|
||
|
/*14*/ { BARCODE_NVE18, GS1_MODE, "12345678901234567", "", 0, "Input mode ignored",
|
||
|
"110100111001111010111011011001100101100111001000101100011100010110110000101001101111011010110011100100010110001110001011011000010010101101110001100011101011"
|
||
|
},
|
||
|
/*15*/ { BARCODE_NVE18, UNICODE_MODE, "12345678901234567", "", 0, "Input mode ignored",
|
||
|
"110100111001111010111011011001100101100111001000101100011100010110110000101001101111011010110011100100010110001110001011011000010010101101110001100011101011"
|
||
|
},
|
||
|
/*16*/ { BARCODE_NVE18, GS1PARENS_MODE, "12345678901234567", "", 0, "Input mode ignored (parentheses instead of square brackets)",
|
||
|
"110100111001111010111011011001100101100111001000101100011100010110110000101001101111011010110011100100010110001110001011011000010010101101110001100011101011"
|
||
|
},
|
||
|
/*17*/ { BARCODE_DBAR_EXP, -1, "2012", "", ZINT_ERROR_INVALID_DATA, "GS1 data required", "" },
|
||
|
/*18*/ { BARCODE_DBAR_EXP, -1, "[20]12", "", 0, "Input mode ignored",
|
||
|
"010010000010000101101111111100001010000010000110010101111100101110001011110000000010101111100001011101"
|
||
|
},
|
||
|
/*19*/ { BARCODE_DBAR_EXP, GS1PARENS_MODE, "(20)12", "", 0, "Input mode ignored (parentheses instead of square brackets)",
|
||
|
"010010000010000101101111111100001010000010000110010101111100101110001011110000000010101111100001011101"
|
||
|
},
|
||
|
/*20*/ { BARCODE_DBAR_EXP, GS1_MODE, "[20]12", "", 0, "Input mode ignored",
|
||
|
"010010000010000101101111111100001010000010000110010101111100101110001011110000000010101111100001011101"
|
||
|
},
|
||
|
/*21*/ { BARCODE_DBAR_EXP, GS1_MODE | GS1PARENS_MODE, "(20)12", "", 0, "Input mode ignored (parentheses instead of square brackets)",
|
||
|
"010010000010000101101111111100001010000010000110010101111100101110001011110000000010101111100001011101"
|
||
|
},
|
||
|
/*22*/ { BARCODE_DBAR_EXP, UNICODE_MODE, "[20]12", "", 0, "Input mode ignored",
|
||
|
"010010000010000101101111111100001010000010000110010101111100101110001011110000000010101111100001011101"
|
||
|
},
|
||
|
/*23*/ { BARCODE_DBAR_EXP_CC, -1, "[20]12", "[21]1234", 0, "Input mode ignored; verified manually against tec-it",
|
||
|
"001101101110110100001000001101001100111011000010011101001100001010001100010010011011000000110110001010"
|
||
|
"001101101100111110100010011001101011100100000010011001001001111001011110011101011001000000110010001010"
|
||
|
"001101101000101111100110000101001111010000001010011001101011101110011110010011110110000110111010001010"
|
||
|
"000001111111010110010000000010100100111001100001011010000011010001110100001010101001010000011110100000"
|
||
|
"010010000000101001101111111100001011000110011110100101111100101110001011110000000010101111100001011101"
|
||
|
},
|
||
|
/*24*/ { BARCODE_DBAR_EXP_CC, GS1_MODE, "[20]12", "[21]1234", 0, "Input mode ignored",
|
||
|
"001101101110110100001000001101001100111011000010011101001100001010001100010010011011000000110110001010"
|
||
|
"001101101100111110100010011001101011100100000010011001001001111001011110011101011001000000110010001010"
|
||
|
"001101101000101111100110000101001111010000001010011001101011101110011110010011110110000110111010001010"
|
||
|
"000001111111010110010000000010100100111001100001011010000011010001110100001010101001010000011110100000"
|
||
|
"010010000000101001101111111100001011000110011110100101111100101110001011110000000010101111100001011101"
|
||
|
},
|
||
|
/*25*/ { BARCODE_DBAR_EXP_CC, UNICODE_MODE, "[20]12", "[21]1234", 0, "Input mode ignored",
|
||
|
"001101101110110100001000001101001100111011000010011101001100001010001100010010011011000000110110001010"
|
||
|
"001101101100111110100010011001101011100100000010011001001001111001011110011101011001000000110010001010"
|
||
|
"001101101000101111100110000101001111010000001010011001101011101110011110010011110110000110111010001010"
|
||
|
"000001111111010110010000000010100100111001100001011010000011010001110100001010101001010000011110100000"
|
||
|
"010010000000101001101111111100001011000110011110100101111100101110001011110000000010101111100001011101"
|
||
|
},
|
||
|
/*26*/ { BARCODE_DBAR_EXPSTK, -1, "12", "", ZINT_ERROR_INVALID_DATA, "GS1 data required", "" },
|
||
|
/*27*/ { BARCODE_DBAR_EXPSTK, -1, "[20]12", "", 0, "Input mode ignored",
|
||
|
"010010000010000101101111111100001010000010000110010101111100101110001011110000000010101111100001011101"
|
||
|
},
|
||
|
/*28*/ { BARCODE_DBAR_EXPSTK, GS1_MODE, "[20]12", "", 0, "Input mode ignored",
|
||
|
"010010000010000101101111111100001010000010000110010101111100101110001011110000000010101111100001011101"
|
||
|
},
|
||
|
/*29*/ { BARCODE_DBAR_EXPSTK, UNICODE_MODE, "[20]12", "", 0, "Input mode ignored",
|
||
|
"010010000010000101101111111100001010000010000110010101111100101110001011110000000010101111100001011101"
|
||
|
},
|
||
|
/*30*/ { BARCODE_DBAR_EXPSTK_CC, -1, "12", "[21]1234", ZINT_ERROR_INVALID_DATA, "GS1 data required", "" },
|
||
|
/*31*/ { BARCODE_DBAR_EXPSTK_CC, -1, "[20]12", "[21]1234", 0, "Input mode ignored; verified manually against tec-it (same as BARCODE_DBAR_EXP_CC above)",
|
||
|
"001101101110110100001000001101001100111011000010011101001100001010001100010010011011000000110110001010"
|
||
|
"001101101100111110100010011001101011100100000010011001001001111001011110011101011001000000110010001010"
|
||
|
"001101101000101111100110000101001111010000001010011001101011101110011110010011110110000110111010001010"
|
||
|
"000001111111010110010000000010100100111001100001011010000011010001110100001010101001010000011110100000"
|
||
|
"010010000000101001101111111100001011000110011110100101111100101110001011110000000010101111100001011101"
|
||
|
},
|
||
|
/*32*/ { BARCODE_DBAR_EXPSTK_CC, GS1PARENS_MODE, "(20)12", "(21)1234", 0, "Input mode ignored (parentheses instead of square brackets)",
|
||
|
"001101101110110100001000001101001100111011000010011101001100001010001100010010011011000000110110001010"
|
||
|
"001101101100111110100010011001101011100100000010011001001001111001011110011101011001000000110010001010"
|
||
|
"001101101000101111100110000101001111010000001010011001101011101110011110010011110110000110111010001010"
|
||
|
"000001111111010110010000000010100100111001100001011010000011010001110100001010101001010000011110100000"
|
||
|
"010010000000101001101111111100001011000110011110100101111100101110001011110000000010101111100001011101"
|
||
|
},
|
||
|
/*33*/ { BARCODE_DBAR_EXPSTK_CC, GS1_MODE, "[20]12", "[21]1234", 0, "Input mode ignored",
|
||
|
"001101101110110100001000001101001100111011000010011101001100001010001100010010011011000000110110001010"
|
||
|
"001101101100111110100010011001101011100100000010011001001001111001011110011101011001000000110010001010"
|
||
|
"001101101000101111100110000101001111010000001010011001101011101110011110010011110110000110111010001010"
|
||
|
"000001111111010110010000000010100100111001100001011010000011010001110100001010101001010000011110100000"
|
||
|
"010010000000101001101111111100001011000110011110100101111100101110001011110000000010101111100001011101"
|
||
|
},
|
||
|
/*34*/ { BARCODE_DBAR_EXPSTK_CC, UNICODE_MODE, "[20]12", "[21]1234", 0, "Input mode ignored",
|
||
|
"001101101110110100001000001101001100111011000010011101001100001010001100010010011011000000110110001010"
|
||
|
"001101101100111110100010011001101011100100000010011001001001111001011110011101011001000000110010001010"
|
||
|
"001101101000101111100110000101001111010000001010011001101011101110011110010011110110000110111010001010"
|
||
|
"000001111111010110010000000010100100111001100001011010000011010001110100001010101001010000011110100000"
|
||
|
"010010000000101001101111111100001011000110011110100101111100101110001011110000000010101111100001011101"
|
||
|
},
|
||
|
};
|
||
|
int data_size = ARRAY_SIZE(data);
|
||
|
int i, length, ret;
|
||
|
struct zint_symbol *symbol;
|
||
|
|
||
|
char *text;
|
||
|
|
||
|
char bwipp_buf[8196];
|
||
|
char bwipp_msg[1024];
|
||
|
|
||
|
int do_bwipp = (debug & ZINT_DEBUG_TEST_BWIPP) && testUtilHaveGhostscript(); // Only do BWIPP test if asked, too slow otherwise
|
||
|
|
||
|
testStart("test_gs1_reduce");
|
||
|
|
||
|
for (i = 0; i < data_size; i++) {
|
||
|
|
||
|
if (index != -1 && i != index) continue;
|
||
|
|
||
|
symbol = ZBarcode_Create();
|
||
|
assert_nonnull(symbol, "Symbol not created\n");
|
||
|
|
||
|
if (data[i].composite[0]) {
|
||
|
text = data[i].composite;
|
||
|
strcpy(symbol->primary, data[i].data);
|
||
|
} else {
|
||
|
text = data[i].data;
|
||
|
}
|
||
|
length = testUtilSetSymbol(symbol, data[i].symbology, data[i].input_mode, -1 /*eci*/, -1 /*option_1*/, -1, -1, -1 /*output_options*/, text, -1, debug);
|
||
|
|
||
|
ret = ZBarcode_Encode(symbol, (unsigned char *) text, length);
|
||
|
|
||
|
if (generate) {
|
||
|
if (data[i].ret == 0) {
|
||
|
printf(" /*%2d*/ { %s, %s, \"%s\", \"%s\", %d, \"%s\",\n",
|
||
|
i, testUtilBarcodeName(data[i].symbology), testUtilInputModeName(data[i].input_mode), data[i].data, data[i].composite, data[i].ret, data[i].comment);
|
||
|
testUtilModulesPrint(symbol, " ", "\n");
|
||
|
printf(" },\n");
|
||
|
} else {
|
||
|
printf(" /*%2d*/ { %s, %s, \"%s\", \"%s\", %s, \"%s\", \"\" },\n",
|
||
|
i, testUtilBarcodeName(data[i].symbology), testUtilInputModeName(data[i].input_mode), data[i].data, data[i].composite, testUtilErrorName(data[i].ret), data[i].comment);
|
||
|
}
|
||
|
} else {
|
||
|
assert_equal(ret, data[i].ret, "i:%d ZBarcode_Encode ret %d != %d (%s)\n", i, ret, data[i].ret, symbol->errtxt);
|
||
|
|
||
|
if (ret < ZINT_ERROR) {
|
||
|
int width, row;
|
||
|
ret = testUtilModulesCmp(symbol, data[i].expected, &width, &row);
|
||
|
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, -1, -1, -1, debug)) {
|
||
|
ret = testUtilBwipp(i, symbol, -1, -1, -1, text, 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);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
ZBarcode_Delete(symbol);
|
||
|
}
|
||
|
|
||
|
testFinish();
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
* Check GS1_128-based and DBAR_EXP-based symbologies HRT
|
||
|
* See test_hrt() in test_rss.c and test_composite.c for DBAR other than DBAR_EXP-based
|
||
|
*/
|
||
|
static void test_hrt(int index, int debug) {
|
||
|
|
||
|
struct item {
|
||
|
int symbology;
|
||
|
int input_mode;
|
||
|
char *data;
|
||
|
char *composite;
|
||
|
|
||
|
int ret;
|
||
|
char *expected;
|
||
|
};
|
||
|
// s/\/\*[ 0-9]*\*\//\=printf("\/*%3d*\/", line(".") - line("'<"))
|
||
|
struct item data[] = {
|
||
|
/* 0*/ { BARCODE_GS1_128, -1, "[01]12345678901234[20]12", "", ZINT_WARN_NONCOMPLIANT, "(01)12345678901234(20)12" }, // Incorrect check digit
|
||
|
/* 1*/ { BARCODE_GS1_128, GS1NOCHECK_MODE, "[01]12345678901234[20]12", "", 0, "(01)12345678901234(20)12" },
|
||
|
/* 2*/ { BARCODE_GS1_128, -1, "[01]12345678901231[20]12", "", 0, "(01)12345678901231(20)12" },
|
||
|
/* 3*/ { BARCODE_GS1_128, -1, "[01]12345678901231[10]12[20]AB", "", ZINT_WARN_NONCOMPLIANT, "(01)12345678901231(10)12(20)AB" }, // AI (20) should be 2 nos.
|
||
|
/* 4*/ { BARCODE_GS1_128, GS1NOCHECK_MODE, "[01]12345678901231[10]10[20]AB", "", 0, "(01)12345678901231(10)10(20)AB" },
|
||
|
/* 5*/ { BARCODE_GS1_128, -1, "[01]12345678901231[10]AB[20]12", "", 0, "(01)12345678901231(10)AB(20)12" },
|
||
|
/* 6*/ { BARCODE_GS1_128_CC, -1, "[01]12345678901234[20]12", "[21]12345", ZINT_WARN_NONCOMPLIANT, "(01)12345678901234(20)12" }, // Incorrect check digit
|
||
|
/* 7*/ { BARCODE_GS1_128_CC, GS1NOCHECK_MODE, "[01]12345678901234[20]12", "[21]12345", 0, "(01)12345678901234(20)12" },
|
||
|
/* 8*/ { BARCODE_GS1_128_CC, -1, "[01]12345678901231[20]12", "[21]12345", 0, "(01)12345678901231(20)12" },
|
||
|
/* 9*/ { BARCODE_GS1_128_CC, -1, "[01]12345678901231[10]12[20]AB", "[21]12345", ZINT_WARN_NONCOMPLIANT, "(01)12345678901231(10)12(20)AB" }, // AI (20) should be 2 nos.
|
||
|
/* 10*/ { BARCODE_GS1_128_CC, GS1NOCHECK_MODE, "[01]12345678901231[10]12[20]AB", "[21]12345", 0, "(01)12345678901231(10)12(20)AB" },
|
||
|
/* 11*/ { BARCODE_GS1_128_CC, -1, "[01]12345678901231[10]AB[20]12", "[21]12345", 0, "(01)12345678901231(10)AB(20)12" },
|
||
|
/* 12*/ { BARCODE_GS1_128_CC, -1, "[01]12345678901231[10]AB[20]12", "[30]1234567A", ZINT_WARN_NONCOMPLIANT, "(01)12345678901231(10)AB(20)12" },
|
||
|
/* 13*/ { BARCODE_GS1_128_CC, GS1NOCHECK_MODE, "[01]12345678901231[10]AB[20]12", "[30]1234567A", 0, "(01)12345678901231(10)AB(20)12" },
|
||
|
/* 14*/ { BARCODE_EAN14, -1, "1234567890123", "", 0, "(01)12345678901231" },
|
||
|
/* 15*/ { BARCODE_EAN14, -1, "1234", "", 0, "(01)00000000012348" },
|
||
|
/* 16*/ { BARCODE_EAN14, -1, "12345", "", 0, "(01)00000000123457" },
|
||
|
/* 17*/ { BARCODE_EAN14, -1, "12340", "", 0, "(01)00000000123402" },
|
||
|
/* 18*/ { BARCODE_NVE18, -1, "12345678901234567", "", 0, "(00)123456789012345675" },
|
||
|
/* 19*/ { BARCODE_NVE18, -1, "1234", "", 0, "(00)000000000000012348" },
|
||
|
/* 20*/ { BARCODE_NVE18, -1, "12345", "", 0, "(00)000000000000123457" },
|
||
|
/* 21*/ { BARCODE_NVE18, -1, "12340", "", 0, "(00)000000000000123402" },
|
||
|
/* 22*/ { BARCODE_DBAR_EXP, -1, "[01]12345678901234[20]12", "", ZINT_WARN_NONCOMPLIANT, "(01)12345678901234(20)12" }, // Incorrect check digit
|
||
|
/* 23*/ { BARCODE_DBAR_EXP, GS1NOCHECK_MODE, "[01]12345678901234[20]12", "", 0, "(01)12345678901234(20)12" },
|
||
|
/* 24*/ { BARCODE_DBAR_EXP, -1, "[01]12345678901231[20]12", "", 0, "(01)12345678901231(20)12" },
|
||
|
/* 25*/ { BARCODE_DBAR_EXP, -1, "[01]12345678901231[10]12[20]AB", "", ZINT_WARN_NONCOMPLIANT, "(01)12345678901231(10)12(20)AB" }, // AI (20) should be 2 nos.
|
||
|
/* 26*/ { BARCODE_DBAR_EXP, GS1NOCHECK_MODE, "[01]12345678901231[10]12[20]AB", "", 0, "(01)12345678901231(10)12(20)AB" },
|
||
|
/* 27*/ { BARCODE_DBAR_EXP, -1, "[01]12345678901231[10]AB[20]12", "", 0, "(01)12345678901231(10)AB(20)12" },
|
||
|
/* 28*/ { BARCODE_DBAR_EXP_CC, -1, "[01]12345678901234", "[21]12345", ZINT_WARN_NONCOMPLIANT, "(01)12345678901234" },
|
||
|
/* 29*/ { BARCODE_DBAR_EXP_CC, GS1NOCHECK_MODE, "[01]12345678901234", "[21]12345", 0, "(01)12345678901234" },
|
||
|
/* 30*/ { BARCODE_DBAR_EXP_CC, -1, "[01]12345678901231", "[21]12345", 0, "(01)12345678901231" },
|
||
|
/* 31*/ { BARCODE_DBAR_EXP_CC, -1, "[01]12345678901231[20]12[21]12345", "[21]12345", 0, "(01)12345678901231(20)12(21)12345" },
|
||
|
/* 32*/ { BARCODE_DBAR_EXPSTK, -1, "[01]12345678901234[20]12", "", ZINT_WARN_NONCOMPLIANT, "" },
|
||
|
/* 33*/ { BARCODE_DBAR_EXPSTK, GS1NOCHECK_MODE, "[01]12345678901234[20]12", "", 0, "" },
|
||
|
/* 34*/ { BARCODE_DBAR_EXPSTK, -1, "[01]12345678901231[20]12", "", 0, "" },
|
||
|
/* 35*/ { BARCODE_DBAR_EXPSTK_CC, -1, "[01]12345678901234[20]12", "[21]12345", ZINT_WARN_NONCOMPLIANT, "" },
|
||
|
/* 36*/ { BARCODE_DBAR_EXPSTK_CC, GS1NOCHECK_MODE, "[01]12345678901234[20]12", "[21]12345", 0, "" },
|
||
|
/* 37*/ { BARCODE_DBAR_EXPSTK_CC, -1, "[01]12345678901231[20]12", "[21]12345", 0, "" },
|
||
|
};
|
||
|
int data_size = ARRAY_SIZE(data);
|
||
|
int i, length, ret;
|
||
|
struct zint_symbol *symbol;
|
||
|
|
||
|
char *text;
|
||
|
|
||
|
testStart("test_hrt");
|
||
|
|
||
|
for (i = 0; i < data_size; i++) {
|
||
|
|
||
|
if (index != -1 && i != index) continue;
|
||
|
|
||
|
symbol = ZBarcode_Create();
|
||
|
assert_nonnull(symbol, "Symbol not created\n");
|
||
|
|
||
|
if (data[i].composite[0]) {
|
||
|
text = data[i].composite;
|
||
|
strcpy(symbol->primary, data[i].data);
|
||
|
} else {
|
||
|
text = data[i].data;
|
||
|
}
|
||
|
length = testUtilSetSymbol(symbol, data[i].symbology, data[i].input_mode, -1 /*eci*/, -1 /*option_1*/, -1, -1, -1 /*output_options*/, text, -1, debug);
|
||
|
|
||
|
ret = ZBarcode_Encode(symbol, (unsigned char *) text, length);
|
||
|
assert_equal(ret, data[i].ret, "i:%d ZBarcode_Encode ret %d != %d (%s)\n", i, data[i].ret, ret, symbol->errtxt);
|
||
|
|
||
|
assert_zero(strcmp((char *) symbol->text, data[i].expected), "i:%d strcmp(%s, %s) != 0\n", i, symbol->text, data[i].expected);
|
||
|
|
||
|
ZBarcode_Delete(symbol);
|
||
|
}
|
||
|
|
||
|
testFinish();
|
||
|
}
|
||
|
|
||
|
#include "../gs1.h"
|
||
|
|
||
|
static void test_gs1_verify(int index, int debug) {
|
||
|
|
||
|
struct item {
|
||
|
char *data;
|
||
|
int ret;
|
||
|
char *expected;
|
||
|
};
|
||
|
// s/\/\*[ 0-9]*\*\//\=printf("\/*%3d*\/", line(".") - line("'<"))
|
||
|
struct item data[] = {
|
||
|
/* 0*/ { "", ZINT_ERROR_INVALID_DATA, "" },
|
||
|
/* 1*/ { "[", ZINT_ERROR_INVALID_DATA, "" },
|
||
|
/* 2*/ { "[]12", ZINT_ERROR_INVALID_DATA, "" },
|
||
|
/* 3*/ { "[12345]12", ZINT_ERROR_INVALID_DATA, "" },
|
||
|
/* 4*/ { "[9999]1234", ZINT_ERROR_INVALID_DATA, "" },
|
||
|
/* 5*/ { "[[01]]1234", ZINT_ERROR_INVALID_DATA, "" },
|
||
|
/* 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;
|
||
|
struct zint_symbol *symbol;
|
||
|
|
||
|
char reduced[1024];
|
||
|
|
||
|
testStart("test_gs1_verify");
|
||
|
|
||
|
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");
|
||
|
|
||
|
length = (int) strlen(data[i].data);
|
||
|
|
||
|
ret = gs1_verify(symbol, (unsigned char *) data[i].data, length, (unsigned char *) reduced);
|
||
|
assert_equal(ret, data[i].ret, "i:%d ret %d != %d (length %d \"%s\") (%s)\n", i, ret, data[i].ret, length, data[i].data, symbol->errtxt);
|
||
|
|
||
|
if (ret < ZINT_ERROR) {
|
||
|
assert_zero(strcmp(reduced, data[i].expected), "i:%d strcmp(%s, %s) != 0\n", i, reduced, data[i].expected);
|
||
|
}
|
||
|
|
||
|
ZBarcode_Delete(symbol);
|
||
|
}
|
||
|
|
||
|
testFinish();
|
||
|
}
|
||
|
|
||
|
static void test_gs1_lint(int index, int debug) {
|
||
|
|
||
|
struct item {
|
||
|
char *data;
|
||
|
int ret;
|
||
|
char *expected;
|
||
|
char *expected_errtxt;
|
||
|
};
|
||
|
// s/\/\*[ 0-9]*\*\//\=printf("\/*%3d*\/", line(".") - line("'<"))
|
||
|
struct item data[] = {
|
||
|
/* 0*/ { "[00]123456789012345675", 0, "00123456789012345675", "" }, // numeric
|
||
|
/* 1*/ { "[00]12345678901234567.", ZINT_WARN_NONCOMPLIANT, "0012345678901234567.", "261: AI (00) position 18: Non-numeric character '.'" }, // numeric
|
||
|
/* 2*/ { "[00]123456789012345678", ZINT_WARN_NONCOMPLIANT, "00123456789012345678", "261: AI (00) position 18: Bad checksum '8', expected '5'" }, // csum
|
||
|
/* 3*/ { "[00]1234567890123456759", ZINT_ERROR_INVALID_DATA, "", "259: Invalid data length for AI (00)" }, // length
|
||
|
/* 4*/ { "[00]12345678901234567", ZINT_ERROR_INVALID_DATA, "", "259: Invalid data length for AI (00)" }, // length
|
||
|
/* 5*/ { "[00]123456789012345675A", ZINT_ERROR_INVALID_DATA, "", "259: Invalid data length for AI (00)" }, // length
|
||
|
/* 6*/ { "[91]!\"%&'()*+,-./0123456789:;<=>?ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz", 0, "91!\"%&'()*+,-./0123456789:;<=>?ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz", "" }, // cset82
|
||
|
/* 7*/ { "[91] ", ZINT_WARN_NONCOMPLIANT, "91 ", "261: AI (91) position 1: Invalid CSET 82 character ' '" }, // cset82
|
||
|
/* 8*/ { "[91]#", ZINT_WARN_NONCOMPLIANT, "91#", "261: AI (91) position 1: Invalid CSET 82 character '#'" }, // cset82
|
||
|
/* 9*/ { "[91]a^", ZINT_WARN_NONCOMPLIANT, "91a^", "261: AI (91) position 2: Invalid CSET 82 character '^'" }, // cset82
|
||
|
/* 10*/ { "[91]!\"%&'()*+,-./0123456789:;<=>?ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxy{", ZINT_WARN_NONCOMPLIANT, "91!\"%&'()*+,-./0123456789:;<=>?ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxy{", "261: AI (91) position 82: Invalid CSET 82 character '{'" }, // cset82
|
||
|
/* 11*/ { "[8010]01#-/23456789ABCDEFGHIJKLMNOPQ", 0, "801001#-/23456789ABCDEFGHIJKLMNOPQ", "" }, // cset39
|
||
|
/* 12*/ { "[8010]6789ABCDEFGHIJKLMNOPQRSTUVWXYZ", 0, "80106789ABCDEFGHIJKLMNOPQRSTUVWXYZ", "" }, // cset39
|
||
|
/* 13*/ { "[8010]01!", ZINT_WARN_NONCOMPLIANT, "801001!", "261: AI (8010) position 3: Invalid CSET 39 character '!'" }, // cset39
|
||
|
/* 14*/ { "[8010]01a", ZINT_WARN_NONCOMPLIANT, "801001a", "261: AI (8010) position 3: Invalid CSET 39 character 'a'" }, // cset39
|
||
|
/* 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*/ { "[401]0", ZINT_WARN_NONCOMPLIANT, "4010", "259: Invalid data length for AI (401)" }, // key
|
||
|
/* 19*/ { "[8013]1987654Ad4X4bL5ttr2310c2K", 0, "80131987654Ad4X4bL5ttr2310c2K", "" }, // csumalpha
|
||
|
/* 20*/ { "[8013]12345678901234567890123NT", 0, "801312345678901234567890123NT", "" }, // csumalpha
|
||
|
/* 21*/ { "[8013]12345_ABCDEFGHIJKLMCP", 0, "801312345_ABCDEFGHIJKLMCP", "" }, // csumalpha
|
||
|
/* 22*/ { "[8013]12345_NOPQRSTUVWXYZDN", 0, "801312345_NOPQRSTUVWXYZDN", "" }, // csumalpha
|
||
|
/* 23*/ { "[8013]12345_abcdefghijklmN3", 0, "801312345_abcdefghijklmN3", "" }, // csumalpha
|
||
|
/* 24*/ { "[8013]12345_nopqrstuvwxyzP2", 0, "801312345_nopqrstuvwxyzP2", "" }, // csumalpha
|
||
|
/* 25*/ { "[8013]12345_!\"%&'()*+,-./LC", 0, "801312345_!\"%&'()*+,-./LC", "" }, // csumalpha
|
||
|
/* 26*/ { "[8013]12345_0123456789:;<=>?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]57453Uq3qA<H67", 0, "801357453Uq3qA<H67", "" }, // csumalpha
|
||
|
/* 42*/ { "[8013]62185314IvwmYZ", 0, "801362185314IvwmYZ", "" }, // csumalpha
|
||
|
/* 43*/ { "[8013]0881063PhHvY89", 0, "80130881063PhHvY89", "" }, // csumalpha
|
||
|
/* 44*/ { "[8013]00000!HV", 0, "801300000!HV", "" }, // csumalpha
|
||
|
/* 45*/ { "[8013]99999zzzzzzzzzzzzzzzzzzT2", 0, "801399999zzzzzzzzzzzzzzzzzzT2", "" }, // csumalpha
|
||
|
/* 46*/ { "[8013]1987654Ad4X4bL5ttr2310cXK", ZINT_WARN_NONCOMPLIANT, "80131987654Ad4X4bL5ttr2310cXK", "261: AI (8013) position 24: Bad checksum 'X', expected '2'" }, // csumalpha
|
||
|
/* 47*/ { "[8013]1987654Ad4X4bL5ttr2310c2X", ZINT_WARN_NONCOMPLIANT, "80131987654Ad4X4bL5ttr2310c2X", "261: AI (8013) position 25: Bad checksum 'X', expected 'K'" }, // csumalpha
|
||
|
/* 48*/ { "[8013]198765£Ad4X4bL5ttr2310c2K", ZINT_ERROR_INVALID_DATA, "", "250: Extended ASCII characters are not supported by GS1" }, // csumalpha
|
||
|
/* 49*/ { "[8013]1987654Ad4X4bL5ttr2310£2K", ZINT_ERROR_INVALID_DATA, "", "250: Extended ASCII characters are not supported by GS1" }, // csumalpha
|
||
|
/* 50*/ { "[8013]1987654Ad4X4bL5ttr2310cxK", ZINT_WARN_NONCOMPLIANT, "80131987654Ad4X4bL5ttr2310cxK", "261: AI (8013) position 24: Bad checksum 'x', expected '2'" }, // csumalpha
|
||
|
/* 51*/ { "[8013]1987654Ad4X4bL5ttr2310c2x", ZINT_WARN_NONCOMPLIANT, "80131987654Ad4X4bL5ttr2310c2x", "261: AI (8013) position 25: Bad checksum 'x', expected 'K'" }, // csumalpha
|
||
|
/* 52*/ { "[8013]12345678901234567890123NTX", ZINT_ERROR_INVALID_DATA, "", "259: Invalid data length for AI (8013)" }, // csumalpha
|
||
|
/* 53*/ { "[8013]1", ZINT_WARN_NONCOMPLIANT, "80131", "259: Invalid data length for AI (8013)" }, // csumalpha
|
||
|
/* 54*/ { "[8013]12", ZINT_WARN_NONCOMPLIANT, "801312", "261: AI (8013) position 1: Bad checksum '1', expected '2'" }, // csumalpha
|
||
|
/* 55*/ { "[8013]22", 0, "801322", "" }, // csumalpha
|
||
|
/* 56*/ { "[8013]123", ZINT_WARN_NONCOMPLIANT, "8013123", "261: AI (8013) position 3: Bad checksum '3', expected 'W'" }, // csumalpha
|
||
|
/* 57*/ { "[8013]12W", 0, "801312W", "" }, // csumalpha
|
||
|
/* 58*/ { "[8013]00000!HW", ZINT_WARN_NONCOMPLIANT, "801300000!HW", "261: AI (8013) position 8: Bad checksum 'W', expected 'V'" }, // csumalpha
|
||
|
/* 59*/ { "[8013]7907665Bm8v2BB", ZINT_WARN_NONCOMPLIANT, "80137907665Bm8v2BB", "261: AI (8013) position 13: Bad checksum 'B', expected 'A'" }, // csumalpha
|
||
|
/* 60*/ { "[8013]99zzzzzzzzzzzzzzzzzzzzzZ7", 0, "801399zzzzzzzzzzzzzzzzzzzzzZ7", "" }, // csumalpha
|
||
|
/* 61*/ { "[11]120100", 0, "11120100", "" }, // yymmd0
|
||
|
/* 62*/ { "[11]120131", 0, "11120131", "" }, // yymmd0
|
||
|
/* 63*/ { "[11]120132", ZINT_WARN_NONCOMPLIANT, "11120132", "261: AI (11) position 5: Invalid day '32'" }, // yymmd0
|
||
|
/* 64*/ { "[11]120229", 0, "11120229", "" }, // yymmd0
|
||
|
/* 65*/ { "[11]110229", ZINT_WARN_NONCOMPLIANT, "11110229", "261: AI (11) position 5: Invalid day '29'" }, // yymmd0
|
||
|
/* 66*/ { "[11]000229", 0, "11000229", "" }, // yymmd0 NOTE: will be false in 2050
|
||
|
/* 67*/ { "[11]480229", 0, "11480229", "" }, // yymmd0
|
||
|
/* 68*/ { "[11]500229", ZINT_WARN_NONCOMPLIANT, "11500229", "261: AI (11) position 5: Invalid day '29'" }, // yymmd0
|
||
|
/* 69*/ { "[11]980229", ZINT_WARN_NONCOMPLIANT, "11980229", "261: AI (11) position 5: Invalid day '29'" }, // yymmd0
|
||
|
/* 70*/ { "[11]110228", 0, "11110228", "" }, // yymmd0
|
||
|
/* 71*/ { "[11]120230", ZINT_WARN_NONCOMPLIANT, "11120230", "261: AI (11) position 5: Invalid day '30'" }, // yymmd0
|
||
|
/* 72*/ { "[11]120331", 0, "11120331", "" }, // yymmd0
|
||
|
/* 73*/ { "[11]120332", ZINT_WARN_NONCOMPLIANT, "11120332", "261: AI (11) position 5: Invalid day '32'" }, // yymmd0
|
||
|
/* 74*/ { "[11]120430", 0, "11120430", "" }, // yymmd0
|
||
|
/* 75*/ { "[11]120431", ZINT_WARN_NONCOMPLIANT, "11120431", "261: AI (11) position 5: Invalid day '31'" }, // yymmd0
|
||
|
/* 76*/ { "[11]120531", 0, "11120531", "" }, // yymmd0
|
||
|
/* 77*/ { "[11]120532", ZINT_WARN_NONCOMPLIANT, "11120532", "261: AI (11) position 5: Invalid day '32'" }, // yymmd0
|
||
|
/* 78*/ { "[11]120630", 0, "11120630", "" }, // yymmd0
|
||
|
/* 79*/ { "[11]120631", ZINT_WARN_NONCOMPLIANT, "11120631", "261: AI (11) position 5: Invalid day '31'" }, // yymmd0
|
||
|
/* 80*/ { "[11]120731", 0, "11120731", "" }, // yymmd0
|
||
|
/* 81*/ { "[11]120732", ZINT_WARN_NONCOMPLIANT, "11120732", "261: AI (11) position 5: Invalid day '32'" }, // yymmd0
|
||
|
/* 82*/ { "[11]120831", 0, "11120831", "" }, // yymmd0
|
||
|
/* 83*/ { "[11]120832", ZINT_WARN_NONCOMPLIANT, "11120832", "261: AI (11) position 5: Invalid day '32'" }, // yymmd0
|
||
|
/* 84*/ { "[11]120930", 0, "11120930", "" }, // yymmd0
|
||
|
/* 85*/ { "[11]120931", ZINT_WARN_NONCOMPLIANT, "11120931", "261: AI (11) position 5: Invalid day '31'" }, // yymmd0
|
||
|
/* 86*/ { "[11]121031", 0, "11121031", "" }, // yymmd0
|
||
|
/* 87*/ { "[11]121032", ZINT_WARN_NONCOMPLIANT, "11121032", "261: AI (11) position 5: Invalid day '32'" }, // yymmd0
|
||
|
/* 88*/ { "[11]121130", 0, "11121130", "" }, // yymmd0
|
||
|
/* 89*/ { "[11]121131", ZINT_WARN_NONCOMPLIANT, "11121131", "261: AI (11) position 5: Invalid day '31'" }, // yymmd0
|
||
|
/* 90*/ { "[11]121200", 0, "11121200", "" }, // yymmd0
|
||
|
/* 91*/ { "[11]121231", 0, "11121231", "" }, // yymmd0
|
||
|
/* 92*/ { "[11]121232", ZINT_WARN_NONCOMPLIANT, "11121232", "261: AI (11) position 5: Invalid day '32'" }, // yymmd0
|
||
|
/* 93*/ { "[11]120031", ZINT_WARN_NONCOMPLIANT, "11120031", "261: AI (11) position 3: Invalid month '00'" }, // yymmd0
|
||
|
/* 94*/ { "[11]121331", ZINT_WARN_NONCOMPLIANT, "11121331", "261: AI (11) position 3: Invalid month '13'" }, // yymmd0
|
||
|
/* 95*/ { "[4326]121231", 0, "4326121231", "" }, // yymmdd
|
||
|
/* 96*/ { "[4326]121200", ZINT_WARN_NONCOMPLIANT, "4326121200", "261: AI (4326) position 5: Invalid day '00'" }, // yymmdd
|
||
|
/* 97*/ { "[4326]120031", ZINT_WARN_NONCOMPLIANT, "4326120031", "261: AI (4326) position 3: Invalid month '00'" }, // yymmdd
|
||
|
/* 98*/ { "[4326]129931", ZINT_WARN_NONCOMPLIANT, "4326129931", "261: AI (4326) position 3: Invalid month '99'" }, // yymmdd
|
||
|
/* 99*/ { "[4326]121299", ZINT_WARN_NONCOMPLIANT, "4326121299", "261: AI (4326) position 5: Invalid day '99'" }, // yymmdd
|
||
|
/*100*/ { "[4326]120230", ZINT_WARN_NONCOMPLIANT, "4326120230", "261: AI (4326) position 5: Invalid day '30'" }, // yymmdd
|
||
|
/*101*/ { "[4326]110229", ZINT_WARN_NONCOMPLIANT, "4326110229", "261: AI (4326) position 5: Invalid day '29'" }, // yymmdd
|
||
|
/*102*/ { "[4326]000229", 0, "4326000229", "" }, // yymmdd NOTE: will be false in 2050
|
||
|
/*103*/ { "[4326]940229", ZINT_WARN_NONCOMPLIANT, "4326940229", "261: AI (4326) position 5: Invalid day '29'" }, // yymmdd
|
||
|
/*104*/ { "[4324]1212310000", 0, "43241212310000", "" }, // hhmm
|
||
|
/*105*/ { "[4324]1212312359", 0, "43241212312359", "" }, // hhmm
|
||
|
/*106*/ { "[4324]1212312400", ZINT_WARN_NONCOMPLIANT, "43241212312400", "261: AI (4324) position 7: Invalid hour of day '24'" }, // hhmm
|
||
|
/*107*/ { "[4324]1212312360", ZINT_WARN_NONCOMPLIANT, "43241212312360", "261: AI (4324) position 9: Invalid minutes in the hour '60'" }, // hhmm
|
||
|
/*108*/ { "[8008]121231000000", 0, "8008121231000000", "" }, // hhoptmmss
|
||
|
/*109*/ { "[8008]1212310000", 0, "80081212310000", "" }, // hhoptmmss
|
||
|
/*110*/ { "[8008]12123100", 0, "800812123100", "" }, // hhoptmmss
|
||
|
/*111*/ { "[8008]12123123", 0, "800812123123", "" }, // hhoptmmss
|
||
|
/*112*/ { "[8008]12123124", ZINT_WARN_NONCOMPLIANT, "800812123124", "261: AI (8008) position 7: Invalid hour of day '24'" }, // hhoptmmss
|
||
|
/*113*/ { "[8008]1212312359", 0, "80081212312359", "" }, // hhoptmmss
|
||
|
/*114*/ { "[8008]1212312360", ZINT_WARN_NONCOMPLIANT, "80081212312360", "261: AI (8008) position 9: Invalid minutes in the hour '60'" }, // hhoptmmss
|
||
|
/*115*/ { "[8008]121231235959", 0, "8008121231235959", "" }, // hhoptmmss
|
||
|
/*116*/ { "[8008]121231235960", ZINT_WARN_NONCOMPLIANT, "8008121231235960", "261: AI (8008) position 11: Invalid seconds in the minute '60'" }, // hhoptmmss
|
||
|
/*117*/ { "[422]004", 0, "422004", "" }, // iso3166
|
||
|
/*118*/ { "[422]894", 0, "422894", "" }, // iso3166
|
||
|
/*119*/ { "[422]00", ZINT_ERROR_INVALID_DATA, "", "259: Invalid data length for AI (422)" }, // iso3166
|
||
|
/*120*/ { "[422]0A", ZINT_ERROR_INVALID_DATA, "", "259: Invalid data length for AI (422)" }, // iso3166
|
||
|
/*121*/ { "[422]003", ZINT_WARN_NONCOMPLIANT, "422003", "261: AI (422) position 1: Unknown country code '003'" }, // iso3166
|
||
|
/*122*/ { "[422]895", ZINT_WARN_NONCOMPLIANT, "422895", "261: AI (422) position 1: Unknown country code '895'" }, // iso3166
|
||
|
/*123*/ { "[422]999", ZINT_WARN_NONCOMPLIANT, "422999", "261: AI (422) position 1: Unknown country code '999'" }, // iso3166
|
||
|
/*124*/ { "[423]004", 0, "423004", "" }, // iso3166list
|
||
|
/*125*/ { "[423]004894", 0, "423004894", "" }, // iso3166list
|
||
|
/*126*/ { "[423]004894004", 0, "423004894004", "" }, // iso3166list
|
||
|
/*127*/ { "[423]004894004894", 0, "423004894004894", "" }, // iso3166list
|
||
|
/*128*/ { "[423]004894004894004", 0, "423004894004894004", "" }, // iso3166list
|
||
|
/*129*/ { "[423]004894004894004894", ZINT_ERROR_INVALID_DATA, "", "259: Invalid data length for AI (423)" }, // iso3166list
|
||
|
/*130*/ { "[423]123894004894004894", ZINT_ERROR_INVALID_DATA, "", "259: Invalid data length for AI (423)" }, // iso3166list
|
||
|
/*131*/ { "[423]A04894004894004894", ZINT_ERROR_INVALID_DATA, "", "259: Invalid data length for AI (423)" }, // iso3166list
|
||
|
/*132*/ { "[423]00489400489400489", ZINT_ERROR_INVALID_DATA, "", "259: Invalid data length for AI (423)" }, // iso3166list
|
||
|
/*133*/ { "[423]0048940048940048", ZINT_ERROR_INVALID_DATA, "", "259: Invalid data length for AI (423)" }, // iso3166list
|
||
|
/*134*/ { "[423]00489400489400", ZINT_WARN_NONCOMPLIANT, "42300489400489400", "259: Invalid data length for AI (423)" }, // iso3166list
|
||
|
/*135*/ { "[423]0048940048940", ZINT_WARN_NONCOMPLIANT, "4230048940048940", "259: Invalid data length for AI (423)" }, // iso3166list
|
||
|
/*136*/ { "[423]00489400489", ZINT_WARN_NONCOMPLIANT, "42300489400489", "259: Invalid data length for AI (423)" }, // iso3166list
|
||
|
/*137*/ { "[423]0048940048", ZINT_WARN_NONCOMPLIANT, "4230048940048", "259: Invalid data length for AI (423)" }, // iso3166list
|
||
|
/*138*/ { "[423]00489400", ZINT_WARN_NONCOMPLIANT, "42300489400", "259: Invalid data length for AI (423)" }, // iso3166list
|
||
|
/*139*/ { "[423]0048940", ZINT_WARN_NONCOMPLIANT, "4230048940", "259: Invalid data length for AI (423)" }, // iso3166list
|
||
|
/*140*/ { "[423]00489", ZINT_WARN_NONCOMPLIANT, "42300489", "259: Invalid data length for AI (423)" }, // iso3166list
|
||
|
/*141*/ { "[423]0048", ZINT_WARN_NONCOMPLIANT, "4230048", "259: Invalid data length for AI (423)" }, // iso3166list
|
||
|
/*142*/ { "[423]00", ZINT_ERROR_INVALID_DATA, "", "259: Invalid data length for AI (423)" }, // iso3166list
|
||
|
/*143*/ { "[423]0", ZINT_ERROR_INVALID_DATA, "", "259: Invalid data length for AI (423)" }, // iso3166list
|
||
|
/*144*/ { "[423]004894004894003", ZINT_WARN_NONCOMPLIANT, "423004894004894003", "261: AI (423) position 13: Unknown country code '003'" }, // iso3166list
|
||
|
/*145*/ { "[423]004894004895004", ZINT_WARN_NONCOMPLIANT, "423004894004895004", "261: AI (423) position 10: Unknown country code '895'" }, // iso3166list
|
||
|
/*146*/ { "[423]004894004999004", ZINT_WARN_NONCOMPLIANT, "423004894004999004", "261: AI (423) position 10: Unknown country code '999'" }, // iso3166list
|
||
|
/*147*/ { "[423]004894005894004", ZINT_WARN_NONCOMPLIANT, "423004894005894004", "261: AI (423) position 7: Unknown country code '005'" }, // iso3166list
|
||
|
/*148*/ { "[423]004893004894004", ZINT_WARN_NONCOMPLIANT, "423004893004894004", "261: AI (423) position 4: Unknown country code '893'" }, // iso3166list
|
||
|
/*149*/ { "[423]004999004894004", ZINT_WARN_NONCOMPLIANT, "423004999004894004", "261: AI (423) position 4: Unknown country code '999'" }, // iso3166list
|
||
|
/*150*/ { "[423]003894004894004", ZINT_WARN_NONCOMPLIANT, "423003894004894004", "261: AI (423) position 1: Unknown country code '003'" }, // iso3166list
|
||
|
/*151*/ { "[423]004894004433", ZINT_WARN_NONCOMPLIANT, "423004894004433", "261: AI (423) position 10: Unknown country code '433'" }, // iso3166list
|
||
|
/*152*/ { "[423]004894435894", ZINT_WARN_NONCOMPLIANT, "423004894435894", "261: AI (423) position 7: Unknown country code '435'" }, // iso3166list
|
||
|
/*153*/ { "[423]004433004894", ZINT_WARN_NONCOMPLIANT, "423004433004894", "261: AI (423) position 4: Unknown country code '433'" }, // iso3166list
|
||
|
/*154*/ { "[423]432894004894", ZINT_WARN_NONCOMPLIANT, "423432894004894", "261: AI (423) position 1: Unknown country code '432'" }, // iso3166list
|
||
|
/*155*/ { "[423]004894003", ZINT_WARN_NONCOMPLIANT, "423004894003", "261: AI (423) position 7: Unknown country code '003'" }, // iso3166list
|
||
|
/*156*/ { "[423]004895004", ZINT_WARN_NONCOMPLIANT, "423004895004", "261: AI (423) position 4: Unknown country code '895'" }, // iso3166list
|
||
|
/*157*/ { "[423]004999004", ZINT_WARN_NONCOMPLIANT, "423004999004", "261: AI (423) position 4: Unknown country code '999'" }, // iso3166list
|
||
|
/*158*/ { "[423]003894004", ZINT_WARN_NONCOMPLIANT, "423003894004", "261: AI (423) position 1: Unknown country code '003'" }, // iso3166list
|
||
|
/*159*/ { "[423]004999", ZINT_WARN_NONCOMPLIANT, "423004999", "261: AI (423) position 4: Unknown country code '999'" }, // iso3166list
|
||
|
/*160*/ { "[423]000894", ZINT_WARN_NONCOMPLIANT, "423000894", "261: AI (423) position 1: Unknown country code '000'" }, // iso3166list
|
||
|
/*161*/ { "[423]003", ZINT_WARN_NONCOMPLIANT, "423003", "261: AI (423) position 1: Unknown country code '003'" }, // iso3166list
|
||
|
/*162*/ { "[7030]999A", 0, "7030999A", "" }, // iso3166999
|
||
|
/*163*/ { "[7030]894A", 0, "7030894A", "" }, // iso3166999
|
||
|
/*164*/ { "[7030]004A", 0, "7030004A", "" }, // iso3166999
|
||
|
/*165*/ { "[7030]004", ZINT_ERROR_INVALID_DATA, "", "259: Invalid data length for AI (7030)" }, // iso3166999
|
||
|
/*166*/ { "[7030]04", ZINT_ERROR_INVALID_DATA, "", "259: Invalid data length for AI (7030)" }, // iso3166999
|
||
|
/*167*/ { "[7030]001A", ZINT_WARN_NONCOMPLIANT, "7030001A", "261: AI (7030) position 1: Unknown country code '001'" }, // iso3166999
|
||
|
/*168*/ { "[7030]998A", ZINT_WARN_NONCOMPLIANT, "7030998A", "261: AI (7030) position 1: Unknown country code '998'" }, // iso3166999
|
||
|
/*169*/ { "[7030]998A", ZINT_WARN_NONCOMPLIANT, "7030998A", "261: AI (7030) position 1: Unknown country code '998'" }, // iso3166999
|
||
|
/*170*/ { "[4307]AD", 0, "4307AD", "" }, // iso3166alpha2
|
||
|
/*171*/ { "[4307]AC", ZINT_WARN_NONCOMPLIANT, "4307AC", "261: AI (4307) position 1: Unknown country code 'AC'" }, // iso3166alpha2
|
||
|
/*172*/ { "[3910]0081", 0, "39100081", "" }, // iso4217
|
||
|
/*173*/ { "[3910]9991", 0, "39109991", "" }, // iso4217
|
||
|
/*174*/ { "[3910]9971", 0, "39109971", "" }, // iso4217
|
||
|
/*175*/ { "[3910]01", ZINT_ERROR_INVALID_DATA, "", "259: Invalid data length for AI (3910)" }, // iso4217
|
||
|
/*176*/ { "[3910]001", ZINT_ERROR_INVALID_DATA, "", "259: Invalid data length for AI (3910)" }, // iso4217
|
||
|
/*177*/ { "[3910]9981", ZINT_WARN_NONCOMPLIANT, "39109981", "261: AI (3910) position 1: Unknown currency code '998'" }, // iso4217
|
||
|
/*178*/ { "[3910]0041", ZINT_WARN_NONCOMPLIANT, "39100041", "261: AI (3910) position 1: Unknown currency code '004'" }, // iso4217
|
||
|
/*179*/ { "[3910]8941", ZINT_WARN_NONCOMPLIANT, "39108941", "261: AI (3910) position 1: Unknown currency code '894'" }, // iso4217
|
||
|
/*180*/ { "[4300]%12", 0, "4300%12", "" }, // pcenc
|
||
|
/*181*/ { "[4300]%1", ZINT_WARN_NONCOMPLIANT, "4300%1", "261: AI (4300) position 1: Invalid % escape" }, // pcenc
|
||
|
/*182*/ { "[4300]%", ZINT_WARN_NONCOMPLIANT, "4300%", "261: AI (4300) position 1: Invalid % escape" }, // pcenc
|
||
|
/*183*/ { "[4300]12%1212", 0, "430012%1212", "" }, // pcenc
|
||
|
/*184*/ { "[4300]12%1G12", ZINT_WARN_NONCOMPLIANT, "430012%1G12", "261: AI (4300) position 5: Invalid character for percent encoding" }, // pcenc
|
||
|
/*185*/ { "[4308]ABCDEFGHIJKLMNOPQRSTUVWXYZ%+12", 0, "4308ABCDEFGHIJKLMNOPQRSTUVWXYZ%+12", "" }, // no pcenc
|
||
|
/*186*/ { "[4308]ABCDEFGHIJKLMNOPQRSTUVWXYZ%+123", ZINT_ERROR_INVALID_DATA, "", "259: Invalid data length for AI (4308)" }, // no pcenc
|
||
|
/*187*/ { "[4321]1", 0, "43211", "" }, // yesno
|
||
|
/*188*/ { "[4321]0", 0, "43210", "" }, // yesno
|
||
|
/*189*/ { "[4321]2", ZINT_WARN_NONCOMPLIANT, "43212", "261: AI (4321) position 1: Neither 0 nor 1 for yes or no" }, // yesno
|
||
|
/*190*/ { "[4321]9", ZINT_WARN_NONCOMPLIANT, "43219", "261: AI (4321) position 1: Neither 0 nor 1 for yes or no" }, // yesno
|
||
|
/*191*/ { "[7040]1234", 0, "70401234", "" }, // importeridx
|
||
|
/*192*/ { "[7040]123A", 0, "7040123A", "" }, // importeridx
|
||
|
/*193*/ { "[7040]123Z", 0, "7040123Z", "" }, // importeridx
|
||
|
/*194*/ { "[7040]123a", 0, "7040123a", "" }, // importeridx
|
||
|
/*195*/ { "[7040]123z", 0, "7040123z", "" }, // importeridx
|
||
|
/*196*/ { "[7040]123-", 0, "7040123-", "" }, // importeridx
|
||
|
/*197*/ { "[7040]123_", 0, "7040123_", "" }, // importeridx
|
||
|
/*198*/ { "[7040]123!", ZINT_WARN_NONCOMPLIANT, "7040123!", "261: AI (7040) position 4: Invalid importer index '!'" }, // importeridx
|
||
|
/*199*/ { "[7040]123/", ZINT_WARN_NONCOMPLIANT, "7040123/", "261: AI (7040) position 4: Invalid importer index '/'" }, // importeridx
|
||
|
/*200*/ { "[7040]123:", ZINT_WARN_NONCOMPLIANT, "7040123:", "261: AI (7040) position 4: Invalid importer index ':'" }, // importeridx
|
||
|
/*201*/ { "[7040]123?", ZINT_WARN_NONCOMPLIANT, "7040123?", "261: AI (7040) position 4: Invalid importer index '?'" }, // importeridx
|
||
|
/*202*/ { "[8001]12341234512311", 0, "800112341234512311", "" }, // nonzero
|
||
|
/*203*/ { "[8001]00010000100100", 0, "800100010000100100", "" }, // nonzero
|
||
|
/*204*/ { "[8001]00001234512311", ZINT_WARN_NONCOMPLIANT, "800100001234512311", "261: AI (8001) position 1: Zero not permitted" }, // nonzero
|
||
|
/*205*/ { "[8001]12340000012311", ZINT_WARN_NONCOMPLIANT, "800112340000012311", "261: AI (8001) position 5: Zero not permitted" }, // nonzero
|
||
|
/*206*/ { "[8001]00010000100011", ZINT_WARN_NONCOMPLIANT, "800100010000100011", "261: AI (8001) position 10: Zero not permitted" }, // nonzero
|
||
|
/*207*/ { "[8001]00010000100101", 0, "800100010000100101", "" }, // winding
|
||
|
/*208*/ { "[8001]00010000100111", 0, "800100010000100111", "" }, // winding
|
||
|
/*209*/ { "[8001]00010000100191", 0, "800100010000100191", "" }, // winding
|
||
|
/*210*/ { "[8001]00010000100121", ZINT_WARN_NONCOMPLIANT, "800100010000100121", "261: AI (8001) position 13: Invalid winding direction '2'" }, // winding
|
||
|
/*211*/ { "[8001]00010000100131", ZINT_WARN_NONCOMPLIANT, "800100010000100131", "261: AI (8001) position 13: Invalid winding direction '3'" }, // winding
|
||
|
/*212*/ { "[8001]00010000100171", ZINT_WARN_NONCOMPLIANT, "800100010000100171", "261: AI (8001) position 13: Invalid winding direction '7'" }, // winding
|
||
|
/*213*/ { "[8001]00010000100181", ZINT_WARN_NONCOMPLIANT, "800100010000100181", "261: AI (8001) position 13: Invalid winding direction '8'" }, // winding
|
||
|
/*214*/ { "[8003]01234567890128", 0, "800301234567890128", "" }, // zero
|
||
|
/*215*/ { "[8003]11234567890128", ZINT_WARN_NONCOMPLIANT, "800311234567890128", "261: AI (8003) position 1: Zero is required" }, // zero
|
||
|
/*216*/ { "[8003]91234567890128", ZINT_WARN_NONCOMPLIANT, "800391234567890128", "261: AI (8003) position 1: Zero is required" }, // zero
|
||
|
/*217*/ { "[8006]123456789012310101", 0, "8006123456789012310101", "" }, // pieceoftotal
|
||
|
/*218*/ { "[8006]123456789012310199", 0, "8006123456789012310199", "" }, // pieceoftotal
|
||
|
/*219*/ { "[8006]123456789012319999", 0, "8006123456789012319999", "" }, // pieceoftotal
|
||
|
/*220*/ { "[8006]123456789012310001", ZINT_WARN_NONCOMPLIANT, "8006123456789012310001", "261: AI (8006) position 15: Piece number cannot be zero" }, // pieceoftotal
|
||
|
/*221*/ { "[8006]123456789012310100", ZINT_WARN_NONCOMPLIANT, "8006123456789012310100", "261: AI (8006) position 15: Total number cannot be zero" }, // pieceoftotal
|
||
|
/*222*/ { "[8006]123456789012310201", ZINT_WARN_NONCOMPLIANT, "8006123456789012310201", "261: AI (8006) position 15: Piece number '02' exceeds total '01'" }, // pieceoftotal
|
||
|
/*223*/ { "[8006]123456789012319998", ZINT_WARN_NONCOMPLIANT, "8006123456789012319998", "261: AI (8006) position 15: Piece number '99' exceeds total '98'" }, // pieceoftotal
|
||
|
/*224*/ { "[8007]GB82WEST12345698765432", 0, "8007GB82WEST12345698765432", "" }, // iban
|
||
|
/*225*/ { "[8007]GB83WEST12345698765432", ZINT_WARN_NONCOMPLIANT, "8007GB83WEST12345698765432", "261: AI (8007) position 3: Bad IBAN checksum '83', expected '82'" }, // iban
|
||
|
/*226*/ { "[8007]BE71096123456769", 0, "8007BE71096123456769", "" }, // iban
|
||
|
/*227*/ { "[8007]BE71096123456760", ZINT_WARN_NONCOMPLIANT, "8007BE71096123456760", "261: AI (8007) position 3: Bad IBAN checksum '71', expected '23'" }, // iban
|
||
|
/*228*/ { "[8007]BE01096123456760", ZINT_WARN_NONCOMPLIANT, "8007BE01096123456760", "261: AI (8007) position 3: Bad IBAN checksum '01', expected '23'" }, // iban
|
||
|
/*229*/ { "[8007]BE00096123456760", ZINT_WARN_NONCOMPLIANT, "8007BE00096123456760", "261: AI (8007) position 3: Bad IBAN checksum '00', expected '23'" }, // iban
|
||
|
/*230*/ { "[8007]LC14BOSL123456789012345678901234", 0, "8007LC14BOSL123456789012345678901234", "" }, // iban
|
||
|
/*231*/ { "[8007]LC14BOSL123456789012345678901230", ZINT_WARN_NONCOMPLIANT, "8007LC14BOSL123456789012345678901230", "261: AI (8007) position 3: Bad IBAN checksum '14', expected '25'" }, // iban
|
||
|
/*232*/ { "[8007]A114BOSL123456789012345678901230", ZINT_WARN_NONCOMPLIANT, "8007A114BOSL123456789012345678901230", "261: AI (8007) position 1: Non-alphabetic IBAN country code 'A1'" }, // iban
|
||
|
/*233*/ { "[8007]1A14BOSL123456789012345678901230", ZINT_WARN_NONCOMPLIANT, "80071A14BOSL123456789012345678901230", "261: AI (8007) position 1: Non-alphabetic IBAN country code '1A'" }, // iban
|
||
|
/*234*/ { "[8007]AA14BOSL123456789012345678901230", ZINT_WARN_NONCOMPLIANT, "8007AA14BOSL123456789012345678901230", "261: AI (8007) position 1: Invalid IBAN country code 'AA'" }, // iban
|
||
|
/*235*/ { "[8007]ZZ14BOSL123456789012345678901230", ZINT_WARN_NONCOMPLIANT, "8007ZZ14BOSL123456789012345678901230", "261: AI (8007) position 1: Invalid IBAN country code 'ZZ'" }, // iban
|
||
|
/*236*/ { "[8007]ZW33BOSL123456789012345678901230", 0, "8007ZW33BOSL123456789012345678901230", "" }, // iban
|
||
|
/*237*/ { "[8007]ZWA3BOSL123456789012345678901230", ZINT_WARN_NONCOMPLIANT, "8007ZWA3BOSL123456789012345678901230", "261: AI (8007) position 3: Non-numeric IBAN checksum 'A3'" }, // iban
|
||
|
/*238*/ { "[8007]ZW3ABOSL123456789012345678901230", ZINT_WARN_NONCOMPLIANT, "8007ZW3ABOSL123456789012345678901230", "261: AI (8007) position 3: Non-numeric IBAN checksum '3A'" }, // iban
|
||
|
/*239*/ { "[8007]ZW33bOSL123456789012345678901230", ZINT_WARN_NONCOMPLIANT, "8007ZW33bOSL123456789012345678901230", "261: AI (8007) position 5: Invalid IBAN character 'b'" }, // iban
|
||
|
/*240*/ { "[8007]GB98", ZINT_WARN_NONCOMPLIANT, "8007GB98", "259: Invalid data length for AI (8007)" }, // iban
|
||
|
/*241*/ { "[8007]FR7630006000011234567890189", 0, "8007FR7630006000011234567890189", "" }, // iban
|
||
|
/*242*/ { "[8007]DE91100000000123456789", 0, "8007DE91100000000123456789", "" }, // iban
|
||
|
/*243*/ { "[8007]GR9608100010000001234567890", 0, "8007GR9608100010000001234567890", "" }, // iban
|
||
|
/*244*/ { "[8007]MU43BOMM0101123456789101000MUR", 0, "8007MU43BOMM0101123456789101000MUR", "" }, // iban
|
||
|
/*245*/ { "[8007]PL10105000997603123456789123", 0, "8007PL10105000997603123456789123", "" }, // iban
|
||
|
/*246*/ { "[8007]RO09BCYP0000001234567890", 0, "8007RO09BCYP0000001234567890", "" }, // iban
|
||
|
/*247*/ { "[8007]SA4420000001234567891234", 0, "8007SA4420000001234567891234", "" }, // iban
|
||
|
/*248*/ { "[8007]ES7921000813610123456789", 0, "8007ES7921000813610123456789", "" }, // iban
|
||
|
/*249*/ { "[8007]CH5604835012345678009", 0, "8007CH5604835012345678009", "" }, // iban
|
||
|
/*250*/ { "[8007]GB98MIDL07009312345678", 0, "8007GB98MIDL07009312345678", "" }, // iban
|
||
|
/*251*/ { "[8011]1", 0, "80111", "" }, // nozeroprefix
|
||
|
/*252*/ { "[8011]11", 0, "801111", "" }, // nozeroprefix
|
||
|
/*253*/ { "[8011]0", 0, "80110", "" }, // nozeroprefix
|
||
|
/*254*/ { "[8011]01", ZINT_WARN_NONCOMPLIANT, "801101", "261: AI (8011) position 1: Zero prefix is not permitted" }, // nozeroprefix
|
||
|
/*255*/ { "[8110]106141416543213150110120", 0, "8110106141416543213150110120", "" }, // couponcode (first part of NACAG Appendix C: Example 1 - see test_rss.c test_examples)
|
||
|
/*256*/ { "[8110]012345612345610104123", 0, "8110012345612345610104123", "" }, // couponcode
|
||
|
/*257*/ { "[8110]01234561234561010412", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412", "259: Invalid data length for AI (8110)" }, // couponcode
|
||
|
/*258*/ { "[8110]12345678901234567890", ZINT_WARN_NONCOMPLIANT, "811012345678901234567890", "259: Invalid data length for AI (8110)" }, // couponcode
|
||
|
/*259*/ { "[8110]712345612345610104123", ZINT_WARN_NONCOMPLIANT, "8110712345612345610104123", "261: AI (8110) position 1: Invalid Primary GS1 Co. Prefix VLI '7'" }, // couponcode
|
||
|
/*260*/ { "[8110]A12345612345610104123", ZINT_WARN_NONCOMPLIANT, "8110A12345612345610104123", "261: AI (8110) position 1: Non-numeric Primary GS1 Co. Prefix VLI 'A'" }, // couponcode
|
||
|
/*261*/ { "[8110]012345A12345610104123", ZINT_WARN_NONCOMPLIANT, "8110012345A12345610104123", "261: AI (8110) position 7: Non-numeric Primary GS1 Co. Prefix 'A'" }, // couponcode
|
||
|
/*262*/ { "[8110]012345612345A10104123", ZINT_WARN_NONCOMPLIANT, "8110012345612345A10104123", "261: AI (8110) position 8: Non-numeric Offer Code" }, // couponcode
|
||
|
/*263*/ { "[8110]012345612345600104123", ZINT_WARN_NONCOMPLIANT, "8110012345612345600104123", "261: AI (8110) position 14: Invalid Save Value VLI '0'" }, // couponcode
|
||
|
/*264*/ { "[8110]012345612345660104123", ZINT_WARN_NONCOMPLIANT, "8110012345612345660104123", "261: AI (8110) position 14: Invalid Save Value VLI '6'" }, // couponcode
|
||
|
/*265*/ { "[8110]01234561234561A104123", ZINT_WARN_NONCOMPLIANT, "811001234561234561A104123", "261: AI (8110) position 15: Non-numeric Save Value 'A'" }, // couponcode
|
||
|
/*266*/ { "[8110]012345612345610004123", ZINT_WARN_NONCOMPLIANT, "8110012345612345610004123", "261: AI (8110) position 16: Invalid Primary Purch. Req. VLI '0'" }, // couponcode
|
||
|
/*267*/ { "[8110]012345612345610604123", ZINT_WARN_NONCOMPLIANT, "8110012345612345610604123", "261: AI (8110) position 16: Invalid Primary Purch. Req. VLI '6'" }, // couponcode
|
||
|
/*268*/ { "[8110]0123456123456101A4123", ZINT_WARN_NONCOMPLIANT, "81100123456123456101A4123", "261: AI (8110) position 17: Non-numeric Primary Purch. Req. 'A'" }, // couponcode
|
||
|
/*269*/ { "[8110]012345612345621251234", ZINT_WARN_NONCOMPLIANT, "8110012345612345621251234", "261: AI (8110) position 18: Primary Purch. Req. incomplete" }, // couponcode
|
||
|
/*270*/ { "[8110]01234561234561010A123", ZINT_WARN_NONCOMPLIANT, "811001234561234561010A123", "261: AI (8110) position 18: Non-numeric Primary Purch. Req. Code" }, // couponcode
|
||
|
/*271*/ { "[8110]012345612345610106123", ZINT_WARN_NONCOMPLIANT, "8110012345612345610106123", "261: AI (8110) position 18: Invalid Primary Purch. Req. Code '6'" }, // couponcode
|
||
|
/*272*/ { "[8110]012345612345610212412", ZINT_WARN_NONCOMPLIANT, "8110012345612345610212412", "261: AI (8110) position 20: Primary Purch. Family Code incomplete" }, // couponcode
|
||
|
/*273*/ { "[8110]0123456123456103123412", ZINT_WARN_NONCOMPLIANT, "81100123456123456103123412", "261: AI (8110) position 21: Primary Purch. Family Code incomplete" }, // couponcode
|
||
|
/*274*/ { "[8110]0123456123456103123412A", ZINT_WARN_NONCOMPLIANT, "81100123456123456103123412A", "261: AI (8110) position 21: Non-numeric Primary Purch. Family Code" }, // couponcode
|
||
|
/*275*/ { "[8110]01234561234561031234123", 0, "811001234561234561031234123", "" }, // couponcode
|
||
|
/*276*/ { "[8110]612345678901212345651", ZINT_WARN_NONCOMPLIANT, "8110612345678901212345651", "261: AI (8110) position 21: Save Value incomplete" }, // couponcode
|
||
|
/*277*/ { "[8110]6123456789012123456512345", ZINT_WARN_NONCOMPLIANT, "81106123456789012123456512345", "261: AI (8110) position 26: Primary Purch. Req. VLI missing" }, // couponcode
|
||
|
/*278*/ { "[8110]61234567890121234565123455123454123", 0, "811061234567890121234565123455123454123", "" }, // couponcode
|
||
|
/*279*/ { "[8110]61234567890121234565123455123454123A", ZINT_WARN_NONCOMPLIANT, "811061234567890121234565123455123454123A", "261: AI (8110) position 36: Non-numeric Data Field 'A'" }, // couponcode
|
||
|
/*280*/ { "[8110]612345678901212345651234551234541237", ZINT_WARN_NONCOMPLIANT, "8110612345678901212345651234551234541237", "261: AI (8110) position 36: Invalid Data Field '7'" }, // couponcode
|
||
|
/*281*/ { "[8110]612345678901212345651234551234541238", ZINT_WARN_NONCOMPLIANT, "8110612345678901212345651234551234541238", "261: AI (8110) position 36: Invalid Data Field '8'" }, // couponcode
|
||
|
/*282*/ { "[8110]0123456123456101041231", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041231", "261: AI (8110) position 23: Add. Purch. Rules Code incomplete" }, // couponcode
|
||
|
/*283*/ { "[8110]0123456123456101041231A", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041231A", "261: AI (8110) position 23: Non-numeric Add. Purch. Rules Code" }, // couponcode
|
||
|
/*284*/ { "[8110]01234561234561010412314", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412314", "261: AI (8110) position 23: Invalid Add. Purch. Rules Code '4'" }, // couponcode
|
||
|
/*285*/ { "[8110]01234561234561010412313", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412313", "261: AI (8110) position 24: 2nd Purch. Req. VLI missing" }, // couponcode
|
||
|
/*286*/ { "[8110]01234561234561010412313A", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412313A", "261: AI (8110) position 24: Non-numeric 2nd Purch. Req. VLI 'A'" }, // couponcode
|
||
|
/*287*/ { "[8110]012345612345610104123130", ZINT_WARN_NONCOMPLIANT, "8110012345612345610104123130", "261: AI (8110) position 24: Invalid 2nd Purch. Req. VLI '0'" }, // couponcode
|
||
|
/*288*/ { "[8110]012345612345610104123131", ZINT_WARN_NONCOMPLIANT, "8110012345612345610104123131", "261: AI (8110) position 25: 2nd Purch. Req. incomplete" }, // couponcode
|
||
|
/*289*/ { "[8110]012345612345610104123131A", ZINT_WARN_NONCOMPLIANT, "8110012345612345610104123131A", "261: AI (8110) position 25: Non-numeric 2nd Purch. Req. 'A'" }, // couponcode
|
||
|
/*290*/ { "[8110]0123456123456101041231310", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041231310", "261: AI (8110) position 26: 2nd Purch. Req. Code incomplete" }, // couponcode
|
||
|
/*291*/ { "[8110]0123456123456101041231310A", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041231310A", "261: AI (8110) position 26: Non-numeric 2nd Purch. Req. Code" }, // couponcode
|
||
|
/*292*/ { "[8110]01234561234561010412313108", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412313108", "261: AI (8110) position 26: Invalid 2nd Purch. Req. Code '8'" }, // couponcode
|
||
|
/*293*/ { "[8110]01234561234561010412313100", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412313100", "261: AI (8110) position 27: 2nd Purch. Family Code incomplete" }, // couponcode
|
||
|
/*294*/ { "[8110]01234561234561010412313100123", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412313100123", "261: AI (8110) position 30: 2nd Purch. GS1 Co. Prefix VLI missing" }, // couponcode
|
||
|
/*295*/ { "[8110]01234561234561010412313100123A", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412313100123A", "261: AI (8110) position 30: Non-numeric 2nd Purch. GS1 Co. Prefix VLI 'A'" }, // couponcode
|
||
|
/*296*/ { "[8110]012345612345610104123131001239", 0, "8110012345612345610104123131001239", "" }, // couponcode
|
||
|
/*297*/ { "[8110]01234561234561010412313100123012345", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412313100123012345", "261: AI (8110) position 31: 2nd Purch. GS1 Co. Prefix incomplete" }, // couponcode
|
||
|
/*298*/ { "[8110]0123456123456101041231310012311234567", 0, "81100123456123456101041231310012311234567", "" }, // couponcode
|
||
|
/*299*/ { "[8110]0123456123456101041232", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041232", "261: AI (8110) position 23: 3rd Purch. Req. VLI missing" }, // couponcode
|
||
|
/*300*/ { "[8110]0123456123456101041232A", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041232A", "261: AI (8110) position 23: Non-numeric 3rd Purch. Req. VLI 'A'" }, // couponcode
|
||
|
/*301*/ { "[8110]01234561234561010412326", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412326", "261: AI (8110) position 23: Invalid 3rd Purch. Req. VLI '6'" }, // couponcode
|
||
|
/*302*/ { "[8110]01234561234561010412321", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412321", "261: AI (8110) position 24: 3rd Purch. Req. incomplete" }, // couponcode
|
||
|
/*303*/ { "[8110]012345612345610104123210", ZINT_WARN_NONCOMPLIANT, "8110012345612345610104123210", "261: AI (8110) position 25: 3rd Purch. Req. Code incomplete" }, // couponcode
|
||
|
/*304*/ { "[8110]0123456123456101041232105", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041232105", "261: AI (8110) position 25: Invalid 3rd Purch. Req. Code '5'" }, // couponcode
|
||
|
/*305*/ { "[8110]0123456123456101041232104", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041232104", "261: AI (8110) position 26: 3rd Purch. Family Code incomplete" }, // couponcode
|
||
|
/*306*/ { "[8110]012345612345610104123210412A", ZINT_WARN_NONCOMPLIANT, "8110012345612345610104123210412A", "261: AI (8110) position 26: Non-numeric 3rd Purch. Family Code" }, // couponcode
|
||
|
/*307*/ { "[8110]0123456123456101041232104123", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041232104123", "261: AI (8110) position 29: 3rd Purch. GS1 Co. Prefix VLI missing" }, // couponcode
|
||
|
/*308*/ { "[8110]01234561234561010412321041230", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412321041230", "261: AI (8110) position 30: 3rd Purch. GS1 Co. Prefix incomplete" }, // couponcode
|
||
|
/*309*/ { "[8110]0123456123456101041232104123A", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041232104123A", "261: AI (8110) position 29: Non-numeric 3rd Purch. GS1 Co. Prefix VLI 'A'" }, // couponcode
|
||
|
/*310*/ { "[8110]0123456123456101041232104123012345", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041232104123012345", "261: AI (8110) position 30: 3rd Purch. GS1 Co. Prefix incomplete" }, // couponcode
|
||
|
/*311*/ { "[8110]0123456123456101041232104123012345A", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041232104123012345A", "261: AI (8110) position 35: Non-numeric 3rd Purch. GS1 Co. Prefix 'A'" }, // couponcode
|
||
|
/*312*/ { "[8110]01234561234561010412321041230123456", 0, "811001234561234561010412321041230123456", "" }, // couponcode
|
||
|
/*313*/ { "[8110]0123456123456101041233", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041233", "261: AI (8110) position 23: Expiration Date incomplete" }, // couponcode
|
||
|
/*314*/ { "[8110]01234561234561010412332012", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412332012", "261: AI (8110) position 23: Expiration Date incomplete" }, // couponcode
|
||
|
/*315*/ { "[8110]012345612345610104123320123A", ZINT_WARN_NONCOMPLIANT, "8110012345612345610104123320123A", "261: AI (8110) position 23: Non-numeric Expiration Date" }, // couponcode
|
||
|
/*316*/ { "[8110]0123456123456101041233201232", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041233201232", "261: AI (8110) position 27: Invalid day '32'" }, // couponcode
|
||
|
/*317*/ { "[8110]0123456123456101041233200031", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041233200031", "261: AI (8110) position 25: Invalid month '00'" }, // couponcode
|
||
|
/*318*/ { "[8110]0123456123456101041233201231", 0, "81100123456123456101041233201231", "" }, // couponcode
|
||
|
/*319*/ { "[8110]0123456123456101041234", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041234", "261: AI (8110) position 23: Start Date incomplete" }, // couponcode
|
||
|
/*320*/ { "[8110]01234561234561010412342012", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412342012", "261: AI (8110) position 23: Start Date incomplete" }, // couponcode
|
||
|
/*321*/ { "[8110]012345612345610104123420123A", ZINT_WARN_NONCOMPLIANT, "8110012345612345610104123420123A", "261: AI (8110) position 23: Non-numeric Start Date" }, // couponcode
|
||
|
/*322*/ { "[8110]0123456123456101041234200230", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041234200230", "261: AI (8110) position 27: Invalid day '30'" }, // couponcode
|
||
|
/*323*/ { "[8110]0123456123456101041234201329", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041234201329", "261: AI (8110) position 25: Invalid month '13'" }, // couponcode
|
||
|
/*324*/ { "[8110]0123456123456101041234200229", 0, "81100123456123456101041234200229", "" }, // couponcode
|
||
|
/*325*/ { "[8110]0123456123456101041235", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041235", "261: AI (8110) position 23: Serial Number VLI missing" }, // couponcode
|
||
|
/*326*/ { "[8110]0123456123456101041235A", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041235A", "261: AI (8110) position 23: Non-numeric Serial Number VLI 'A'" }, // couponcode
|
||
|
/*327*/ { "[8110]01234561234561010412350", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412350", "261: AI (8110) position 24: Serial Number incomplete" }, // couponcode
|
||
|
/*328*/ { "[8110]0123456123456101041235012345", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041235012345", "261: AI (8110) position 24: Serial Number incomplete" }, // couponcode
|
||
|
/*329*/ { "[8110]0123456123456101041235912345678901234", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041235912345678901234", "261: AI (8110) position 24: Serial Number incomplete" }, // couponcode
|
||
|
/*330*/ { "[8110]0123456123456101041235912345678901234A", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041235912345678901234A", "261: AI (8110) position 38: Non-numeric Serial Number 'A'" }, // couponcode
|
||
|
/*331*/ { "[8110]01234561234561010412359123456789012345", 0, "811001234561234561010412359123456789012345", "" }, // couponcode
|
||
|
/*332*/ { "[8110]0123456123456101041236", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041236", "261: AI (8110) position 23: Retailer ID VLI missing" }, // couponcode
|
||
|
/*333*/ { "[8110]0123456123456101041236A", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041236A", "261: AI (8110) position 23: Non-numeric Retailer ID VLI 'A'" }, // couponcode
|
||
|
/*334*/ { "[8110]01234561234561010412360", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412360", "261: AI (8110) position 23: Invalid Retailer ID VLI '0'" }, // couponcode
|
||
|
/*335*/ { "[8110]01234561234561010412368", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412368", "261: AI (8110) position 23: Invalid Retailer ID VLI '8'" }, // couponcode
|
||
|
/*336*/ { "[8110]01234561234561010412361", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412361", "261: AI (8110) position 24: Retailer ID incomplete" }, // couponcode
|
||
|
/*337*/ { "[8110]01234561234561010412361123456", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412361123456", "261: AI (8110) position 24: Retailer ID incomplete" }, // couponcode
|
||
|
/*338*/ { "[8110]01234561234561010412361123456A", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412361123456A", "261: AI (8110) position 30: Non-numeric Retailer ID 'A'" }, // couponcode
|
||
|
/*339*/ { "[8110]012345612345610104123671234567890123", 0, "8110012345612345610104123671234567890123", "" }, // couponcode
|
||
|
/*340*/ { "[8110]0123456123456101041239", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041239", "261: AI (8110) position 23: Save Value Code incomplete" }, // couponcode
|
||
|
/*341*/ { "[8110]0123456123456101041239A", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041239A", "261: AI (8110) position 23: Non-numeric Save Value Code" }, // couponcode
|
||
|
/*342*/ { "[8110]01234561234561010412393", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412393", "261: AI (8110) position 23: Invalid Save Value Code '3'" }, // couponcode
|
||
|
/*343*/ { "[8110]01234561234561010412394", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412394", "261: AI (8110) position 23: Invalid Save Value Code '4'" }, // couponcode
|
||
|
/*344*/ { "[8110]01234561234561010412397", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412397", "261: AI (8110) position 23: Invalid Save Value Code '7'" }, // couponcode
|
||
|
/*345*/ { "[8110]01234561234561010412390", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412390", "261: AI (8110) position 24: Save Value Applies To incomplete" }, // couponcode
|
||
|
/*346*/ { "[8110]01234561234561010412390A", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412390A", "261: AI (8110) position 24: Non-numeric Save Value Applies To" }, // couponcode
|
||
|
/*347*/ { "[8110]012345612345610104123903", ZINT_WARN_NONCOMPLIANT, "8110012345612345610104123903", "261: AI (8110) position 24: Invalid Save Value Applies To '3'" }, // couponcode
|
||
|
/*348*/ { "[8110]012345612345610104123902", ZINT_WARN_NONCOMPLIANT, "8110012345612345610104123902", "261: AI (8110) position 25: Store Coupon Flag incomplete" }, // couponcode
|
||
|
/*349*/ { "[8110]012345612345610104123902A", ZINT_WARN_NONCOMPLIANT, "8110012345612345610104123902A", "261: AI (8110) position 25: Non-numeric Store Coupon Flag" }, // couponcode
|
||
|
/*350*/ { "[8110]0123456123456101041239029", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041239029", "261: AI (8110) position 26: Don't Multiply Flag incomplete" }, // couponcode
|
||
|
/*351*/ { "[8110]0123456123456101041239029A", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041239029A", "261: AI (8110) position 26: Non-numeric Don't Multiply Flag" }, // couponcode
|
||
|
/*352*/ { "[8110]01234561234561010412390292", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412390292", "261: AI (8110) position 26: Invalid Don't Multiply Flag '2'" }, // couponcode
|
||
|
/*353*/ { "[8110]01234561234561010412390291", 0, "811001234561234561010412390291", "" }, // couponcode
|
||
|
/*354*/ { "[8110]177777776666663100120444101105551888888821109991222222232012314200601522345678961345678990000", ZINT_ERROR_INVALID_DATA, "", "259: Invalid data length for AI (8110)" }, // couponcode (example from GS1 AI (8112) Coupon Data Specifications Appendix A: AI (8110) vs AI (8112))
|
||
|
/*355*/ { "[8110]177777776666663100120444101105551888888821109991222222232012314200601", 0, "8110177777776666663100120444101105551888888821109991222222232012314200601", "" }, // couponcode
|
||
|
/*356*/ { "[8112]017777777666666223456789", 0, "8112017777777666666223456789", "" }, // couponposoffer (example from GS1 AI (8112) Coupon Data Specifications Appendix A: AI (8110) vs AI (8112))
|
||
|
/*357*/ { "[8112]001234561234560123456", 0, "8112001234561234560123456", "" }, // couponposoffer
|
||
|
/*358*/ { "[8112]00123456123456012345", ZINT_WARN_NONCOMPLIANT, "811200123456123456012345", "259: Invalid data length for AI (8112)" }, // couponposoffer
|
||
|
/*359*/ { "[8112]0012345612345601234561", ZINT_WARN_NONCOMPLIANT, "81120012345612345601234561", "261: AI (8112) position 22: Reserved trailing characters" }, // couponposoffer
|
||
|
/*360*/ { "[8112]061234567890121234569123456789012345", 0, "8112061234567890121234569123456789012345", "" }, // couponposoffer
|
||
|
/*361*/ { "[8112]0612345678901212345691234567890123456", ZINT_WARN_NONCOMPLIANT, "81120612345678901212345691234567890123456", "259: Invalid data length for AI (8112)" }, // couponposoffer
|
||
|
/*362*/ { "[8112]06123456789012123456912345678901234A", ZINT_WARN_NONCOMPLIANT, "811206123456789012123456912345678901234A", "261: AI (8112) position 36: Non-numeric Serial Number 'A'" }, // couponposoffer
|
||
|
/*363*/ { "[8112]06123456789012123456912345678901234", ZINT_WARN_NONCOMPLIANT, "811206123456789012123456912345678901234", "261: AI (8112) position 22: Serial Number incomplete" }, // couponposoffer
|
||
|
/*364*/ { "[8112]06123456789012123456812345678901234", 0, "811206123456789012123456812345678901234", "" }, // couponposoffer
|
||
|
/*365*/ { "[8112]0612345678901212345681234567890123", ZINT_WARN_NONCOMPLIANT, "81120612345678901212345681234567890123", "261: AI (8112) position 22: Serial Number incomplete" }, // couponposoffer
|
||
|
/*366*/ { "[8112]0612345678901212345A0123456", ZINT_WARN_NONCOMPLIANT, "81120612345678901212345A0123456", "261: AI (8112) position 15: Non-numeric Offer Code" }, // couponposoffer
|
||
|
/*367*/ { "[8112]0612345678901A1234560123456", ZINT_WARN_NONCOMPLIANT, "81120612345678901A1234560123456", "261: AI (8112) position 14: Non-numeric Coupon Funder ID 'A'" }, // couponposoffer
|
||
|
/*368*/ { "[8112]071234567890121234560123456", ZINT_WARN_NONCOMPLIANT, "8112071234567890121234560123456", "261: AI (8112) position 2: Invalid Coupon Funder ID VLI '7'" }, // couponposoffer
|
||
|
/*369*/ { "[8112]0A1234567890121234560123456", ZINT_WARN_NONCOMPLIANT, "81120A1234567890121234560123456", "261: AI (8112) position 2: Non-numeric Coupon Funder ID VLI 'A'" }, // couponposoffer
|
||
|
/*370*/ { "[8112]261234567890121234560123456", ZINT_WARN_NONCOMPLIANT, "8112261234567890121234560123456", "261: AI (8112) position 1: Coupon Format must be 0 or 1" }, // couponposoffer
|
||
|
/*371*/ { "[8112]A61234567890121234560123456", ZINT_WARN_NONCOMPLIANT, "8112A61234567890121234560123456", "261: AI (8112) position 1: Non-numeric Coupon Format" }, // couponposoffer
|
||
|
};
|
||
|
int data_size = ARRAY_SIZE(data);
|
||
|
int i, length, ret;
|
||
|
struct zint_symbol *symbol;
|
||
|
|
||
|
char reduced[1024];
|
||
|
|
||
|
testStart("test_gs1_lint");
|
||
|
|
||
|
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");
|
||
|
|
||
|
length = (int) strlen(data[i].data);
|
||
|
|
||
|
ret = gs1_verify(symbol, (unsigned char *) data[i].data, length, (unsigned char *) reduced);
|
||
|
assert_equal(ret, data[i].ret, "i:%d ret %d != %d (length %d \"%s\") (%s)\n", i, ret, data[i].ret, length, data[i].data, symbol->errtxt);
|
||
|
|
||
|
if (ret < ZINT_ERROR) {
|
||
|
assert_zero(strcmp(reduced, data[i].expected), "i:%d strcmp(%s, %s) != 0\n", i, reduced, data[i].expected);
|
||
|
}
|
||
|
assert_zero(strcmp(symbol->errtxt, data[i].expected_errtxt), "i:%d strcmp(%s, %s) != 0\n", i, symbol->errtxt, data[i].expected_errtxt);
|
||
|
|
||
|
ZBarcode_Delete(symbol);
|
||
|
}
|
||
|
|
||
|
testFinish();
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
* Check GS1_MODE for non-forced GS1 compliant symbologies (see gs1_compliant() in library.c)
|
||
|
*/
|
||
|
static void test_input_mode(int index, int debug) {
|
||
|
|
||
|
struct item {
|
||
|
int symbology;
|
||
|
char *data;
|
||
|
int input_mode;
|
||
|
int output_options;
|
||
|
int ret;
|
||
|
int compare_previous;
|
||
|
};
|
||
|
// s/\/\*[ 0-9]*\*\//\=printf("\/*%3d*\/", line(".") - line("'<"))
|
||
|
struct item data[] = {
|
||
|
/* 0*/ { BARCODE_AZTEC, "[01]12345678901231", GS1_MODE, -1 , 0, 0 },
|
||
|
/* 1*/ { BARCODE_AZTEC, "[01]12345678901231", GS1_MODE | ESCAPE_MODE, -1, 0, 1 },
|
||
|
/* 2*/ { BARCODE_AZTEC, "(01)12345678901231", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE, -1, 0, 1 },
|
||
|
/* 3*/ { BARCODE_AZTEC, "(01)12345678901234", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE, -1, ZINT_WARN_NONCOMPLIANT, 0 },
|
||
|
/* 4*/ { BARCODE_AZTEC, "(01)12345678901234", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE | GS1NOCHECK_MODE, -1, 0, 1 },
|
||
|
/* 5*/ { BARCODE_AZTEC, "(01)123456789012345", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE, -1, ZINT_ERROR_INVALID_DATA, 0 },
|
||
|
/* 6*/ { BARCODE_AZTEC, "(01)123456789012345", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE | GS1NOCHECK_MODE, -1, 0, 0 },
|
||
|
/* 7*/ { BARCODE_AZTEC, "(01)12345678901234A", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE, -1, ZINT_ERROR_INVALID_DATA, 0 },
|
||
|
/* 8*/ { BARCODE_AZTEC, "(01)12345678901234A", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE | GS1NOCHECK_MODE, -1, 0, 0 },
|
||
|
/* 9*/ { BARCODE_AZTEC, "(01)1234567890123A", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE, -1, ZINT_WARN_NONCOMPLIANT, 0 },
|
||
|
/* 10*/ { BARCODE_AZTEC, "(01)1234567890123A", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE | GS1NOCHECK_MODE, -1, 0, 0 },
|
||
|
/* 11*/ { BARCODE_AZTEC, "[01]1234567890123", GS1_MODE, -1, ZINT_ERROR_INVALID_DATA, 0 },
|
||
|
/* 12*/ { BARCODE_AZTEC, "[01]1234567890123", GS1_MODE | GS1NOCHECK_MODE, -1, 0, 0 },
|
||
|
/* 13*/ { BARCODE_AZTEC, "[01]12345678901231", GS1_MODE, READER_INIT, ZINT_ERROR_INVALID_OPTION, 0 },
|
||
|
/* 14*/ { BARCODE_AZTEC, "[01]12345678901231", GS1_MODE | ESCAPE_MODE, READER_INIT, ZINT_ERROR_INVALID_OPTION, 0 },
|
||
|
/* 15*/ { BARCODE_AZTEC, "1234", GS1_MODE, -1, ZINT_ERROR_INVALID_DATA, 0 },
|
||
|
/* 16*/ { BARCODE_AZTEC, "1234", GS1_MODE | ESCAPE_MODE, -1, ZINT_ERROR_INVALID_DATA, 0 },
|
||
|
/* 17*/ { BARCODE_AZTEC, "1234", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE | GS1NOCHECK_MODE, -1, ZINT_ERROR_INVALID_DATA, 0 }, // Must still begin with AI
|
||
|
/* 18*/ { BARCODE_CODABLOCKF, "[01]12345678901231", GS1_MODE, -1, ZINT_ERROR_INVALID_OPTION, 0 }, // Codablock-F does not support GS1
|
||
|
/* 19*/ { BARCODE_CODABLOCKF, "[01]12345678901231", GS1_MODE | ESCAPE_MODE, -1, ZINT_ERROR_INVALID_OPTION, 0 },
|
||
|
/* 20*/ { BARCODE_CODABLOCKF, "[01]12345678901231", GS1_MODE | ESCAPE_MODE | GS1NOCHECK_MODE, -1, ZINT_ERROR_INVALID_OPTION, 0 },
|
||
|
/* 21*/ { BARCODE_CODABLOCKF, "1234", GS1_MODE, -1, ZINT_ERROR_INVALID_OPTION, 0 },
|
||
|
/* 22*/ { BARCODE_CODABLOCKF, "1234", GS1_MODE | ESCAPE_MODE, -1, ZINT_ERROR_INVALID_OPTION, 0 },
|
||
|
/* 23*/ { BARCODE_CODEONE, "[01]12345678901231", GS1_MODE, -1, 0, 0 },
|
||
|
/* 24*/ { BARCODE_CODEONE, "[01]12345678901231", GS1_MODE | ESCAPE_MODE, -1, 0, 1 },
|
||
|
/* 25*/ { BARCODE_CODEONE, "(01)12345678901231", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE, -1, 0, 1 },
|
||
|
/* 26*/ { BARCODE_CODEONE, "(01)12345678901234", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE, -1, ZINT_WARN_NONCOMPLIANT, 0 },
|
||
|
/* 27*/ { BARCODE_CODEONE, "(01)12345678901234", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE | GS1NOCHECK_MODE, -1, 0, 1 },
|
||
|
/* 28*/ { BARCODE_CODEONE, "(01)123456789012345", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE, -1, ZINT_ERROR_INVALID_DATA, 0 },
|
||
|
/* 29*/ { BARCODE_CODEONE, "(01)123456789012345", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE | GS1NOCHECK_MODE, -1, 0, 0 },
|
||
|
/* 30*/ { BARCODE_CODEONE, "(01)12345678901234A", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE, -1, ZINT_ERROR_INVALID_DATA, 0 },
|
||
|
/* 31*/ { BARCODE_CODEONE, "(01)12345678901234A", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE | GS1NOCHECK_MODE, -1, 0, 0 },
|
||
|
/* 32*/ { BARCODE_CODEONE, "(01)1234567890123A", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE, -1, ZINT_WARN_NONCOMPLIANT, 0 },
|
||
|
/* 33*/ { BARCODE_CODEONE, "(01)1234567890123A", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE | GS1NOCHECK_MODE, -1, 0, 1 },
|
||
|
/* 34*/ { BARCODE_CODEONE, "[01]1234567890123", GS1_MODE, -1, ZINT_ERROR_INVALID_DATA, 0 },
|
||
|
/* 35*/ { BARCODE_CODEONE, "[01]1234567890123", GS1_MODE | GS1NOCHECK_MODE, -1, 0, 0 },
|
||
|
/* 36*/ { BARCODE_CODEONE, "1234", GS1_MODE, -1, ZINT_ERROR_INVALID_DATA, 0 },
|
||
|
/* 37*/ { BARCODE_CODEONE, "1234", GS1_MODE | ESCAPE_MODE, -1, ZINT_ERROR_INVALID_DATA, 0 },
|
||
|
/* 38*/ { BARCODE_CODE16K, "[01]12345678901231", GS1_MODE, -1, 0, 0 },
|
||
|
/* 39*/ { BARCODE_CODE16K, "[01]12345678901231", GS1_MODE | ESCAPE_MODE, -1, 0, 1 },
|
||
|
/* 40*/ { BARCODE_CODE16K, "(01)12345678901231", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE, -1, 0, 1 },
|
||
|
/* 41*/ { BARCODE_CODE16K, "(01)12345678901234", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE, -1, ZINT_WARN_NONCOMPLIANT, 0 },
|
||
|
/* 42*/ { BARCODE_CODE16K, "(01)12345678901234", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE | GS1NOCHECK_MODE, -1, 0, 1 },
|
||
|
/* 43*/ { BARCODE_CODE16K, "(01)123456789012345", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE, -1, ZINT_ERROR_INVALID_DATA, 0 },
|
||
|
/* 44*/ { BARCODE_CODE16K, "(01)123456789012345", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE | GS1NOCHECK_MODE, -1, 0, 0 },
|
||
|
/* 45*/ { BARCODE_CODE16K, "(01)12345678901234A", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE, -1, ZINT_ERROR_INVALID_DATA, 0 },
|
||
|
/* 46*/ { BARCODE_CODE16K, "(01)12345678901234A", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE | GS1NOCHECK_MODE, -1, 0, 0 },
|
||
|
/* 47*/ { BARCODE_CODE16K, "(01)1234567890123A", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE, -1, ZINT_WARN_NONCOMPLIANT, 0 },
|
||
|
/* 48*/ { BARCODE_CODE16K, "(01)1234567890123A", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE | GS1NOCHECK_MODE, -1, 0, 1 },
|
||
|
/* 49*/ { BARCODE_CODE16K, "[01]1234567890123", GS1_MODE, -1, ZINT_ERROR_INVALID_DATA, 0 },
|
||
|
/* 50*/ { BARCODE_CODE16K, "[01]1234567890123", GS1_MODE | GS1NOCHECK_MODE, -1, 0, 0 },
|
||
|
/* 51*/ { BARCODE_CODE16K, "[01]12345678901231", GS1_MODE, READER_INIT, ZINT_ERROR_INVALID_OPTION, 0 },
|
||
|
/* 52*/ { BARCODE_CODE16K, "[01]12345678901231", GS1_MODE | ESCAPE_MODE, READER_INIT, ZINT_ERROR_INVALID_OPTION, 0 },
|
||
|
/* 53*/ { BARCODE_CODE16K, "1234", GS1_MODE, -1, ZINT_ERROR_INVALID_DATA, 0 },
|
||
|
/* 54*/ { BARCODE_CODE16K, "1234", GS1_MODE | ESCAPE_MODE, -1, ZINT_ERROR_INVALID_DATA, 0 },
|
||
|
/* 55*/ { BARCODE_CODE49, "[01]12345678901231", GS1_MODE, -1, 0, 0 },
|
||
|
/* 56*/ { BARCODE_CODE49, "[01]12345678901231", GS1_MODE | ESCAPE_MODE, -1, 0, 1 },
|
||
|
/* 57*/ { BARCODE_CODE49, "(01)12345678901231", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE, -1, 0, 1 },
|
||
|
/* 58*/ { BARCODE_CODE49, "(01)12345678901234", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE, -1, ZINT_WARN_NONCOMPLIANT, 0 },
|
||
|
/* 59*/ { BARCODE_CODE49, "(01)12345678901234", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE | GS1NOCHECK_MODE, -1, 0, 1 },
|
||
|
/* 60*/ { BARCODE_CODE49, "(01)123456789012345", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE, -1, ZINT_ERROR_INVALID_DATA, 0 },
|
||
|
/* 61*/ { BARCODE_CODE49, "(01)123456789012345", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE | GS1NOCHECK_MODE, -1, 0, 0 },
|
||
|
/* 62*/ { BARCODE_CODE49, "(01)12345678901234A", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE, -1, ZINT_ERROR_INVALID_DATA, 0 },
|
||
|
/* 63*/ { BARCODE_CODE49, "(01)12345678901234A", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE | GS1NOCHECK_MODE, -1, 0, 0 },
|
||
|
/* 64*/ { BARCODE_CODE49, "(01)1234567890123A", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE, -1, ZINT_WARN_NONCOMPLIANT, 0 },
|
||
|
/* 65*/ { BARCODE_CODE49, "(01)1234567890123A", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE | GS1NOCHECK_MODE, -1, 0, 1 },
|
||
|
/* 66*/ { BARCODE_CODE49, "[01]1234567890123", GS1_MODE, -1, ZINT_ERROR_INVALID_DATA, 0 },
|
||
|
/* 67*/ { BARCODE_CODE49, "[01]1234567890123", GS1_MODE | GS1NOCHECK_MODE, -1, 0, 0 },
|
||
|
/* 68*/ { BARCODE_CODE49, "1234", GS1_MODE, -1, ZINT_ERROR_INVALID_DATA, 0 },
|
||
|
/* 69*/ { BARCODE_CODE49, "1234", GS1_MODE | ESCAPE_MODE, -1, ZINT_ERROR_INVALID_DATA, 0 },
|
||
|
/* 70*/ { BARCODE_DATAMATRIX, "[01]12345678901231", GS1_MODE, -1, 0, 0 },
|
||
|
/* 71*/ { BARCODE_DATAMATRIX, "[01]12345678901231", GS1_MODE | ESCAPE_MODE, -1, 0, 1 },
|
||
|
/* 72*/ { BARCODE_DATAMATRIX, "(01)12345678901231", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE, -1, 0, 1 },
|
||
|
/* 73*/ { BARCODE_DATAMATRIX, "(01)12345678901234", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE, -1, ZINT_WARN_NONCOMPLIANT, 0 },
|
||
|
/* 74*/ { BARCODE_DATAMATRIX, "(01)12345678901234", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE | GS1NOCHECK_MODE, -1, 0, 1 },
|
||
|
/* 75*/ { BARCODE_DATAMATRIX, "(01)123456789012345", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE, -1, ZINT_ERROR_INVALID_DATA, 0 },
|
||
|
/* 76*/ { BARCODE_DATAMATRIX, "(01)123456789012345", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE | GS1NOCHECK_MODE, -1, 0, 0 },
|
||
|
/* 77*/ { BARCODE_DATAMATRIX, "(01)12345678901234A", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE, -1, ZINT_ERROR_INVALID_DATA, 0 },
|
||
|
/* 78*/ { BARCODE_DATAMATRIX, "(01)12345678901234A", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE | GS1NOCHECK_MODE, -1, 0, 0 },
|
||
|
/* 79*/ { BARCODE_DATAMATRIX, "(01)1234567890123A", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE, -1, ZINT_WARN_NONCOMPLIANT, 0 },
|
||
|
/* 80*/ { BARCODE_DATAMATRIX, "(01)1234567890123A", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE | GS1NOCHECK_MODE, -1, 0, 1 },
|
||
|
/* 81*/ { BARCODE_DATAMATRIX, "[01]1234567890123", GS1_MODE, -1, ZINT_ERROR_INVALID_DATA, 0 },
|
||
|
/* 82*/ { BARCODE_DATAMATRIX, "[01]1234567890123", GS1_MODE | GS1NOCHECK_MODE, -1, 0, 0 },
|
||
|
/* 83*/ { BARCODE_DATAMATRIX, "[01]12345678901231", GS1_MODE, READER_INIT, ZINT_ERROR_INVALID_OPTION, 0 },
|
||
|
/* 84*/ { BARCODE_DATAMATRIX, "[01]12345678901231", GS1_MODE | ESCAPE_MODE, READER_INIT, ZINT_ERROR_INVALID_OPTION, 0 },
|
||
|
/* 85*/ { BARCODE_DATAMATRIX, "1234", GS1_MODE, -1, ZINT_ERROR_INVALID_DATA, 0 },
|
||
|
/* 86*/ { BARCODE_DATAMATRIX, "1234", GS1_MODE | ESCAPE_MODE, -1, ZINT_ERROR_INVALID_DATA, 0 },
|
||
|
/* 87*/ { BARCODE_DOTCODE, "[01]12345678901231", GS1_MODE, -1, 0, 0 },
|
||
|
/* 88*/ { BARCODE_DOTCODE, "[01]12345678901231", GS1_MODE | ESCAPE_MODE, -1, 0, 1 },
|
||
|
/* 89*/ { BARCODE_DOTCODE, "(01)12345678901231", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE, -1, 0, 1 },
|
||
|
/* 90*/ { BARCODE_DOTCODE, "(01)12345678901234", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE, -1, ZINT_WARN_NONCOMPLIANT, 0 },
|
||
|
/* 91*/ { BARCODE_DOTCODE, "(01)12345678901234", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE | GS1NOCHECK_MODE, -1, 0, 1 },
|
||
|
/* 92*/ { BARCODE_DOTCODE, "(01)123456789012345", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE, -1, ZINT_ERROR_INVALID_DATA, 0 },
|
||
|
/* 93*/ { BARCODE_DOTCODE, "(01)123456789012345", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE | GS1NOCHECK_MODE, -1, 0, 0 },
|
||
|
/* 94*/ { BARCODE_DOTCODE, "(01)12345678901234A", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE, -1, ZINT_ERROR_INVALID_DATA, 0 },
|
||
|
/* 95*/ { BARCODE_DOTCODE, "(01)12345678901234A", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE | GS1NOCHECK_MODE, -1, 0, 0 },
|
||
|
/* 96*/ { BARCODE_DOTCODE, "(01)1234567890123A", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE, -1, ZINT_WARN_NONCOMPLIANT, 0 },
|
||
|
/* 97*/ { BARCODE_DOTCODE, "(01)1234567890123A", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE | GS1NOCHECK_MODE, -1, 0, 1 },
|
||
|
/* 98*/ { BARCODE_DOTCODE, "[01]1234567890123", GS1_MODE, -1, ZINT_ERROR_INVALID_DATA, 0 },
|
||
|
/* 99*/ { BARCODE_DOTCODE, "[01]1234567890123", GS1_MODE | GS1NOCHECK_MODE, -1, 0, 0 },
|
||
|
/*100*/ { BARCODE_DOTCODE, "[01]12345678901231", GS1_MODE, READER_INIT, 0, 0 }, // Reader Init permissible with default GS1 mode
|
||
|
/*101*/ { BARCODE_DOTCODE, "[01]12345678901231", GS1_MODE | ESCAPE_MODE, READER_INIT, 0, 1 },
|
||
|
/*102*/ { BARCODE_DOTCODE, "1234", GS1_MODE, -1, ZINT_ERROR_INVALID_DATA, 0 },
|
||
|
/*103*/ { BARCODE_DOTCODE, "1234", GS1_MODE | ESCAPE_MODE, -1, ZINT_ERROR_INVALID_DATA, 0 },
|
||
|
/*104*/ { BARCODE_QRCODE, "[01]12345678901231", GS1_MODE, -1, 0, 0 },
|
||
|
/*105*/ { BARCODE_QRCODE, "[01]12345678901231", GS1_MODE | ESCAPE_MODE, -1, 0, 1 },
|
||
|
/*106*/ { BARCODE_QRCODE, "(01)12345678901231", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE, -1, 0, 1 },
|
||
|
/*107*/ { BARCODE_QRCODE, "(01)12345678901234", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE, -1, ZINT_WARN_NONCOMPLIANT, 0 },
|
||
|
/*108*/ { BARCODE_QRCODE, "(01)12345678901234", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE | GS1NOCHECK_MODE, -1, 0, 1 },
|
||
|
/*109*/ { BARCODE_QRCODE, "(01)123456789012345", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE, -1, ZINT_ERROR_INVALID_DATA, 0 },
|
||
|
/*110*/ { BARCODE_QRCODE, "(01)123456789012345", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE | GS1NOCHECK_MODE, -1, 0, 0 },
|
||
|
/*111*/ { BARCODE_QRCODE, "(01)12345678901234A", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE, -1, ZINT_ERROR_INVALID_DATA, 0 },
|
||
|
/*112*/ { BARCODE_QRCODE, "(01)12345678901234A", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE | GS1NOCHECK_MODE, -1, 0, 0 },
|
||
|
/*113*/ { BARCODE_QRCODE, "(01)1234567890123A", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE, -1, ZINT_WARN_NONCOMPLIANT, 0 },
|
||
|
/*114*/ { BARCODE_QRCODE, "(01)1234567890123A", GS1_MODE | ESCAPE_MODE | GS1PARENS_MODE | GS1NOCHECK_MODE, -1, 0, 1 },
|
||
|
/*115*/ { BARCODE_QRCODE, "[01]1234567890123", GS1_MODE, -1, ZINT_ERROR_INVALID_DATA, 0 },
|
||
|
/*116*/ { BARCODE_QRCODE, "[01]1234567890123", GS1_MODE | GS1NOCHECK_MODE, -1, 0, 0 },
|
||
|
/*117*/ { BARCODE_QRCODE, "1234", GS1_MODE, -1, ZINT_ERROR_INVALID_DATA, 0 },
|
||
|
/*118*/ { BARCODE_QRCODE, "1234", GS1_MODE | ESCAPE_MODE, -1, ZINT_ERROR_INVALID_DATA, 0 },
|
||
|
};
|
||
|
int data_size = ARRAY_SIZE(data);
|
||
|
int i, length, ret;
|
||
|
struct zint_symbol *symbol;
|
||
|
|
||
|
struct zint_symbol previous_symbol;
|
||
|
|
||
|
testStart("test_input_mode");
|
||
|
|
||
|
for (i = 0; i < data_size; i++) {
|
||
|
|
||
|
if (index != -1 && i != index) continue;
|
||
|
|
||
|
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, 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 (index == -1 && data[i].compare_previous) {
|
||
|
ret = testUtilSymbolCmp(symbol, &previous_symbol);
|
||
|
assert_zero(ret, "i:%d testUtilSymbolCmp ret %d != 0\n", i, ret);
|
||
|
}
|
||
|
memcpy(&previous_symbol, symbol, sizeof(previous_symbol));
|
||
|
|
||
|
ZBarcode_Delete(symbol);
|
||
|
}
|
||
|
|
||
|
testFinish();
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
* Check GS1NOCHECK_MODE for GS1_128-based and DBAR_EXP-based symbologies
|
||
|
*/
|
||
|
static void test_gs1nocheck_mode(int index, int debug) {
|
||
|
|
||
|
struct item {
|
||
|
int symbology;
|
||
|
int input_mode;
|
||
|
char *data;
|
||
|
char *composite;
|
||
|
int ret;
|
||
|
char *expected_errtxt;
|
||
|
};
|
||
|
// s/\/\*[ 0-9]*\*\//\=printf("\/*%3d*\/", line(".") - line("'<"))
|
||
|
struct item data[] = {
|
||
|
/* 0*/ { BARCODE_GS1_128, -1, "[01]12345678901231", "", 0, "" },
|
||
|
/* 1*/ { BARCODE_GS1_128, GS1NOCHECK_MODE, "[01]12345678901231", "", 0, "" },
|
||
|
/* 2*/ { BARCODE_GS1_128, -1, "[01]12345678901234", "", ZINT_WARN_NONCOMPLIANT, "Warning 261: AI (01) position 14: Bad checksum '4', expected '1'" },
|
||
|
/* 3*/ { BARCODE_GS1_128, GS1NOCHECK_MODE, "[01]12345678901234", "", 0, "" },
|
||
|
/* 4*/ { BARCODE_GS1_128, -1, "[01]123456789012345", "", ZINT_ERROR_INVALID_DATA, "Error 259: Invalid data length for AI (01)" },
|
||
|
/* 5*/ { BARCODE_GS1_128, GS1NOCHECK_MODE, "[01]123456789012345", "", 0, "" },
|
||
|
/* 6*/ { BARCODE_GS1_128, -1, "[01]1234567890123", "", ZINT_ERROR_INVALID_DATA, "Error 259: Invalid data length for AI (01)" },
|
||
|
/* 7*/ { BARCODE_GS1_128, GS1NOCHECK_MODE, "[01]1234567890123", "", 0, "" },
|
||
|
/* 8*/ { BARCODE_GS1_128, -1, "[01]12345678901231[20]1", "", ZINT_ERROR_INVALID_DATA, "Error 259: Invalid data length for AI (20)" },
|
||
|
/* 9*/ { BARCODE_GS1_128, GS1NOCHECK_MODE, "[01]12345678901231[20]1", "", 0, "" },
|
||
|
/* 10*/ { BARCODE_GS1_128, -1, "[03]123", "", ZINT_ERROR_INVALID_DATA, "Error 260: Invalid AI (03)" },
|
||
|
/* 11*/ { BARCODE_GS1_128, GS1NOCHECK_MODE, "[03]123", "", 0, "" },
|
||
|
/* 12*/ { BARCODE_GS1_128, -1, "[04]1234[05]12345[06]123456", "", ZINT_ERROR_INVALID_DATA, "Error 260: Invalid AI (04)" },
|
||
|
/* 13*/ { BARCODE_GS1_128, GS1NOCHECK_MODE, "[04]1234[05]12345[06]123456", "", 0, "" },
|
||
|
/* 14*/ { BARCODE_GS1_128, -1, "[01]1234567890123A", "", ZINT_WARN_NONCOMPLIANT, "Warning 261: AI (01) position 14: Non-numeric character 'A'" },
|
||
|
/* 15*/ { BARCODE_GS1_128, GS1NOCHECK_MODE, "[01]1234567890123A", "", 0, "" },
|
||
|
/* 16*/ { BARCODE_GS1_128, -1, "[01]1234567890123.", "", ZINT_WARN_NONCOMPLIANT, "Warning 261: AI (01) position 14: Non-numeric character '.'" },
|
||
|
/* 17*/ { BARCODE_GS1_128, GS1NOCHECK_MODE, "[01]1234567890123.", "", 0, "" },
|
||
|
/* 18*/ { BARCODE_GS1_128, -1, "[01]1234567890123\177", "", ZINT_ERROR_INVALID_DATA, "Error 263: DEL characters are not supported by GS1" },
|
||
|
/* 19*/ { BARCODE_GS1_128, GS1NOCHECK_MODE, "[01]1234567890123\177", "", ZINT_ERROR_INVALID_DATA, "Error 263: DEL characters are not supported by GS1" }, // Nonprintable ASCII still checked
|
||
|
/* 20*/ { BARCODE_GS1_128, -1, "[01]1234567890123\200", "", ZINT_ERROR_INVALID_DATA, "Error 250: Extended ASCII characters are not supported by GS1" },
|
||
|
/* 21*/ { BARCODE_GS1_128, GS1NOCHECK_MODE, "[01]1234567890123\200", "", ZINT_ERROR_INVALID_DATA, "Error 250: Extended ASCII characters are not supported by GS1" }, // Extended ASCII still checked
|
||
|
/* 22*/ { BARCODE_GS1_128, -1, "0112345678901231", "", ZINT_ERROR_INVALID_DATA, "Error 252: Data does not start with an AI" },
|
||
|
/* 23*/ { BARCODE_GS1_128, GS1NOCHECK_MODE, "0112345678901231", "", ZINT_ERROR_INVALID_DATA, "Error 252: Data does not start with an AI" }, // Format still checked
|
||
|
/* 24*/ { BARCODE_GS1_128_CC, -1, "[01]12345678901231", "[20]12", 0, "" },
|
||
|
/* 25*/ { BARCODE_GS1_128_CC, GS1NOCHECK_MODE, "[01]12345678901231", "[20]12", 0, "" },
|
||
|
/* 26*/ { BARCODE_GS1_128_CC, -1, "[01]12345678901234", "[20]12", ZINT_WARN_NONCOMPLIANT, "Warning 261: AI (01) position 14: Bad checksum '4', expected '1' in linear component" },
|
||
|
/* 27*/ { BARCODE_GS1_128_CC, GS1NOCHECK_MODE, "[01]12345678901234", "[20]12", 0, "" },
|
||
|
/* 28*/ { BARCODE_GS1_128_CC, -1, "[01]123456789012345", "[20]12", ZINT_ERROR_INVALID_DATA, "Error 259: Invalid data length for AI (01) in linear component" },
|
||
|
/* 29*/ { BARCODE_GS1_128_CC, GS1NOCHECK_MODE, "[01]123456789012345", "[20]12", 0, "" },
|
||
|
/* 30*/ { BARCODE_GS1_128_CC, -1, "[01]12345678901231", "[20]123", ZINT_ERROR_INVALID_DATA, "Error 259: Invalid data length for AI (20) in 2D component" },
|
||
|
/* 31*/ { BARCODE_GS1_128_CC, GS1NOCHECK_MODE, "[01]12345678901231", "[20]123", 0, "" },
|
||
|
/* 32*/ { BARCODE_GS1_128_CC, -1, "[01]12345678901231", "[20]1A", ZINT_WARN_NONCOMPLIANT, "Warning 261: AI (20) position 2: Non-numeric character 'A' in 2D component" },
|
||
|
/* 33*/ { BARCODE_GS1_128_CC, GS1NOCHECK_MODE, "[01]12345678901231", "[20]1A", 0, "" },
|
||
|
/* 34*/ { BARCODE_GS1_128_CC, -1, "[01]1234567890121", "[20]1\177", ZINT_ERROR_INVALID_DATA, "Error 263: DEL characters are not supported by GS1 in 2D component" },
|
||
|
/* 35*/ { BARCODE_GS1_128_CC, GS1NOCHECK_MODE, "[01]1234567890121", "[20]1\177", ZINT_ERROR_INVALID_DATA, "Error 263: DEL characters are not supported by GS1 in 2D component" }, // Nonprintable ASCII still checked
|
||
|
/* 36*/ { BARCODE_GS1_128_CC, -1, "[01]1234567890121\200", "[20]12", ZINT_ERROR_INVALID_DATA, "Error 250: Extended ASCII characters are not supported by GS1 in linear component" },
|
||
|
/* 37*/ { BARCODE_GS1_128_CC, GS1NOCHECK_MODE, "[01]1234567890121\200", "[20]12", ZINT_ERROR_INVALID_DATA, "Error 250: Extended ASCII characters are not supported by GS1 in linear component" },
|
||
|
/* 38*/ { BARCODE_GS1_128_CC, -1, "[01]1234567890121", "[20]1\200", ZINT_ERROR_INVALID_DATA, "Error 250: Extended ASCII characters are not supported by GS1 in 2D component" },
|
||
|
/* 39*/ { BARCODE_GS1_128_CC, GS1NOCHECK_MODE, "[01]1234567890121", "[20]1\200", ZINT_ERROR_INVALID_DATA, "Error 250: Extended ASCII characters are not supported by GS1 in 2D component" }, // Extended ASCII still checked
|
||
|
/* 40*/ { BARCODE_GS1_128_CC, -1, "[01]1234567890121", "2012", ZINT_ERROR_INVALID_DATA, "Error 252: Data does not start with an AI in 2D component" },
|
||
|
/* 41*/ { BARCODE_GS1_128_CC, GS1NOCHECK_MODE, "[01]1234567890121", "2012", ZINT_ERROR_INVALID_DATA, "Error 252: Data does not start with an AI in 2D component" }, // Format still checked
|
||
|
/* 42*/ { BARCODE_DBAR_EXP, -1, "[01]12345678901231", "", 0, "" },
|
||
|
/* 43*/ { BARCODE_DBAR_EXP, GS1NOCHECK_MODE, "[01]12345678901231", "", 0, "" },
|
||
|
/* 44*/ { BARCODE_DBAR_EXP, -1, "[01]12345678901231[10]123[11]1234", "", ZINT_ERROR_INVALID_DATA, "Error 259: Invalid data length for AI (11)" },
|
||
|
/* 45*/ { BARCODE_DBAR_EXP, GS1NOCHECK_MODE, "[01]12345678901231[10]123[11]1234", "", 0, "" },
|
||
|
/* 46*/ { BARCODE_DBAR_EXP, -1, "[01]12345678901231[10]123[11]1234A", "", ZINT_ERROR_INVALID_DATA, "Error 259: Invalid data length for AI (11)" },
|
||
|
/* 47*/ { BARCODE_DBAR_EXP, GS1NOCHECK_MODE, "[01]12345678901231[10]123[11]1234A", "", 0, "" },
|
||
|
/* 48*/ { BARCODE_DBAR_EXP, -1, "[01]12345678901231[10]123[11]12345A", "", ZINT_WARN_NONCOMPLIANT, "Warning 261: AI (11) position 6: Non-numeric character 'A'" },
|
||
|
/* 49*/ { BARCODE_DBAR_EXP, GS1NOCHECK_MODE, "[01]12345678901231[10]123[11]12345A", "", 0, "" },
|
||
|
/* 50*/ { BARCODE_DBAR_EXP, -1, "[01]1234567890121\177", "", ZINT_ERROR_INVALID_DATA, "Error 263: DEL characters are not supported by GS1" },
|
||
|
/* 51*/ { BARCODE_DBAR_EXP, GS1NOCHECK_MODE, "[01]1234567890121\177", "", ZINT_ERROR_INVALID_DATA, "Error 263: DEL characters are not supported by GS1" }, // Nonprintable ASCII still checked
|
||
|
/* 52*/ { BARCODE_DBAR_EXP, -1, "[01]1234567890121\200", "", ZINT_ERROR_INVALID_DATA, "Error 250: Extended ASCII characters are not supported by GS1" },
|
||
|
/* 53*/ { BARCODE_DBAR_EXP, GS1NOCHECK_MODE, "[01]1234567890121\200", "", ZINT_ERROR_INVALID_DATA, "Error 250: Extended ASCII characters are not supported by GS1" }, // Extended ASCII still checked
|
||
|
/* 54*/ { BARCODE_DBAR_EXP, -1, "011234567890121", "", ZINT_ERROR_INVALID_DATA, "Error 252: Data does not start with an AI" },
|
||
|
/* 55*/ { BARCODE_DBAR_EXP, GS1NOCHECK_MODE, "011234567890121", "", ZINT_ERROR_INVALID_DATA, "Error 252: Data does not start with an AI" }, // Format still checked
|
||
|
/* 56*/ { BARCODE_DBAR_EXP_CC, -1, "[01]12345678901231[10]123[11]121212", "[21]ABC123[22]12345", 0, "" },
|
||
|
/* 57*/ { BARCODE_DBAR_EXP_CC, GS1NOCHECK_MODE, "[01]123456789012[01]12345678901231[10]123[11]121212", "[21]ABC123[22]12345", 0, "" },
|
||
|
/* 58*/ { BARCODE_DBAR_EXP_CC, -1, "[01]12345678901231[10]123[11]1234", "[21]ABC123[22]12345", ZINT_ERROR_INVALID_DATA, "Error 259: Invalid data length for AI (11) in linear component" },
|
||
|
/* 59*/ { BARCODE_DBAR_EXP_CC, GS1NOCHECK_MODE, "[01]12345678901231[10]123[11]1234", "[21]ABC123[22]12345", 0, "" },
|
||
|
/* 60*/ { BARCODE_DBAR_EXP_CC, -1, "[01]12345678901231[10]123[11]123456", "[21]ABC123[22]12345", ZINT_WARN_NONCOMPLIANT, "Warning 261: AI (11) position 3: Invalid month '34' in linear component" },
|
||
|
/* 61*/ { BARCODE_DBAR_EXP_CC, GS1NOCHECK_MODE, "[01]12345678901231[10]123[11]123456", "[21]ABC123[22]12345", 0, "" },
|
||
|
/* 62*/ { BARCODE_DBAR_EXP_CC, -1, "[01]12345678901231[10]123[11]121212", "[21]ABC123[22]12345[30]123456789", ZINT_ERROR_INVALID_DATA, "Error 259: Invalid data length for AI (30) in 2D component" },
|
||
|
/* 63*/ { BARCODE_DBAR_EXP_CC, GS1NOCHECK_MODE, "[01]123456789012[01]12345678901231[10]123[11]121212", "[21]ABC123[22]12345[30]123456789", 0, "" },
|
||
|
/* 64*/ { BARCODE_DBAR_EXP_CC, -1, "[01]12345678901231[10]123[11]121212", "[21]ABC123[22]12345[30]1234567A", ZINT_WARN_NONCOMPLIANT, "Warning 261: AI (30) position 8: Non-numeric character 'A' in 2D component" },
|
||
|
/* 65*/ { BARCODE_DBAR_EXP_CC, GS1NOCHECK_MODE, "[01]123456789012[01]12345678901231[10]123[11]121212", "[21]ABC123[22]12345[30]1234567A", 0, "" },
|
||
|
/* 66*/ { BARCODE_DBAR_EXP_CC, -1, "[01]1234567890121", "[20]1\177", ZINT_ERROR_INVALID_DATA, "Error 263: DEL characters are not supported by GS1 in 2D component" },
|
||
|
/* 67*/ { BARCODE_DBAR_EXP_CC, GS1NOCHECK_MODE, "[01]1234567890121", "[20]1\177", ZINT_ERROR_INVALID_DATA, "Error 263: DEL characters are not supported by GS1 in 2D component" }, // Nonprintable ASCII still checked
|
||
|
/* 68*/ { BARCODE_DBAR_EXP_CC, -1, "[01]1234567890121", "[20]1\200", ZINT_ERROR_INVALID_DATA, "Error 250: Extended ASCII characters are not supported by GS1 in 2D component" },
|
||
|
/* 69*/ { BARCODE_DBAR_EXP_CC, GS1NOCHECK_MODE, "[01]1234567890121", "[20]1\200", ZINT_ERROR_INVALID_DATA, "Error 250: Extended ASCII characters are not supported by GS1 in 2D component" }, // Extended ASCII still checked
|
||
|
/* 70*/ { BARCODE_DBAR_EXP_CC, -1, "[01]1234567890121", "2012", ZINT_ERROR_INVALID_DATA, "Error 252: Data does not start with an AI in 2D component" },
|
||
|
/* 71*/ { BARCODE_DBAR_EXP_CC, GS1NOCHECK_MODE, "[01]1234567890121", "2012", ZINT_ERROR_INVALID_DATA, "Error 252: Data does not start with an AI in 2D component" }, // Format still checked
|
||
|
/* 72*/ { BARCODE_DBAR_EXPSTK, -1, "[01]12345678901231", "", 0, "" },
|
||
|
/* 73*/ { BARCODE_DBAR_EXPSTK, GS1NOCHECK_MODE, "[01]12345678901231", "", 0, "" },
|
||
|
/* 74*/ { BARCODE_DBAR_EXPSTK, -1, "[01]12345678901231[10]123[11]1234", "", ZINT_ERROR_INVALID_DATA, "Error 259: Invalid data length for AI (11)" },
|
||
|
/* 75*/ { BARCODE_DBAR_EXPSTK, GS1NOCHECK_MODE, "[01]12345678901231[10]123[11]1234", "", 0, "" },
|
||
|
/* 76*/ { BARCODE_DBAR_EXPSTK, -1, "[01]12345678901231[10]123[11]1234A", "", ZINT_ERROR_INVALID_DATA, "Error 259: Invalid data length for AI (11)" },
|
||
|
/* 77*/ { BARCODE_DBAR_EXPSTK, GS1NOCHECK_MODE, "[01]12345678901231[10]123[11]1234A", "", 0, "" },
|
||
|
/* 78*/ { BARCODE_DBAR_EXPSTK, -1, "[01]12345678901231[10]123[11]12345A", "", ZINT_WARN_NONCOMPLIANT, "Warning 261: AI (11) position 6: Non-numeric character 'A'" },
|
||
|
/* 79*/ { BARCODE_DBAR_EXPSTK, GS1NOCHECK_MODE, "[01]12345678901231[10]123[11]12345A", "", 0, "" },
|
||
|
/* 80*/ { BARCODE_DBAR_EXPSTK, -1, "[01]1234567890121\177", "", ZINT_ERROR_INVALID_DATA, "Error 263: DEL characters are not supported by GS1" },
|
||
|
/* 81*/ { BARCODE_DBAR_EXPSTK, GS1NOCHECK_MODE, "[01]1234567890121\177", "", ZINT_ERROR_INVALID_DATA, "Error 263: DEL characters are not supported by GS1" }, // Nonprintable ASCII still checked
|
||
|
/* 82*/ { BARCODE_DBAR_EXPSTK, -1, "[01]1234567890121\200", "", ZINT_ERROR_INVALID_DATA, "Error 250: Extended ASCII characters are not supported by GS1" },
|
||
|
/* 83*/ { BARCODE_DBAR_EXPSTK, GS1NOCHECK_MODE, "[01]1234567890121\200", "", ZINT_ERROR_INVALID_DATA, "Error 250: Extended ASCII characters are not supported by GS1" }, // Extended ASCII still checked
|
||
|
/* 84*/ { BARCODE_DBAR_EXPSTK, -1, "011234567890121", "", ZINT_ERROR_INVALID_DATA, "Error 252: Data does not start with an AI" },
|
||
|
/* 85*/ { BARCODE_DBAR_EXPSTK, GS1NOCHECK_MODE, "011234567890121", "", ZINT_ERROR_INVALID_DATA, "Error 252: Data does not start with an AI" }, // Format still checked
|
||
|
/* 86*/ { BARCODE_DBAR_EXPSTK_CC, -1, "[01]12345678901231[10]123[11]121212", "[21]ABC123[22]12345", 0, "" },
|
||
|
/* 87*/ { BARCODE_DBAR_EXPSTK_CC, GS1NOCHECK_MODE, "[01]123456789012[01]12345678901231[10]123[11]121212", "[21]ABC123[22]12345", 0, "" },
|
||
|
/* 88*/ { BARCODE_DBAR_EXPSTK_CC, -1, "[01]12345678901231[10]123[11]1234", "[21]ABC123[22]12345", ZINT_ERROR_INVALID_DATA, "Error 259: Invalid data length for AI (11) in linear component" },
|
||
|
/* 89*/ { BARCODE_DBAR_EXPSTK_CC, GS1NOCHECK_MODE, "[01]12345678901231[10]123[11]1234", "[21]ABC123[22]12345", 0, "" },
|
||
|
/* 90*/ { BARCODE_DBAR_EXPSTK_CC, -1, "[01]12345678901231[10]123[11]123456", "[21]ABC123[22]12345", ZINT_WARN_NONCOMPLIANT, "Warning 261: AI (11) position 3: Invalid month '34' in linear component" },
|
||
|
/* 91*/ { BARCODE_DBAR_EXPSTK_CC, GS1NOCHECK_MODE, "[01]12345678901231[10]123[11]123456", "[21]ABC123[22]12345", 0, "" },
|
||
|
/* 92*/ { BARCODE_DBAR_EXPSTK_CC, -1, "[01]12345678901231[10]123[11]121212", "[21]ABC123[22]12345[30]123456789", ZINT_ERROR_INVALID_DATA, "Error 259: Invalid data length for AI (30) in 2D component" },
|
||
|
/* 93*/ { BARCODE_DBAR_EXPSTK_CC, GS1NOCHECK_MODE, "[01]123456789012[01]12345678901231[10]123[11]121212", "[21]ABC123[22]12345[30]123456789", 0, "" },
|
||
|
/* 94*/ { BARCODE_DBAR_EXPSTK_CC, -1, "[01]12345678901231[10]123[11]121212", "[21]ABC123[22]12345[30]1234567A", ZINT_WARN_NONCOMPLIANT, "Warning 261: AI (30) position 8: Non-numeric character 'A' in 2D component" },
|
||
|
/* 95*/ { BARCODE_DBAR_EXPSTK_CC, GS1NOCHECK_MODE, "[01]123456789012[01]12345678901231[10]123[11]121212", "[21]ABC123[22]12345[30]1234567A", 0, "" },
|
||
|
/* 96*/ { BARCODE_DBAR_EXPSTK_CC, -1, "[01]1234567890121", "[20]1\177", ZINT_ERROR_INVALID_DATA, "Error 263: DEL characters are not supported by GS1 in 2D component" },
|
||
|
/* 97*/ { BARCODE_DBAR_EXPSTK_CC, GS1NOCHECK_MODE, "[01]1234567890121", "[20]1\177", ZINT_ERROR_INVALID_DATA, "Error 263: DEL characters are not supported by GS1 in 2D component" }, // Nonprintable ASCII still checked
|
||
|
/* 98*/ { BARCODE_DBAR_EXPSTK_CC, -1, "[01]1234567890121", "[20]1\200", ZINT_ERROR_INVALID_DATA, "Error 250: Extended ASCII characters are not supported by GS1 in 2D component" },
|
||
|
/* 99*/ { BARCODE_DBAR_EXPSTK_CC, GS1NOCHECK_MODE, "[01]1234567890121", "[20]1\200", ZINT_ERROR_INVALID_DATA, "Error 250: Extended ASCII characters are not supported by GS1 in 2D component" }, // Extended ASCII still checked
|
||
|
/*100*/ { BARCODE_DBAR_EXPSTK_CC, -1, "[01]1234567890121", "2012", ZINT_ERROR_INVALID_DATA, "Error 252: Data does not start with an AI in 2D component" },
|
||
|
/*101*/ { BARCODE_DBAR_EXPSTK_CC, GS1NOCHECK_MODE, "[01]1234567890121", "2012", ZINT_ERROR_INVALID_DATA, "Error 252: Data does not start with an AI in 2D component" }, // Format still checked
|
||
|
};
|
||
|
int data_size = ARRAY_SIZE(data);
|
||
|
int i, length, ret;
|
||
|
struct zint_symbol *symbol;
|
||
|
|
||
|
char *text;
|
||
|
|
||
|
testStart("test_gs1nocheck_mode");
|
||
|
|
||
|
for (i = 0; i < data_size; i++) {
|
||
|
|
||
|
if (index != -1 && i != index) continue;
|
||
|
|
||
|
symbol = ZBarcode_Create();
|
||
|
assert_nonnull(symbol, "Symbol not created\n");
|
||
|
|
||
|
if (data[i].composite[0]) {
|
||
|
text = data[i].composite;
|
||
|
strcpy(symbol->primary, data[i].data);
|
||
|
} else {
|
||
|
text = data[i].data;
|
||
|
}
|
||
|
length = testUtilSetSymbol(symbol, data[i].symbology, data[i].input_mode, -1 /*eci*/, -1 /*option_1*/, -1, -1, -1 /*output_options*/, text, -1, debug);
|
||
|
|
||
|
ret = ZBarcode_Encode(symbol, (unsigned char *) text, length);
|
||
|
assert_equal(ret, data[i].ret, "i:%d ZBarcode_Encode ret %d != %d (%s)\n", i, ret, data[i].ret, symbol->errtxt);
|
||
|
assert_zero(strcmp(symbol->errtxt, data[i].expected_errtxt), "i:%d strcmp(%s, %s) != 0\n", i, symbol->errtxt, data[i].expected_errtxt);
|
||
|
|
||
|
ZBarcode_Delete(symbol);
|
||
|
}
|
||
|
|
||
|
testFinish();
|
||
|
}
|
||
|
|
||
|
int main(int argc, char *argv[]) {
|
||
|
|
||
|
testFunction funcs[] = { /* name, func, has_index, has_generate, has_debug */
|
||
|
{ "test_gs1_reduce", test_gs1_reduce, 1, 1, 1 },
|
||
|
{ "test_hrt", test_hrt, 1, 0, 1 },
|
||
|
{ "test_gs1_verify", test_gs1_verify, 1, 0, 1 },
|
||
|
{ "test_gs1_lint", test_gs1_lint, 1, 0, 1 },
|
||
|
{ "test_input_mode", test_input_mode, 1, 0, 1 },
|
||
|
{ "test_gs1nocheck_mode", test_gs1nocheck_mode, 1, 0, 1 },
|
||
|
};
|
||
|
|
||
|
testRun(argc, argv, funcs, ARRAY_SIZE(funcs));
|
||
|
|
||
|
testReport();
|
||
|
|
||
|
return 0;
|
||
|
}
|