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