Mercurial > hgrepos > Python2 > PyMuPDF
comparison mupdf-source/thirdparty/zint/backend/tests/test_iso4217.c @ 2:b50eed0cc0ef upstream
ADD: MuPDF v1.26.7: the MuPDF source as downloaded by a default build of PyMuPDF 1.26.4.
The directory name has changed: no version number in the expanded directory now.
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Mon, 15 Sep 2025 11:43:07 +0200 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 1:1d09e1dec1d9 | 2:b50eed0cc0ef |
|---|---|
| 1 /* | |
| 2 libzint - the open source barcode library | |
| 3 Copyright (C) 2021-2024 Robin Stuart <rstuart114@gmail.com> | |
| 4 | |
| 5 Redistribution and use in source and binary forms, with or without | |
| 6 modification, are permitted provided that the following conditions | |
| 7 are met: | |
| 8 | |
| 9 1. Redistributions of source code must retain the above copyright | |
| 10 notice, this list of conditions and the following disclaimer. | |
| 11 2. Redistributions in binary form must reproduce the above copyright | |
| 12 notice, this list of conditions and the following disclaimer in the | |
| 13 documentation and/or other materials provided with the distribution. | |
| 14 3. Neither the name of the project nor the names of its contributors | |
| 15 may be used to endorse or promote products derived from this software | |
| 16 without specific prior written permission. | |
| 17 | |
| 18 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND | |
| 19 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |
| 20 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |
| 21 ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE | |
| 22 FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |
| 23 DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | |
| 24 OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | |
| 25 HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | |
| 26 LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | |
| 27 OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |
| 28 SUCH DAMAGE. | |
| 29 */ | |
| 30 /* SPDX-License-Identifier: BSD-3-Clause */ | |
| 31 | |
| 32 #include "testcommon.h" | |
| 33 #include "../iso4217.h" | |
| 34 | |
| 35 static void test_numeric(const testCtx *const p_ctx) { | |
| 36 | |
| 37 struct item { | |
| 38 int data; | |
| 39 int ret; | |
| 40 }; | |
| 41 /* s/\/\*[ 0-9]*\*\//\=printf("\/\*%3d*\/", line(".") - line("'<")): */ | |
| 42 struct item data[] = { | |
| 43 /* 0*/ { -1, 0 }, | |
| 44 /* 1*/ { 0, 0 }, | |
| 45 /* 2*/ { 1, 0 }, | |
| 46 /* 3*/ { 2, 0 }, | |
| 47 /* 4*/ { 3, 0 }, | |
| 48 /* 5*/ { 4, 0 }, | |
| 49 /* 6*/ { 5, 0 }, | |
| 50 /* 7*/ { 6, 0 }, | |
| 51 /* 8*/ { 7, 0 }, | |
| 52 /* 9*/ { 8, 1 }, | |
| 53 /* 10*/ { 9, 0 }, | |
| 54 /* 11*/ { 10, 0 }, | |
| 55 /* 12*/ { 11, 0 }, | |
| 56 /* 13*/ { 12, 1 }, | |
| 57 /* 14*/ { 13, 0 }, | |
| 58 /* 15*/ { 14, 0 }, | |
| 59 /* 16*/ { 15, 0 }, | |
| 60 /* 17*/ { 16, 0 }, | |
| 61 /* 18*/ { 17, 0 }, | |
| 62 /* 19*/ { 18, 0 }, | |
| 63 /* 20*/ { 19, 0 }, | |
| 64 /* 21*/ { 20, 0 }, | |
| 65 /* 22*/ { 21, 0 }, | |
| 66 /* 23*/ { 31, 0 }, | |
| 67 /* 24*/ { 32, 1 }, | |
| 68 /* 25*/ { 33, 0 }, | |
| 69 /* 26*/ { 34, 0 }, | |
| 70 /* 27*/ { 35, 0 }, | |
| 71 /* 28*/ { 36, 1 }, | |
| 72 /* 29*/ { 37, 0 }, | |
| 73 /* 30*/ { 43, 0 }, | |
| 74 /* 31*/ { 44, 1 }, | |
| 75 /* 32*/ { 45, 0 }, | |
| 76 /* 33*/ { 49, 0 }, | |
| 77 /* 34*/ { 50, 1 }, | |
| 78 /* 35*/ { 51, 1 }, | |
| 79 /* 36*/ { 52, 1 }, | |
| 80 /* 37*/ { 53, 0 }, | |
| 81 /* 38*/ { 59, 0 }, | |
| 82 /* 39*/ { 60, 1 }, | |
| 83 /* 40*/ { 61, 0 }, | |
| 84 /* 41*/ { 62, 0 }, | |
| 85 /* 42*/ { 63, 0 }, | |
| 86 /* 43*/ { 64, 1 }, | |
| 87 /* 44*/ { 65, 0 }, | |
| 88 /* 45*/ { 66, 0 }, | |
| 89 /* 46*/ { 67, 0 }, | |
| 90 /* 47*/ { 68, 1 }, | |
| 91 /* 48*/ { 69, 0 }, | |
| 92 /* 49*/ { 70, 0 }, | |
| 93 /* 50*/ { 71, 0 }, | |
| 94 /* 51*/ { 72, 1 }, | |
| 95 /* 52*/ { 73, 0 }, | |
| 96 /* 53*/ { 80, 0 }, | |
| 97 /* 54*/ { 81, 0 }, | |
| 98 /* 55*/ { 82, 0 }, | |
| 99 /* 56*/ { 83, 0 }, | |
| 100 /* 57*/ { 84, 1 }, | |
| 101 /* 58*/ { 85, 0 }, | |
| 102 /* 59*/ { 89, 0 }, | |
| 103 /* 60*/ { 90, 1 }, | |
| 104 /* 61*/ { 91, 0 }, | |
| 105 /* 62*/ { 99, 0 }, | |
| 106 /* 63*/ { 100, 0 }, | |
| 107 /* 64*/ { 101, 0 }, | |
| 108 /* 65*/ { 102, 0 }, | |
| 109 /* 66*/ { 103, 0 }, | |
| 110 /* 67*/ { 104, 1 }, | |
| 111 /* 68*/ { 105, 0 }, | |
| 112 /* 69*/ { 110, 0 }, | |
| 113 /* 70*/ { 120, 0 }, | |
| 114 /* 71*/ { 130, 0 }, | |
| 115 /* 72*/ { 131, 0 }, | |
| 116 /* 73*/ { 132, 1 }, | |
| 117 /* 74*/ { 133, 0 }, | |
| 118 /* 75*/ { 143, 0 }, | |
| 119 /* 76*/ { 144, 1 }, | |
| 120 /* 77*/ { 145, 0 }, | |
| 121 /* 78*/ { 146, 0 }, | |
| 122 /* 79*/ { 147, 0 }, | |
| 123 /* 80*/ { 148, 0 }, | |
| 124 /* 81*/ { 149, 0 }, | |
| 125 /* 82*/ { 150, 0 }, | |
| 126 /* 83*/ { 160, 0 }, | |
| 127 /* 84*/ { 169, 0 }, | |
| 128 /* 85*/ { 170, 1 }, | |
| 129 /* 86*/ { 171, 0 }, | |
| 130 /* 87*/ { 180, 0 }, | |
| 131 /* 88*/ { 190, 0 }, | |
| 132 /* 89*/ { 191, 1 }, | |
| 133 /* 90*/ { 192, 1 }, | |
| 134 /* 91*/ { 193, 0 }, | |
| 135 /* 92*/ { 200, 0 }, | |
| 136 /* 93*/ { 210, 0 }, | |
| 137 /* 94*/ { 220, 0 }, | |
| 138 /* 95*/ { 221, 0 }, | |
| 139 /* 96*/ { 222, 1 }, | |
| 140 /* 97*/ { 223, 0 }, | |
| 141 /* 98*/ { 229, 0 }, | |
| 142 /* 99*/ { 230, 1 }, | |
| 143 /*100*/ { 231, 0 }, | |
| 144 /*101*/ { 232, 1 }, | |
| 145 /*102*/ { 233, 0 }, | |
| 146 /*103*/ { 234, 0 }, | |
| 147 /*104*/ { 235, 0 }, | |
| 148 /*105*/ { 236, 0 }, | |
| 149 /*106*/ { 237, 0 }, | |
| 150 /*107*/ { 238, 1 }, | |
| 151 /*108*/ { 239, 0 }, | |
| 152 /*109*/ { 240, 0 }, | |
| 153 /*110*/ { 241, 0 }, | |
| 154 /*111*/ { 242, 1 }, | |
| 155 /*112*/ { 243, 0 }, | |
| 156 /*113*/ { 250, 0 }, | |
| 157 /*114*/ { 260, 0 }, | |
| 158 /*115*/ { 269, 0 }, | |
| 159 /*116*/ { 270, 1 }, | |
| 160 /*117*/ { 271, 0 }, | |
| 161 /*118*/ { 280, 0 }, | |
| 162 /*119*/ { 290, 0 }, | |
| 163 /*120*/ { 291, 0 }, | |
| 164 /*121*/ { 292, 1 }, | |
| 165 /*122*/ { 293, 0 }, | |
| 166 /*123*/ { 300, 0 }, | |
| 167 /*124*/ { 310, 0 }, | |
| 168 /*125*/ { 319, 0 }, | |
| 169 /*126*/ { 320, 1 }, | |
| 170 /*127*/ { 321, 0 }, | |
| 171 /*128*/ { 322, 0 }, | |
| 172 /*129*/ { 323, 0 }, | |
| 173 /*130*/ { 324, 1 }, | |
| 174 /*131*/ { 325, 0 }, | |
| 175 /*132*/ { 330, 0 }, | |
| 176 /*133*/ { 331, 0 }, | |
| 177 /*134*/ { 332, 1 }, | |
| 178 /*135*/ { 333, 0 }, | |
| 179 /*136*/ { 339, 0 }, | |
| 180 /*137*/ { 340, 1 }, | |
| 181 /*138*/ { 341, 0 }, | |
| 182 /*139*/ { 350, 0 }, | |
| 183 /*140*/ { 351, 0 }, | |
| 184 /*141*/ { 352, 1 }, | |
| 185 /*142*/ { 353, 0 }, | |
| 186 /*143*/ { 359, 0 }, | |
| 187 /*144*/ { 360, 1 }, | |
| 188 /*145*/ { 361, 0 }, | |
| 189 /*146*/ { 367, 0 }, | |
| 190 /*147*/ { 368, 1 }, | |
| 191 /*148*/ { 369, 0 }, | |
| 192 /*149*/ { 370, 0 }, | |
| 193 /*150*/ { 380, 0 }, | |
| 194 /*151*/ { 390, 0 }, | |
| 195 /*152*/ { 391, 0 }, | |
| 196 /*153*/ { 392, 1 }, | |
| 197 /*154*/ { 393, 0 }, | |
| 198 /*155*/ { 397, 0 }, | |
| 199 /*156*/ { 398, 1 }, | |
| 200 /*157*/ { 399, 0 }, | |
| 201 /*158*/ { 400, 1 }, | |
| 202 /*159*/ { 401, 0 }, | |
| 203 /*160*/ { 409, 0 }, | |
| 204 /*161*/ { 410, 1 }, | |
| 205 /*162*/ { 411, 0 }, | |
| 206 /*163*/ { 425, 0 }, | |
| 207 /*164*/ { 426, 1 }, | |
| 208 /*165*/ { 427, 0 }, | |
| 209 /*166*/ { 428, 0 }, | |
| 210 /*167*/ { 429, 0 }, | |
| 211 /*168*/ { 430, 1 }, | |
| 212 /*169*/ { 431, 0 }, | |
| 213 /*170*/ { 432, 0 }, | |
| 214 /*171*/ { 433, 0 }, | |
| 215 /*172*/ { 434, 1 }, | |
| 216 /*173*/ { 435, 0 }, | |
| 217 /*174*/ { 436, 0 }, | |
| 218 /*175*/ { 437, 0 }, | |
| 219 /*176*/ { 438, 0 }, | |
| 220 /*177*/ { 439, 0 }, | |
| 221 /*178*/ { 440, 0 }, | |
| 222 /*179*/ { 441, 0 }, | |
| 223 /*180*/ { 442, 0 }, | |
| 224 /*181*/ { 443, 0 }, | |
| 225 /*182*/ { 450, 0 }, | |
| 226 /*183*/ { 460, 0 }, | |
| 227 /*184*/ { 470, 0 }, | |
| 228 /*185*/ { 479, 0 }, | |
| 229 /*186*/ { 480, 1 }, | |
| 230 /*187*/ { 481, 0 }, | |
| 231 /*188*/ { 495, 0 }, | |
| 232 /*189*/ { 496, 1 }, | |
| 233 /*190*/ { 497, 0 }, | |
| 234 /*191*/ { 498, 1 }, | |
| 235 /*192*/ { 499, 0 }, | |
| 236 /*193*/ { 500, 0 }, | |
| 237 /*194*/ { 501, 0 }, | |
| 238 /*195*/ { 502, 0 }, | |
| 239 /*196*/ { 503, 0 }, | |
| 240 /*197*/ { 504, 1 }, | |
| 241 /*198*/ { 505, 0 }, | |
| 242 /*199*/ { 510, 0 }, | |
| 243 /*200*/ { 520, 0 }, | |
| 244 /*201*/ { 530, 0 }, | |
| 245 /*202*/ { 540, 0 }, | |
| 246 /*203*/ { 550, 0 }, | |
| 247 /*204*/ { 557, 0 }, | |
| 248 /*205*/ { 558, 1 }, | |
| 249 /*206*/ { 559, 0 }, | |
| 250 /*207*/ { 560, 0 }, | |
| 251 /*208*/ { 561, 0 }, | |
| 252 /*209*/ { 562, 0 }, | |
| 253 /*210*/ { 563, 0 }, | |
| 254 /*211*/ { 564, 0 }, | |
| 255 /*212*/ { 565, 0 }, | |
| 256 /*213*/ { 566, 1 }, | |
| 257 /*214*/ { 567, 0 }, | |
| 258 /*215*/ { 570, 0 }, | |
| 259 /*216*/ { 580, 0 }, | |
| 260 /*217*/ { 589, 0 }, | |
| 261 /*218*/ { 590, 1 }, | |
| 262 /*219*/ { 591, 0 }, | |
| 263 /*220*/ { 597, 0 }, | |
| 264 /*221*/ { 598, 1 }, | |
| 265 /*222*/ { 599, 0 }, | |
| 266 /*223*/ { 600, 1 }, | |
| 267 /*224*/ { 601, 0 }, | |
| 268 /*225*/ { 610, 0 }, | |
| 269 /*226*/ { 611, 0 }, | |
| 270 /*227*/ { 612, 0 }, | |
| 271 /*228*/ { 613, 0 }, | |
| 272 /*229*/ { 620, 0 }, | |
| 273 /*230*/ { 630, 0 }, | |
| 274 /*231*/ { 640, 0 }, | |
| 275 /*232*/ { 650, 0 }, | |
| 276 /*233*/ { 660, 0 }, | |
| 277 /*234*/ { 670, 0 }, | |
| 278 /*235*/ { 677, 0 }, | |
| 279 /*236*/ { 678, 0 }, | |
| 280 /*237*/ { 679, 0 }, | |
| 281 /*238*/ { 680, 0 }, | |
| 282 /*239*/ { 681, 0 }, | |
| 283 /*240*/ { 682, 1 }, | |
| 284 /*241*/ { 683, 0 }, | |
| 285 /*242*/ { 689, 0 }, | |
| 286 /*243*/ { 690, 1 }, | |
| 287 /*244*/ { 691, 0 }, | |
| 288 /*245*/ { 700, 0 }, | |
| 289 /*246*/ { 701, 0 }, | |
| 290 /*247*/ { 702, 1 }, | |
| 291 /*248*/ { 703, 0 }, | |
| 292 /*249*/ { 704, 1 }, | |
| 293 /*250*/ { 705, 0 }, | |
| 294 /*251*/ { 706, 1 }, | |
| 295 /*252*/ { 707, 0 }, | |
| 296 /*253*/ { 708, 0 }, | |
| 297 /*254*/ { 709, 0 }, | |
| 298 /*255*/ { 710, 1 }, | |
| 299 /*256*/ { 711, 0 }, | |
| 300 /*257*/ { 720, 0 }, | |
| 301 /*258*/ { 730, 0 }, | |
| 302 /*259*/ { 740, 0 }, | |
| 303 /*260*/ { 750, 0 }, | |
| 304 /*261*/ { 751, 0 }, | |
| 305 /*262*/ { 752, 1 }, | |
| 306 /*263*/ { 753, 0 }, | |
| 307 /*264*/ { 759, 0 }, | |
| 308 /*265*/ { 760, 1 }, | |
| 309 /*266*/ { 761, 0 }, | |
| 310 /*267*/ { 770, 0 }, | |
| 311 /*268*/ { 779, 0 }, | |
| 312 /*269*/ { 780, 1 }, | |
| 313 /*270*/ { 781, 0 }, | |
| 314 /*271*/ { 790, 0 }, | |
| 315 /*272*/ { 799, 0 }, | |
| 316 /*273*/ { 800, 1 }, | |
| 317 /*274*/ { 801, 0 }, | |
| 318 /*275*/ { 810, 0 }, | |
| 319 /*276*/ { 820, 0 }, | |
| 320 /*277*/ { 830, 0 }, | |
| 321 /*278*/ { 839, 0 }, | |
| 322 /*279*/ { 840, 1 }, | |
| 323 /*280*/ { 841, 0 }, | |
| 324 /*281*/ { 857, 0 }, | |
| 325 /*282*/ { 858, 1 }, | |
| 326 /*283*/ { 859, 0 }, | |
| 327 /*284*/ { 860, 1 }, | |
| 328 /*285*/ { 861, 0 }, | |
| 329 /*286*/ { 870, 0 }, | |
| 330 /*287*/ { 880, 0 }, | |
| 331 /*288*/ { 881, 0 }, | |
| 332 /*289*/ { 882, 1 }, | |
| 333 /*290*/ { 883, 0 }, | |
| 334 /*291*/ { 884, 0 }, | |
| 335 /*292*/ { 885, 0 }, | |
| 336 /*293*/ { 886, 1 }, | |
| 337 /*294*/ { 887, 0 }, | |
| 338 /*295*/ { 888, 0 }, | |
| 339 /*296*/ { 889, 0 }, | |
| 340 /*297*/ { 890, 0 }, | |
| 341 /*298*/ { 891, 0 }, | |
| 342 /*299*/ { 892, 0 }, | |
| 343 /*300*/ { 893, 0 }, | |
| 344 /*301*/ { 894, 0 }, | |
| 345 /*302*/ { 895, 0 }, | |
| 346 /*303*/ { 896, 0 }, | |
| 347 /*304*/ { 897, 0 }, | |
| 348 /*305*/ { 898, 0 }, | |
| 349 /*306*/ { 899, 0 }, | |
| 350 /*307*/ { 900, 0 }, | |
| 351 /*308*/ { 901, 1 }, | |
| 352 /*309*/ { 902, 0 }, | |
| 353 /*310*/ { 924, 1 }, | |
| 354 /*311*/ { 925, 1 }, | |
| 355 /*312*/ { 926, 0 }, | |
| 356 /*313*/ { 927, 1 }, | |
| 357 /*314*/ { 928, 1 }, | |
| 358 /*315*/ { 929, 1 }, | |
| 359 /*316*/ { 930, 1 }, | |
| 360 /*317*/ { 931, 1 }, | |
| 361 /*318*/ { 932, 1 }, /* TODO: 1 -> 0, 1 Sept 2024 */ | |
| 362 /*319*/ { 933, 1 }, | |
| 363 /*320*/ { 934, 1 }, | |
| 364 /*321*/ { 935, 0 }, | |
| 365 /*322*/ { 936, 1 }, | |
| 366 /*323*/ { 937, 0 }, | |
| 367 /*324*/ { 938, 1 }, | |
| 368 /*325*/ { 939, 0 }, | |
| 369 /*326*/ { 940, 1 }, | |
| 370 /*327*/ { 941, 1 }, | |
| 371 /*328*/ { 942, 0 }, | |
| 372 /*329*/ { 943, 1 }, | |
| 373 /*330*/ { 944, 1 }, | |
| 374 /*331*/ { 945, 0 }, | |
| 375 /*332*/ { 946, 1 }, | |
| 376 /*333*/ { 947, 1 }, | |
| 377 /*334*/ { 948, 1 }, | |
| 378 /*335*/ { 949, 1 }, | |
| 379 /*336*/ { 950, 1 }, | |
| 380 /*337*/ { 951, 1 }, | |
| 381 /*338*/ { 952, 1 }, | |
| 382 /*339*/ { 953, 1 }, | |
| 383 /*340*/ { 954, 0 }, | |
| 384 /*341*/ { 955, 1 }, | |
| 385 /*342*/ { 956, 1 }, | |
| 386 /*343*/ { 957, 1 }, | |
| 387 /*344*/ { 958, 1 }, | |
| 388 /*345*/ { 959, 1 }, | |
| 389 /*346*/ { 960, 1 }, | |
| 390 /*347*/ { 961, 1 }, | |
| 391 /*348*/ { 962, 1 }, | |
| 392 /*349*/ { 963, 1 }, | |
| 393 /*350*/ { 964, 1 }, | |
| 394 /*351*/ { 965, 1 }, | |
| 395 /*352*/ { 966, 0 }, | |
| 396 /*353*/ { 967, 1 }, | |
| 397 /*354*/ { 968, 1 }, | |
| 398 /*355*/ { 969, 1 }, | |
| 399 /*356*/ { 970, 1 }, | |
| 400 /*357*/ { 971, 1 }, | |
| 401 /*358*/ { 972, 1 }, | |
| 402 /*359*/ { 973, 1 }, | |
| 403 /*360*/ { 974, 0 }, | |
| 404 /*361*/ { 975, 1 }, | |
| 405 /*362*/ { 976, 1 }, | |
| 406 /*363*/ { 977, 1 }, | |
| 407 /*364*/ { 978, 1 }, | |
| 408 /*365*/ { 979, 1 }, | |
| 409 /*366*/ { 980, 1 }, | |
| 410 /*367*/ { 981, 1 }, | |
| 411 /*368*/ { 982, 0 }, | |
| 412 /*369*/ { 983, 0 }, | |
| 413 /*370*/ { 984, 1 }, | |
| 414 /*371*/ { 985, 1 }, | |
| 415 /*372*/ { 986, 1 }, | |
| 416 /*373*/ { 987, 0 }, | |
| 417 /*374*/ { 988, 0 }, | |
| 418 /*375*/ { 989, 0 }, | |
| 419 /*376*/ { 990, 1 }, | |
| 420 /*377*/ { 991, 0 }, | |
| 421 /*378*/ { 992, 0 }, | |
| 422 /*379*/ { 993, 0 }, | |
| 423 /*380*/ { 994, 1 }, | |
| 424 /*381*/ { 995, 0 }, | |
| 425 /*382*/ { 996, 0 }, | |
| 426 /*383*/ { 997, 1 }, | |
| 427 /*384*/ { 998, 0 }, | |
| 428 /*385*/ { 999, 1 }, | |
| 429 /*386*/ { 1000, 0 }, | |
| 430 /*387*/ { 2000, 0 }, | |
| 431 }; | |
| 432 int data_size = ARRAY_SIZE(data); | |
| 433 int i, ret; | |
| 434 | |
| 435 testStart("test_numeric"); | |
| 436 | |
| 437 for (i = 0; i < data_size; i++) { | |
| 438 | |
| 439 if (testContinue(p_ctx, i)) continue; | |
| 440 | |
| 441 ret = iso4217_numeric(data[i].data); | |
| 442 assert_equal(ret, data[i].ret, "i:%d ret %d != %d\n", i, ret, data[i].ret); | |
| 443 } | |
| 444 | |
| 445 testFinish(); | |
| 446 } | |
| 447 | |
| 448 /* Binary chop version: Whether ISO 4217 numeric */ | |
| 449 static int bc_iso4217_numeric(int cc) { | |
| 450 static const short codes[181] = { | |
| 451 /*ALL*/ 8, /*DZD*/ 12, /*ARS*/ 32, /*AUD*/ 36, /*BSD*/ 44, /*BHD*/ 48, /*BDT*/ 50, /*AMD*/ 51, /*BBD*/ 52, /*BMD*/ 60, | |
| 452 /*BTN*/ 64, /*BOB*/ 68, /*BWP*/ 72, /*BZD*/ 84, /*SBD*/ 90, /*BND*/ 96, /*MMK*/ 104, /*BIF*/ 108, /*KHR*/ 116, /*CAD*/ 124, | |
| 453 /*CVE*/ 132, /*KYD*/ 136, /*LKR*/ 144, /*CLP*/ 152, /*CNY*/ 156, /*COP*/ 170, /*KMF*/ 174, /*CRC*/ 188, /*HRK*/ 191, /*CUP*/ 192, | |
| 454 /*CZK*/ 203, /*DKK*/ 208, /*DOP*/ 214, /*SVC*/ 222, /*ETB*/ 230, /*ERN*/ 232, /*FKP*/ 238, /*FJD*/ 242, /*DJF*/ 262, /*GMD*/ 270, | |
| 455 /*GIP*/ 292, /*GTQ*/ 320, /*GNF*/ 324, /*GYD*/ 328, /*HTG*/ 332, /*HNL*/ 340, /*HKD*/ 344, /*HUF*/ 348, /*ISK*/ 352, /*INR*/ 356, | |
| 456 /*IDR*/ 360, /*IRR*/ 364, /*IQD*/ 368, /*ILS*/ 376, /*JMD*/ 388, /*JPY*/ 392, /*KZT*/ 398, /*JOD*/ 400, /*KES*/ 404, /*KPW*/ 408, | |
| 457 /*KRW*/ 410, /*KWD*/ 414, /*KGS*/ 417, /*LAK*/ 418, /*LBP*/ 422, /*LSL*/ 426, /*LRD*/ 430, /*LYD*/ 434, /*MOP*/ 446, /*MWK*/ 454, | |
| 458 /*MYR*/ 458, /*MVR*/ 462, /*MUR*/ 480, /*MXN*/ 484, /*MNT*/ 496, /*MDL*/ 498, /*MAD*/ 504, /*OMR*/ 512, /*NAD*/ 516, /*NPR*/ 524, | |
| 459 /*ANG*/ 532, /*AWG*/ 533, /*VUV*/ 548, /*NZD*/ 554, /*NIO*/ 558, /*NGN*/ 566, /*NOK*/ 578, /*PKR*/ 586, /*PAB*/ 590, /*PGK*/ 598, | |
| 460 /*PYG*/ 600, /*PEN*/ 604, /*PHP*/ 608, /*QAR*/ 634, /*RUB*/ 643, /*RWF*/ 646, /*SHP*/ 654, /*SAR*/ 682, /*SCR*/ 690, /*SLL*/ 694, | |
| 461 /*SGD*/ 702, /*VND*/ 704, /*SOS*/ 706, /*ZAR*/ 710, /*SSP*/ 728, /*SZL*/ 748, /*SEK*/ 752, /*CHF*/ 756, /*SYP*/ 760, /*THB*/ 764, | |
| 462 /*TOP*/ 776, /*TTD*/ 780, /*AED*/ 784, /*TND*/ 788, /*UGX*/ 800, /*MKD*/ 807, /*EGP*/ 818, /*GBP*/ 826, /*TZS*/ 834, /*USD*/ 840, | |
| 463 /*UYU*/ 858, /*UZS*/ 860, /*WST*/ 882, /*YER*/ 886, /*TWD*/ 901, /*ZWG*/ 924, /*SLE*/ 925, /*UYW*/ 927, /*VES*/ 928, /*MRU*/ 929, | |
| 464 /*STN*/ 930, /*CUC*/ 931, /*ZWL*/ 932, /* TODO: remove 1 Sept 2024 */ | |
| 465 /*BYN*/ 933, /*TMT*/ 934, /*GHS*/ 936, /*SDG*/ 938, /*UYI*/ 940, /*RSD*/ 941, /*MZN*/ 943, /*AZN*/ 944, | |
| 466 /*RON*/ 946, /*CHE*/ 947, /*CHW*/ 948, /*TRY*/ 949, /*XAF*/ 950, /*XCD*/ 951, /*XOF*/ 952, /*XPF*/ 953, /*XBA*/ 955, /*XBB*/ 956, | |
| 467 /*XBC*/ 957, /*XBD*/ 958, /*XAU*/ 959, /*XDR*/ 960, /*XAG*/ 961, /*XPT*/ 962, /*XTS*/ 963, /*XPD*/ 964, /*XUA*/ 965, /*ZMW*/ 967, | |
| 468 /*SRD*/ 968, /*MGA*/ 969, /*COU*/ 970, /*AFN*/ 971, /*TJS*/ 972, /*AOA*/ 973, /*BGN*/ 975, /*CDF*/ 976, /*BAM*/ 977, /*EUR*/ 978, | |
| 469 /*MXV*/ 979, /*UAH*/ 980, /*GEL*/ 981, /*BOV*/ 984, /*PLN*/ 985, /*BRL*/ 986, /*CLF*/ 990, /*XSU*/ 994, /*USN*/ 997, /*XXX*/ 999, | |
| 470 }; | |
| 471 | |
| 472 int s = 0, e = ARRAY_SIZE(codes) - 1; | |
| 473 | |
| 474 while (s <= e) { | |
| 475 int m = (s + e) / 2; | |
| 476 if (codes[m] < cc) { | |
| 477 s = m + 1; | |
| 478 } else if (codes[m] > cc) { | |
| 479 e = m - 1; | |
| 480 } else { | |
| 481 return 1; | |
| 482 } | |
| 483 } | |
| 484 | |
| 485 return 0; | |
| 486 } | |
| 487 | |
| 488 static void test_numeric_bc(const testCtx *const p_ctx) { | |
| 489 | |
| 490 int i, ret, bc_ret; | |
| 491 | |
| 492 testStart("test_numeric_bc"); | |
| 493 | |
| 494 for (i = 0; i < 1001; i++) { | |
| 495 if (testContinue(p_ctx, i)) continue; | |
| 496 ret = iso4217_numeric(i); | |
| 497 bc_ret = bc_iso4217_numeric(i); | |
| 498 assert_equal(ret, bc_ret, "i:%d ret %d != bc_ret %d\n", i, ret, bc_ret); | |
| 499 } | |
| 500 | |
| 501 testFinish(); | |
| 502 } | |
| 503 | |
| 504 int main(int argc, char *argv[]) { | |
| 505 | |
| 506 testFunction funcs[] = { /* name, func */ | |
| 507 { "test_numeric", test_numeric }, | |
| 508 { "test_numeric_bc", test_numeric_bc }, | |
| 509 }; | |
| 510 | |
| 511 testRun(argc, argv, funcs, ARRAY_SIZE(funcs)); | |
| 512 | |
| 513 testReport(); | |
| 514 | |
| 515 return 0; | |
| 516 } | |
| 517 | |
| 518 /* vim: set ts=4 sw=4 et : */ |
