1 /* 2 ********************************************************************** 3 * Copyright (c) 2002-2014, International Business Machines 4 * Corporation and others. All Rights Reserved. 5 ********************************************************************** 6 ********************************************************************** 7 */ 8 /** 9 * This Program tests the performance of ICU's Normalization engine against Windows 10 * to run it use the command like 11 * 12 * c:\normperf.exe -s C:\work\ICUCupertinoRep\icu4c\collation-perf-data -i 10 -p 15 -f TestNames_Asian.txt -u -e UTF-8 -l 13 */ 14 #include "convperf.h" 15 #include "data.h" 16 #include <stdio.h> 17 #include "cmemory.h" // for UPRV_LENGTHOF 18 19 int main(int argc, const char* argv[]){ 20 UErrorCode status = U_ZERO_ERROR; 21 ConverterPerformanceTest test(argc, argv, status); 22 if(U_FAILURE(status)){ 23 return status; 24 } 25 if(test.run()==FALSE){ 26 fprintf(stderr,"FAILED: Tests could not be run please check the arguments.\n"); 27 return -1; 28 } 29 return 0; 30 } 31 32 33 ConverterPerformanceTest::ConverterPerformanceTest(int32_t argc, const char* argv[], UErrorCode& status) 34 : UPerfTest(argc,argv,status){ 35 36 } 37 38 ConverterPerformanceTest::~ConverterPerformanceTest(){ 39 40 } 41 42 UPerfFunction* ConverterPerformanceTest::runIndexedTest(int32_t index, UBool exec,const char* &name, char* par) { 43 switch (index) { 44 TESTCASE(0,TestICU_CleanOpenAllConverters);// This calls u_cleanup() 45 TESTCASE(1,TestICU_OpenAllConverters);// This doesn't call u_cleanup() 46 47 TESTCASE(2,TestICU_UTF8_ToUnicode); 48 TESTCASE(3,TestICU_UTF8_FromUnicode); 49 TESTCASE(4,TestWinANSI_UTF8_ToUnicode); 50 TESTCASE(5,TestWinANSI_UTF8_FromUnicode); 51 TESTCASE(6,TestWinIML2_UTF8_ToUnicode); 52 TESTCASE(7,TestWinIML2_UTF8_FromUnicode); 53 54 TESTCASE(8,TestICU_Latin1_ToUnicode); 55 TESTCASE(9,TestICU_Latin1_FromUnicode); 56 TESTCASE(10,TestWinIML2_Latin1_ToUnicode); 57 TESTCASE(11,TestWinIML2_Latin1_FromUnicode); 58 59 TESTCASE(12,TestICU_Latin8_ToUnicode); 60 TESTCASE(13,TestICU_Latin8_FromUnicode); 61 TESTCASE(14,TestWinIML2_Latin8_ToUnicode); 62 TESTCASE(15,TestWinIML2_Latin8_FromUnicode); 63 64 TESTCASE(16,TestICU_EBCDIC_Arabic_ToUnicode); 65 TESTCASE(17,TestICU_EBCDIC_Arabic_FromUnicode); 66 TESTCASE(18,TestWinIML2_EBCDIC_Arabic_ToUnicode); 67 TESTCASE(19,TestWinIML2_EBCDIC_Arabic_FromUnicode); 68 69 TESTCASE(20,TestICU_SJIS_ToUnicode); 70 TESTCASE(21,TestICU_SJIS_FromUnicode); 71 TESTCASE(22,TestWinIML2_SJIS_ToUnicode); 72 TESTCASE(23,TestWinIML2_SJIS_FromUnicode); 73 74 TESTCASE(24,TestICU_EUCJP_ToUnicode); 75 TESTCASE(25,TestICU_EUCJP_FromUnicode); 76 TESTCASE(26,TestWinIML2_EUCJP_ToUnicode); 77 TESTCASE(27,TestWinIML2_EUCJP_FromUnicode); 78 79 TESTCASE(28,TestICU_GB2312_FromUnicode); 80 TESTCASE(29,TestICU_GB2312_ToUnicode); 81 TESTCASE(30,TestWinIML2_GB2312_ToUnicode); 82 TESTCASE(31,TestWinIML2_GB2312_FromUnicode); 83 84 TESTCASE(32,TestICU_ISO2022KR_ToUnicode); 85 TESTCASE(33,TestICU_ISO2022KR_FromUnicode); 86 TESTCASE(34,TestWinIML2_ISO2022KR_ToUnicode); 87 TESTCASE(35,TestWinIML2_ISO2022KR_FromUnicode); 88 89 TESTCASE(36,TestICU_ISO2022JP_ToUnicode); 90 TESTCASE(37,TestICU_ISO2022JP_FromUnicode); 91 TESTCASE(38,TestWinIML2_ISO2022JP_ToUnicode); 92 TESTCASE(39,TestWinIML2_ISO2022JP_FromUnicode); 93 94 TESTCASE(40,TestWinANSI_Latin1_ToUnicode); 95 TESTCASE(41,TestWinANSI_Latin1_FromUnicode); 96 97 TESTCASE(42,TestWinANSI_Latin8_ToUnicode); 98 TESTCASE(43,TestWinANSI_Latin8_FromUnicode); 99 100 TESTCASE(44,TestWinANSI_SJIS_ToUnicode); 101 TESTCASE(45,TestWinANSI_SJIS_FromUnicode); 102 103 TESTCASE(46,TestWinANSI_EUCJP_ToUnicode); 104 TESTCASE(47,TestWinANSI_EUCJP_FromUnicode); 105 106 TESTCASE(48,TestWinANSI_GB2312_ToUnicode); 107 TESTCASE(49,TestWinANSI_GB2312_FromUnicode); 108 109 TESTCASE(50,TestWinANSI_ISO2022KR_ToUnicode); 110 TESTCASE(51,TestWinANSI_ISO2022KR_FromUnicode); 111 112 TESTCASE(52,TestWinANSI_ISO2022JP_ToUnicode); 113 TESTCASE(53,TestWinANSI_ISO2022JP_FromUnicode); 114 115 default: 116 name = ""; 117 return NULL; 118 } 119 return NULL; 120 121 } 122 123 UPerfFunction* ConverterPerformanceTest::TestICU_CleanOpenAllConverters() { 124 UErrorCode status = U_ZERO_ERROR; 125 UPerfFunction* pf = new ICUOpenAllConvertersFunction(TRUE, status); 126 if(U_FAILURE(status)){ 127 return NULL; 128 } 129 return pf; 130 } 131 132 UPerfFunction* ConverterPerformanceTest::TestICU_OpenAllConverters() { 133 UErrorCode status = U_ZERO_ERROR; 134 UPerfFunction* pf = new ICUOpenAllConvertersFunction(FALSE, status); 135 if(U_FAILURE(status)){ 136 return NULL; 137 } 138 return pf; 139 } 140 141 UPerfFunction* ConverterPerformanceTest::TestICU_UTF8_FromUnicode(){ 142 UErrorCode status = U_ZERO_ERROR; 143 ICUFromUnicodePerfFunction* pf = new ICUFromUnicodePerfFunction("utf-8",utf8_uniSource, UPRV_LENGTHOF(utf8_uniSource), status); 144 if(U_FAILURE(status)){ 145 return NULL; 146 } 147 return pf; 148 } 149 150 UPerfFunction* ConverterPerformanceTest::TestICU_UTF8_ToUnicode(){ 151 UErrorCode status = U_ZERO_ERROR; 152 UPerfFunction* pf = new ICUToUnicodePerfFunction("utf-8",(char*)utf8_encSource, UPRV_LENGTHOF(utf8_encSource), status); 153 if(U_FAILURE(status)){ 154 return NULL; 155 } 156 return pf; 157 } 158 159 160 UPerfFunction* ConverterPerformanceTest::TestWinIML2_UTF8_FromUnicode(){ 161 UErrorCode status = U_ZERO_ERROR; 162 UPerfFunction* pf = new WinIMultiLanguage2FromUnicodePerfFunction("utf-8",utf8_uniSource, UPRV_LENGTHOF(utf8_uniSource), status); 163 if(U_FAILURE(status)){ 164 return NULL; 165 } 166 return pf; 167 } 168 169 UPerfFunction* ConverterPerformanceTest::TestWinIML2_UTF8_ToUnicode(){ 170 UErrorCode status = U_ZERO_ERROR; 171 UPerfFunction* pf = new WinIMultiLanguage2ToUnicodePerfFunction("utf-8",(char*)utf8_encSource, UPRV_LENGTHOF(utf8_encSource), status); 172 if(U_FAILURE(status)){ 173 return NULL; 174 } 175 return pf; 176 } 177 178 UPerfFunction* ConverterPerformanceTest::TestWinANSI_UTF8_FromUnicode(){ 179 UErrorCode status = U_ZERO_ERROR; 180 UPerfFunction* pf = new WinANSIFromUnicodePerfFunction("utf-8",utf8_uniSource, UPRV_LENGTHOF(utf8_uniSource), status); 181 if(U_FAILURE(status)){ 182 return NULL; 183 } 184 return pf; 185 } 186 187 UPerfFunction* ConverterPerformanceTest::TestWinANSI_UTF8_ToUnicode(){ 188 UErrorCode status = U_ZERO_ERROR; 189 UPerfFunction* pf = new WinANSIToUnicodePerfFunction("utf-8",(char*)utf8_encSource, UPRV_LENGTHOF(utf8_encSource), status); 190 if(U_FAILURE(status)){ 191 return NULL; 192 } 193 return pf; 194 } 195 196 //################ 197 198 UPerfFunction* ConverterPerformanceTest::TestICU_Latin1_FromUnicode(){ 199 UErrorCode status = U_ZERO_ERROR; 200 ICUFromUnicodePerfFunction* pf = new ICUFromUnicodePerfFunction("iso-8859-1",latin1_uniSource, UPRV_LENGTHOF(latin1_uniSource), status); 201 if(U_FAILURE(status)){ 202 return NULL; 203 } 204 return pf; 205 } 206 207 UPerfFunction* ConverterPerformanceTest::TestICU_Latin1_ToUnicode(){ 208 UErrorCode status = U_ZERO_ERROR; 209 UPerfFunction* pf = new ICUToUnicodePerfFunction("iso-8859-1",(char*)latin1_encSource, UPRV_LENGTHOF(latin1_encSource), status); 210 if(U_FAILURE(status)){ 211 return NULL; 212 } 213 return pf; 214 } 215 216 217 UPerfFunction* ConverterPerformanceTest::TestWinIML2_Latin1_FromUnicode(){ 218 UErrorCode status = U_ZERO_ERROR; 219 UPerfFunction* pf = new WinIMultiLanguage2FromUnicodePerfFunction("iso-8859-1",latin1_uniSource, UPRV_LENGTHOF(latin1_uniSource), status); 220 if(U_FAILURE(status)){ 221 return NULL; 222 } 223 return pf; 224 } 225 226 UPerfFunction* ConverterPerformanceTest::TestWinIML2_Latin1_ToUnicode(){ 227 UErrorCode status = U_ZERO_ERROR; 228 UPerfFunction* pf = new WinIMultiLanguage2ToUnicodePerfFunction("iso-8859-1",(char*)latin1_encSource, UPRV_LENGTHOF(latin1_encSource), status); 229 if(U_FAILURE(status)){ 230 return NULL; 231 } 232 return pf; 233 } 234 235 UPerfFunction* ConverterPerformanceTest::TestWinANSI_Latin1_FromUnicode(){ 236 UErrorCode status = U_ZERO_ERROR; 237 UPerfFunction* pf = new WinANSIFromUnicodePerfFunction("iso-8859-1",latin1_uniSource, UPRV_LENGTHOF(latin1_uniSource), status); 238 if(U_FAILURE(status)){ 239 return NULL; 240 } 241 return pf; 242 } 243 244 UPerfFunction* ConverterPerformanceTest::TestWinANSI_Latin1_ToUnicode(){ 245 UErrorCode status = U_ZERO_ERROR; 246 UPerfFunction* pf = new WinANSIToUnicodePerfFunction("iso-8859-1",(char*)latin1_encSource, UPRV_LENGTHOF(latin1_encSource), status); 247 if(U_FAILURE(status)){ 248 return NULL; 249 } 250 return pf; 251 } 252 253 //################## 254 255 UPerfFunction* ConverterPerformanceTest::TestICU_Latin8_FromUnicode(){ 256 UErrorCode status = U_ZERO_ERROR; 257 ICUFromUnicodePerfFunction* pf = new ICUFromUnicodePerfFunction("iso-8859-8",latin8_uniSource, UPRV_LENGTHOF(latin8_uniSource), status); 258 if(U_FAILURE(status)){ 259 return NULL; 260 } 261 return pf; 262 } 263 264 UPerfFunction* ConverterPerformanceTest::TestICU_Latin8_ToUnicode(){ 265 UErrorCode status = U_ZERO_ERROR; 266 UPerfFunction* pf = new ICUToUnicodePerfFunction("iso-8859-8",(char*)latin8_encSource, UPRV_LENGTHOF(latin8_encSource), status); 267 if(U_FAILURE(status)){ 268 return NULL; 269 } 270 return pf; 271 } 272 273 274 UPerfFunction* ConverterPerformanceTest::TestWinIML2_Latin8_FromUnicode(){ 275 UErrorCode status = U_ZERO_ERROR; 276 UPerfFunction* pf = new WinIMultiLanguage2FromUnicodePerfFunction("iso-8859-8",latin8_uniSource, UPRV_LENGTHOF(latin8_uniSource), status); 277 if(U_FAILURE(status)){ 278 return NULL; 279 } 280 return pf; 281 } 282 283 UPerfFunction* ConverterPerformanceTest::TestWinIML2_Latin8_ToUnicode(){ 284 UErrorCode status = U_ZERO_ERROR; 285 UPerfFunction* pf = new WinIMultiLanguage2ToUnicodePerfFunction("iso-8859-8",(char*)latin8_encSource, UPRV_LENGTHOF(latin8_encSource), status); 286 if(U_FAILURE(status)){ 287 return NULL; 288 } 289 return pf; 290 } 291 UPerfFunction* ConverterPerformanceTest::TestWinANSI_Latin8_FromUnicode(){ 292 UErrorCode status = U_ZERO_ERROR; 293 UPerfFunction* pf = new WinANSIFromUnicodePerfFunction("iso-8859-8",latin8_uniSource, UPRV_LENGTHOF(latin8_uniSource), status); 294 if(U_FAILURE(status)){ 295 return NULL; 296 } 297 return pf; 298 } 299 300 UPerfFunction* ConverterPerformanceTest::TestWinANSI_Latin8_ToUnicode(){ 301 UErrorCode status = U_ZERO_ERROR; 302 UPerfFunction* pf = new WinANSIToUnicodePerfFunction("iso-8859-8",(char*)latin8_encSource, UPRV_LENGTHOF(latin8_encSource), status); 303 if(U_FAILURE(status)){ 304 return NULL; 305 } 306 return pf; 307 } 308 309 //################# 310 311 312 UPerfFunction* ConverterPerformanceTest::TestICU_EBCDIC_Arabic_FromUnicode(){ 313 UErrorCode status = U_ZERO_ERROR; 314 ICUFromUnicodePerfFunction* pf = new ICUFromUnicodePerfFunction("x-EBCDIC-Arabic",ebcdic_arabic_uniSource, UPRV_LENGTHOF(ebcdic_arabic_uniSource), status); 315 if(U_FAILURE(status)){ 316 return NULL; 317 } 318 return pf; 319 } 320 321 UPerfFunction* ConverterPerformanceTest::TestICU_EBCDIC_Arabic_ToUnicode(){ 322 UErrorCode status = U_ZERO_ERROR; 323 UPerfFunction* pf = new ICUToUnicodePerfFunction("x-EBCDIC-Arabic",(char*)ebcdic_arabic_encSource, UPRV_LENGTHOF(ebcdic_arabic_encSource), status); 324 if(U_FAILURE(status)){ 325 return NULL; 326 } 327 return pf; 328 } 329 330 331 UPerfFunction* ConverterPerformanceTest::TestWinIML2_EBCDIC_Arabic_FromUnicode(){ 332 UErrorCode status = U_ZERO_ERROR; 333 UPerfFunction* pf = new WinIMultiLanguage2FromUnicodePerfFunction("x-EBCDIC-Arabic",ebcdic_arabic_uniSource, UPRV_LENGTHOF(ebcdic_arabic_uniSource), status); 334 if(U_FAILURE(status)){ 335 return NULL; 336 } 337 return pf; 338 } 339 340 UPerfFunction* ConverterPerformanceTest::TestWinIML2_EBCDIC_Arabic_ToUnicode(){ 341 UErrorCode status = U_ZERO_ERROR; 342 UPerfFunction* pf = new WinIMultiLanguage2ToUnicodePerfFunction("x-EBCDIC-Arabic",(char*)ebcdic_arabic_encSource, UPRV_LENGTHOF(ebcdic_arabic_encSource), status); 343 if(U_FAILURE(status)){ 344 return NULL; 345 } 346 return pf; 347 } 348 349 UPerfFunction* ConverterPerformanceTest::TestWinANSI_EBCDIC_Arabic_FromUnicode(){ 350 UErrorCode status = U_ZERO_ERROR; 351 UPerfFunction* pf = new WinANSIFromUnicodePerfFunction("x-EBCDIC-Arabic",ebcdic_arabic_uniSource, UPRV_LENGTHOF(ebcdic_arabic_uniSource), status); 352 if(U_FAILURE(status)){ 353 return NULL; 354 } 355 return pf; 356 } 357 358 UPerfFunction* ConverterPerformanceTest::TestWinANSI_EBCDIC_Arabic_ToUnicode(){ 359 UErrorCode status = U_ZERO_ERROR; 360 UPerfFunction* pf = new WinANSIToUnicodePerfFunction("x-EBCDIC-Arabic",(char*)ebcdic_arabic_encSource, UPRV_LENGTHOF(ebcdic_arabic_encSource), status); 361 if(U_FAILURE(status)){ 362 return NULL; 363 } 364 return pf; 365 } 366 //################# 367 368 369 UPerfFunction* ConverterPerformanceTest::TestICU_SJIS_FromUnicode(){ 370 UErrorCode status = U_ZERO_ERROR; 371 ICUFromUnicodePerfFunction* pf = new ICUFromUnicodePerfFunction("sjis",sjis_uniSource, UPRV_LENGTHOF(sjis_uniSource), status); 372 if(U_FAILURE(status)){ 373 return NULL; 374 } 375 return pf; 376 } 377 378 UPerfFunction* ConverterPerformanceTest::TestICU_SJIS_ToUnicode(){ 379 UErrorCode status = U_ZERO_ERROR; 380 UPerfFunction* pf = new ICUToUnicodePerfFunction("sjis",(char*)sjis_encSource, UPRV_LENGTHOF(sjis_encSource), status); 381 if(U_FAILURE(status)){ 382 return NULL; 383 } 384 return pf; 385 } 386 387 388 UPerfFunction* ConverterPerformanceTest::TestWinIML2_SJIS_FromUnicode(){ 389 UErrorCode status = U_ZERO_ERROR; 390 UPerfFunction* pf = new WinIMultiLanguage2FromUnicodePerfFunction("sjis",sjis_uniSource, UPRV_LENGTHOF(sjis_uniSource), status); 391 if(U_FAILURE(status)){ 392 return NULL; 393 } 394 return pf; 395 } 396 397 UPerfFunction* ConverterPerformanceTest::TestWinIML2_SJIS_ToUnicode(){ 398 UErrorCode status = U_ZERO_ERROR; 399 UPerfFunction* pf = new WinIMultiLanguage2ToUnicodePerfFunction("sjis",(char*)sjis_encSource, UPRV_LENGTHOF(sjis_encSource), status); 400 if(U_FAILURE(status)){ 401 return NULL; 402 } 403 return pf; 404 } 405 406 UPerfFunction* ConverterPerformanceTest::TestWinANSI_SJIS_FromUnicode(){ 407 UErrorCode status = U_ZERO_ERROR; 408 UPerfFunction* pf = new WinANSIFromUnicodePerfFunction("sjis",sjis_uniSource, UPRV_LENGTHOF(sjis_uniSource), status); 409 if(U_FAILURE(status)){ 410 return NULL; 411 } 412 return pf; 413 } 414 415 UPerfFunction* ConverterPerformanceTest::TestWinANSI_SJIS_ToUnicode(){ 416 UErrorCode status = U_ZERO_ERROR; 417 UPerfFunction* pf = new WinANSIToUnicodePerfFunction("sjis",(char*)sjis_encSource, UPRV_LENGTHOF(sjis_encSource), status); 418 if(U_FAILURE(status)){ 419 return NULL; 420 } 421 return pf; 422 } 423 424 425 //################# 426 427 428 UPerfFunction* ConverterPerformanceTest::TestICU_EUCJP_FromUnicode(){ 429 UErrorCode status = U_ZERO_ERROR; 430 ICUFromUnicodePerfFunction* pf = new ICUFromUnicodePerfFunction("euc-jp",eucjp_uniSource, UPRV_LENGTHOF(eucjp_uniSource), status); 431 if(U_FAILURE(status)){ 432 return NULL; 433 } 434 return pf; 435 } 436 437 UPerfFunction* ConverterPerformanceTest::TestICU_EUCJP_ToUnicode(){ 438 UErrorCode status = U_ZERO_ERROR; 439 UPerfFunction* pf = new ICUToUnicodePerfFunction("euc-jp",(char*)eucjp_encSource, UPRV_LENGTHOF(eucjp_encSource), status); 440 if(U_FAILURE(status)){ 441 return NULL; 442 } 443 return pf; 444 } 445 446 447 UPerfFunction* ConverterPerformanceTest::TestWinIML2_EUCJP_FromUnicode(){ 448 UErrorCode status = U_ZERO_ERROR; 449 UPerfFunction* pf = new WinIMultiLanguage2FromUnicodePerfFunction("euc-jp",eucjp_uniSource, UPRV_LENGTHOF(eucjp_uniSource), status); 450 if(U_FAILURE(status)){ 451 return NULL; 452 } 453 return pf; 454 } 455 456 UPerfFunction* ConverterPerformanceTest::TestWinIML2_EUCJP_ToUnicode(){ 457 UErrorCode status = U_ZERO_ERROR; 458 UPerfFunction* pf = new WinIMultiLanguage2ToUnicodePerfFunction("euc-jp",(char*)eucjp_encSource, UPRV_LENGTHOF(eucjp_encSource), status); 459 if(U_FAILURE(status)){ 460 return NULL; 461 } 462 return pf; 463 } 464 465 UPerfFunction* ConverterPerformanceTest::TestWinANSI_EUCJP_FromUnicode(){ 466 UErrorCode status = U_ZERO_ERROR; 467 UPerfFunction* pf = new WinANSIFromUnicodePerfFunction("euc-jp",eucjp_uniSource, UPRV_LENGTHOF(eucjp_uniSource), status); 468 if(U_FAILURE(status)){ 469 return NULL; 470 } 471 return pf; 472 } 473 474 UPerfFunction* ConverterPerformanceTest::TestWinANSI_EUCJP_ToUnicode(){ 475 UErrorCode status = U_ZERO_ERROR; 476 UPerfFunction* pf = new WinANSIToUnicodePerfFunction("euc-jp",(char*)eucjp_encSource, UPRV_LENGTHOF(eucjp_encSource), status); 477 if(U_FAILURE(status)){ 478 return NULL; 479 } 480 return pf; 481 } 482 483 484 //################# 485 486 487 UPerfFunction* ConverterPerformanceTest::TestICU_GB2312_FromUnicode(){ 488 UErrorCode status = U_ZERO_ERROR; 489 ICUFromUnicodePerfFunction* pf = new ICUFromUnicodePerfFunction("gb2312",gb2312_uniSource, UPRV_LENGTHOF(gb2312_uniSource), status); 490 if(U_FAILURE(status)){ 491 return NULL; 492 } 493 return pf; 494 } 495 496 UPerfFunction* ConverterPerformanceTest::TestICU_GB2312_ToUnicode(){ 497 UErrorCode status = U_ZERO_ERROR; 498 UPerfFunction* pf = new ICUToUnicodePerfFunction("gb2312",(char*)gb2312_encSource, UPRV_LENGTHOF(gb2312_encSource), status); 499 if(U_FAILURE(status)){ 500 return NULL; 501 } 502 return pf; 503 } 504 505 506 UPerfFunction* ConverterPerformanceTest::TestWinIML2_GB2312_FromUnicode(){ 507 UErrorCode status = U_ZERO_ERROR; 508 UPerfFunction* pf = new WinIMultiLanguage2FromUnicodePerfFunction("gb2312",gb2312_uniSource, UPRV_LENGTHOF(gb2312_uniSource), status); 509 if(U_FAILURE(status)){ 510 return NULL; 511 } 512 return pf; 513 } 514 515 UPerfFunction* ConverterPerformanceTest::TestWinIML2_GB2312_ToUnicode(){ 516 UErrorCode status = U_ZERO_ERROR; 517 UPerfFunction* pf = new WinIMultiLanguage2ToUnicodePerfFunction("gb2312",(char*)gb2312_encSource, UPRV_LENGTHOF(gb2312_encSource), status); 518 if(U_FAILURE(status)){ 519 return NULL; 520 } 521 return pf; 522 } 523 524 UPerfFunction* ConverterPerformanceTest::TestWinANSI_GB2312_FromUnicode(){ 525 UErrorCode status = U_ZERO_ERROR; 526 UPerfFunction* pf = new WinANSIFromUnicodePerfFunction("gb2312",gb2312_uniSource, UPRV_LENGTHOF(gb2312_uniSource), status); 527 if(U_FAILURE(status)){ 528 return NULL; 529 } 530 return pf; 531 } 532 533 UPerfFunction* ConverterPerformanceTest::TestWinANSI_GB2312_ToUnicode(){ 534 UErrorCode status = U_ZERO_ERROR; 535 UPerfFunction* pf = new WinANSIToUnicodePerfFunction("gb2312",(char*)gb2312_encSource, UPRV_LENGTHOF(gb2312_encSource), status); 536 if(U_FAILURE(status)){ 537 return NULL; 538 } 539 return pf; 540 } 541 542 //################# 543 544 545 UPerfFunction* ConverterPerformanceTest::TestICU_ISO2022KR_FromUnicode(){ 546 UErrorCode status = U_ZERO_ERROR; 547 ICUFromUnicodePerfFunction* pf = new ICUFromUnicodePerfFunction("iso-2022-kr",iso2022kr_uniSource, UPRV_LENGTHOF(iso2022kr_uniSource), status); 548 if(U_FAILURE(status)){ 549 return NULL; 550 } 551 return pf; 552 } 553 554 UPerfFunction* ConverterPerformanceTest::TestICU_ISO2022KR_ToUnicode(){ 555 UErrorCode status = U_ZERO_ERROR; 556 UPerfFunction* pf = new ICUToUnicodePerfFunction("iso-2022-kr",(char*)iso2022kr_encSource, UPRV_LENGTHOF(iso2022kr_encSource), status); 557 if(U_FAILURE(status)){ 558 return NULL; 559 } 560 return pf; 561 } 562 563 564 UPerfFunction* ConverterPerformanceTest::TestWinIML2_ISO2022KR_FromUnicode(){ 565 UErrorCode status = U_ZERO_ERROR; 566 UPerfFunction* pf = new WinIMultiLanguage2FromUnicodePerfFunction("iso-2022-kr",iso2022kr_uniSource, UPRV_LENGTHOF(iso2022kr_uniSource), status); 567 if(U_FAILURE(status)){ 568 return NULL; 569 } 570 return pf; 571 } 572 573 UPerfFunction* ConverterPerformanceTest::TestWinIML2_ISO2022KR_ToUnicode(){ 574 UErrorCode status = U_ZERO_ERROR; 575 UPerfFunction* pf = new WinIMultiLanguage2ToUnicodePerfFunction("iso-2022-kr",(char*)iso2022kr_encSource, UPRV_LENGTHOF(iso2022kr_encSource), status); 576 if(U_FAILURE(status)){ 577 return NULL; 578 } 579 return pf; 580 } 581 582 UPerfFunction* ConverterPerformanceTest::TestWinANSI_ISO2022KR_FromUnicode(){ 583 UErrorCode status = U_ZERO_ERROR; 584 UPerfFunction* pf = new WinANSIFromUnicodePerfFunction("iso-2022-kr",iso2022kr_uniSource, UPRV_LENGTHOF(iso2022kr_uniSource), status); 585 if(U_FAILURE(status)){ 586 return NULL; 587 } 588 return pf; 589 } 590 591 UPerfFunction* ConverterPerformanceTest::TestWinANSI_ISO2022KR_ToUnicode(){ 592 UErrorCode status = U_ZERO_ERROR; 593 UPerfFunction* pf = new WinANSIToUnicodePerfFunction("iso-2022-kr",(char*)iso2022kr_encSource, UPRV_LENGTHOF(iso2022kr_encSource), status); 594 if(U_FAILURE(status)){ 595 return NULL; 596 } 597 return pf; 598 } 599 //################# 600 601 602 UPerfFunction* ConverterPerformanceTest::TestICU_ISO2022JP_FromUnicode(){ 603 UErrorCode status = U_ZERO_ERROR; 604 ICUFromUnicodePerfFunction* pf = new ICUFromUnicodePerfFunction("iso-2022-jp",iso2022jp_uniSource, UPRV_LENGTHOF(iso2022jp_uniSource), status); 605 if(U_FAILURE(status)){ 606 return NULL; 607 } 608 return pf; 609 } 610 611 UPerfFunction* ConverterPerformanceTest::TestICU_ISO2022JP_ToUnicode(){ 612 UErrorCode status = U_ZERO_ERROR; 613 UPerfFunction* pf = new ICUToUnicodePerfFunction("iso-2022-jp",(char*)iso2022jp_encSource, UPRV_LENGTHOF(iso2022jp_encSource), status); 614 if(U_FAILURE(status)){ 615 return NULL; 616 } 617 return pf; 618 } 619 620 621 UPerfFunction* ConverterPerformanceTest::TestWinIML2_ISO2022JP_FromUnicode(){ 622 UErrorCode status = U_ZERO_ERROR; 623 UPerfFunction* pf = new WinIMultiLanguage2FromUnicodePerfFunction("iso-2022-jp",iso2022jp_uniSource, UPRV_LENGTHOF(iso2022jp_uniSource), status); 624 if(U_FAILURE(status)){ 625 return NULL; 626 } 627 return pf; 628 } 629 630 UPerfFunction* ConverterPerformanceTest::TestWinIML2_ISO2022JP_ToUnicode(){ 631 UErrorCode status = U_ZERO_ERROR; 632 UPerfFunction* pf = new WinIMultiLanguage2ToUnicodePerfFunction("iso-2022-jp",(char*)iso2022jp_encSource, UPRV_LENGTHOF(iso2022jp_encSource), status); 633 if(U_FAILURE(status)){ 634 return NULL; 635 } 636 return pf; 637 } 638 639 UPerfFunction* ConverterPerformanceTest::TestWinANSI_ISO2022JP_FromUnicode(){ 640 UErrorCode status = U_ZERO_ERROR; 641 UPerfFunction* pf = new WinANSIFromUnicodePerfFunction("iso-2022-jp",iso2022jp_uniSource, UPRV_LENGTHOF(iso2022jp_uniSource), status); 642 if(U_FAILURE(status)){ 643 return NULL; 644 } 645 return pf; 646 } 647 648 UPerfFunction* ConverterPerformanceTest::TestWinANSI_ISO2022JP_ToUnicode(){ 649 UErrorCode status = U_ZERO_ERROR; 650 UPerfFunction* pf = new WinANSIToUnicodePerfFunction("iso-2022-jp",(char*)iso2022jp_encSource, UPRV_LENGTHOF(iso2022jp_encSource), status); 651 if(U_FAILURE(status)){ 652 return NULL; 653 } 654 return pf; 655 } 656