@ -5250,7 +5250,7 @@ static void test_microqr_optimize(const testCtx *const p_ctx) {
/* 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 A 9 CD 05 E1 C2 FE 00 " , 1 , 1 , " K2 A5 B1 " } ,
/* 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 " } ,
@ -8121,7 +8121,7 @@ static void test_rmqr_optimize(const testCtx *const p_ctx) {
/* 7*/ { UNICODE_MODE , 4 , 11 , " 0123A " , 0 , " 28 06 1A 12 80 " , 1 , " N4 A1 (nayuki.io - alpha/numeric) " } ,
/* 8*/ { UNICODE_MODE , 4 , 11 , " 0a " , 0 , " 68 C1 84 00 EC " , 1 , " B2 (nayuki.io - numeric/byte) " } ,
/* 9*/ { UNICODE_MODE , 4 , 11 , " 01a " , 0 , " 24 05 96 10 EC " , 1 , " N2 B1 (nayuki.io - numeric/byte) " } ,
/* 10*/ { UNICODE_MODE , 4 , 11 , " ABCa " , 0 , " 46 73 4C 65 84" , 0 , " A3 B1 (nayuki.io - alphanumeric/byte); BWIPP different encodation (B4) " } ,
/* 10*/ { UNICODE_MODE , 4 , 11 , " ABCa " , 0 , " 71 05 09 0D 84" , 1 , " A4 (nayuki.io - alphanumeric/byte) " } ,
/* 11*/ { UNICODE_MODE , 2 , 11 , " ABCDa " , 0 , " 48 73 51 4B 2C 20 EC " , 1 , " A4 B1 (same bits as B5) " } ,
/* 12*/ { UNICODE_MODE , 2 , 24 , " THE SQUARE ROOT OF 2 IS 1.41421356237309504880168872420969807856967187537694807317667973799 " , 0 , " (48) 46 A9 52 9A A0 D5 42 66 E6 F8 A1 4F 62 3E 56 CC D4 40 2B 98 2C F1 AB 19 2E A2 F8 61 " , 1 , " A26 N65 (nayuki.io - alpha/numeric) " } ,
/* 13*/ { UNICODE_MODE , 2 , 21 , " Golden ratio φ = 1.6180339887498948482045868343656381177203091798057628621354486227052604628189024497072072041893911374...... " , ZINT_WARN_NONCOMPLIANT , " Warning (73) 65 11 DB DB 19 19 5B 88 1C 98 5D 1A 5B C8 20 F4 C8 0F 48 0C 4B 8B 24 D4 10 FB 97 6E " , 1 , " B20 N100 A6 (nayuki.io - alpha/numeric/byte) " } ,
@ -8748,21 +8748,21 @@ static void test_rmqr_encode_segs(const testCtx *const p_ctx) {
} ,
/* 4*/ { UNICODE_MODE , 2 , 32 , - 1 , { { TU ( " Google Pixel 4a 128 GB Black;price:$439.97 " ) , - 1 , 3 } , { TU ( " Google 谷歌 Pixel 4a 128 GB黑色;零售价:¥3149.79 " ) , - 1 , 29 } , { TU ( " Google Pixel 4a 128 GB Schwarz;Preis:444,90 € " ) , - 1 , 17 } } , 0 , 17 , 139 , 0 , " AIM ITS/04-023:2022 Annex A example (shortened); BWIPP different encodation " ,
" 1111111010101010101010101011101010101010101010101010101110101010101010101010101010111010101010101010101010101011101010101010101010101010111 "
" 100000100100001011 01111 0111011 00000001100100010010 10001010100010000110011100101000101101010100111001001101110110110010000011110000111000 101 "
" 10111010111001110 11110110011110 0010101100 01000110 01111111111000010000011100100011011101100000 1100011000000100011101101100100110100110011011 "
" 10111010010010 100111 00110110001 011111110 101111101101000001 10010100111111010011101000000001100011 1101110100000100011001000010001010111100 110 "
" 1011101000001 1000100100100 11011111 00000110011 1100 10001110 0111110001100101010001111111 11011100000000010101110000110100000100011110011 0110111 "
" 100000100000001111 00010 100100010010 1001 1011010000 1001100001111110111010111100100000011 000001101 01110010111000010001001110111011 1011 11000110 "
" 11111110100000 000100100 1110100 1100 1011 0000101 0000000000100011111111001000000110 011111000111 0111110100000110111111001110110100001 0001100 0001 "
" 00000000100111000 101 0001000011101101000011 1011111011010010110001100100001000011 1100000000 100 0111110001000100000010010110010 1011000011011110 "
" 110111001111000 001010111 0111110 11100101001 010100111001 11111011100101101011001 001101101001 01110100100111100000111111011110100100101011111001 "
" 010 11101 11101001 11011000 1110010101 11110011 11010101110000110011111000110111000010011 00111 00110 01101011110101011000101011001 00010010110101000 "
" 10000 110001 0101000001110 00011000000101 0100 0010 0010000011000100110110100100001010 01110011000011010011011111110101101101101 10100 0101100001001 "
" 0000 110000010010100101 0111 001 0000 11110100100011 0010010000010101000011111100111001 0000101100100 111001010001010010011010001110101101111011100 "
" 111 00101111110011 00011110101010 001100011101 010001 1101011001011001101001001010011011101111010011001110011011110011110100010111 11000110111111 "
" 01000011 011101000 101110011101 011111110100011 11100000 10001011101100001001011000101000000100000 1001111000010011100111110010011000111 100110001 "
" 1 10001 101 00001011111 01101 1111111110100 11001010111 00101111001001110101010001110100111101010011101010011010001111111011110010100011 1010110101"
" 101001111010 01100 11111000010111010 00100010011 1010 111011011101000100101110000010011101110110100011010110111010110110011110110000001000110001 "
" 100000100100001010 01110 011101000001111001101111111 1000101010001000011001110010100010110101010011100100110111011011001000001111000010 1100101 "
" 1011101011101 01111111011001110010110 01111 01000001 01111111111000010000011100100011011101100001 1100011000000100011101101100100110100110011011 "
" 10111010010011 10000110100 1000011110 111101111101111 01000000 10010100111111010011101000000001100010 1101110100000100011001000010001010101 111110 "
" 101110100001000011 101 01001011010 001 00010 100100 11010001111 0111110001100101010001111110 11011100000000010101110000110100000100011000000 0110111 "
" 1000001000001 0011000110011101 000101 1000 1011011011 10011000011111101110101111001000000000 00000100 01110010111000010001001110111010 1010 11000110 "
" 11111110101 00010010100 1101011010101 0001000111 0001 0001 00100011111111001000000111 011111000110 01111101000001101111110011101100 100000001101 0001 "
" 0000000010010 1100100001000000000101010 10110 111110 0110100101100011001000010000100 110000001 101 0111110001000100000010010110011 1011000011011110 "
" 1101110011111 00111 001000 011111111110 110010010100111000 111110111001011010110000111 01101100 01110100100111100000111111011110100100101011111001 "
" 0111111100 1000 11001 1100110 10010100110 1111011010101110000110011111000110111000011 0010011001111 01101011110101011000101011000 00010010110101000 "
" 1011000010101 00011000000100101 0011101 0011 000011110110 011000100110110100100001011 01110011000011010011011111110101101101100 10111 0101100001001 "
" 0001 11000001001100000 011000001011 111101001000101 010010000010101000011111100111000 000010110010111000 1010001010010011010001110101101111011100 "
" 10 0010110101100100101000 00011110111 001111 0000 01001101011001011001101001001010011011101111010011001110011011110011110100010110 11000110111111 "
" 01101 00001110101010 11001001010000 011111001 1101011100100010111011000010010110001010000001001 001001111000010011100111110010011000110 100110001 "
" 100100000110 01101100 111000 1111110101011 110011 01001 0101111001001110101010001110100111101010011101010011010001111111011110010100010 1010110101 "
" 1010011110111 011011111000010111011 001001 01000 1011 111011011101000100101110000010011101110110100011010110111010110110011110110000001000110001 "
" 1110101010101010101010101011101010101010101010101010101110101010101010101010101010111010101010101010101010101011101010101010101010101011111 "
} ,
/* 5*/ { DATA_MODE , 4 , 3 , - 1 , { { TU ( " \266 " ) , 1 , 0 } , { TU ( " \266 " ) , 1 , 7 } , { TU ( " \266 " ) , 1 , 0 } } , 0 , 7 , 77 , 1 , " Standard example + extra seg, data mode " ,
@ -8886,6 +8886,7 @@ static void test_fuzz(const testCtx *const p_ctx) {
int input_mode ;
int option_1 ;
int option_2 ;
int option_3 ;
char * data ;
int length ;
int ret ;
@ -8894,7 +8895,8 @@ static void test_fuzz(const testCtx *const p_ctx) {
} ;
/* s/\/\*[ 0-9]*\*\//\=printf("\/\*%3d*\/", line(".") - line("'<")): */
struct item data [ ] = {
/* 0*/ { BARCODE_QRCODE , GS1_MODE | GS1NOCHECK_MODE , - 1 , - 1 , " []CCCCCLLLLLLLLLLLLLLLLLLLLLCCCCCCCC@CCCCCCCCCCCCCCCCCCCCCCC%%C%C%%%%%%%%%%%%%%LLLCCCCCCCC%%C%C%%%%%%%%%%%%%%LLLLLLLLLLLLLLLLLLL000000032861710*383556LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL155816162LLLLLCC%%C%C%%%%%%%%%%%%%%LLLCCCCCCCC%%C%C%%%%%%%%%%%%%%LLLLLLLLLL)!1661055777[723]T5 " , - 1 , 0 , 1 , " " } , /* #300 (#14), Andre Maute */
/* 0*/ { BARCODE_QRCODE , GS1_MODE | GS1NOCHECK_MODE , - 1 , - 1 , - 1 , " []CCCCCLLLLLLLLLLLLLLLLLLLLLCCCCCCCC@CCCCCCCCCCCCCCCCCCCCCCC%%C%C%%%%%%%%%%%%%%LLLCCCCCCCC%%C%C%%%%%%%%%%%%%%LLLLLLLLLLLLLLLLLLL000000032861710*383556LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL155816162LLLLLCC%%C%C%%%%%%%%%%%%%%LLLCCCCCCCC%%C%C%%%%%%%%%%%%%%LLLLLLLLLL)!1661055777[723]T5 " , - 1 , 0 , 1 , " " } , /* #300 (#14), Andre Maute */
/* 1*/ { BARCODE_QRCODE , DATA_MODE , - 1 , - 1 , ZINT_FULL_MULTIBYTE , " \215 \215 \350 \215 6750 \215 \215 \215 \215 \215 \215 \000 \000 \000 \025 \215 \215 \215 \215 \215 \232 \215 \232 \232 \001 \361 \215 \215 \215 \215 \215 \221 \215 \215 \215 \215 JJJJJJNJJJJJJ \215 \215 \215 \215 9999 \215 \215 \215 \215 \215 \215 \215 \215 \215 \235 \215 \215 \215 \215 \215 \035 \004 \000 \000 @ \000 \000 \000 \000 \375 \000 \000 \000 \000 \000 \000 \000 \000 \000 \000 \000 \000 \000 \241 \000 \000 \000 \000 \000 \000 \000 \241 \247 ^^^ \377 \377 \377 \000 \000 \000 \000 \000 \000 \000 \377 \377 u \000 \000 \000 \000 \000 \000 \000 ^ \377 \377 ^^ \000 : \000 \177 \377 \377 \377 ? \377 \377 \377 \377 \377 \377 \377 \377 \377 \377 \377 \377 \377 \377 \241 \241 \232 \232 \232 \232 \232 \232 \232 \232 \000 \377 \377 \377 \242 \003 \000 \000 \377 \377 / \000 AA \000 \000 \000 \000 \000 \000 \000 \000 \000 \000 \000 \000 T \000 \000 \000 \000 \000 \000 \000 \000 WWW \237 \250 WWWWWW \377 \377 R30 \377 \377 \000 \000 \000 " , 231 , 0 , 1 , " " } , /* #300 (#15), Andre Maute */
} ;
int data_size = ARRAY_SIZE ( data ) ;
int i , length , ret ;
@ -8909,7 +8911,7 @@ static void test_fuzz(const testCtx *const p_ctx) {
symbol = ZBarcode_Create ( ) ;
assert_nonnull ( symbol , " Symbol not created \n " ) ;
length = testUtilSetSymbol ( symbol , data [ i ] . symbology , data [ i ] . input_mode , - 1 /*eci*/ , data [ i ] . option_1 , data [ i ] . option_2 , - 1 , - 1 /*output_options*/ , data [ i ] . data , data [ i ] . length , debug ) ;
length = testUtilSetSymbol ( symbol , data [ i ] . symbology , data [ i ] . input_mode , - 1 /*eci*/ , data [ i ] . option_1 , data [ i ] . option_2 , data [ i ] . option_3 , - 1 /*output_options*/ , data [ i ] . data , data [ i ] . length , debug ) ;
ret = ZBarcode_Encode ( symbol , ( unsigned char * ) data [ i ] . data , length ) ;
assert_equal ( ret , data [ i ] . ret , " i:%d ZBarcode_Encode ret %d != %d (%s) \n " , i , ret , data [ i ] . ret , symbol - > errtxt ) ;