mirror of
https://git.code.sf.net/p/zint/code
synced 2025-05-28 05:54:19 -04:00
GRIDMATRIX: default char set is GB 2312 only, not Latin-1 with GB 2312 alt
HANXIN/QRCODE: use Hanzi/Kanji modes when compatible ECIs given manual: one true source now manual.pmd from which manual.txt is generated CLI: man page moved from frontend/zint.1.gz to docs/zint.1.gz, now generated from docs/zint.1.pmd add README.linux to root dir
This commit is contained in:
parent
9aae557cdc
commit
719613d4c3
160 changed files with 18144 additions and 2674 deletions
|
@ -296,17 +296,30 @@ static void test_gb18030_utf8_to_eci(int index) {
|
|||
/* 38*/ { 28, 1, "¢¢", -1, 0, 2, { 0xA246, 0xA246 }, "Big5 in GB 18030 Hanzi mode range (but outside GB 2312 range)" },
|
||||
/* 39*/ { 28, 0, "陛", -1, 0, 2, { 0xB0, 0xA1 }, "Big5 U+965B" },
|
||||
/* 40*/ { 28, 1, "陛", -1, 0, 1, { 0xB0A1 }, "Big5 in GB 18030 Hanzi mode range" },
|
||||
/* 41*/ { 29, 0, "¨¨", -1, 0, 4, { 0xA1, 0xA7, 0xA1, 0xA7 }, "GB 2312 U+00A8" },
|
||||
/* 41*/ { 29, 0, "¨¨", -1, 0, 2, { 0xA1A7, 0xA1A7 }, "GB 2312 U+00A8" },
|
||||
/* 42*/ { 29, 1, "¨¨", -1, 0, 2, { 0xA1A7, 0xA1A7 }, "GB 2312" },
|
||||
/* 43*/ { 29, 0, "崂", -1, 0, 2, { 0xE1, 0xC0 }, "GB 2312 U+5D02" },
|
||||
/* 43*/ { 29, 0, "崂", -1, 0, 1, { 0xE1C0 }, "GB 2312 U+5D02" },
|
||||
/* 44*/ { 29, 1, "崂", -1, 0, 1, { 0xE1C0 }, "GB 2312" },
|
||||
/* 45*/ { 29, 0, "・", -1, 0, 2, { 0xA1, 0xA4 }, "GB 2312 U+30FB" },
|
||||
/* 45*/ { 29, 0, "・", -1, 0, 1, { 0xA1A4 }, "GB 2312 U+30FB" },
|
||||
/* 46*/ { 29, 1, "・", -1, 0, 1, { 0xA1A4 }, "GB 2312" },
|
||||
/* 47*/ { 29, 0, "釦", -1, ZINT_ERROR_INVALID_DATA, -1, {0}, "GB 18030 U+91E6 not in GB 2312" },
|
||||
/* 48*/ { 30, 0, "¡¡", -1, 0, 4, { 0x22 + 0x80, 0x2E + 0x80, 0x22 + 0x80, 0x2E + 0x80 }, "EUC-KR U+00A1 (0xA2AE)" },
|
||||
/* 49*/ { 30, 1, "¡¡", -1, 0, 2, { 0x222E + 0x8080, 0x222E + 0x8080 }, "All EUC-KR in GB 18030 Hanzi mode range" },
|
||||
/* 50*/ { 30, 0, "詰", -1, 0, 2, { 0x7D + 0x80, 0x7E + 0x80 }, "EUC-KR U+8A70 (0xFDFE)" },
|
||||
/* 51*/ { 30, 1, "詰", -1, 0, 1, { 0x7D7E + 0x8080 }, "All EUC-KR in GB 18030 Hanzi mode range" },
|
||||
/* 52*/ { 31, 0, "條", -1, 0, 1, { 0x976C }, "GBK U+689D" },
|
||||
/* 53*/ { 31, 1, "條", -1, 0, 1, { 0x976C }, "GBK U+689D" },
|
||||
/* 54*/ { 31, 0, "條碼", -1, 0, 2, { 0x976C, 0xB461 }, "GBK U+689D" },
|
||||
/* 55*/ { 31, 1, "條碼", -1, 0, 2, { 0x976C, 0xB461 }, "GBK U+689D" },
|
||||
/* 56*/ { 31, 0, "釦", -1, 0, 1, { 0xE240 }, "GB 18030 U+91E6 in GBK" },
|
||||
/* 57*/ { 31, 0, "€", -1, ZINT_ERROR_INVALID_DATA, -1, {0}, "GB 18030 U+20AC not in GBK" },
|
||||
/* 58*/ { 32, 0, "¨¨", -1, 0, 2, { 0xA1A7, 0xA1A7 }, "GB 18030 U+00A8" },
|
||||
/* 59*/ { 32, 1, "¨¨", -1, 0, 2, { 0xA1A7, 0xA1A7 }, "GB 18030" },
|
||||
/* 60*/ { 32, 0, "崂", -1, 0, 1, { 0xE1C0 }, "GB 18030 U+5D02" },
|
||||
/* 61*/ { 32, 1, "崂", -1, 0, 1, { 0xE1C0 }, "GB 18030" },
|
||||
/* 62*/ { 32, 0, "・", -1, 0, 2, { 0x8139, 0xA739 }, "GB 18030 U+30FB" },
|
||||
/* 63*/ { 32, 1, "・", -1, 0, 2, { 0x8139, 0xA739 }, "GB 18030" },
|
||||
/* 64*/ { 32, 0, "€", -1, 0, 1, { 0xA2E3 }, "GB 18030 U+20AC " },
|
||||
};
|
||||
int data_size = ARRAY_SIZE(data);
|
||||
int i, length, ret;
|
||||
|
|
|
@ -212,11 +212,11 @@ static void test_gb2312_utf8_to_eci(int index) {
|
|||
/* 30*/ { 28, 1, "¢¢", -1, 0, 4, { 0xA2, 0x46, 0xA2, 0x46 }, "Big5 outside GB 2312 Hanzi mode range (but in GB 18030 range)" },
|
||||
/* 31*/ { 28, 0, "陛", -1, 0, 2, { 0xB0, 0xA1 }, "Big5 U+965B" },
|
||||
/* 32*/ { 28, 1, "陛", -1, 0, 1, { 0xB0A1 }, "Big5 in GB 2312 Hanzi mode range" },
|
||||
/* 33*/ { 29, 0, "¨¨", -1, 0, 4, { 0xA1, 0xA7, 0xA1, 0xA7 }, "GB 2312 U+00A8" },
|
||||
/* 33*/ { 29, 0, "¨¨", -1, 0, 2, { 0xA1A7, 0xA1A7 }, "GB 2312 U+00A8" },
|
||||
/* 34*/ { 29, 1, "¨¨", -1, 0, 2, { 0xA1A7, 0xA1A7 }, "GB 2312" },
|
||||
/* 35*/ { 29, 0, "崂", -1, 0, 2, { 0xE1, 0xC0 }, "GB 2312 U+5D02" },
|
||||
/* 35*/ { 29, 0, "崂", -1, 0, 1, { 0xE1C0 }, "GB 2312 U+5D02" },
|
||||
/* 36*/ { 29, 1, "崂", -1, 0, 1, { 0xE1C0 }, "GB 2312" },
|
||||
/* 37*/ { 29, 0, "・", -1, 0, 2, { 0xA1, 0xA4 }, "GB 2312 U+30FB" },
|
||||
/* 37*/ { 29, 0, "・", -1, 0, 1, { 0xA1A4 }, "GB 2312 U+30FB" },
|
||||
/* 38*/ { 29, 1, "・", -1, 0, 1, { 0xA1A4 }, "GB 2312" },
|
||||
/* 39*/ { 29, 0, "釦", -1, ZINT_ERROR_INVALID_DATA, -1, {0}, "GB 18030 U+91E6 not in GB 2312" },
|
||||
/* 40*/ { 30, 0, "¡¡", -1, 0, 4, { 0x22 + 0x80, 0x2E + 0x80, 0x22 + 0x80, 0x2E + 0x80 }, "EUC-KR U+00A1 (0xA2AE)" },
|
||||
|
|
|
@ -194,7 +194,7 @@ static void test_input(int index, int generate, int debug) {
|
|||
// ㈩ U+3229 in GB 2312 0x226E
|
||||
// 一 U+4E00 in GB 2312 0x523B
|
||||
struct item data[] = {
|
||||
/* 0*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "é", 0, 0, "30 01 69 00", "B1 (ISO 8859-1)" },
|
||||
/* 0*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "é", 0, 0, "08 54 6F 78 00", "H1 (GB 2312) Note: Grid Matrix default is GB 2312, not ISO 8859-1" },
|
||||
/* 1*/ { UNICODE_MODE, 3, -1, -1, { 0, 0, "" }, "é", 0, 3, "60 01 58 00 74 40", "ECI-3 B1 (ISO 8859-1)" },
|
||||
/* 2*/ { UNICODE_MODE, 29, -1, -1, { 0, 0, "" }, "é", 0, 29, "60 0E 44 2A 37 7C 00", "ECI-29 H1 (GB 2312)" },
|
||||
/* 3*/ { UNICODE_MODE, 26, -1, -1, { 0, 0, "" }, "é", 0, 26, "60 0D 18 01 61 6A 20", "ECI-26 B2 (UTF-8)" },
|
||||
|
@ -202,16 +202,16 @@ static void test_input(int index, int generate, int debug) {
|
|||
/* 5*/ { DATA_MODE, 0, -1, -1, { 0, 0, "" }, "é", 0, 0, "30 03 43 54 40", "B2 (UTF-8)" },
|
||||
/* 6*/ { DATA_MODE, 0, -1, ZINT_FULL_MULTIBYTE, { 0, 0, "" }, "é", 0, 0, "0A 51 1F 78 00", "H1 (UTF-8) (full multibyte)" },
|
||||
/* 7*/ { DATA_MODE, 0, -1, -1, { 0, 0, "" }, "\351", 0, 0, "30 01 69 00", "B1 (ISO 8859-1) (0xE9)" },
|
||||
/* 8*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "β", ZINT_WARN_NONCOMPLIANT, 0, "Warning 08 40 2F 78 00", "H1 (GB 2312)" },
|
||||
/* 8*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "β", 0, 0, "08 40 2F 78 00", "H1 (GB 2312)" },
|
||||
/* 9*/ { UNICODE_MODE, 9, -1, -1, { 0, 0, "" }, "β", 0, 9, "60 04 58 00 71 00", "ECI-9 B1 (ISO 8859-7)" },
|
||||
/* 10*/ { UNICODE_MODE, 29, -1, -1, { 0, 0, "" }, "β", 0, 29, "60 0E 44 20 17 7C 00", "ECI-29 H1 (GB 2312)" },
|
||||
/* 11*/ { UNICODE_MODE, 26, -1, -1, { 0, 0, "" }, "β", 0, 26, "60 0D 18 01 67 2C 40", "ECI-26 H1 (UTF-8)" },
|
||||
/* 12*/ { UNICODE_MODE, 26, -1, ZINT_FULL_MULTIBYTE, { 0, 0, "" }, "β", 0, 26, "60 0D 05 6B 17 7C 00", "ECI-26 H1 (UTF-8) (full multibyte)" },
|
||||
/* 13*/ { DATA_MODE, 0, -1, -1, { 0, 0, "" }, "β", 0, 0, "30 03 4E 59 00", "B2 (UTF-8)" },
|
||||
/* 14*/ { DATA_MODE, 0, -1, ZINT_FULL_MULTIBYTE, { 0, 0, "" }, "β", 0, 0, "0B 56 2F 78 00", "H1 (UTF-8) (full multibyte)" },
|
||||
/* 15*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "ÿ", 0, 0, "30 01 7F 00", "B1 (ISO 8859-1)" },
|
||||
/* 16*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "ÿÿÿ", 0, 0, "30 05 7F 7F 7F 60", "B3 (ISO 8859-1)" },
|
||||
/* 17*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "㈩一", ZINT_WARN_NONCOMPLIANT, 0, "Warning 08 15 68 0E 7F 70 00", "H2 (GB 2312)" },
|
||||
/* 15*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "ÿ", ZINT_WARN_USES_ECI, 3, "Warning 60 01 58 00 7F 40", "ECI-3 B1 (ISO 8859-1)" },
|
||||
/* 16*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "ÿÿÿ", ZINT_WARN_USES_ECI, 3, "Warning 60 01 58 02 7F 7F 7F 70", "ECI-3 B3 (ISO 8859-1)" },
|
||||
/* 17*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "㈩一", 0, 0, "08 15 68 0E 7F 70 00", "H2 (GB 2312)" },
|
||||
/* 18*/ { UNICODE_MODE, 29, -1, -1, { 0, 0, "" }, "㈩一", 0, 29, "60 0E 44 0A 74 07 3F 78 00", "ECI-29 H2 (GB 2312)" },
|
||||
/* 19*/ { DATA_MODE, 0, -1, -1, { 0, 0, "" }, "\177\177", 0, 0, "30 02 7F 3F 40", "B2 (ASCII)" },
|
||||
/* 20*/ { DATA_MODE, 0, -1, -1, { 0, 0, "" }, "\177\177\177", 0, 0, "30 04 7F 3F 5F 60", "B3 (ASCII)" },
|
||||
|
@ -233,27 +233,27 @@ static void test_input(int index, int generate, int debug) {
|
|||
/* 36*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "ABCDE\011F", 0, 0, "20 01 08 32 3E 49 17 30", "U7 (ASCII)" },
|
||||
/* 37*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "1 1234ABCD12.2abcd-12", 0, 0, "13 7A 23 41 2A 3F 68 01 08 3E 4F 66 1E 5F 70 00 44 1F 2F 6E 0F 0F 74", "N6 U4 N4 L4 N3 (ASCII)" },
|
||||
/* 38*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "1 123ABCDE12.2abcd-12", 0, 0, "28 1F 40 42 06 28 59 43 27 01 05 7D 56 42 49 16 34 7F 6D 30 08 2F 60", "M21 (ASCII)" },
|
||||
/* 39*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "国外通信教材 Matlab6.5", ZINT_WARN_NONCOMPLIANT, 0, "Warning 09 63 27 20 4E 24 1F 05 21 58 22 13 7E 1E 4C 78 09 56 00 3D 3F 4A 45 3F 50", "H6 U2 L5 N3 (GB 2312) (Same as D.2 example)" },
|
||||
/* 39*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "国外通信教材 Matlab6.5", 0, 0, "09 63 27 20 4E 24 1F 05 21 58 22 13 7E 1E 4C 78 09 56 00 3D 3F 4A 45 3F 50", "H6 U2 L5 N3 (GB 2312) (Same as D.2 example)" },
|
||||
/* 40*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "AAT", 0, 0, "20 00 4F 30", "U3 (ASCII)" },
|
||||
/* 41*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "aat", 0, 0, "18 00 4F 30", "L3 (ASCII)" },
|
||||
/* 42*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "AAT2556", 0, 0, "20 00 4F 58 7F 65 47 7A", "U3 N4 (ASCII) (note same bit count as M7)" },
|
||||
/* 43*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "AAT2556 ", 0, 0, "29 22 4E 42 0A 14 37 6F 60", "M8 (ASCII)" },
|
||||
/* 44*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "AAT2556 电", ZINT_WARN_NONCOMPLIANT, 0, "Warning 29 22 4E 42 0A 14 37 6F 62 2C 1F 7E 00", "M8 H1 (GB 2312)" },
|
||||
/* 44*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "AAT2556 电", 0, 0, "29 22 4E 42 0A 14 37 6F 62 2C 1F 7E 00", "M8 H1 (GB 2312)" },
|
||||
/* 45*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, " 200", 0, 0, "11 7A 06 23 7D 00", "N4 (ASCII)" },
|
||||
/* 46*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, " 200mA至", ZINT_WARN_NONCOMPLIANT, 0, "Warning 2F 60 40 00 60 2B 78 63 41 7F 40", "M6 H1 (GB 2312)" },
|
||||
/* 46*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, " 200mA至", 0, 0, "2F 60 40 00 60 2B 78 63 41 7F 40", "M6 H1 (GB 2312)" },
|
||||
/* 47*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "2A tel:86 019 82512738", 0, 0, "28 22 5F 4F 29 48 5F 6D 7E 6F 55 57 1F 28 63 0F 5A 11 64 0F 74", "M2 L5(with control) N15 (ASCII)" },
|
||||
/* 48*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "至2A tel:86 019 82512738", ZINT_WARN_NONCOMPLIANT, 0, "Warning 30 07 56 60 4C 48 13 6A 32 17 7B 3F 5B 75 35 67 6A 18 63 76 44 39 03 7D 00", "B4 L5(with control) N15 (GB 2312)" },
|
||||
/* 49*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "AAT2556 电池充电器+降压转换器 200mA至2A tel:86 019 82512738", ZINT_WARN_NONCOMPLIANT, 0, "Warning (62) 29 22 22 1C 4E 41 42 7E 0A 40 14 00 37 7E 6F 00 62 7E 2C 00 1C 7E 4B 00 41 7E 18 00", "M8 H11 M6 B4 L5(with control) N15 (GB 2312) (*NOT SAME* as D3 example Figure D.1, M8 H11 M6 H1 M3 L4(with control) N15, which uses a few more bits)" },
|
||||
/* 48*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "至2A tel:86 019 82512738", 0, 0, "30 07 56 60 4C 48 13 6A 32 17 7B 3F 5B 75 35 67 6A 18 63 76 44 39 03 7D 00", "B4 L5(with control) N15 (GB 2312)" },
|
||||
/* 49*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "AAT2556 电池充电器+降压转换器 200mA至2A tel:86 019 82512738", 0, 0, "(62) 29 22 22 1C 4E 41 42 7E 0A 40 14 00 37 7E 6F 00 62 7E 2C 00 1C 7E 4B 00 41 7E 18 00", "M8 H11 M6 B4 L5(with control) N15 (GB 2312) (*NOT SAME* as D3 example Figure D.1, M8 H11 M6 H1 M3 L4(with control) N15, which uses a few more bits)" },
|
||||
/* 50*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::", 0, 0, "(588) 37 68 68 68 68 68 74 7E 74 74 74 74 74 3A 3A 3A 3A 3A 3A 3A 1D 1D 1D 1D 1D 1D 1D 0E", "B512 (ASCII)" },
|
||||
/* 51*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::\177", 0, 0, "(591) 37 68 68 68 68 68 74 7E 74 74 74 74 74 3A 3A 3A 3A 3A 3A 3A 1D 1D 1D 1D 1D 1D 1D 0E", "B513 (ASCII)" },
|
||||
/* 52*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, ":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::至", ZINT_WARN_NONCOMPLIANT, 0, "Warning (591) 37 68 68 68 68 68 74 7C 74 74 74 74 74 3A 3A 3A 3A 3A 3A 3A 1D 1D 1D 1D 1D 1D 1D 0E", "B511 H1 (GB 2312)" },
|
||||
/* 53*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, ":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::至:", ZINT_WARN_NONCOMPLIANT, 0, "Warning (592) 37 68 68 68 68 68 74 7E 74 74 74 74 74 3A 3A 3A 3A 3A 3A 3A 1D 1D 1D 1D 1D 1D 1D 0E", "B513 (GB 2312)" },
|
||||
/* 54*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "电电123456", ZINT_WARN_NONCOMPLIANT, 0, "Warning 09 30 72 61 7F 70 41 76 72 1F 68", "H2 (GB 2312) N6" },
|
||||
/* 55*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "电电abcdef", ZINT_WARN_NONCOMPLIANT, 0, "Warning 09 30 72 61 7F 71 00 08 43 10 5D 40", "H2 (GB 2312) L6" },
|
||||
/* 56*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "电电电电电\011\011\011", ZINT_WARN_NONCOMPLIANT, 0, "Warning 09 30 72 61 65 43 4B 07 16 0F 7F 14 02 04 42 21 10", "H5 (GB 2312) B3" },
|
||||
/* 57*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "1234567电电", ZINT_WARN_NONCOMPLIANT, 0, "Warning 14 1E 6E 22 5E 3F 59 30 72 61 7F 70 00", "N7 H2 (GB 2312)" },
|
||||
/* 52*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, ":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::至", 0, 0, "(591) 37 68 68 68 68 68 74 7C 74 74 74 74 74 3A 3A 3A 3A 3A 3A 3A 1D 1D 1D 1D 1D 1D 1D 0E", "B511 H1 (GB 2312)" },
|
||||
/* 53*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, ":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::至:", 0, 0, "(592) 37 68 68 68 68 68 74 7E 74 74 74 74 74 3A 3A 3A 3A 3A 3A 3A 1D 1D 1D 1D 1D 1D 1D 0E", "B513 (GB 2312)" },
|
||||
/* 54*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "电电123456", 0, 0, "09 30 72 61 7F 70 41 76 72 1F 68", "H2 (GB 2312) N6" },
|
||||
/* 55*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "电电abcdef", 0, 0, "09 30 72 61 7F 71 00 08 43 10 5D 40", "H2 (GB 2312) L6" },
|
||||
/* 56*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "电电电电电\011\011\011", 0, 0, "09 30 72 61 65 43 4B 07 16 0F 7F 14 02 04 42 21 10", "H5 (GB 2312) B3" },
|
||||
/* 57*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "1234567电电", 0, 0, "14 1E 6E 22 5E 3F 59 30 72 61 7F 70 00", "N7 H2 (GB 2312)" },
|
||||
/* 58*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "12345678mA 2", 0, 0, "12 1E 6E 23 06 3F 76 02 5F 02 7E 00", "N8 M4" },
|
||||
/* 59*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "ABCDEFG电电", ZINT_WARN_NONCOMPLIANT, 0, "Warning 20 01 08 32 0A 37 05 43 4B 07 7F 40", "U7 H2 (GB 2312)" },
|
||||
/* 59*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "ABCDEFG电电", 0, 0, "20 01 08 32 0A 37 05 43 4B 07 7F 40", "U7 H2 (GB 2312)" },
|
||||
/* 60*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "ABCDEFGHIJ8mA 2", 0, 0, "20 01 08 32 0A 31 68 27 70 46 02 5F 02 7E 00", "U10 M5" },
|
||||
/* 61*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "ABCDEFGHIJ\011\011\011\011", 0, 0, "20 01 08 32 0A 31 68 27 78 03 04 42 21 10 48 00", "U10 B4" },
|
||||
/* 62*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "8mA B123456789", 0, 0, "29 0C 05 3E 17 7C 40 7B 39 0C 2B 7E 40", "M5 N9" },
|
||||
|
@ -261,8 +261,8 @@ static void test_input(int index, int generate, int debug) {
|
|||
/* 64*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "\011\011\011\011123456", 0, 0, "30 06 09 04 42 21 12 03 6D 64 3F 50", "B4 N6" },
|
||||
/* 65*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "\011\011\011\011ABCDEF", 0, 0, "30 06 09 04 42 21 14 00 11 06 21 3B", "B4 U6" },
|
||||
/* 66*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "\011\011\011\0118mA 2", 0, 0, "30 06 09 04 42 21 15 11 40 57 60 5F 40", "B4 M5" },
|
||||
/* 67*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "电电电电电\015\012", ZINT_WARN_NONCOMPLIANT, 0, "Warning 09 30 72 61 65 43 4B 07 16 0F 73 03 7E 00", "H7 (GB 2312)" },
|
||||
/* 68*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "电电电电电12", ZINT_WARN_NONCOMPLIANT, 0, "Warning 09 30 72 61 65 43 4B 07 16 0F 7B 37 7E 00", "H7 (GB 2312)" },
|
||||
/* 67*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "电电电电电\015\012", 0, 0, "09 30 72 61 65 43 4B 07 16 0F 73 03 7E 00", "H7 (GB 2312)" },
|
||||
/* 68*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "电电电电电12", 0, 0, "09 30 72 61 65 43 4B 07 16 0F 7B 37 7E 00", "H7 (GB 2312)" },
|
||||
/* 69*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "1234567.8\015\012123456", 0, 0, "10 1E 6E 23 79 30 67 77 0F 37 11 7E 40", "N17" },
|
||||
/* 70*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "˘", ZINT_WARN_USES_ECI, 4, "Warning 60 02 18 00 51 00", "ECI-4 B1 (ISO 8859-2)" },
|
||||
/* 71*/ { UNICODE_MODE, 4, -1, -1, { 0, 0, "" }, "˘", 0, 4, "60 02 18 00 51 00", "ECI-4 B1 (ISO 8859-2)" },
|
||||
|
@ -272,11 +272,11 @@ static void test_input(int index, int generate, int debug) {
|
|||
/* 75*/ { UNICODE_MODE, 7, -1, -1, { 0, 0, "" }, "Ж", 0, 7, "60 03 58 00 5B 00", "ECI-7 B1 (ISO 8859-5)" },
|
||||
/* 76*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "Ș", ZINT_WARN_USES_ECI, 18, "Warning 60 09 18 00 55 00", "ECI-18 B1 (ISO 8859-16)" },
|
||||
/* 77*/ { UNICODE_MODE, 18, -1, -1, { 0, 0, "" }, "Ș", 0, 18, "60 09 18 00 55 00", "ECI-18 B1 (ISO 8859-16)" },
|
||||
/* 78*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "テ", ZINT_WARN_NONCOMPLIANT, 0, "Warning 08 34 6F 78 00", "H1 (GB 2312)" },
|
||||
/* 78*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "テ", 0, 0, "08 34 6F 78 00", "H1 (GB 2312)" },
|
||||
/* 79*/ { UNICODE_MODE, 20, -1, -1, { 0, 0, "" }, "テ", 0, 20, "60 0A 18 01 41 59 20", "ECI-20 B2 (SHIFT JIS)" },
|
||||
/* 80*/ { UNICODE_MODE, 20, -1, -1, { 0, 0, "" }, "テテ", 0, 20, "60 0A 18 03 41 59 30 36 28 00", "ECI-20 B4 (SHIFT JIS)" },
|
||||
/* 81*/ { UNICODE_MODE, 20, -1, -1, { 0, 0, "" }, "\\\\", 0, 20, "60 0A 18 03 40 57 70 15 78 00", "ECI-20 B4 (SHIFT JIS)" },
|
||||
/* 82*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "…", ZINT_WARN_NONCOMPLIANT, 0, "Warning 08 01 5F 78 00", "H1 (GB 2312)" },
|
||||
/* 82*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "…", 0, 0, "08 01 5F 78 00", "H1 (GB 2312)" },
|
||||
/* 83*/ { UNICODE_MODE, 21, -1, -1, { 0, 0, "" }, "…", 0, 21, "60 0A 58 00 42 40", "ECI-21 B1 (Win 1250)" },
|
||||
/* 84*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "Ґ", ZINT_WARN_USES_ECI, 22, "Warning 60 0B 18 00 52 40", "ECI-22 B1 (Win 1251)" },
|
||||
/* 85*/ { UNICODE_MODE, 22, -1, -1, { 0, 0, "" }, "Ґ", 0, 22, "60 0B 18 00 52 40", "ECI-22 B1 (Win 1251)" },
|
||||
|
@ -291,7 +291,7 @@ static void test_input(int index, int generate, int debug) {
|
|||
/* 94*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "龘", ZINT_WARN_USES_ECI, 26, "Warning 60 0D 18 02 74 6F 53 00", "ECI-26 B3 (UTF-8)" },
|
||||
/* 95*/ { UNICODE_MODE, 28, -1, -1, { 0, 0, "" }, "龘", 0, 28, "60 0E 18 01 7C 75 20", "ECI-28 B2 (Big5)" },
|
||||
/* 96*/ { UNICODE_MODE, 28, -1, -1, { 0, 0, "" }, "龘龘", 0, 28, "60 0E 18 03 7C 75 3F 1D 28 00", "ECI-28 B4 (Big5)" },
|
||||
/* 97*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "齄", ZINT_WARN_NONCOMPLIANT, 0, "Warning 0F 4B 6F 78 00", "H1 (GB 2312)" },
|
||||
/* 97*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "齄", 0, 0, "0F 4B 6F 78 00", "H1 (GB 2312)" },
|
||||
/* 98*/ { UNICODE_MODE, 29, -1, -1, { 0, 0, "" }, "齄", 0, 29, "60 0E 47 65 77 7C 00", "ECI-29 H1 (GB 2312)" },
|
||||
/* 99*/ { UNICODE_MODE, 29, -1, -1, { 0, 0, "" }, "齄齄", 0, 29, "60 0E 47 65 77 4B 6F 78 00", "ECI-29 H2 (GB 2312)" },
|
||||
/*100*/ { UNICODE_MODE, 0, -1, -1, { 0, 0, "" }, "가", ZINT_WARN_USES_ECI, 26, "Warning 60 0D 18 02 75 2C 10 00", "ECI-26 B3 (UTF-8)" },
|
||||
|
@ -422,7 +422,7 @@ static void test_encode(int index, int generate, int debug) {
|
|||
"101111010010100001010010110111"
|
||||
"111111000000111111000000111111"
|
||||
},
|
||||
/* 2*/ { "AAT2556 电池充电器+降压转换器 200mA至2A tel:86 019 82512738", UNICODE_MODE, 3, 3, ZINT_WARN_NONCOMPLIANT, 42, 42, "AIMD014 Figure D.1 **NOT SAME** different encodation, see test_input dataset",
|
||||
/* 2*/ { "AAT2556 电池充电器+降压转换器 200mA至2A tel:86 019 82512738", UNICODE_MODE, 3, 3, 0, 42, 42, "AIMD014 Figure D.1 **NOT SAME** different encodation, see test_input dataset",
|
||||
"111111000000111111000000111111000000111111"
|
||||
"101101001100101111001010101011001100101101"
|
||||
"110001011010110101010000100011000000100001"
|
||||
|
@ -523,72 +523,74 @@ static void test_encode_segs(int index, int generate, int debug) {
|
|||
char *comment;
|
||||
char *expected;
|
||||
};
|
||||
// ¶ not in GB 2312 (in ISO/IEC 8869-1)
|
||||
// Ж in GB 2312 (and ISO/IEC 8859-5)
|
||||
struct item data[] = {
|
||||
/* 0*/ { UNICODE_MODE, -1, -1, { 0, 0, "" }, { { TU("¶"), -1, 0 }, { TU("Ж"), -1, 7 }, { TU(""), 0, 0 } }, 0, 30, 30, "Standard example",
|
||||
/* 0*/ { UNICODE_MODE, -1, -1, { 0, 0, "" }, { { TU("¶"), -1, 0 }, { TU("Ж"), -1, 7 }, { TU(""), 0, 0 } }, ZINT_WARN_USES_ECI, 30, 30, "Standard example (adds ECI 3 for ¶)",
|
||||
"111111000000111111000000111111"
|
||||
"111101011110111111011110111111"
|
||||
"100101011110111111011110111111"
|
||||
"110011000000100001000000100001"
|
||||
"110011000000100001000000100001"
|
||||
"111111011110111111011110111111"
|
||||
"100001011110111111011110111111"
|
||||
"100101000000100001000000100001"
|
||||
"100011000000100001000000100001"
|
||||
"111111000000111111000000111111"
|
||||
"000000111111000000111111000000"
|
||||
"011100110111010000110001011110"
|
||||
"010000111111000110111101011110"
|
||||
"000010100001000110110001000000"
|
||||
"001000100001001100100001000000"
|
||||
"011110110111010000110001011110"
|
||||
"000110111111000000100011011110"
|
||||
"000100100001001010111011000000"
|
||||
"001110100001010000110111000000"
|
||||
"000000111111000000111111000000"
|
||||
"111111000000111111000000111111"
|
||||
"111101010110101001010000111111"
|
||||
"101111011110100001000100111111"
|
||||
"100011000000110111011000100001"
|
||||
"110111000000100001000000100001"
|
||||
"100001011110100001001110111111"
|
||||
"100011000000111101000000100001"
|
||||
"111111000000100001000000100001"
|
||||
"111111000000111111000000111111"
|
||||
"000000111111000000111111000000"
|
||||
"011110110111010110110001011010"
|
||||
"010110111111011110100001010000"
|
||||
"011010100001000000101011011100"
|
||||
"001000100001000000110001000110"
|
||||
"011000110111010000110001011110"
|
||||
"011100111111000000100011001010"
|
||||
"000010100001001100101101000010"
|
||||
"011100100001011000100001001110"
|
||||
"000000111111000000111111000000"
|
||||
"111111000000111111000000111111"
|
||||
"111001011100111111011000111111"
|
||||
"100001001100111101001110111011"
|
||||
"100001001010111011011110100011"
|
||||
"101011000010100001001110100101"
|
||||
"111001011110111011011100111011"
|
||||
"100001010100111101001110110001"
|
||||
"110011001110101111010110110001"
|
||||
"100011001100110011010100100101"
|
||||
"111111000000111111000000111111"
|
||||
},
|
||||
/* 1*/ { UNICODE_MODE, -1, -1, { 0, 0, "" }, { { TU("¶"), -1, 0 }, { TU("Ж"), -1, 0 }, { TU(""), 0, 0 } }, ZINT_WARN_USES_ECI, 30, 30, "Standard example auto-ECI",
|
||||
/* 1*/ { UNICODE_MODE, -1, -1, { 0, 0, "" }, { { TU("¶"), -1, 0 }, { TU("Ж"), -1, 0 }, { TU(""), 0, 0 } }, ZINT_WARN_USES_ECI, 30, 30, "Standard example auto-ECI (adds ECI-3 from ¶, ECI-29 for Ж)",
|
||||
"111111000000111111000000111111"
|
||||
"111101011110111111011110111111"
|
||||
"100101011110111111011110111111"
|
||||
"110011000000100001000000100001"
|
||||
"110011000000100001000000100001"
|
||||
"111111011110111111011110111111"
|
||||
"100001011110111111011110111111"
|
||||
"100101000000100001000000100001"
|
||||
"100011000000100001000000100001"
|
||||
"111111000000111111000000111111"
|
||||
"000000111111000000111111000000"
|
||||
"011100110111010000110001011110"
|
||||
"010000111111000110111101011110"
|
||||
"000010100001000110110001000000"
|
||||
"001000100001001100100001000000"
|
||||
"011110110111010000110001011110"
|
||||
"000110111111000000100011011110"
|
||||
"000100100001001010111011000000"
|
||||
"001110100001010000110111000000"
|
||||
"000000111111000000111111000000"
|
||||
"111111000000111111000000111111"
|
||||
"111101010110101001010000111111"
|
||||
"101111011110100001000100111111"
|
||||
"100011000000110111011000100001"
|
||||
"110111000000100001000000100001"
|
||||
"100001011110100001001110111111"
|
||||
"100011000000111101000000100001"
|
||||
"111111000000100001000000100001"
|
||||
"111111000000111111000000111111"
|
||||
"000000111111000000111111000000"
|
||||
"011110110111010110110001011010"
|
||||
"010110111111011110100001010000"
|
||||
"011010100001000000101011011100"
|
||||
"001000100001000000110001000110"
|
||||
"011000110111010000110001011110"
|
||||
"011100111111000000100011001010"
|
||||
"000010100001001100101101000010"
|
||||
"011100100001011000100001001110"
|
||||
"000000111111000000111111000000"
|
||||
"111111000000111111000000111111"
|
||||
"111001011100111111011000111111"
|
||||
"100001001100111101001110111011"
|
||||
"100001001010111011011110100011"
|
||||
"101011000010100001001110100101"
|
||||
"111001011110111011011100111011"
|
||||
"100001010100111101001110110001"
|
||||
"110011001110101111010110110001"
|
||||
"100011001100110011010100100101"
|
||||
"111111000000111111000000111111"
|
||||
},
|
||||
/* 2*/ { UNICODE_MODE, -1, -1, { 0, 0, "" }, { { TU("Ж"), -1, 7 }, { TU("¶"), -1, 0 }, { TU(""), 0, 0 } }, 0, 30, 30, "Standard example inverted",
|
||||
/* 2*/ { UNICODE_MODE, -1, -1, { 0, 0, "" }, { { TU("Ж"), -1, 7 }, { TU("¶"), -1, 0 }, { TU(""), 0, 0 } }, ZINT_WARN_USES_ECI, 30, 30, "Standard example inverted",
|
||||
"111111000000111111000000111111"
|
||||
"111001011110111111011110111111"
|
||||
"101111011110111111011110111111"
|
||||
|
@ -654,146 +656,146 @@ static void test_encode_segs(int index, int generate, int debug) {
|
|||
},
|
||||
/* 4*/ { UNICODE_MODE, -1, -1, { 0, 0, "" }, { { TU("product:Google Pixel 4a - 128 GB of Storage - Black;price:$439.97"), -1, 3 }, { TU("品名:Google 谷歌 Pixel 4a -128 GB的存储空间-黑色;零售价:¥3149.79"), -1, 29 }, { TU("Produkt:Google Pixel 4a - 128 GB Speicher - Schwarz;Preis:444,90 €"), -1, 17 } }, 0, 78, 78, "AIM ITS/04-023:2022 Annex A example",
|
||||
"111111000000111111000000111111000000111111000000111111000000111111000000111111"
|
||||
"100101000100100101000110100001000100100101000000100111000010100111000000100001"
|
||||
"101001011010100111011110101001011100101111001110100001001110111101000110100101"
|
||||
"101111011000100011001010101111000000110001000100110101001010110111001010111001"
|
||||
"101011001010110111000010101111011100111011011100101001001100111101000000101101"
|
||||
"100001000100100011000110100011000010100001000100100001000010100111000000100111"
|
||||
"111111001110101001010010111011001010100111010100101011011100101011001010101011"
|
||||
"110111000010100101001000100111010100101011001110111111011100101111000110111011"
|
||||
"111001011000100011010100101011010110101111010100100011011110110101001110111111"
|
||||
"111111000000111111000000111111000000111111000000111111000000111111000000111111"
|
||||
"000000111111000000111111000000111111000000111111000000111111000000111111000000"
|
||||
"000000111011011010111001011000111001011010111111011010111111011110111011000100"
|
||||
"011110101101010010110001000000101111010110111111000000100011011110111111011010"
|
||||
"010010100001011010110101001010100011010000101001011110110001000010111111001100"
|
||||
"001000100111000000110011001010111111000000110001011100100001011010101011010100"
|
||||
"000010111111011110111001011110111111011010111111011010111111011110111111000010"
|
||||
"011000110001000000110001011110101011010110111111011100100011011110111011001000"
|
||||
"000100101111011010110001000000110011010000101111011110110001000010101111001100"
|
||||
"011100110011000000100001010010111111000000110011011100100001011110101011010110"
|
||||
"000000111111000000111111000000111111000000111111000000111111000000111111000000"
|
||||
"111111000000111111000000111111000000111111000000111111000000111111000000111111"
|
||||
"100101011000110001010110110111010010110111010000110011010110110111011010100011"
|
||||
"111001010010110001001100111011010100111111001110101111011100111101010110110001"
|
||||
"111101011110100011000000111001001010100001001010110111000110111111000000101111"
|
||||
"111111000010110111010000111011001000100011000010110011011100110101000000110001"
|
||||
"100001011010110001010110110111010010110111010000110101010110110001011010100011"
|
||||
"111101001010100001001100110111001010111111000110101111011100101001010110100111"
|
||||
"100011011010100111001110110011001010101101010000110111001110110101000000110101"
|
||||
"110001010110111111000110100111001000111101001000110011011010100111000000110101"
|
||||
"111111000000111111000000111111000000111111000000111111000000111111000000111111"
|
||||
"000000111111000000111111000000111111000000111111000000111111000000111111000000"
|
||||
"000100111001010110101101001000101001001000101111001000101011010100111111000110"
|
||||
"000010111011011000110011011010111011011110101001011100110101011010111111010000"
|
||||
"010010110001000000111011011110101001010010100011010110111011011110100011001010"
|
||||
"011110100001000010111111011010110011011010110001011110111111000110101111011110"
|
||||
"000100111011010110101001001000101011001100101111001010101111010100111111000100"
|
||||
"010010101011011000101001011010101111011110101001000010111101000110111111010110"
|
||||
"011100100001000000111011011100111001010010100011001000111011011110101101000100"
|
||||
"010010100001000000111111010100111111011010111101010000111111000110100001010000"
|
||||
"000000111111000000111111000000111111000000111111000000111111000000111111000000"
|
||||
"111111000000111111000000111111000000111111000000111111000000111111000000111111"
|
||||
"100101011100110111001100100111000100100101000110100111001110110011011100100111"
|
||||
"100011010100101111011110110001001110101111010000110001011000111011010010100001"
|
||||
"111001010110111001000100101111000000110111000100111111000100101101011110101011"
|
||||
"111101011010100011001010100111000100111111000100101101001010100001011110111111"
|
||||
"100011011010110111001000100011000000100101000110100111001110110011011000100101"
|
||||
"101001010010100011001000100101011010101111011010111111011000111011001000101111"
|
||||
"100011011010101001000100101111000000111111011010111111000000100001001110101001"
|
||||
"101101011000100011001110100111000100110111000010101101000100110001011110110011"
|
||||
"111111000000111111000000111111000000111111000000111111000000111111000000111111"
|
||||
"000000111111000000111111000000111111000000111111000000111111000000111111000000"
|
||||
"000010111111010110101101000000111101011000111101000110101111010110111111000000"
|
||||
"001010111111011100100001010000110001000000100111011110110011011110100011001100"
|
||||
"010110100111001100101011010110110001010110111101011000111001011100110001010100"
|
||||
"000010100101011010101001011110110111011100101111010010100001001110100001010100"
|
||||
"000000111111010100101101000100111101011000111101000110101001010100111111000010"
|
||||
"011100111111001000100001000000101001000000111101011110111101001010100011001010"
|
||||
"000000100111001100101011011110111101010110111001010100101101010100110001011100"
|
||||
"000100111101000000110001010000110001000110110111011000100101011010100001010000"
|
||||
"000000111111000000111111000000111111000000111111000000111111000000111111000000"
|
||||
"111111000000111111000000111111000000111111000000111111000000111111000000111111"
|
||||
"100101011010110111001100100011011000110101011010100001001010110001011110100011"
|
||||
"110111011010111011011100100011011100111111010110111111000000110001011110110011"
|
||||
"110111010000110011001110111001010110101101001000111101010100100011001110110011"
|
||||
"101111000000111111011000100101010110100001011010110001001000100001011110111111"
|
||||
"100111011010110111001100100011011000110111011000100111001000110001011110100011"
|
||||
"110101011000111011001100100011011100110001010010111101000000111001011110100101"
|
||||
"100111010000110001001110111011010000111101011000100011010100110011001010111101"
|
||||
"111101000000100101011000100011001000100001011010100111001000100001001010111101"
|
||||
"111111000000111111000000111111000000111111000000111111000000111111000000111111"
|
||||
"000000111111000000111111000000111111000000111111000000111111000000111111000000"
|
||||
"000110111001010100101101000100111011011010111111000010101101010000111011000000"
|
||||
"011000111001001010111001010000100101010110111001001110101111001100101101001010"
|
||||
"011010110101000010110011011010101011000010101101011100111101001010101111010110"
|
||||
"011010101001001010101101011110111001010010101101000100101001000010100101000100"
|
||||
"000010111111010010101101000100111001011110111111000110101101010000111101000110"
|
||||
"001110110101000110100111011110101101011110111001010010101111001100101111010100"
|
||||
"000100100101000010110011011010111011010100100001011100111001001110101111010100"
|
||||
"001100101001001010101001011110111001011100110111000100110001001100100101010100"
|
||||
"000000111111000000111111000000111111000000111111000000111111000000111111000000"
|
||||
"111111000000111111000000111111000000111111000000111111000000111111000000111111"
|
||||
"100001011110110111001000100101000010100011000010100001001010110001011100100011"
|
||||
"110011011110100001001000100001001010110111010100101101000000110001011110101101"
|
||||
"110001001110111001001110100111001000101011011100100111000000111011010000100001"
|
||||
"111011001000101111011010110111011110110011001100111111010000110111000000100111"
|
||||
"100101011110110001001000100111000010100001000000100001001110110111011100100011"
|
||||
"101001011110101001001000101001001010111101010000101101011100111111011110100111"
|
||||
"101011000100110111001110111101000000111011010010100001011110111001010000111001"
|
||||
"110011010110111111000000110001011110110011010110101001011110110111000000110101"
|
||||
"111111000000111111000000111111000000111111000000111111000000111111000000111111"
|
||||
"000000111111000000111111000000111111000000111111000000111111000000111111000000"
|
||||
"000110111111010000101001001100101111001100101101001100101111010010111111000010"
|
||||
"000110100111000000100111011010100001011110101001011010111101011010111111000000"
|
||||
"001010110001011100100101001110100001011100111001000100101011000100100001001000"
|
||||
"000000100001010010100011001110111111001110100001000110111111001110100011001010"
|
||||
"000100111111010000101111001010101111001000101111001100101011010110111111000000"
|
||||
"011100100111000000100101000100100001011110101101011010111011011010111111011010"
|
||||
"010010110001011100100101010000101001001100110011001010101011000100101011011110"
|
||||
"011010100001000000100011010100111011001110110001001110111111001110111001000010"
|
||||
"000000111111000000111111000000111111000000111111000000111111000000111111000000"
|
||||
"111111000000111111000000111111000000111111000000111111000000111111000000111111"
|
||||
"100001011010110001010100110011010010110111010100110011010010110101011000100011"
|
||||
"111111010100100111001110111111010010110101011000110011011110111011001010100111"
|
||||
"111001011110110101011010100111011010110111011100101111001100100001001100100111"
|
||||
"110011011100111001011100101111000000101011011110111011011010110011010110111001"
|
||||
"100001011000110001010110110011010100110101010100110101010010110101011100100101"
|
||||
"111011010100100011011110111111010100101111011000110001011100111011010010100011"
|
||||
"100001011110110101011010100001011010100001011110101111000110100101011100111011"
|
||||
"100111011100111001010100110011000000111011011100111011010000110111010110110111"
|
||||
"111111000000111111000000111111000000111111000000111111000000111111000000111111"
|
||||
"000000111111000000111111000000111111000000111111000000111111000000111111000000"
|
||||
"000000111111011110111101011110111001011010111111011110111111011110111001000010"
|
||||
"001100111111000000111011011110101101011110111111000000101011011110100001000010"
|
||||
"010010101111010000110111000000110001010110101001000000110111001010100001000110"
|
||||
"000100111111000000101111010110100001011110110101000000110101010010100001001000"
|
||||
"000100111111011110111011011110111001011110111111011110111101011110111001000110"
|
||||
"010100111111000000100001011110101101011010111111000000111101011110100001011010"
|
||||
"000000101001010000110111000100110001010010101011000000110111001110100001010110"
|
||||
"001100110111000000101111011110100001001110111111000000110101010000100001010010"
|
||||
"000000111111000000111111000000111111000000111111000000111111000000111111000000"
|
||||
"111111000000111111000000111111000000111111000000111111000000111111000000111111"
|
||||
"100111000110100111000110100101000110100101000100100011000100100111000100100011"
|
||||
"110011011100111011000100100011001010111001000110110101001100110011000110100001"
|
||||
"111001000010100011001010100001000010100111010110111011000000110101011100110111"
|
||||
"110111001010111011001010101011001000101111011110111001011010111111010100111111"
|
||||
"100111000010100111000110100001000000100011000000100111000110100001000100100111"
|
||||
"101101010110100111000010111111001000100011001010101011011110110011011100100101"
|
||||
"101001001000110101000110111011010000100111010100110101000100101111001100111011"
|
||||
"110011010110101111001110110111010000100111010010110111000100111111000010100001"
|
||||
"111111000000111111000000111111000000111111000000111111000000111111000000111111"
|
||||
},
|
||||
/* 5*/ { DATA_MODE, -1, -1, { 0, 0, "" }, { { TU("\266"), 1, 0 }, { TU("\266"), 1, 7 }, { TU("\266"), 1, 0 } }, 0, 30, 30, "Standard example + extra seg, data mode",
|
||||
/* 5*/ { DATA_MODE, -1, -1, { 0, 0, "" }, { { TU("\266"), 1, 0 }, { TU("\266"), 1, 7 }, { TU("\266"), 1, 0 } }, 0, 30, 30, "Standard example + extra seg, data mode (ECIs 0, 7, 29)",
|
||||
"111111000000111111000000111111"
|
||||
"111101011110111111011110111111"
|
||||
"111011011110111111011110111111"
|
||||
"111101000000100001000000100001"
|
||||
"101001000000100001000000100001"
|
||||
"111111000000111111000000111111"
|
||||
"000000111111000000111111000000"
|
||||
"011010110111010000110001011110"
|
||||
"000010111111000110111101011110"
|
||||
"001010100001000110110001000000"
|
||||
"011100100001001100100001000000"
|
||||
"000000111111000000111111000000"
|
||||
"111111000000111111000000111111"
|
||||
"111111010000101001010000111111"
|
||||
"101111000000100001000100111111"
|
||||
"110001001100110111011000100001"
|
||||
"111111011110111111011110111111"
|
||||
"101111011110111111011110111111"
|
||||
"101111000000100001000000100001"
|
||||
"101011000000100001000000100001"
|
||||
"111111000000111111000000111111"
|
||||
"000000111111000000111111000000"
|
||||
"011110110001010010110001011010"
|
||||
"010100110111010110111001001100"
|
||||
"000110100001000000101011010010"
|
||||
"010000100001000000110001000110"
|
||||
"011100110111010000110001011110"
|
||||
"010010111111000110111101011110"
|
||||
"011100100001000110110001000000"
|
||||
"010110100001001100100001000000"
|
||||
"000000111111000000111111000000"
|
||||
"111111000000111111000000111111"
|
||||
"111011011010111101011010111111"
|
||||
"111001000110101111011000101001"
|
||||
"111101011000111011010010111011"
|
||||
"101101011100110001001000111001"
|
||||
"111101010000101001010000111111"
|
||||
"100101000000100001000100111111"
|
||||
"100001001100110111011000100001"
|
||||
"110101000000100001000000100001"
|
||||
"111111000000111111000000111111"
|
||||
"000000111111000000111111000000"
|
||||
"011000110001010100110001011000"
|
||||
"001110110111010110111001011010"
|
||||
"000110100001000000101011000010"
|
||||
"010100100001000110110001010100"
|
||||
"000000111111000000111111000000"
|
||||
"111111000000111111000000111111"
|
||||
"111011011000111101011100111011"
|
||||
"100001001100100101010110101101"
|
||||
"101111000000110001001000111001"
|
||||
"100111010100111001001110101011"
|
||||
"111111000000111111000000111111"
|
||||
},
|
||||
/* 6*/ { UNICODE_MODE, -1, -1, { 1, 16, "" }, { { TU("齄齄"), -1, 29 }, { TU("Τεχτ"), -1, 0 }, { TU("Text"), -1, 0 } }, ZINT_WARN_USES_ECI, 30, 30, "Structured Append",
|
||||
/* 6*/ { UNICODE_MODE, -1, -1, { 1, 16, "" }, { { TU("齄齄"), -1, 29 }, { TU("Τεχτ"), -1, 0 }, { TU("Text"), -1, 0 } }, 0, 30, 30, "Structured Append (ECIs 29, 0, 0)",
|
||||
"111111000000111111000000111111"
|
||||
"111011011000111101011010111111"
|
||||
"101011000000101111001110100001"
|
||||
"111011000010110111011100100011"
|
||||
"110101010000101001000100111101"
|
||||
"111001011010111011011000111111"
|
||||
"111011011110111101000000111111"
|
||||
"101111010010100001001110100001"
|
||||
"110111000100110011010110100001"
|
||||
"111111000000111111000000111111"
|
||||
"000000111111000000111111000000"
|
||||
"011000110101010000110111011110"
|
||||
"010110110001000010111111011110"
|
||||
"011010100111011010111111000000"
|
||||
"011100111111010000110111000000"
|
||||
"011100110111010110110101011110"
|
||||
"010000110001000100101011011110"
|
||||
"010010101111011000111111000000"
|
||||
"011000111111001110101111000000"
|
||||
"000000111111000000111111000000"
|
||||
"111111000000111111000000111111"
|
||||
"111011010100101001010110111111"
|
||||
"111111011110101111011110111111"
|
||||
"100101010010101101011010100001"
|
||||
"100101011000100001011100100001"
|
||||
"111001010000101001010110111111"
|
||||
"110101000100101111011000111111"
|
||||
"111001001100101101001100100001"
|
||||
"110001000010100001011110100001"
|
||||
"111111000000111111000000111111"
|
||||
"000000111111000000111111000000"
|
||||
"011100110111010010110011011100"
|
||||
"010110110101001100110001011000"
|
||||
"000100110001000000101111010100"
|
||||
"000100100011000100100001001010"
|
||||
"011100110101010010110001011010"
|
||||
"011010100011000000101111011100"
|
||||
"001100100101001000110001000010"
|
||||
"001100110001011000100101011100"
|
||||
"000000111111000000111111000000"
|
||||
"111111000000111111000000111111"
|
||||
"111011011010111001011000111011"
|
||||
"111001010110100101011000111001"
|
||||
"110111000010101001011100110011"
|
||||
"100011011010111011001110101011"
|
||||
"111001011000111011011100111101"
|
||||
"111011011010111111001110111101"
|
||||
"101111001100111001001000101011"
|
||||
"101101010000100101000000110001"
|
||||
"111111000000111111000000111111"
|
||||
},
|
||||
};
|
||||
|
|
|
@ -183,7 +183,7 @@ static void test_input(int index, int generate, int debug) {
|
|||
struct item data[] = {
|
||||
/* 0*/ { UNICODE_MODE, 0, -1, "é", -1, 0, 0, "30 00 F4 80 00 00 00 00 00", 1, "B1 (ISO 8859-1)" },
|
||||
/* 1*/ { UNICODE_MODE, 3, -1, "é", -1, 0, 3, "80 33 00 0F 48 00 00 00 00", 1, "ECI-3 B1 (ISO 8859-1)" },
|
||||
/* 2*/ { UNICODE_MODE, 29, -1, "é", -1, 0, 29, "81 D3 00 15 45 30 00 00 00", 1, "ECI-29 B2 (GB 2312)" },
|
||||
/* 2*/ { UNICODE_MODE, 29, -1, "é", -1, 0, 29, "81 D4 FC FF FF 00 00 00 00", 1, "ECI-29 H(1)1 (GB 2312)" },
|
||||
/* 3*/ { UNICODE_MODE, 32, -1, "é", -1, 0, 32, "82 04 FC FF FF 00 00 00 00", 1, "ECI-32 H(1)1 (GB 18030) (Region One)" },
|
||||
/* 4*/ { UNICODE_MODE, 26, -1, "é", -1, 0, 26, "81 A3 00 16 1D 48 00 00 00", 1, "ECI-26 B2 (UTF-8)" },
|
||||
/* 5*/ { UNICODE_MODE, 26, ZINT_FULL_MULTIBYTE, "é", -1, 0, 26, "81 A4 70 2F FF 00 00 00 00", 1, "ECI-26 H(1)1 (Region One) (UTF-8) (full multibyte)" },
|
||||
|
@ -254,10 +254,10 @@ static void test_input(int index, int generate, int debug) {
|
|||
/* 70*/ { UNICODE_MODE, 28, -1, "龘", -1, 0, 28, "81 C3 00 17 CE A8 00 00 00", 1, "ECI-28 B2 (Big5)" },
|
||||
/* 71*/ { UNICODE_MODE, 28, -1, "龘龘", -1, 0, 28, "81 C3 00 27 CE AF CE A8 00", 1, "ECI-28 B4 (Big5)" },
|
||||
/* 72*/ { UNICODE_MODE, 0, -1, "齄", -1, ZINT_WARN_NONCOMPLIANT, 0, "Warning 5B BF FF F0 00 00 00 00 00", 1, "H(2)1 (GB 18030)" },
|
||||
/* 73*/ { UNICODE_MODE, 29, -1, "齄", -1, 0, 29, "81 D3 00 17 BF F0 00 00 00", 1, "ECI-29 B2 (GB 2312)" },
|
||||
/* 74*/ { UNICODE_MODE, 32, -1, "齄", -1, 0, 32, "82 05 BB FF FF 00 00 00 00", 1, "ECI-32 H(2)1 (GB 2312)" },
|
||||
/* 75*/ { UNICODE_MODE, 29, -1, "齄齄", -1, 0, 29, "81 D3 00 27 BF F7 BF F0 00", 1, "ECI-29 B4 (GB 2312)" },
|
||||
/* 76*/ { UNICODE_MODE, 32, -1, "齄齄", -1, 0, 32, "82 05 BB FB BF FF F0 00 00", 1, "ECI-32 H(2)2 (GB 2312)" },
|
||||
/* 73*/ { UNICODE_MODE, 29, -1, "齄", -1, 0, 29, "81 D5 BB FF FF 00 00 00 00", 1, "ECI-29 H(2)1 (GB 2312)" },
|
||||
/* 74*/ { UNICODE_MODE, 32, -1, "齄", -1, 0, 32, "82 05 BB FF FF 00 00 00 00", 1, "ECI-32 H(2)1 (GB 18030)" },
|
||||
/* 75*/ { UNICODE_MODE, 29, -1, "齄齄", -1, 0, 29, "81 D5 BB FB BF FF F0 00 00", 1, "ECI-29 H(2)2 (GB 2312)" },
|
||||
/* 76*/ { UNICODE_MODE, 32, -1, "齄齄", -1, 0, 32, "82 05 BB FB BF FF F0 00 00", 1, "ECI-32 H(2)2 (GB 18030)" },
|
||||
/* 77*/ { UNICODE_MODE, 0, -1, "가", -1, ZINT_WARN_NONCOMPLIANT, 0, "Warning 70 2B 5E 80 00 00 00 00 00", 1, "H(f)1 (GB 18030)" },
|
||||
/* 78*/ { UNICODE_MODE, 30, -1, "가", -1, 0, 30, "81 E3 00 15 85 08 00 00 00", 1, "ECI-30 T2 (EUC-KR)" },
|
||||
/* 79*/ { UNICODE_MODE, 30, -1, "가가", -1, 0, 30, "81 E3 00 25 85 0D 85 08 00", 1, "ECI-30 B4 (EUC-KR)" },
|
||||
|
@ -2590,52 +2590,52 @@ static void test_encode(int index, int generate, int debug) {
|
|||
"11101010110101000000001"
|
||||
"11101010101010001111111"
|
||||
},
|
||||
/* 63*/ { UNICODE_MODE, 29, 2, -1, -1, "条码", -1, 0, 23, 23, "AIM ITS/04-023:2022 ECI 29 Example 1 **NOT SAME** example uses Region One mode",
|
||||
/* 63*/ { UNICODE_MODE, 29, 2, -1, -1, "条码", -1, 0, 23, 23, "AIM ITS/04-023:2022 ECI 29 Example 1 same",
|
||||
"11111110011010101111111"
|
||||
"10000000010001100000001"
|
||||
"10111110001010001111101"
|
||||
"10100000111000100000101"
|
||||
"10101110001100001110101"
|
||||
"10101110000010001110101"
|
||||
"10101110110101101110101"
|
||||
"10101110001010001110101"
|
||||
"00000000110101000000000"
|
||||
"10101110001111001110101"
|
||||
"00000000111100000000000"
|
||||
"00010101001010100000000"
|
||||
"01010001100101010101100"
|
||||
"11011111110100000100011"
|
||||
"00110101111011110100111"
|
||||
"11001011011001101010100"
|
||||
"10110111010101000100100"
|
||||
"01001101100101010100100"
|
||||
"11000011111001010101010"
|
||||
"11001010110100101101110"
|
||||
"10101000001100101010100"
|
||||
"11011011010101000101111"
|
||||
"00000000101010010101000"
|
||||
"00000000010101100000000"
|
||||
"11111110000010001110101"
|
||||
"00000010110101101110101"
|
||||
"00000000010111100000000"
|
||||
"11111110011001001110101"
|
||||
"00000010100101101110101"
|
||||
"11111010001011001110101"
|
||||
"00001010111110100000101"
|
||||
"11101010000010001111101"
|
||||
"00001010110100100000101"
|
||||
"11101010001010001111101"
|
||||
"11101010110101000000001"
|
||||
"11101010101010001111111"
|
||||
},
|
||||
/* 64*/ { UNICODE_MODE, 29, 2, -1, -1, "北京", -1, 0, 23, 23, "AIM ITS/04-023:2022 ECI 29 Example 2 **NOT SAME** example uses Region One mode",
|
||||
/* 64*/ { UNICODE_MODE, 29, 2, -1, -1, "北京", -1, 0, 23, 23, "AIM ITS/04-023:2022 ECI 29 Example 2 same",
|
||||
"11111110011010101111111"
|
||||
"10000000010001100000001"
|
||||
"10111110001010001111101"
|
||||
"10100000111000100000101"
|
||||
"10101110001100001110101"
|
||||
"10101110000010001110101"
|
||||
"10101110110101101110101"
|
||||
"10101110001010001110101"
|
||||
"00000000110101000000000"
|
||||
"00000000110011000000000"
|
||||
"00010101001010100000000"
|
||||
"01010001111101010100010"
|
||||
"01111010001100100111001"
|
||||
"01011010111110000010111"
|
||||
"10001011100010101010100"
|
||||
"01011111010101000110101"
|
||||
"01001001111101010101000"
|
||||
"01101101100001010101011"
|
||||
"00011010110101110011010"
|
||||
"10101010111001101010100"
|
||||
"00010101010101010101001"
|
||||
"00000000101010010101000"
|
||||
"00000000010110100000000"
|
||||
"11111110001001001110101"
|
||||
"00000010110101101110101"
|
||||
"11111010001011001110101"
|
||||
"00001010100110100000101"
|
||||
"00000000010111100000000"
|
||||
"11111110011101001110101"
|
||||
"00000010100101101110101"
|
||||
"11111010001010001110101"
|
||||
"00001010100011100000101"
|
||||
"11101010010010001111101"
|
||||
"11101010110101000000001"
|
||||
"11101010101010001111111"
|
||||
|
@ -2665,7 +2665,32 @@ static void test_encode(int index, int generate, int debug) {
|
|||
"11101010110101000000001"
|
||||
"11101010101010001111111"
|
||||
},
|
||||
/* 66*/ { UNICODE_MODE, 30, 2, -1, -1, "서울", -1, 0, 23, 23, "AIM ITS/04-023:2022 ECI 30 Example 2 **NOT SAME** example uses Region One mode",
|
||||
/* 66*/ { UNICODE_MODE, 30, 2, -1, ZINT_FULL_MULTIBYTE | (4 << 8), "바코드", -1, 0, 23, 23, "AIM ITS/04-023:2022 ECI 30 Example 1 same with FULL_MULTIBYTE and explicit mask 11 (auto 01)",
|
||||
"11111110111101101111111"
|
||||
"10000000100011000000001"
|
||||
"10111110000000101111101"
|
||||
"10100000110110100000101"
|
||||
"10101110110000001110101"
|
||||
"10101110100111001110101"
|
||||
"10101110111000101110101"
|
||||
"00000000111111100000000"
|
||||
"00010101000111010000000"
|
||||
"00010110100000111001110"
|
||||
"10000101011111100110110"
|
||||
"11100000110001000100111"
|
||||
"10111011100001111000111"
|
||||
"11010111101101010101000"
|
||||
"00000001010010010101000"
|
||||
"00000000110011100000000"
|
||||
"11111110100101101110101"
|
||||
"00000010011101101110101"
|
||||
"11111010001100101110101"
|
||||
"00001010110010100000101"
|
||||
"11101010100010001111101"
|
||||
"11101010011010100000001"
|
||||
"11101010111010101111111"
|
||||
},
|
||||
/* 67*/ { UNICODE_MODE, 30, 2, -1, -1, "서울", -1, 0, 23, 23, "AIM ITS/04-023:2022 ECI 30 Example 2 **NOT SAME** example uses Region One mode",
|
||||
"11111110011010101111111"
|
||||
"10000000010001100000001"
|
||||
"10111110001010001111101"
|
||||
|
@ -2690,57 +2715,82 @@ static void test_encode(int index, int generate, int debug) {
|
|||
"11101010110101000000001"
|
||||
"11101010101010001111111"
|
||||
},
|
||||
/* 67*/ { UNICODE_MODE, 31, 2, -1, -1, "条码", -1, 0, 23, 23, "AIM ITS/04-023:2022 ECI 31 Example 1 **NOT SAME** example uses Region One mode",
|
||||
/* 68*/ { UNICODE_MODE, 30, 2, -1, ZINT_FULL_MULTIBYTE, "서울", -1, 0, 23, 23, "AIM ITS/04-023:2022 ECI 30 Example 2 same with FULL_MULTIBYTE",
|
||||
"11111110011010101111111"
|
||||
"10000000010001100000001"
|
||||
"10111110001010001111101"
|
||||
"10100000111011100000101"
|
||||
"10101110000010001110101"
|
||||
"10101110110101101110101"
|
||||
"10101110001000001110101"
|
||||
"00000000110010000000000"
|
||||
"00010101001010100000000"
|
||||
"01011101111101010100111"
|
||||
"10101111100101010101111"
|
||||
"11000010110101111101010"
|
||||
"10101001001000101010101"
|
||||
"11111001010101000101000"
|
||||
"00000000101010010101000"
|
||||
"00000000010110100000000"
|
||||
"11111110001001001110101"
|
||||
"00000010100101101110101"
|
||||
"11111010001011001110101"
|
||||
"00001010111101100000101"
|
||||
"11101010011010001111101"
|
||||
"11101010110101000000001"
|
||||
"11101010101010001111111"
|
||||
},
|
||||
/* 69*/ { UNICODE_MODE, 31, 2, -1, 2 << 8, "条码", -1, 0, 23, 23, "AIM ITS/04-023:2022 ECI 31 Example 1 same with explicit mask 01 (auto 11)",
|
||||
"11111110011010101111111"
|
||||
"10000000010001100000001"
|
||||
"10111110001010001111101"
|
||||
"10100000111010100000101"
|
||||
"10101110001100001110101"
|
||||
"10101110000010001110101"
|
||||
"10101110110101101110101"
|
||||
"10101110001010001110101"
|
||||
"00000000110101000000000"
|
||||
"10101110001111001110101"
|
||||
"00000000111100000000000"
|
||||
"00010101001010100000000"
|
||||
"01010001100101010101100"
|
||||
"11010000010000000100100"
|
||||
"11111101111010110010011"
|
||||
"11001010010100101010100"
|
||||
"00111011010101001010101"
|
||||
"01001101100101010100100"
|
||||
"11001100011101010101101"
|
||||
"00000010110101101011010"
|
||||
"10101001000001101010100"
|
||||
"01010111010101001011110"
|
||||
"00000000101010010101000"
|
||||
"00000000010101100000000"
|
||||
"11111110010111001110101"
|
||||
"00000010100101101110101"
|
||||
"00000000010111100000000"
|
||||
"11111110001100001110101"
|
||||
"00000010110101101110101"
|
||||
"11111010001011001110101"
|
||||
"00001010100111100000101"
|
||||
"11101010010010001111101"
|
||||
"00001010101101100000101"
|
||||
"11101010011010001111101"
|
||||
"11101010110101000000001"
|
||||
"11101010101010001111111"
|
||||
},
|
||||
/* 68*/ { UNICODE_MODE, 31, 2, -1, -1, "北京", -1, 0, 23, 23, "AIM ITS/04-023:2022 ECI 31 Example 2 **NOT SAME** example uses Region One mode",
|
||||
"11111110011001001111111"
|
||||
"10000000000000000000001"
|
||||
"10111110011111101111101"
|
||||
"10100000000110000000101"
|
||||
"10101110000010001110101"
|
||||
"10101110011111001110101"
|
||||
"10101110101001101110101"
|
||||
"00000000100100100000000"
|
||||
"00010101011111101000000"
|
||||
"01001101100001001000001"
|
||||
"11111011100110101001111"
|
||||
"00111000010101101110110"
|
||||
"01101001001100001001000"
|
||||
"10100010100100111001010"
|
||||
"00000010111111010101000"
|
||||
"00000000101010100000000"
|
||||
"11111110110010101110101"
|
||||
"00000010001111001110101"
|
||||
"11111010001000001110101"
|
||||
"00001010001110000000101"
|
||||
"11101010110111001111101"
|
||||
"11101010001001000000001"
|
||||
"11101010000100001111111"
|
||||
/* 70*/ { UNICODE_MODE, 31, 2, -1, 4 << 8, "北京", -1, 0, 23, 23, "AIM ITS/04-023:2022 ECI 31 Example 2 same with explicit mask 11 (auto 10)",
|
||||
"11111110111101101111111"
|
||||
"10000000100011000000001"
|
||||
"10111110000000101111101"
|
||||
"10100000110111100000101"
|
||||
"10101110110000001110101"
|
||||
"10101110100111001110101"
|
||||
"10101110111001101110101"
|
||||
"00000000100001100000000"
|
||||
"00010101000111010000000"
|
||||
"00000110110000111000101"
|
||||
"01010010110000111000010"
|
||||
"01000010001110100111100"
|
||||
"01000100110000111000110"
|
||||
"00001011101101001001010"
|
||||
"00000001010010010101000"
|
||||
"00000000110000100000000"
|
||||
"11111110110000101110101"
|
||||
"00000010001101101110101"
|
||||
"11111010001101101110101"
|
||||
"00001010100010100000101"
|
||||
"11101010111010001111101"
|
||||
"11101010011010100000001"
|
||||
"11101010111010101111111"
|
||||
},
|
||||
/* 69*/ { UNICODE_MODE, 31, 2, -1, -1, "條碼", -1, 0, 23, 23, "AIM ITS/04-023:2022 ECI 31 Example 3 **NOT SAME** example uses 2-byte Region mode",
|
||||
/* 71*/ { UNICODE_MODE, 31, 2, -1, -1, "條碼", -1, 0, 23, 23, "AIM ITS/04-023:2022 ECI 31 Example 3 **NOT SAME** example uses 2-byte Region mode, Zint binary (same bit count)",
|
||||
"11111110011001001111111"
|
||||
"10000000000000000000001"
|
||||
"10111110011111101111101"
|
||||
|
@ -2765,7 +2815,7 @@ static void test_encode(int index, int generate, int debug) {
|
|||
"11101010001001000000001"
|
||||
"11101010000100001111111"
|
||||
},
|
||||
/* 70*/ { UNICODE_MODE, 32, 2, -1, 2 << 8, "条码", -1, 0, 23, 23, "AIM ITS/04-023:2022 ECI 32 Example 1 same with explicit mask 01 (auto 10)",
|
||||
/* 72*/ { UNICODE_MODE, 32, 2, -1, 2 << 8, "条码", -1, 0, 23, 23, "AIM ITS/04-023:2022 ECI 32 Example 1 same with explicit mask 01 (auto 10)",
|
||||
"11111110011010101111111"
|
||||
"10000000011101100000001"
|
||||
"10111110001010001111101"
|
||||
|
@ -2790,7 +2840,7 @@ static void test_encode(int index, int generate, int debug) {
|
|||
"11101010110101000000001"
|
||||
"11101010101010001111111"
|
||||
},
|
||||
/* 71*/ { UNICODE_MODE, 32, 2, -1, 4 << 8, "北京", -1, 0, 23, 23, "AIM ITS/04-023:2022 ECI 32 Example 2 same with explicit mask 11 (auto 01)",
|
||||
/* 73*/ { UNICODE_MODE, 32, 2, -1, 4 << 8, "北京", -1, 0, 23, 23, "AIM ITS/04-023:2022 ECI 32 Example 2 same with explicit mask 11 (auto 01)",
|
||||
"11111110111101101111111"
|
||||
"10000000101111000000001"
|
||||
"10111110000000101111101"
|
||||
|
@ -2815,7 +2865,7 @@ static void test_encode(int index, int generate, int debug) {
|
|||
"11101010011010100000001"
|
||||
"11101010111010101111111"
|
||||
},
|
||||
/* 72*/ { UNICODE_MODE, 32, 2, -1, -1, "條碼", -1, 0, 23, 23, "AIM ITS/04-023:2022 ECI 32 Example 3 **NOT SAME** example uses 2-byte Region mode",
|
||||
/* 74*/ { UNICODE_MODE, 32, 2, -1, -1, "條碼", -1, 0, 23, 23, "AIM ITS/04-023:2022 ECI 32 Example 3 **NOT SAME** example uses 2-byte Region mode, Zint binary (same bit count)",
|
||||
"11111110011001001111111"
|
||||
"10000000001100000000001"
|
||||
"10111110011111101111101"
|
||||
|
@ -2840,7 +2890,7 @@ static void test_encode(int index, int generate, int debug) {
|
|||
"11101010001001000000001"
|
||||
"11101010000100001111111"
|
||||
},
|
||||
/* 73*/ { UNICODE_MODE, 32, 2, -1, 2 << 8, "པེ་ཅིང།", -1, 0, 25, 25, "AIM ITS/04-023:2022 ECI 32 Example 4 same with explicit mask 01 (auto 10)",
|
||||
/* 75*/ { UNICODE_MODE, 32, 2, -1, 2 << 8, "པེ་ཅིང།", -1, 0, 25, 25, "AIM ITS/04-023:2022 ECI 32 Example 4 same with explicit mask 01 (auto 10)",
|
||||
"1111111011101011001111111"
|
||||
"1000000001011100000000001"
|
||||
"1011111011000010001111101"
|
||||
|
@ -2867,7 +2917,7 @@ static void test_encode(int index, int generate, int debug) {
|
|||
"1110101001100100000000001"
|
||||
"1110101001001010101111111"
|
||||
},
|
||||
/* 74*/ { UNICODE_MODE, 32, 2, -1, -1, "バーコード", -1, 0, 23, 23, "AIM ITS/04-023:2022 ECI 32 Example 5 same",
|
||||
/* 76*/ { UNICODE_MODE, 32, 2, -1, -1, "バーコード", -1, 0, 23, 23, "AIM ITS/04-023:2022 ECI 32 Example 5 same",
|
||||
"11111110111101101111111"
|
||||
"10000000101100000000001"
|
||||
"10111110000000101111101"
|
||||
|
@ -2892,7 +2942,7 @@ static void test_encode(int index, int generate, int debug) {
|
|||
"11101010000101100000001"
|
||||
"11101010111010101111111"
|
||||
},
|
||||
/* 75*/ { UNICODE_MODE, 32, 2, -1, -1, "바코드", -1, 0, 23, 23, "AIM ITS/04-023:2022 ECI 32 Example 6 same",
|
||||
/* 77*/ { UNICODE_MODE, 32, 2, -1, -1, "바코드", -1, 0, 23, 23, "AIM ITS/04-023:2022 ECI 32 Example 6 same",
|
||||
"11111110111101101111111"
|
||||
"10000000101111000000001"
|
||||
"10111110000000101111101"
|
||||
|
@ -2917,7 +2967,7 @@ static void test_encode(int index, int generate, int debug) {
|
|||
"11101010011010100000001"
|
||||
"11101010111010101111111"
|
||||
},
|
||||
/* 76*/ { UNICODE_MODE, 33, 2, -1, 4 << 8, "条码", -1, 0, 23, 23, "AIM ITS/04-023:2022 ECI 33 Example 1 same with explicit mask 11 (auto 10)",
|
||||
/* 78*/ { UNICODE_MODE, 33, 2, -1, 4 << 8, "条码", -1, 0, 23, 23, "AIM ITS/04-023:2022 ECI 33 Example 1 same with explicit mask 11 (auto 10)",
|
||||
"11111110111101101111111"
|
||||
"10000000101111000000001"
|
||||
"10111110000000101111101"
|
||||
|
@ -2942,7 +2992,7 @@ static void test_encode(int index, int generate, int debug) {
|
|||
"11101010011010100000001"
|
||||
"11101010111010101111111"
|
||||
},
|
||||
/* 77*/ { UNICODE_MODE, 33, 2, -1, -1, "バーコード", -1, 0, 23, 23, "AIM ITS/04-023:2022 ECI 33 Example 2 same",
|
||||
/* 79*/ { UNICODE_MODE, 33, 2, -1, -1, "バーコード", -1, 0, 23, 23, "AIM ITS/04-023:2022 ECI 33 Example 2 same",
|
||||
"11111110111101101111111"
|
||||
"10000000101101000000001"
|
||||
"10111110000000101111101"
|
||||
|
@ -2967,7 +3017,7 @@ static void test_encode(int index, int generate, int debug) {
|
|||
"11101010010011100000001"
|
||||
"11101010111010101111111"
|
||||
},
|
||||
/* 78*/ { UNICODE_MODE, 33, 2, -1, 2 << 8, "바코드", -1, 0, 23, 23, "AIM ITS/04-023:2022 ECI 33 Example 3 same with explicit mask 01 (auto 11)",
|
||||
/* 80*/ { UNICODE_MODE, 33, 2, -1, 2 << 8, "바코드", -1, 0, 23, 23, "AIM ITS/04-023:2022 ECI 33 Example 3 same with explicit mask 01 (auto 11)",
|
||||
"11111110011010101111111"
|
||||
"10000000011101100000001"
|
||||
"10111110001010001111101"
|
||||
|
@ -2992,7 +3042,7 @@ static void test_encode(int index, int generate, int debug) {
|
|||
"11101010110101000000001"
|
||||
"11101010101010001111111"
|
||||
},
|
||||
/* 79*/ { UNICODE_MODE, 34, 2, -1, 4 << 8, "条码", -1, 0, 23, 23, "AIM ITS/04-023:2022 ECI 34 Example 1 same with explicit mask 11 (auto 10)",
|
||||
/* 81*/ { UNICODE_MODE, 34, 2, -1, 4 << 8, "条码", -1, 0, 23, 23, "AIM ITS/04-023:2022 ECI 34 Example 1 same with explicit mask 11 (auto 10)",
|
||||
"11111110111101101111111"
|
||||
"10000000101111000000001"
|
||||
"10111110000000101111101"
|
||||
|
@ -3017,7 +3067,7 @@ static void test_encode(int index, int generate, int debug) {
|
|||
"11101010011010100000001"
|
||||
"11101010111010101111111"
|
||||
},
|
||||
/* 80*/ { UNICODE_MODE, 34, 2, -1, 2 << 8, "バーコード", -1, 0, 25, 25, "AIM ITS/04-023:2022 ECI 34 Example 2 same with explicit mask 01 (auto 10)",
|
||||
/* 82*/ { UNICODE_MODE, 34, 2, -1, 2 << 8, "バーコード", -1, 0, 25, 25, "AIM ITS/04-023:2022 ECI 34 Example 2 same with explicit mask 01 (auto 10)",
|
||||
"1111111011101011001111111"
|
||||
"1000000001010101000000001"
|
||||
"1011111010001110001111101"
|
||||
|
@ -3044,7 +3094,7 @@ static void test_encode(int index, int generate, int debug) {
|
|||
"1110101001110101000000001"
|
||||
"1110101000101010101111111"
|
||||
},
|
||||
/* 81*/ { UNICODE_MODE, 34, 2, -1, 4 << 8, "바코드", -1, 0, 23, 23, "AIM ITS/04-023:2022 ECI 34 Example 3 same with explicit mask 11 (auto 01)",
|
||||
/* 83*/ { UNICODE_MODE, 34, 2, -1, 4 << 8, "바코드", -1, 0, 23, 23, "AIM ITS/04-023:2022 ECI 34 Example 3 same with explicit mask 11 (auto 01)",
|
||||
"11111110111101101111111"
|
||||
"10000000101111000000001"
|
||||
"10111110000010101111101"
|
||||
|
@ -3069,7 +3119,7 @@ static void test_encode(int index, int generate, int debug) {
|
|||
"11101010011010100000001"
|
||||
"11101010111010101111111"
|
||||
},
|
||||
/* 82*/ { UNICODE_MODE, 35, 2, -1, 2 << 8, "条码", -1, 0, 23, 23, "AIM ITS/04-023:2022 ECI 35 Example 1 same with explicit mask 01 (auto 11)",
|
||||
/* 84*/ { UNICODE_MODE, 35, 2, -1, 2 << 8, "条码", -1, 0, 23, 23, "AIM ITS/04-023:2022 ECI 35 Example 1 same with explicit mask 01 (auto 11)",
|
||||
"11111110011010101111111"
|
||||
"10000000011101100000001"
|
||||
"10111110001010001111101"
|
||||
|
@ -3094,7 +3144,7 @@ static void test_encode(int index, int generate, int debug) {
|
|||
"11101010110101000000001"
|
||||
"11101010101010001111111"
|
||||
},
|
||||
/* 83*/ { UNICODE_MODE, 35, 2, -1, -1, "バーコード", -1, 0, 25, 25, "AIM ITS/04-023:2022 ECI 35 Example 2 same",
|
||||
/* 85*/ { UNICODE_MODE, 35, 2, -1, -1, "バーコード", -1, 0, 25, 25, "AIM ITS/04-023:2022 ECI 35 Example 2 same",
|
||||
"1111111011101011001111111"
|
||||
"1000000001110101000000001"
|
||||
"1011111010100100001111101"
|
||||
|
@ -3121,7 +3171,7 @@ static void test_encode(int index, int generate, int debug) {
|
|||
"1110101000101100000000001"
|
||||
"1110101000001010101111111"
|
||||
},
|
||||
/* 84*/ { UNICODE_MODE, 35, 2, -1, 4 << 8, "바코드", -1, 0, 23, 23, "AIM ITS/04-023:2022 ECI 35 Example 3 same with explicit mask 11 (auto 01)",
|
||||
/* 86*/ { UNICODE_MODE, 35, 2, -1, 4 << 8, "바코드", -1, 0, 23, 23, "AIM ITS/04-023:2022 ECI 35 Example 3 same with explicit mask 11 (auto 01)",
|
||||
"11111110111101101111111"
|
||||
"10000000101101000000001"
|
||||
"10111110010000101111101"
|
||||
|
@ -3146,7 +3196,7 @@ static void test_encode(int index, int generate, int debug) {
|
|||
"11101010011111100000001"
|
||||
"11101010111010101111111"
|
||||
},
|
||||
/* 85*/ { UNICODE_MODE, 170, 2, -1, -1, "sn:7QPB4MN", -1, 0, 23, 23, "AIM ITS/04-023:2022 ECI 170 Example 1 same",
|
||||
/* 87*/ { UNICODE_MODE, 170, 2, -1, -1, "sn:7QPB4MN", -1, 0, 23, 23, "AIM ITS/04-023:2022 ECI 170 Example 1 same",
|
||||
"11111110111100101111111"
|
||||
"10000000100111000000001"
|
||||
"10111110000000101111101"
|
||||
|
@ -3171,7 +3221,7 @@ static void test_encode(int index, int generate, int debug) {
|
|||
"11101010000110100000001"
|
||||
"11101010111010101111111"
|
||||
},
|
||||
/* 86*/ { DATA_MODE, 899, 2, -1, -1, "\000\001\002\133\134\135\375\376\377", 9, 0, 23, 23, "AIM ITS/04-023:2022 ECI 899 Example 1 same",
|
||||
/* 88*/ { DATA_MODE, 899, 2, -1, -1, "\000\001\002\133\134\135\375\376\377", 9, 0, 23, 23, "AIM ITS/04-023:2022 ECI 899 Example 1 same",
|
||||
"11111110011011101111111"
|
||||
"10000000010110100000001"
|
||||
"10111110010110001111101"
|
||||
|
|
|
@ -4523,6 +4523,7 @@ static void test_microqr_input(int index, int generate, int debug) {
|
|||
int ret;
|
||||
char *expected;
|
||||
int bwipp_cmp;
|
||||
int zxingcpp_cmp;
|
||||
char *comment;
|
||||
};
|
||||
// é U+00E9 in ISO 8859-1 plus other ISO 8859 (but not in ISO 8859-7 or ISO 8859-11), Win 1250 plus other Win, not in Shift JIS, UTF-8 C3A9
|
||||
|
@ -4539,47 +4540,47 @@ static void test_microqr_input(int index, int generate, int debug) {
|
|||
// 茗 U+8317 kanji, in Shift JIS 0xE4AA (\344\252), UTF-8 E88C97
|
||||
// Á U+00C1, UTF-8 C381; ȁ U+0201, UTF-8 C881; Ȃ U+0202, UTF-8 C882; ¢ U+00A2, UTF-8 C2A2; á U+00E1, UTF-8 C3A1
|
||||
struct item data[] = {
|
||||
/* 0*/ { UNICODE_MODE, 2, 1, "é", 0, "87 A4 00 EC 11 EC 11 EC 00", 1, "B1 (ISO 8859-1)" },
|
||||
/* 1*/ { DATA_MODE, 2, -1, "é", 0, "8B 0E A4 00 EC 11 EC 11 00", 1, "B2 (UTF-8)" },
|
||||
/* 2*/ { UNICODE_MODE, 2, -1, "β", 0, "C8 80 00 00 EC 11 EC 11 00", 1, "K1 (Shift JIS)" },
|
||||
/* 3*/ { UNICODE_MODE, 2, -1, "ก", ZINT_ERROR_INVALID_DATA, "Error 800: Invalid character in input data", 1, "ก not in Shift JIS" },
|
||||
/* 4*/ { UNICODE_MODE, 2, -1, "Ж", 0, "C8 91 C0 00 EC 11 EC 11 00", 1, "K1 (Shift JIS)" },
|
||||
/* 5*/ { UNICODE_MODE, 2, -1, "ກ", ZINT_ERROR_INVALID_DATA, "Error 800: Invalid character in input data", 1, "ກ not in Shift JIS" },
|
||||
/* 6*/ { UNICODE_MODE, 2, -1, "\\", 0, "85 70 00 EC 11 EC 11 EC 00", 1, "B1 (ASCII)" },
|
||||
/* 7*/ { UNICODE_MODE, 2, -1, "¥", 0, "86 94 00 EC 11 EC 11 EC 00", 1, "B1 (ISO 8859-1) (same bytes as ・ Shift JIS below, so ambiguous)" },
|
||||
/* 8*/ { UNICODE_MODE, 2, -1, "・", 0, "86 94 00 EC 11 EC 11 EC 00", 1, "B1 (Shift JIS) single-byte codepoint A5 (same bytes as ¥ ISO 8859-1 above, so ambiguous)" },
|
||||
/* 9*/ { UNICODE_MODE, 2, -1, "¿", 0, "86 FC 00 EC 11 EC 11 EC 00", 1, "B1 (ISO 8859-1) (same bytes as ソ Shift JIS below, so ambiguous)" },
|
||||
/* 10*/ { UNICODE_MODE, 2, -1, "ソ", 0, "86 FC 00 EC 11 EC 11 EC 00", 1, "B1 (Shift JIS) (same bytes as ¿ ISO 8859-1 above, so ambiguous)" },
|
||||
/* 11*/ { UNICODE_MODE, 2, -1, "~", 0, "85 F8 00 EC 11 EC 11 EC 00", 1, "B1 (ASCII) (same bytes as ‾ Shift JIS below, so ambiguous)" },
|
||||
/* 12*/ { UNICODE_MODE, 2, -1, "‾", 0, "85 F8 00 EC 11 EC 11 EC 00", 1, "B1 (Shift JIS) (same bytes as ~ ASCII above, so ambiguous)" },
|
||||
/* 13*/ { UNICODE_MODE, 2, -1, "点", 0, "CB 67 C0 00 EC 11 EC 11 00", 1, "K1 (Shift JIS)" },
|
||||
/* 14*/ { DATA_MODE, 2, -1, "\223\137", 0, "8A 4D 7C 00 EC 11 EC 11 00", 0, "B2 (Shift JIS); BWIPP uses Kanji (ZINT_FULL_MULTIBYTE) mode, see below)" },
|
||||
/* 15*/ { DATA_MODE, 2, ZINT_FULL_MULTIBYTE, "\223\137", 0, "CB 67 C0 00 EC 11 EC 11 00", 1, "K1 (Shift JIS) (full multibyte)" },
|
||||
/* 16*/ { DATA_MODE, 2, -1, "点", 0, "8F 9E 0A E4 00 EC 11 EC 00", 1, "B3 (UTF-8)" },
|
||||
/* 17*/ { UNICODE_MODE, 2, -1, "茗", 0, "CE AA 80 00 EC 11 EC 11 00", 1, "K1 (Shift JIS)" },
|
||||
/* 18*/ { DATA_MODE, 2, -1, "\344\252", 0, "8B 92 A8 00 EC 11 EC 11 00", 0, "B2 (Shift JIS); BWIPP uses Kanji (ZINT_FULL_MULTIBYTE) mode, see below)" },
|
||||
/* 19*/ { DATA_MODE, 2, ZINT_FULL_MULTIBYTE, "\344\252", 0, "CE AA 80 00 EC 11 EC 11 00", 1, "K1 (Shift JIS) (full multibyte)" },
|
||||
/* 20*/ { DATA_MODE, 2, -1, "茗", 0, "8F A2 32 5C 00 EC 11 EC 00", 1, "B3 (UTF-8)" },
|
||||
/* 21*/ { UNICODE_MODE, 2, -1, "¥点", 0, "8D 72 4D 7C 00 EC 11 EC 00", 1, "B3 (Shift JIS) (optimized from B1 K1)" },
|
||||
/* 22*/ { DATA_MODE, 2, -1, "\134\223\137", 0, "8D 72 4D 7C 00 EC 11 EC 00", 1, "B3 (Shift JIS) (optimized from B1 K1)" },
|
||||
/* 23*/ { DATA_MODE, 2, -1, "¥点", 0, "97 0A 97 9E 0A E4 00 EC 00", 1, "B5 (UTF-8)" },
|
||||
/* 24*/ { UNICODE_MODE, 2, -1, "点茗", 0, "D3 67 F5 54 00 EC 11 EC 00", 1, "K2 (Shift JIS)" },
|
||||
/* 25*/ { DATA_MODE, 2, -1, "\223\137\344\252", 0, "92 4D 7F 92 A8 00 EC 11 00", 0, "B4 (Shift JIS; BWIPP uses Kanji (ZINT_FULL_MULTIBYTE) mode, see below))" },
|
||||
/* 26*/ { DATA_MODE, 2, ZINT_FULL_MULTIBYTE, "\223\137\344\252", 0, "D3 67 F5 54 00 EC 11 EC 00", 1, "K2 (Shift JIS) (full multibyte)" },
|
||||
/* 27*/ { DATA_MODE, 2, -1, "点茗", 0, "9B 9E 0A E7 A2 32 5C 00 00", 1, "B6 (UTF-8)" },
|
||||
/* 28*/ { DATA_MODE, 2, ZINT_FULL_MULTIBYTE, "点茗", 0, "9B 9E 0A E7 A2 32 5C 00 00", 1, "B6 (UTF-8)" },
|
||||
/* 29*/ { UNICODE_MODE, 2, -1, "点茗・", 0, "D3 67 F5 55 0D 28 00 EC 00", 1, "K2 B1 (Shift JIS)" },
|
||||
/* 30*/ { DATA_MODE, 2, -1, "\223\137\344\252\245", 0, "96 4D 7F 92 AA 94 00 EC 00", 0, "B5 (Shift JIS); BWIPP uses Kanji (ZINT_FULL_MULTIBYTE) mode, see below)" },
|
||||
/* 31*/ { DATA_MODE, 2, ZINT_FULL_MULTIBYTE, "\223\137\344\252\245", 0, "D3 67 F5 55 0D 28 00 EC 00", 1, "K2 B1 (Shift JIS) (full multibyte)" },
|
||||
/* 32*/ { DATA_MODE, 1, -1, "点茗・", 0, "A7 9E 0A E7 A2 32 5F BE F6 94 00", 1, "B9 (UTF-8)" },
|
||||
/* 33*/ { UNICODE_MODE, 2, -1, "¥点茗・", 0, "99 72 4D 7F 92 AA 94 00 00", 1, "B6 (Shift JIS) (optimized from B1 K2 B1)" },
|
||||
/* 34*/ { DATA_MODE, 2, -1, "\134\223\137\344\252\245", 0, "99 72 4D 7F 92 AA 94 00 00", 1, "B6 (Shift JIS) (optimized from B1 K2 B1)" },
|
||||
/* 35*/ { DATA_MODE, 2, -1, "¥点茗・", 0, "4B C2 A5 E7 82 B9 E8 8C 97 EF BD A5 00 00", 1, "B11 (UTF-8)" },
|
||||
/* 36*/ { DATA_MODE, 2, -1, "ÁȁȁȁȂ¢", 0, "4C C3 81 C8 81 C8 81 C8 81 C8 82 C2 A2 00", 0, "B12 (UTF-8); BWIPP different encodation (B1 K5 B1)" },
|
||||
/* 37*/ { DATA_MODE, 1, -1, "ÁȁȁȁȁȂ¢", 0, "4E C3 81 C8 81 C8 81 C8 81 C8 81 C8 82 C2 A2 00", 0, "B14 (UTF-8); BWIPP uses Kanji (ZINT_FULL_MULTIBYTE) mode, see below)" },
|
||||
/* 38*/ { DATA_MODE, 1, ZINT_FULL_MULTIBYTE, "ÁȁȁȁȁȂ¢", 0, "41 C3 6C 08 80 44 02 20 11 00 88 0A 12 0D 10 00", 1, "B1 K6 B1 (UTF-8) (full multibyte)" },
|
||||
/* 39*/ { UNICODE_MODE, 2, -1, "áA", 0, "8B 85 04 00 EC 11 EC 11 00", 0, "B2 (ISO 8859-1); BWIPP uses Kanji (ZINT_FULL_MULTIBYTE) mode, see below)" },
|
||||
/* 40*/ { UNICODE_MODE, 2, ZINT_FULL_MULTIBYTE, "áA", 0, "CE 00 40 00 EC 11 EC 11 00", 1, "K1 (ISO 8859-1) (full multibyte)" },
|
||||
/* 0*/ { UNICODE_MODE, 2, 1, "é", 0, "87 A4 00 EC 11 EC 11 EC 00", 1, 1, "B1 (ISO 8859-1)" },
|
||||
/* 1*/ { DATA_MODE, 2, -1, "é", 0, "8B 0E A4 00 EC 11 EC 11 00", 1, 0, "B2 (UTF-8); ZXing-C++ test can't handle DATA_MODE for certain inputs" },
|
||||
/* 2*/ { UNICODE_MODE, 2, -1, "β", 0, "C8 80 00 00 EC 11 EC 11 00", 1, 1, "K1 (Shift JIS)" },
|
||||
/* 3*/ { UNICODE_MODE, 2, -1, "ก", ZINT_ERROR_INVALID_DATA, "Error 800: Invalid character in input data", 1, 1, "ก not in Shift JIS" },
|
||||
/* 4*/ { UNICODE_MODE, 2, -1, "Ж", 0, "C8 91 C0 00 EC 11 EC 11 00", 1, 1, "K1 (Shift JIS)" },
|
||||
/* 5*/ { UNICODE_MODE, 2, -1, "ກ", ZINT_ERROR_INVALID_DATA, "Error 800: Invalid character in input data", 1, 1, "ກ not in Shift JIS" },
|
||||
/* 6*/ { UNICODE_MODE, 2, -1, "\\", 0, "85 70 00 EC 11 EC 11 EC 00", 1, 1, "B1 (ASCII)" },
|
||||
/* 7*/ { UNICODE_MODE, 2, -1, "¥", 0, "86 94 00 EC 11 EC 11 EC 00", 1, 1, "B1 (ISO 8859-1) (same bytes as ・ Shift JIS below, so ambiguous)" },
|
||||
/* 8*/ { UNICODE_MODE, 2, -1, "・", 0, "86 94 00 EC 11 EC 11 EC 00", 1, 1, "B1 (Shift JIS) single-byte codepoint A5 (same bytes as ¥ ISO 8859-1 above, so ambiguous)" },
|
||||
/* 9*/ { UNICODE_MODE, 2, -1, "¿", 0, "86 FC 00 EC 11 EC 11 EC 00", 1, 1, "B1 (ISO 8859-1) (same bytes as ソ Shift JIS below, so ambiguous)" },
|
||||
/* 10*/ { UNICODE_MODE, 2, -1, "ソ", 0, "86 FC 00 EC 11 EC 11 EC 00", 1, 1, "B1 (Shift JIS) (same bytes as ¿ ISO 8859-1 above, so ambiguous)" },
|
||||
/* 11*/ { UNICODE_MODE, 2, -1, "~", 0, "85 F8 00 EC 11 EC 11 EC 00", 1, 1, "B1 (ASCII) (same bytes as ‾ Shift JIS below, so ambiguous)" },
|
||||
/* 12*/ { UNICODE_MODE, 2, -1, "‾", 0, "85 F8 00 EC 11 EC 11 EC 00", 1, 0, "B1 (Shift JIS) (same bytes as ~ ASCII above, so ambiguous); ZXing-C++ doesn't map Shift JIS ASCII" },
|
||||
/* 13*/ { UNICODE_MODE, 2, -1, "点", 0, "CB 67 C0 00 EC 11 EC 11 00", 1, 1, "K1 (Shift JIS)" },
|
||||
/* 14*/ { DATA_MODE, 2, -1, "\223\137", 0, "8A 4D 7C 00 EC 11 EC 11 00", 0, 0, "B2 (Shift JIS); BWIPP uses Kanji (ZINT_FULL_MULTIBYTE) mode, see below); ZXing-C++ test can't handle DATA_MODE for certain inputs" },
|
||||
/* 15*/ { DATA_MODE, 2, ZINT_FULL_MULTIBYTE, "\223\137", 0, "CB 67 C0 00 EC 11 EC 11 00", 1, 1, "K1 (Shift JIS) (full multibyte)" },
|
||||
/* 16*/ { DATA_MODE, 2, -1, "点", 0, "8F 9E 0A E4 00 EC 11 EC 00", 1, 0, "B3 (UTF-8); ZXing-C++ test can't handle DATA_MODE for certain inputs" },
|
||||
/* 17*/ { UNICODE_MODE, 2, -1, "茗", 0, "CE AA 80 00 EC 11 EC 11 00", 1, 1, "K1 (Shift JIS)" },
|
||||
/* 18*/ { DATA_MODE, 2, -1, "\344\252", 0, "8B 92 A8 00 EC 11 EC 11 00", 0, 0, "B2 (Shift JIS); BWIPP uses Kanji (ZINT_FULL_MULTIBYTE) mode, see below; ZXing-C++ test can't handle DATA_MODE for certain inputs)" },
|
||||
/* 19*/ { DATA_MODE, 2, ZINT_FULL_MULTIBYTE, "\344\252", 0, "CE AA 80 00 EC 11 EC 11 00", 1, 1, "K1 (Shift JIS) (full multibyte)" },
|
||||
/* 20*/ { DATA_MODE, 2, -1, "茗", 0, "8F A2 32 5C 00 EC 11 EC 00", 1, 0, "B3 (UTF-8); ZXing-C++ test can't handle DATA_MODE for certain inputs" },
|
||||
/* 21*/ { UNICODE_MODE, 2, -1, "¥点", 0, "8D 72 4D 7C 00 EC 11 EC 00", 1, 0, "B3 (Shift JIS) (optimized from B1 K1); ZXing-C++ doesn't map Shift JIS ASCII" },
|
||||
/* 22*/ { DATA_MODE, 2, -1, "\134\223\137", 0, "8D 72 4D 7C 00 EC 11 EC 00", 1, 0, "B3 (Shift JIS) (optimized from B1 K1); ZXing-C++ test can't handle DATA_MODE for certain inputs" },
|
||||
/* 23*/ { DATA_MODE, 2, -1, "¥点", 0, "97 0A 97 9E 0A E4 00 EC 00", 1, 0, "B5 (UTF-8); ZXing-C++ test can't handle DATA_MODE for certain inputs" },
|
||||
/* 24*/ { UNICODE_MODE, 2, -1, "点茗", 0, "D3 67 F5 54 00 EC 11 EC 00", 1, 1, "K2 (Shift JIS)" },
|
||||
/* 25*/ { DATA_MODE, 2, -1, "\223\137\344\252", 0, "92 4D 7F 92 A8 00 EC 11 00", 0, 0, "B4 (Shift JIS; BWIPP uses Kanji (ZINT_FULL_MULTIBYTE) mode, see below)); ZXing-C++ test can't handle DATA_MODE for certain inputs" },
|
||||
/* 26*/ { DATA_MODE, 2, ZINT_FULL_MULTIBYTE, "\223\137\344\252", 0, "D3 67 F5 54 00 EC 11 EC 00", 1, 1, "K2 (Shift JIS) (full multibyte)" },
|
||||
/* 27*/ { DATA_MODE, 2, -1, "点茗", 0, "9B 9E 0A E7 A2 32 5C 00 00", 1, 0, "B6 (UTF-8); ZXing-C++ test can't handle DATA_MODE for certain inputs" },
|
||||
/* 28*/ { DATA_MODE, 2, ZINT_FULL_MULTIBYTE, "点茗", 0, "9B 9E 0A E7 A2 32 5C 00 00", 1, 1, "B6 (UTF-8)" },
|
||||
/* 29*/ { UNICODE_MODE, 2, -1, "点茗・", 0, "D3 67 F5 55 0D 28 00 EC 00", 1, 1, "K2 B1 (Shift JIS)" },
|
||||
/* 30*/ { DATA_MODE, 2, -1, "\223\137\344\252\245", 0, "96 4D 7F 92 AA 94 00 EC 00", 0, 0, "B5 (Shift JIS); BWIPP uses Kanji (ZINT_FULL_MULTIBYTE) mode, see below); ZXing-C++ test can't handle DATA_MODE for certain inputs" },
|
||||
/* 31*/ { DATA_MODE, 2, ZINT_FULL_MULTIBYTE, "\223\137\344\252\245", 0, "D3 67 F5 55 0D 28 00 EC 00", 1, 1, "K2 B1 (Shift JIS) (full multibyte)" },
|
||||
/* 32*/ { DATA_MODE, 1, -1, "点茗・", 0, "A7 9E 0A E7 A2 32 5F BE F6 94 00", 1, 0, "B9 (UTF-8); ZXing-C++ test can't handle DATA_MODE for certain inputs" },
|
||||
/* 33*/ { UNICODE_MODE, 2, -1, "¥点茗・", 0, "99 72 4D 7F 92 AA 94 00 00", 1, 0, "B6 (Shift JIS) (optimized from B1 K2 B1); ZXing-C++ doesn't map Shift JIS ASCII" },
|
||||
/* 34*/ { DATA_MODE, 2, -1, "\134\223\137\344\252\245", 0, "99 72 4D 7F 92 AA 94 00 00", 1, 0, "B6 (Shift JIS) (optimized from B1 K2 B1); ZXing-C++ test can't handle DATA_MODE for certain inputs" },
|
||||
/* 35*/ { DATA_MODE, 2, -1, "¥点茗・", 0, "4B C2 A5 E7 82 B9 E8 8C 97 EF BD A5 00 00", 1, 0, "B11 (UTF-8); ZXing-C++ doesn't map Shift JIS ASCII" },
|
||||
/* 36*/ { DATA_MODE, 2, -1, "ÁȁȁȁȂ¢", 0, "4C C3 81 C8 81 C8 81 C8 81 C8 82 C2 A2 00", 0, 0, "B12 (UTF-8); BWIPP different encodation (B1 K5 B1); ZXing-C++ test can't handle DATA_MODE for certain inputs" },
|
||||
/* 37*/ { DATA_MODE, 1, -1, "ÁȁȁȁȁȂ¢", 0, "4E C3 81 C8 81 C8 81 C8 81 C8 81 C8 82 C2 A2 00", 0, 0, "B14 (UTF-8); BWIPP uses Kanji (ZINT_FULL_MULTIBYTE) mode, see below); ZXing-C++ test can't handle DATA_MODE for certain inputs" },
|
||||
/* 38*/ { DATA_MODE, 1, ZINT_FULL_MULTIBYTE, "ÁȁȁȁȁȂ¢", 0, "41 C3 6C 08 80 44 02 20 11 00 88 0A 12 0D 10 00", 1, 1, "B1 K6 B1 (UTF-8) (full multibyte)" },
|
||||
/* 39*/ { UNICODE_MODE, 2, -1, "áA", 0, "8B 85 04 00 EC 11 EC 11 00", 0, 1, "B2 (ISO 8859-1); BWIPP uses Kanji (ZINT_FULL_MULTIBYTE) mode, see below)" },
|
||||
/* 40*/ { UNICODE_MODE, 2, ZINT_FULL_MULTIBYTE, "áA", 0, "CE 00 40 00 EC 11 EC 11 00", 1, 1, "K1 (ISO 8859-1) (full multibyte)" },
|
||||
};
|
||||
int data_size = ARRAY_SIZE(data);
|
||||
int i, length, ret;
|
||||
|
@ -4590,6 +4591,7 @@ static void test_microqr_input(int index, int generate, int debug) {
|
|||
char cmp_msg[1024];
|
||||
|
||||
int do_bwipp = (debug & ZINT_DEBUG_TEST_BWIPP) && testUtilHaveGhostscript(); // Only do BWIPP test if asked, too slow otherwise
|
||||
int do_zxingcpp = (debug & ZINT_DEBUG_TEST_ZXINGCPP) && testUtilHaveZXingCPPDecoder(); // Only do ZXing-C++ test if asked, too slow otherwise
|
||||
|
||||
testStart("test_microqr_input");
|
||||
|
||||
|
@ -4609,10 +4611,10 @@ static void test_microqr_input(int index, int generate, int debug) {
|
|||
assert_equal(ret, data[i].ret, "i:%d ZBarcode_Encode ret %d != %d (%s)\n", i, ret, data[i].ret, symbol->errtxt);
|
||||
|
||||
if (generate) {
|
||||
printf(" /*%3d*/ { %s, %d, %s, \"%s\", %s, \"%s\", %d, \"%s\" },\n",
|
||||
printf(" /*%3d*/ { %s, %d, %s, \"%s\", %s, \"%s\", %d, %d, \"%s\" },\n",
|
||||
i, testUtilInputModeName(data[i].input_mode), data[i].option_1, testUtilOption3Name(data[i].option_3),
|
||||
testUtilEscape(data[i].data, length, escaped, sizeof(escaped)),
|
||||
testUtilErrorName(data[i].ret), symbol->errtxt, data[i].bwipp_cmp, data[i].comment);
|
||||
testUtilErrorName(data[i].ret), symbol->errtxt, data[i].bwipp_cmp, data[i].zxingcpp_cmp, data[i].comment);
|
||||
} else {
|
||||
assert_zero(strcmp(symbol->errtxt, data[i].expected), "i:%d strcmp(%s, %s) != 0\n", i, symbol->errtxt, data[i].expected);
|
||||
|
||||
|
@ -4631,6 +4633,21 @@ static void test_microqr_input(int index, int generate, int debug) {
|
|||
i, testUtilBarcodeName(symbol->symbology), ret, cmp_msg, cmp_buf, modules_dump);
|
||||
}
|
||||
}
|
||||
if (do_zxingcpp && testUtilCanZXingCPP(i, symbol, data[i].data, length, debug)) {
|
||||
if (!data[i].zxingcpp_cmp) {
|
||||
if (debug & ZINT_DEBUG_TEST_PRINT) printf("i:%d %s not ZXing-C++ compatible (%s)\n", i, testUtilBarcodeName(symbol->symbology), data[i].comment);
|
||||
} else {
|
||||
int cmp_len, ret_len;
|
||||
char modules_dump[17 * 17 + 1];
|
||||
assert_notequal(testUtilModulesDump(symbol, modules_dump, sizeof(modules_dump)), -1, "i:%d testUtilModulesDump == -1\n", i);
|
||||
ret = testUtilZXingCPP(i, symbol, data[i].data, length, modules_dump, cmp_buf, sizeof(cmp_buf), &cmp_len);
|
||||
assert_zero(ret, "i:%d %s testUtilZXingCPP ret %d != 0\n", i, testUtilBarcodeName(symbol->symbology), ret);
|
||||
|
||||
ret = testUtilZXingCPPCmp(symbol, cmp_msg, cmp_buf, cmp_len, data[i].data, length, NULL /*primary*/, escaped, &ret_len);
|
||||
assert_zero(ret, "i:%d %s testUtilZXingCPPCmp %d != 0 %s\n actual: %.*s\nexpected: %.*s\n",
|
||||
i, testUtilBarcodeName(symbol->symbology), ret, cmp_msg, cmp_len, cmp_buf, ret_len, escaped);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -4692,6 +4709,10 @@ static void test_microqr_padding(int index, int generate, int debug) {
|
|||
struct zint_symbol *symbol;
|
||||
|
||||
char escaped[4096];
|
||||
char cmp_buf[32768];
|
||||
char cmp_msg[1024];
|
||||
|
||||
int do_zxingcpp = (debug & ZINT_DEBUG_TEST_ZXINGCPP) && testUtilHaveZXingCPPDecoder(); // Only do ZXing-C++ test if asked, too slow otherwise
|
||||
|
||||
testStart("test_microqr_padding");
|
||||
|
||||
|
@ -4722,8 +4743,19 @@ static void test_microqr_padding(int index, int generate, int debug) {
|
|||
testUtilErrorName(data[i].ret), symbol->errtxt, data[i].comment);
|
||||
} else {
|
||||
assert_zero(strcmp(symbol->errtxt, data[i].expected), "i:%d strcmp(%s, %s) != 0\n", i, symbol->errtxt, data[i].expected);
|
||||
}
|
||||
|
||||
if (do_zxingcpp && testUtilCanZXingCPP(i, symbol, data[i].data, length, debug)) {
|
||||
int cmp_len, ret_len;
|
||||
char modules_dump[17 * 17 + 1];
|
||||
assert_notequal(testUtilModulesDump(symbol, modules_dump, sizeof(modules_dump)), -1, "i:%d testUtilModulesDump == -1\n", i);
|
||||
ret = testUtilZXingCPP(i, symbol, data[i].data, length, modules_dump, cmp_buf, sizeof(cmp_buf), &cmp_len);
|
||||
assert_zero(ret, "i:%d %s testUtilZXingCPP ret %d != 0\n", i, testUtilBarcodeName(symbol->symbology), ret);
|
||||
|
||||
ret = testUtilZXingCPPCmp(symbol, cmp_msg, cmp_buf, cmp_len, data[i].data, length, NULL /*primary*/, escaped, &ret_len);
|
||||
assert_zero(ret, "i:%d %s testUtilZXingCPPCmp %d != 0 %s\n actual: %.*s\nexpected: %.*s\n",
|
||||
i, testUtilBarcodeName(symbol->symbology), ret, cmp_msg, cmp_len, cmp_buf, ret_len, escaped);
|
||||
}
|
||||
}
|
||||
ZBarcode_Delete(symbol);
|
||||
}
|
||||
|
||||
|
@ -4741,22 +4773,23 @@ static void test_microqr_optimize(int index, int generate, int debug) {
|
|||
int ret;
|
||||
char *expected;
|
||||
int bwipp_cmp;
|
||||
int zxingcpp_cmp;
|
||||
char *comment;
|
||||
};
|
||||
struct item data[] = {
|
||||
/* 0*/ { UNICODE_MODE, -1, -1, -1, "1", 0, "22 00 00", 1, "N1" },
|
||||
/* 1*/ { UNICODE_MODE, 1, 2, -1, "A123", 0, "92 86 3D 80 EC", 1, "A1 N3" },
|
||||
/* 2*/ { UNICODE_MODE, 1, -1, -1, "AAAAAA", 0, "E3 98 73 0E 60", 1, "A6" },
|
||||
/* 3*/ { UNICODE_MODE, 1, -1, -1, "AA123456", 0, "A3 98 61 ED C8", 1, "A2 N6" },
|
||||
/* 4*/ { UNICODE_MODE, 1, 3, -1, "01a", 0, "04 06 16 10 00 EC 11 EC 11 EC 00", 1, "N3 B1" },
|
||||
/* 5*/ { UNICODE_MODE, 1, 4, -1, "01a", 0, "43 30 31 61 00 00 EC 11 EC 11 EC 11 EC 11 EC 11", 1, "B3" },
|
||||
/* 6*/ { UNICODE_MODE, 1, -1, -1, "こんwa、αβ", 0, "46 82 B1 82 F1 77 61 66 00 10 FF 88 00 00 EC 11", 1, "B6 K3" },
|
||||
/* 7*/ { UNICODE_MODE, 1, -1, -1, "こんにwa、αβ", 0, "66 13 10 B8 85 25 09 DD 85 98 00 43 FE 20 00 00", 1, "K3 B2 K3" },
|
||||
/* 8*/ { UNICODE_MODE, 1, 3, -1, "こんAB123\177", 0, "D0 4C 42 E2 91 CD 06 3D C2 FE 00", 0, "K2 A2 N3 B1; BWIPP different encodation (K2 A5 B1)" },
|
||||
/* 9*/ { UNICODE_MODE, 1, 4, -1, "こんAB123\177", 0, "64 13 10 B8 92 9C D0 5E 1A 0B F8 00 EC 11 EC 11", 1, "K2 A5 B1" },
|
||||
/* 10*/ { DATA_MODE, 1, -1, -1, "\223\137", 0, "8A 4D 7C 00 EC 11 EC 11 EC 11 00", 0, "B2; BWIPP uses Kanji (ZINT_FULL_MULTIBYTE) mode, see below)" },
|
||||
/* 11*/ { DATA_MODE, 1, -1, ZINT_FULL_MULTIBYTE, "\223\137", 0, "CB 67 C0 00 EC 11 EC 11 EC 11 00", 1, "K1" },
|
||||
/* 12*/ { DATA_MODE, 1, -1, ZINT_FULL_MULTIBYTE | (1 << 8), "\223\137", 0, "CB 67 C0 00 EC 11 EC 11 EC 11 00", 1, "K1" },
|
||||
/* 0*/ { UNICODE_MODE, -1, -1, -1, "1", 0, "22 00 00", 1, 1, "N1" },
|
||||
/* 1*/ { UNICODE_MODE, 1, 2, -1, "A123", 0, "92 86 3D 80 EC", 1, 1, "A1 N3" },
|
||||
/* 2*/ { UNICODE_MODE, 1, -1, -1, "AAAAAA", 0, "E3 98 73 0E 60", 1, 1, "A6" },
|
||||
/* 3*/ { UNICODE_MODE, 1, -1, -1, "AA123456", 0, "A3 98 61 ED C8", 1, 1, "A2 N6" },
|
||||
/* 4*/ { UNICODE_MODE, 1, 3, -1, "01a", 0, "04 06 16 10 00 EC 11 EC 11 EC 00", 1, 1, "N3 B1" },
|
||||
/* 5*/ { UNICODE_MODE, 1, 4, -1, "01a", 0, "43 30 31 61 00 00 EC 11 EC 11 EC 11 EC 11 EC 11", 1, 1, "B3" },
|
||||
/* 6*/ { UNICODE_MODE, 1, -1, -1, "こんwa、αβ", 0, "46 82 B1 82 F1 77 61 66 00 10 FF 88 00 00 EC 11", 1, 1, "B6 K3" },
|
||||
/* 7*/ { UNICODE_MODE, 1, -1, -1, "こんにwa、αβ", 0, "66 13 10 B8 85 25 09 DD 85 98 00 43 FE 20 00 00", 1, 1, "K3 B2 K3" },
|
||||
/* 8*/ { UNICODE_MODE, 1, 3, -1, "こんAB123\177", 0, "D0 4C 42 E2 91 CD 06 3D C2 FE 00", 0, 1, "K2 A2 N3 B1; BWIPP different encodation (K2 A5 B1)" },
|
||||
/* 9*/ { UNICODE_MODE, 1, 4, -1, "こんAB123\177", 0, "64 13 10 B8 92 9C D0 5E 1A 0B F8 00 EC 11 EC 11", 1, 1, "K2 A5 B1" },
|
||||
/* 10*/ { DATA_MODE, 1, -1, -1, "\223\137", 0, "8A 4D 7C 00 EC 11 EC 11 EC 11 00", 0, 0, "B2; BWIPP uses Kanji (ZINT_FULL_MULTIBYTE) mode, see below); ZXing-C++ test can't handle DATA_MODE for certain inputs" },
|
||||
/* 11*/ { DATA_MODE, 1, -1, ZINT_FULL_MULTIBYTE, "\223\137", 0, "CB 67 C0 00 EC 11 EC 11 EC 11 00", 1, 1, "K1" },
|
||||
/* 12*/ { DATA_MODE, 1, -1, ZINT_FULL_MULTIBYTE | (1 << 8), "\223\137", 0, "CB 67 C0 00 EC 11 EC 11 EC 11 00", 1, 1, "K1" },
|
||||
};
|
||||
int data_size = ARRAY_SIZE(data);
|
||||
int i, length, ret;
|
||||
|
@ -4767,6 +4800,7 @@ static void test_microqr_optimize(int index, int generate, int debug) {
|
|||
char cmp_msg[1024];
|
||||
|
||||
int do_bwipp = (debug & ZINT_DEBUG_TEST_BWIPP) && testUtilHaveGhostscript(); // Only do BWIPP test if asked, too slow otherwise
|
||||
int do_zxingcpp = (debug & ZINT_DEBUG_TEST_ZXINGCPP) && testUtilHaveZXingCPPDecoder(); // Only do ZXing-C++ test if asked, too slow otherwise
|
||||
|
||||
testStart("test_microqr_optimize");
|
||||
|
||||
|
@ -4785,10 +4819,10 @@ static void test_microqr_optimize(int index, int generate, int debug) {
|
|||
assert_equal(ret, data[i].ret, "i:%d ZBarcode_Encode ret %d != %d (%s)\n", i, ret, data[i].ret, symbol->errtxt);
|
||||
|
||||
if (generate) {
|
||||
printf(" /*%3d*/ { %s, %d, %d, %s, \"%s\", %s, \"%s\", %d, \"%s\" },\n",
|
||||
printf(" /*%3d*/ { %s, %d, %d, %s, \"%s\", %s, \"%s\", %d, %d, \"%s\" },\n",
|
||||
i, testUtilInputModeName(data[i].input_mode), data[i].option_1, data[i].option_2, testUtilOption3Name(data[i].option_3),
|
||||
testUtilEscape(data[i].data, length, escaped, sizeof(escaped)),
|
||||
testUtilErrorName(data[i].ret), symbol->errtxt, data[i].bwipp_cmp, data[i].comment);
|
||||
testUtilErrorName(data[i].ret), symbol->errtxt, data[i].bwipp_cmp, data[i].zxingcpp_cmp, data[i].comment);
|
||||
} else {
|
||||
assert_zero(strcmp(symbol->errtxt, data[i].expected), "i:%d strcmp(%s, %s) != 0\n", i, symbol->errtxt, data[i].expected);
|
||||
|
||||
|
@ -4806,6 +4840,21 @@ static void test_microqr_optimize(int index, int generate, int debug) {
|
|||
i, testUtilBarcodeName(symbol->symbology), ret, cmp_msg, cmp_buf, modules_dump);
|
||||
}
|
||||
}
|
||||
if (do_zxingcpp && testUtilCanZXingCPP(i, symbol, data[i].data, length, debug)) {
|
||||
if (!data[i].zxingcpp_cmp) {
|
||||
if (debug & ZINT_DEBUG_TEST_PRINT) printf("i:%d %s not ZXing-C++ compatible (%s)\n", i, testUtilBarcodeName(symbol->symbology), data[i].comment);
|
||||
} else {
|
||||
int cmp_len, ret_len;
|
||||
char modules_dump[17 * 17 + 1];
|
||||
assert_notequal(testUtilModulesDump(symbol, modules_dump, sizeof(modules_dump)), -1, "i:%d testUtilModulesDump == -1\n", i);
|
||||
ret = testUtilZXingCPP(i, symbol, data[i].data, length, modules_dump, cmp_buf, sizeof(cmp_buf), &cmp_len);
|
||||
assert_zero(ret, "i:%d %s testUtilZXingCPP ret %d != 0\n", i, testUtilBarcodeName(symbol->symbology), ret);
|
||||
|
||||
ret = testUtilZXingCPPCmp(symbol, cmp_msg, cmp_buf, cmp_len, data[i].data, length, NULL /*primary*/, escaped, &ret_len);
|
||||
assert_zero(ret, "i:%d %s testUtilZXingCPPCmp %d != 0 %s\n actual: %.*s\nexpected: %.*s\n",
|
||||
i, testUtilBarcodeName(symbol->symbology), ret, cmp_msg, cmp_len, cmp_buf, ret_len, escaped);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ZBarcode_Delete(symbol);
|
||||
|
@ -5118,6 +5167,7 @@ static void test_microqr_encode(int index, int generate, int debug) {
|
|||
char cmp_msg[1024];
|
||||
|
||||
int do_bwipp = (debug & ZINT_DEBUG_TEST_BWIPP) && testUtilHaveGhostscript(); // Only do BWIPP test if asked, too slow otherwise
|
||||
int do_zxingcpp = (debug & ZINT_DEBUG_TEST_ZXINGCPP) && testUtilHaveZXingCPPDecoder(); // Only do ZXing-C++ test if asked, too slow otherwise
|
||||
|
||||
testStart("test_microqr_encode");
|
||||
|
||||
|
@ -5161,6 +5211,17 @@ static void test_microqr_encode(int index, int generate, int debug) {
|
|||
i, testUtilBarcodeName(symbol->symbology), ret, cmp_msg, cmp_buf, data[i].expected);
|
||||
}
|
||||
}
|
||||
if (do_zxingcpp && testUtilCanZXingCPP(i, symbol, data[i].data, length, debug)) {
|
||||
int cmp_len, ret_len;
|
||||
char modules_dump[17 * 17 + 1];
|
||||
assert_notequal(testUtilModulesDump(symbol, modules_dump, sizeof(modules_dump)), -1, "i:%d testUtilModulesDump == -1\n", i);
|
||||
ret = testUtilZXingCPP(i, symbol, data[i].data, length, modules_dump, cmp_buf, sizeof(cmp_buf), &cmp_len);
|
||||
assert_zero(ret, "i:%d %s testUtilZXingCPP ret %d != 0\n", i, testUtilBarcodeName(symbol->symbology), ret);
|
||||
|
||||
ret = testUtilZXingCPPCmp(symbol, cmp_msg, cmp_buf, cmp_len, data[i].data, length, NULL /*primary*/, escaped, &ret_len);
|
||||
assert_zero(ret, "i:%d %s testUtilZXingCPPCmp %d != 0 %s\n actual: %.*s\nexpected: %.*s\n",
|
||||
i, testUtilBarcodeName(symbol->symbology), ret, cmp_msg, cmp_len, cmp_buf, ret_len, escaped);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -208,9 +208,9 @@ static void test_sjis_utf8_to_eci(int index) {
|
|||
/* 11*/ { 3, 1, "éaúbàcëdìeµ", -1, 0, 8, { 0xE961, 0xFA, 0x62, 0xE063, 0xEB64, 0xEC, 0x65, 0xB5 }, "" },
|
||||
/* 12*/ { 3, 0, "ëÀ", -1, 0, 2, { 0xEB, 0xC0 }, "Not full multibyte" },
|
||||
/* 13*/ { 3, 1, "ëÀ", -1, 0, 2, { 0xEB, 0xC0 }, "Outside QR Kanji mode range" },
|
||||
/* 14*/ { 20, 0, "\\\\", -1, 0, 4, { 0x81, 0x5F, 0x81, 0x5F }, "Shift JIS reverse solidus (backslash) mapping from ASCII to double byte" },
|
||||
/* 14*/ { 20, 0, "\\\\", -1, 0, 2, { 0x815F, 0x815F }, "Shift JIS reverse solidus (backslash) mapping from ASCII to double byte" },
|
||||
/* 15*/ { 20, 1, "\\\\", -1, 0, 2, { 0x815F, 0x815F }, "Shift JIS reverse solidus (backslash) mapping from ASCII to double byte" },
|
||||
/* 16*/ { 20, 0, "爍", -1, 0, 2, { 0xE0, 0xA1 }, "Shift JIS U+720D" },
|
||||
/* 16*/ { 20, 0, "爍", -1, 0, 1, { 0xE0A1 }, "Shift JIS U+720D" },
|
||||
/* 17*/ { 20, 1, "爍", -1, 0, 1, { 0xE0A1 }, "Shift JIS" },
|
||||
/* 18*/ { 20, 0, "~", -1, ZINT_ERROR_INVALID_DATA, -1, {0}, "ASCII tilde not in Shift JIS" },
|
||||
/* 19*/ { 25, 0, "12", -1, 0, 4, { 0x00, 0x31, 0x00, 0x32 }, "UCS-2BE ASCII" },
|
||||
|
|
|
@ -3285,7 +3285,7 @@ static const char *testUtilZXingCPPName(int index, const struct zint_symbol *sym
|
|||
{ "", -1, 94, },
|
||||
{ "", -1, 95, },
|
||||
{ "Code128", BARCODE_DPD, 96, },
|
||||
{ "", BARCODE_MICROQR, 97, },
|
||||
{ "MicroQRCode", BARCODE_MICROQR, 97, },
|
||||
{ "Code128", BARCODE_HIBC_128, 98, },
|
||||
{ "Code39", BARCODE_HIBC_39, 99, },
|
||||
{ "", -1, 100, },
|
||||
|
@ -3425,7 +3425,7 @@ int testUtilZXingCPP(int index, struct zint_symbol *symbol, const char *source,
|
|||
}
|
||||
|
||||
if ((symbol->input_mode & 0x07) == UNICODE_MODE && symbol->eci == 0
|
||||
&& (symbology == BARCODE_QRCODE || symbology == BARCODE_HANXIN)) {
|
||||
&& (symbology == BARCODE_QRCODE || symbology == BARCODE_MICROQR || symbology == BARCODE_HANXIN)) {
|
||||
int converted_len = length;
|
||||
unsigned char *converted_buf = (unsigned char *) testutil_alloca(converted_len + 1);
|
||||
if (symbology == BARCODE_HANXIN) {
|
||||
|
|
|
@ -4,8 +4,13 @@
|
|||
set -e
|
||||
|
||||
function run_zxingcpp_test() {
|
||||
echo -e "\n$1 -f $2"
|
||||
backend/tests/$1 -f "$2" -d $(expr 512 + 16 + 32) || exit 1
|
||||
if [ -z "$2" ]; then
|
||||
echo -e "\n$1"
|
||||
backend/tests/$1 -d $(expr 512 + 16 + 32) || exit 1
|
||||
else
|
||||
echo -e "\n$1 -f $2"
|
||||
backend/tests/$1 -f "$2" -d $(expr 512 + 16 + 32) || exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
run_zxingcpp_test "test_2of5" "encode"
|
||||
|
@ -28,11 +33,7 @@ run_zxingcpp_test "test_maxicode" "encode_segs"
|
|||
run_zxingcpp_test "test_medical" "encode"
|
||||
run_zxingcpp_test "test_pdf417" "encode"
|
||||
run_zxingcpp_test "test_pdf417" "encode_segs"
|
||||
run_zxingcpp_test "test_qr" "qr_input"
|
||||
run_zxingcpp_test "test_qr" "qr_optimize"
|
||||
run_zxingcpp_test "test_qr" "qr_encode"
|
||||
run_zxingcpp_test "test_qr" "qr_encode_segs"
|
||||
run_zxingcpp_test "test_qr" "upnqr_encode"
|
||||
run_zxingcpp_test "test_qr"
|
||||
run_zxingcpp_test "test_rss" "binary_div_modulo_divisor"
|
||||
run_zxingcpp_test "test_rss" "examples"
|
||||
run_zxingcpp_test "test_upcean" "upce_input"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue