OLD | NEW |
| (Empty) |
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 Wind
ows | |
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 "normperf.h" | |
15 #include "uoptions.h" | |
16 #include "cmemory.h" // for UPRV_LENGTHOF | |
17 #include <stdio.h> | |
18 | |
19 UPerfFunction* NormalizerPerformanceTest::runIndexedTest(int32_t index, UBool ex
ec,const char* &name, char* par) { | |
20 switch (index) { | |
21 TESTCASE(0,TestICU_NFC_NFD_Text); | |
22 TESTCASE(1,TestICU_NFC_NFC_Text); | |
23 TESTCASE(2,TestICU_NFC_Orig_Text); | |
24 | |
25 TESTCASE(3,TestICU_NFD_NFD_Text); | |
26 TESTCASE(4,TestICU_NFD_NFC_Text); | |
27 TESTCASE(5,TestICU_NFD_Orig_Text); | |
28 | |
29 TESTCASE(6,TestICU_FCD_NFD_Text); | |
30 TESTCASE(7,TestICU_FCD_NFC_Text); | |
31 TESTCASE(8,TestICU_FCD_Orig_Text); | |
32 | |
33 TESTCASE(9,TestWin_NFC_NFD_Text); | |
34 TESTCASE(10,TestWin_NFC_NFC_Text); | |
35 TESTCASE(11,TestWin_NFC_Orig_Text); | |
36 | |
37 TESTCASE(12,TestWin_NFD_NFD_Text); | |
38 TESTCASE(13,TestWin_NFD_NFC_Text); | |
39 TESTCASE(14,TestWin_NFD_Orig_Text); | |
40 | |
41 TESTCASE(15,TestQC_NFC_NFD_Text); | |
42 TESTCASE(16,TestQC_NFC_NFC_Text); | |
43 TESTCASE(17,TestQC_NFC_Orig_Text); | |
44 | |
45 TESTCASE(18,TestQC_NFD_NFD_Text); | |
46 TESTCASE(19,TestQC_NFD_NFC_Text); | |
47 TESTCASE(20,TestQC_NFD_Orig_Text); | |
48 | |
49 TESTCASE(21,TestQC_FCD_NFD_Text); | |
50 TESTCASE(22,TestQC_FCD_NFC_Text); | |
51 TESTCASE(23,TestQC_FCD_Orig_Text); | |
52 | |
53 TESTCASE(24,TestIsNormalized_NFC_NFD_Text); | |
54 TESTCASE(25,TestIsNormalized_NFC_NFC_Text); | |
55 TESTCASE(26,TestIsNormalized_NFC_Orig_Text); | |
56 | |
57 TESTCASE(27,TestIsNormalized_NFD_NFD_Text); | |
58 TESTCASE(28,TestIsNormalized_NFD_NFC_Text); | |
59 TESTCASE(29,TestIsNormalized_NFD_Orig_Text); | |
60 | |
61 TESTCASE(30,TestIsNormalized_FCD_NFD_Text); | |
62 TESTCASE(31,TestIsNormalized_FCD_NFC_Text); | |
63 TESTCASE(32,TestIsNormalized_FCD_Orig_Text); | |
64 | |
65 default: | |
66 name = ""; | |
67 return NULL; | |
68 } | |
69 return NULL; | |
70 | |
71 } | |
72 | |
73 void NormalizerPerformanceTest::normalizeInput(ULine* dest,const UChar* src ,int
32_t srcLen,UNormalizationMode mode, int32_t options){ | |
74 int32_t reqLen = 0; | |
75 UErrorCode status = U_ZERO_ERROR; | |
76 for(;;){ | |
77 /* pure pre-flight */ | |
78 reqLen=unorm_normalize(src,srcLen,mode, options,NULL,0,&status); | |
79 if(status==U_BUFFER_OVERFLOW_ERROR){ | |
80 status=U_ZERO_ERROR; | |
81 dest->name = new UChar[reqLen+1]; | |
82 reqLen= unorm_normalize(src,srcLen,mode, options,dest->name,reqLen+1
,&status); | |
83 dest->len=reqLen; | |
84 break; | |
85 }else if(U_FAILURE(status)){ | |
86 printf("Could not normalize input. Error: %s", u_errorName(status)); | |
87 } | |
88 } | |
89 } | |
90 UChar* NormalizerPerformanceTest::normalizeInput(int32_t& len, const UChar* src
,int32_t srcLen,UNormalizationMode mode, int32_t options){ | |
91 int32_t reqLen = 0; | |
92 UErrorCode status = U_ZERO_ERROR; | |
93 UChar* dest = NULL; | |
94 for(;;){ | |
95 /* pure pre-flight */ | |
96 reqLen=unorm_normalize(src,srcLen,mode, options,NULL,0,&status); | |
97 if(status==U_BUFFER_OVERFLOW_ERROR){ | |
98 status=U_ZERO_ERROR; | |
99 dest = new UChar[reqLen+1]; | |
100 reqLen= unorm_normalize(src,srcLen,mode, options,dest,reqLen+1,&stat
us); | |
101 len=reqLen; | |
102 break; | |
103 }else if(U_FAILURE(status)){ | |
104 printf("Could not normalize input. Error: %s", u_errorName(status)); | |
105 return NULL; | |
106 } | |
107 } | |
108 return dest; | |
109 } | |
110 | |
111 static UOption cmdLineOptions[]={ | |
112 UOPTION_DEF("options", 'o', UOPT_OPTIONAL_ARG) | |
113 }; | |
114 | |
115 NormalizerPerformanceTest::NormalizerPerformanceTest(int32_t argc, const char* a
rgv[], UErrorCode& status) | |
116 : UPerfTest(argc,argv,status), options(0) { | |
117 NFDBuffer = NULL; | |
118 NFCBuffer = NULL; | |
119 NFDBufferLen = 0; | |
120 NFCBufferLen = 0; | |
121 NFDFileLines = NULL; | |
122 NFCFileLines = NULL; | |
123 | |
124 if(status== U_ILLEGAL_ARGUMENT_ERROR){ | |
125 fprintf(stderr,gUsageString, "normperf"); | |
126 return; | |
127 } | |
128 | |
129 if(U_FAILURE(status)){ | |
130 fprintf(stderr, "FAILED to create UPerfTest object. Error: %s\n", u_erro
rName(status)); | |
131 return; | |
132 } | |
133 | |
134 _remainingArgc = u_parseArgs(_remainingArgc, (char **)argv, (int32_t)(UPRV_L
ENGTHOF(cmdLineOptions)), cmdLineOptions); | |
135 if(cmdLineOptions[0].doesOccur && cmdLineOptions[0].value!=NULL) { | |
136 options=(int32_t)strtol(cmdLineOptions[0].value, NULL, 16); | |
137 } | |
138 | |
139 if(line_mode){ | |
140 ULine* filelines = getLines(status); | |
141 if(U_FAILURE(status)){ | |
142 fprintf(stderr, "FAILED to read lines from file and create UPerfTest
object. Error: %s\n", u_errorName(status)); | |
143 return; | |
144 } | |
145 NFDFileLines = new ULine[numLines]; | |
146 NFCFileLines = new ULine[numLines]; | |
147 | |
148 for(int32_t i=0;i<numLines;i++){ | |
149 normalizeInput(&NFDFileLines[i],filelines[i].name,filelines[i].len,U
NORM_NFD, options); | |
150 normalizeInput(&NFCFileLines[i],filelines[i].name,filelines[i].len,U
NORM_NFC, options); | |
151 | |
152 } | |
153 }else if(bulk_mode){ | |
154 int32_t srcLen = 0; | |
155 const UChar* src = getBuffer(srcLen,status); | |
156 NFDBufferLen = 0; | |
157 NFCBufferLen = 0; | |
158 | |
159 if(U_FAILURE(status)){ | |
160 fprintf(stderr, "FAILED to read buffer from file and create UPerfTes
t object. Error: %s\n", u_errorName(status)); | |
161 return; | |
162 } | |
163 | |
164 NFDBuffer = normalizeInput(NFDBufferLen,src,srcLen,UNORM_NFD, options); | |
165 NFCBuffer = normalizeInput(NFCBufferLen,src,srcLen,UNORM_NFC, options); | |
166 } | |
167 | |
168 } | |
169 | |
170 NormalizerPerformanceTest::~NormalizerPerformanceTest(){ | |
171 delete[] NFDFileLines; | |
172 delete[] NFCFileLines; | |
173 delete[] NFDBuffer; | |
174 delete[] NFCBuffer; | |
175 } | |
176 | |
177 // Test NFC Performance | |
178 UPerfFunction* NormalizerPerformanceTest::TestICU_NFC_NFD_Text(){ | |
179 if(line_mode){ | |
180 NormPerfFunction* func= new NormPerfFunction(ICUNormNFC, options,NFDFile
Lines,numLines, uselen); | |
181 return func; | |
182 }else{ | |
183 NormPerfFunction* func= new NormPerfFunction(ICUNormNFC, options,NFDBuff
er, NFDBufferLen, uselen); | |
184 return func; | |
185 } | |
186 } | |
187 UPerfFunction* NormalizerPerformanceTest::TestICU_NFC_NFC_Text(){ | |
188 if(line_mode){ | |
189 NormPerfFunction* func = new NormPerfFunction(ICUNormNFC, options,NFCFil
eLines,numLines, uselen); | |
190 return func; | |
191 }else{ | |
192 NormPerfFunction* func= new NormPerfFunction(ICUNormNFC, options,NFCBuff
er, NFCBufferLen, uselen); | |
193 return func; | |
194 } | |
195 } | |
196 UPerfFunction* NormalizerPerformanceTest::TestICU_NFC_Orig_Text(){ | |
197 if(line_mode){ | |
198 NormPerfFunction* func = new NormPerfFunction(ICUNormNFC, options,lines,
numLines, uselen); | |
199 return func; | |
200 }else{ | |
201 NormPerfFunction* func = new NormPerfFunction(ICUNormNFC, options,buffer
, bufferLen, uselen); | |
202 return func; | |
203 } | |
204 } | |
205 | |
206 // Test NFD Performance | |
207 UPerfFunction* NormalizerPerformanceTest::TestICU_NFD_NFD_Text(){ | |
208 if(line_mode){ | |
209 NormPerfFunction* func = new NormPerfFunction(ICUNormNFD, options,NFDFil
eLines,numLines, uselen); | |
210 return func; | |
211 }else{ | |
212 NormPerfFunction* func = new NormPerfFunction(ICUNormNFD, options,NFDBuf
fer,NFDBufferLen, uselen); | |
213 return func; | |
214 } | |
215 } | |
216 UPerfFunction* NormalizerPerformanceTest::TestICU_NFD_NFC_Text(){ | |
217 if(line_mode){ | |
218 NormPerfFunction* func = new NormPerfFunction(ICUNormNFD, options,NFCFil
eLines,numLines, uselen); | |
219 return func; | |
220 }else{ | |
221 NormPerfFunction* func = new NormPerfFunction(ICUNormNFD, options,NFCBuf
fer,NFCBufferLen, uselen); | |
222 return func; | |
223 } | |
224 } | |
225 UPerfFunction* NormalizerPerformanceTest::TestICU_NFD_Orig_Text(){ | |
226 if(line_mode){ | |
227 NormPerfFunction* func = new NormPerfFunction(ICUNormNFD, options,lines,
numLines, uselen); | |
228 return func; | |
229 }else{ | |
230 NormPerfFunction* func = new NormPerfFunction(ICUNormNFD, options,buffer
,bufferLen, uselen); | |
231 return func; | |
232 } | |
233 } | |
234 | |
235 // Test FCD Performance | |
236 UPerfFunction* NormalizerPerformanceTest::TestICU_FCD_NFD_Text(){ | |
237 if(line_mode){ | |
238 NormPerfFunction* func = new NormPerfFunction(ICUNormFCD, options,NFDFil
eLines,numLines, uselen); | |
239 return func; | |
240 }else{ | |
241 NormPerfFunction* func = new NormPerfFunction(ICUNormFCD, options,NFDBuf
fer,NFDBufferLen, uselen); | |
242 return func; | |
243 } | |
244 | |
245 } | |
246 UPerfFunction* NormalizerPerformanceTest::TestICU_FCD_NFC_Text(){ | |
247 if(line_mode){ | |
248 NormPerfFunction* func = new NormPerfFunction(ICUNormFCD, options,NFCFil
eLines,numLines, uselen); | |
249 return func; | |
250 }else{ | |
251 NormPerfFunction* func = new NormPerfFunction(ICUNormFCD, options,NFCBuf
fer,NFCBufferLen, uselen); | |
252 return func; | |
253 } | |
254 } | |
255 UPerfFunction* NormalizerPerformanceTest::TestICU_FCD_Orig_Text(){ | |
256 if(line_mode){ | |
257 NormPerfFunction* func = new NormPerfFunction(ICUNormFCD, options,lines,
numLines, uselen); | |
258 return func; | |
259 }else{ | |
260 NormPerfFunction* func = new NormPerfFunction(ICUNormFCD, options,buffer
,bufferLen, uselen); | |
261 return func; | |
262 } | |
263 } | |
264 | |
265 // Test Win NFC Performance | |
266 UPerfFunction* NormalizerPerformanceTest::TestWin_NFC_NFD_Text(){ | |
267 if(line_mode){ | |
268 NormPerfFunction* func = new NormPerfFunction(WinNormNFC, options,NFDFil
eLines,numLines, uselen); | |
269 return func; | |
270 }else{ | |
271 NormPerfFunction* func = new NormPerfFunction(WinNormNFC, options,NFDBuf
fer,NFDBufferLen, uselen); | |
272 return func; | |
273 } | |
274 } | |
275 UPerfFunction* NormalizerPerformanceTest::TestWin_NFC_NFC_Text(){ | |
276 if(line_mode){ | |
277 NormPerfFunction* func = new NormPerfFunction(WinNormNFC, options,NFCFil
eLines,numLines, uselen); | |
278 return func; | |
279 }else{ | |
280 NormPerfFunction* func = new NormPerfFunction(WinNormNFC, options,NFCBuf
fer,NFCBufferLen, uselen); | |
281 return func; | |
282 } | |
283 } | |
284 UPerfFunction* NormalizerPerformanceTest::TestWin_NFC_Orig_Text(){ | |
285 if(line_mode){ | |
286 NormPerfFunction* func = new NormPerfFunction(WinNormNFC, options,lines,
numLines, uselen); | |
287 return func; | |
288 }else{ | |
289 NormPerfFunction* func = new NormPerfFunction(WinNormNFC, options,buffer
,bufferLen, uselen); | |
290 return func; | |
291 } | |
292 } | |
293 | |
294 // Test Win NFD Performance | |
295 UPerfFunction* NormalizerPerformanceTest::TestWin_NFD_NFD_Text(){ | |
296 if(line_mode){ | |
297 NormPerfFunction* func = new NormPerfFunction(WinNormNFD, options,NFDFil
eLines,numLines, uselen); | |
298 return func; | |
299 }else{ | |
300 NormPerfFunction* func = new NormPerfFunction(WinNormNFD, options,NFDBuf
fer,NFDBufferLen, uselen); | |
301 return func; | |
302 } | |
303 } | |
304 UPerfFunction* NormalizerPerformanceTest::TestWin_NFD_NFC_Text(){ | |
305 if(line_mode){ | |
306 NormPerfFunction* func = new NormPerfFunction(WinNormNFD, options,NFCFil
eLines,numLines, uselen); | |
307 return func; | |
308 }else{ | |
309 NormPerfFunction* func = new NormPerfFunction(WinNormNFD, options,NFCBuf
fer,NFCBufferLen, uselen); | |
310 return func; | |
311 } | |
312 } | |
313 UPerfFunction* NormalizerPerformanceTest::TestWin_NFD_Orig_Text(){ | |
314 if(line_mode){ | |
315 NormPerfFunction* func = new NormPerfFunction(WinNormNFD, options,lines,
numLines, uselen); | |
316 return func; | |
317 }else{ | |
318 NormPerfFunction* func = new NormPerfFunction(WinNormNFD, options,buffer
,bufferLen, uselen); | |
319 return func; | |
320 } | |
321 } | |
322 | |
323 // Test Quick Check Performance | |
324 UPerfFunction* NormalizerPerformanceTest::TestQC_NFC_NFD_Text(){ | |
325 if(line_mode){ | |
326 QuickCheckPerfFunction* func = new QuickCheckPerfFunction(ICUQuickCheck,
NFDFileLines, numLines, UNORM_NFC, options,uselen); | |
327 return func; | |
328 }else{ | |
329 QuickCheckPerfFunction* func = new QuickCheckPerfFunction(ICUQuickCheck,
NFDBuffer, NFDBufferLen, UNORM_NFC, options,uselen); | |
330 return func; | |
331 } | |
332 } | |
333 UPerfFunction* NormalizerPerformanceTest::TestQC_NFC_NFC_Text(){ | |
334 if(line_mode){ | |
335 QuickCheckPerfFunction* func = new QuickCheckPerfFunction(ICUQuickCheck,
NFCFileLines, numLines, UNORM_NFC, options,uselen); | |
336 return func; | |
337 }else{ | |
338 QuickCheckPerfFunction* func = new QuickCheckPerfFunction(ICUQuickCheck,
NFCBuffer, NFCBufferLen, UNORM_NFC, options,uselen); | |
339 return func; | |
340 } | |
341 } | |
342 UPerfFunction* NormalizerPerformanceTest::TestQC_NFC_Orig_Text(){ | |
343 if(line_mode){ | |
344 QuickCheckPerfFunction* func = new QuickCheckPerfFunction(ICUQuickCheck,
lines, numLines, UNORM_NFC, options,uselen); | |
345 return func; | |
346 }else{ | |
347 QuickCheckPerfFunction* func = new QuickCheckPerfFunction(ICUQuickCheck,
buffer, bufferLen, UNORM_NFC, options,uselen); | |
348 return func; | |
349 } | |
350 } | |
351 | |
352 UPerfFunction* NormalizerPerformanceTest::TestQC_NFD_NFD_Text(){ | |
353 if(line_mode){ | |
354 QuickCheckPerfFunction* func = new QuickCheckPerfFunction(ICUQuickCheck,
NFDFileLines, numLines, UNORM_NFD, options,uselen); | |
355 return func; | |
356 }else{ | |
357 QuickCheckPerfFunction* func = new QuickCheckPerfFunction(ICUQuickCheck,
NFDBuffer, NFDBufferLen, UNORM_NFD, options,uselen); | |
358 return func; | |
359 } | |
360 } | |
361 UPerfFunction* NormalizerPerformanceTest::TestQC_NFD_NFC_Text(){ | |
362 if(line_mode){ | |
363 QuickCheckPerfFunction* func = new QuickCheckPerfFunction(ICUQuickCheck,
NFCFileLines, numLines, UNORM_NFD, options,uselen); | |
364 return func; | |
365 }else{ | |
366 QuickCheckPerfFunction* func = new QuickCheckPerfFunction(ICUQuickCheck,
NFCBuffer, NFCBufferLen, UNORM_NFD, options,uselen); | |
367 return func; | |
368 } | |
369 } | |
370 UPerfFunction* NormalizerPerformanceTest::TestQC_NFD_Orig_Text(){ | |
371 if(line_mode){ | |
372 QuickCheckPerfFunction* func = new QuickCheckPerfFunction(ICUQuickCheck,
lines, numLines, UNORM_NFD, options,uselen); | |
373 return func; | |
374 }else{ | |
375 QuickCheckPerfFunction* func = new QuickCheckPerfFunction(ICUQuickCheck,
buffer, bufferLen, UNORM_NFD, options,uselen); | |
376 return func; | |
377 } | |
378 } | |
379 | |
380 UPerfFunction* NormalizerPerformanceTest::TestQC_FCD_NFD_Text(){ | |
381 if(line_mode){ | |
382 QuickCheckPerfFunction* func = new QuickCheckPerfFunction(ICUQuickCheck,
NFDFileLines, numLines, UNORM_FCD, options,uselen); | |
383 return func; | |
384 }else{ | |
385 QuickCheckPerfFunction* func = new QuickCheckPerfFunction(ICUQuickCheck,
NFDBuffer, NFDBufferLen, UNORM_FCD, options,uselen); | |
386 return func; | |
387 } | |
388 } | |
389 UPerfFunction* NormalizerPerformanceTest::TestQC_FCD_NFC_Text(){ | |
390 if(line_mode){ | |
391 QuickCheckPerfFunction* func = new QuickCheckPerfFunction(ICUQuickCheck,
NFCFileLines, numLines, UNORM_FCD, options,uselen); | |
392 return func; | |
393 }else{ | |
394 QuickCheckPerfFunction* func = new QuickCheckPerfFunction(ICUQuickCheck,
NFCBuffer, NFCBufferLen, UNORM_FCD, options,uselen); | |
395 return func; | |
396 } | |
397 } | |
398 UPerfFunction* NormalizerPerformanceTest::TestQC_FCD_Orig_Text(){ | |
399 if(line_mode){ | |
400 QuickCheckPerfFunction* func = new QuickCheckPerfFunction(ICUQuickCheck,
lines, numLines, UNORM_FCD, options,uselen); | |
401 return func; | |
402 }else{ | |
403 QuickCheckPerfFunction* func = new QuickCheckPerfFunction(ICUQuickCheck,
buffer, bufferLen, UNORM_FCD, options,uselen); | |
404 return func; | |
405 } | |
406 } | |
407 | |
408 // Test isNormalized Performance | |
409 UPerfFunction* NormalizerPerformanceTest::TestIsNormalized_NFC_NFD_Text(){ | |
410 if(line_mode){ | |
411 QuickCheckPerfFunction* func = new QuickCheckPerfFunction(ICUIsNormalize
d,NFDFileLines, numLines, UNORM_NFC, options,uselen); | |
412 return func; | |
413 }else{ | |
414 QuickCheckPerfFunction* func = new QuickCheckPerfFunction(ICUIsNormalize
d,NFDBuffer, NFDBufferLen, UNORM_NFC, options,uselen); | |
415 return func; | |
416 } | |
417 } | |
418 UPerfFunction* NormalizerPerformanceTest::TestIsNormalized_NFC_NFC_Text(){ | |
419 if(line_mode){ | |
420 QuickCheckPerfFunction* func = new QuickCheckPerfFunction(ICUIsNormalize
d,NFCFileLines, numLines, UNORM_NFC, options,uselen); | |
421 return func; | |
422 }else{ | |
423 QuickCheckPerfFunction* func = new QuickCheckPerfFunction(ICUIsNormalize
d,NFCBuffer, NFCBufferLen, UNORM_NFC, options,uselen); | |
424 return func; | |
425 } | |
426 } | |
427 UPerfFunction* NormalizerPerformanceTest::TestIsNormalized_NFC_Orig_Text(){ | |
428 if(line_mode){ | |
429 QuickCheckPerfFunction* func = new QuickCheckPerfFunction(ICUIsNormalize
d,lines, numLines, UNORM_NFC, options,uselen); | |
430 return func; | |
431 }else{ | |
432 QuickCheckPerfFunction* func = new QuickCheckPerfFunction(ICUIsNormalize
d,buffer, bufferLen, UNORM_NFC, options,uselen); | |
433 return func; | |
434 } | |
435 } | |
436 | |
437 UPerfFunction* NormalizerPerformanceTest::TestIsNormalized_NFD_NFD_Text(){ | |
438 if(line_mode){ | |
439 QuickCheckPerfFunction* func = new QuickCheckPerfFunction(ICUIsNormalize
d,NFDFileLines, numLines, UNORM_NFD, options,uselen); | |
440 return func; | |
441 }else{ | |
442 QuickCheckPerfFunction* func = new QuickCheckPerfFunction(ICUIsNormalize
d,NFDBuffer, NFDBufferLen, UNORM_NFD, options,uselen); | |
443 return func; | |
444 } | |
445 } | |
446 UPerfFunction* NormalizerPerformanceTest::TestIsNormalized_NFD_NFC_Text(){ | |
447 if(line_mode){ | |
448 QuickCheckPerfFunction* func = new QuickCheckPerfFunction(ICUIsNormalize
d,NFCFileLines, numLines, UNORM_NFD, options,uselen); | |
449 return func; | |
450 }else{ | |
451 QuickCheckPerfFunction* func = new QuickCheckPerfFunction(ICUIsNormalize
d,NFCBuffer, NFCBufferLen, UNORM_NFD, options,uselen); | |
452 return func; | |
453 } | |
454 } | |
455 UPerfFunction* NormalizerPerformanceTest::TestIsNormalized_NFD_Orig_Text(){ | |
456 if(line_mode){ | |
457 QuickCheckPerfFunction* func = new QuickCheckPerfFunction(ICUIsNormalize
d,lines, numLines, UNORM_NFD, options,uselen); | |
458 return func; | |
459 }else{ | |
460 QuickCheckPerfFunction* func = new QuickCheckPerfFunction(ICUIsNormalize
d,buffer, bufferLen, UNORM_NFD, options,uselen); | |
461 return func; | |
462 } | |
463 } | |
464 | |
465 UPerfFunction* NormalizerPerformanceTest::TestIsNormalized_FCD_NFD_Text(){ | |
466 if(line_mode){ | |
467 QuickCheckPerfFunction* func = new QuickCheckPerfFunction(ICUIsNormalize
d,NFDFileLines, numLines, UNORM_FCD, options,uselen); | |
468 return func; | |
469 }else{ | |
470 QuickCheckPerfFunction* func = new QuickCheckPerfFunction(ICUIsNormalize
d,NFDBuffer, NFDBufferLen, UNORM_FCD, options,uselen); | |
471 return func; | |
472 } | |
473 } | |
474 UPerfFunction* NormalizerPerformanceTest::TestIsNormalized_FCD_NFC_Text(){ | |
475 if(line_mode){ | |
476 QuickCheckPerfFunction* func = new QuickCheckPerfFunction(ICUIsNormalize
d,NFCFileLines, numLines, UNORM_FCD, options,uselen); | |
477 return func; | |
478 }else{ | |
479 QuickCheckPerfFunction* func = new QuickCheckPerfFunction(ICUIsNormalize
d,NFCBuffer, NFCBufferLen, UNORM_FCD, options,uselen); | |
480 return func; | |
481 } | |
482 } | |
483 UPerfFunction* NormalizerPerformanceTest::TestIsNormalized_FCD_Orig_Text(){ | |
484 if(line_mode){ | |
485 QuickCheckPerfFunction* func = new QuickCheckPerfFunction(ICUIsNormalize
d,lines, numLines, UNORM_FCD, options,uselen); | |
486 return func; | |
487 }else{ | |
488 QuickCheckPerfFunction* func = new QuickCheckPerfFunction(ICUIsNormalize
d,buffer, bufferLen, UNORM_FCD, options,uselen); | |
489 return func; | |
490 } | |
491 } | |
492 | |
493 int main(int argc, const char* argv[]){ | |
494 UErrorCode status = U_ZERO_ERROR; | |
495 NormalizerPerformanceTest test(argc, argv, status); | |
496 if(U_FAILURE(status)){ | |
497 return status; | |
498 } | |
499 if(test.run()==FALSE){ | |
500 fprintf(stderr,"FAILED: Tests could not be run please check the argument
s.\n"); | |
501 return -1; | |
502 } | |
503 return 0; | |
504 } | |
OLD | NEW |