]> gitweb.fperrin.net Git - Dictionary.git/blob - jars/icu4j-4_2_1-src/src/com/ibm/icu/dev/test/perf/UCharacterPerf.java
icu4jsrc
[Dictionary.git] / jars / icu4j-4_2_1-src / src / com / ibm / icu / dev / test / perf / UCharacterPerf.java
1 /**\r
2  *******************************************************************************\r
3  * Copyright (C) 2001-2004, International Business Machines Corporation and    *\r
4  * others. All Rights Reserved.                                                *\r
5  *******************************************************************************\r
6  */\r
7 \r
8 package com.ibm.icu.dev.test.perf;\r
9 \r
10 import com.ibm.icu.lang.UCharacter;\r
11 \r
12 /**\r
13  * Base performance test that takes in a method name for testing with JDK.\r
14  * To use \r
15  * <code>\r
16  * java com.ibm.icu.dev.test.perf.UCharacterPerf $MethodName $LoopCount - \r
17  *                                  $START_TEST_CHARACTER $END_TEST_CHARACTER\r
18  * </code>\r
19  * where $*_TEST_CHARACTER are in hex decimals with a leading 0x\r
20  */\r
21 public final class UCharacterPerf extends PerfTest \r
22 {\r
23     // public methods ------------------------------------------------------\r
24     \r
25     public static void main(String[] args) throws Exception\r
26     {   \r
27         new UCharacterPerf().run(args);\r
28         // new UCharacterPerf().TestPerformance();\r
29     }\r
30     \r
31     protected void setup(String[] args) {\r
32         // We only take one argument, the pattern\r
33         MIN_ = Character.MIN_VALUE;\r
34         MAX_ = Character.MAX_VALUE;\r
35         if (args.length >= 1) {\r
36             MIN_ = Integer.parseInt(args[0], 16);\r
37         }\r
38         if (args.length >= 2) {\r
39             MAX_ = Integer.parseInt(args[1], 16);\r
40         }\r
41     }\r
42     \r
43     PerfTest.Function testDigit() \r
44     {\r
45         return new PerfTest.Function() {\r
46             public void call() {\r
47                 for (int ch = MIN_; ch < MAX_; ch ++) {\r
48                     UCharacter.digit(ch, 10);\r
49                 }\r
50             }\r
51 \r
52             public long getOperationsPerIteration() {\r
53                 return MAX_ - MIN_ + 1;\r
54             }\r
55         };\r
56     }\r
57     \r
58     PerfTest.Function testJDKDigit() \r
59     {\r
60         return new PerfTest.Function() {\r
61             public void call() {\r
62                 for (char ch = (char)MIN_; ch < (char)MAX_; ch ++) {\r
63                     Character.digit(ch, 10);\r
64                 }\r
65             }\r
66 \r
67             public long getOperationsPerIteration() {\r
68                 return MAX_ - MIN_ + 1;\r
69             }\r
70         };\r
71     }\r
72     \r
73     PerfTest.Function testGetNumericValue() \r
74     {\r
75         return new PerfTest.Function() {\r
76             public void call() {\r
77                 for (int ch = MIN_; ch < MAX_; ch ++) {\r
78                     UCharacter.getNumericValue(ch);\r
79                 }\r
80             }\r
81 \r
82             public long getOperationsPerIteration() {\r
83                 return MAX_ - MIN_ + 1;\r
84             }\r
85         };\r
86     }\r
87 \r
88     PerfTest.Function testJDKGetNumericValue() \r
89     {\r
90         return new PerfTest.Function() {\r
91             public void call() {\r
92                 for (char ch = (char)MIN_; ch < (char)MAX_; ch ++) {\r
93                     Character.getNumericValue(ch);\r
94                 }\r
95             }\r
96 \r
97             public long getOperationsPerIteration() {\r
98                 return MAX_ - MIN_ + 1;\r
99             }\r
100         };\r
101     }\r
102      \r
103     PerfTest.Function testGetType() \r
104     {\r
105         return new PerfTest.Function() {\r
106             public void call() {\r
107                 for (int ch = MIN_; ch < MAX_; ch ++) {\r
108                     UCharacter.getType(ch);\r
109                 }\r
110             }\r
111 \r
112             public long getOperationsPerIteration() {\r
113                 return MAX_ - MIN_ + 1;\r
114             }\r
115         };\r
116     }   \r
117 \r
118     PerfTest.Function testJDKGetType() \r
119     {\r
120         return new PerfTest.Function() {\r
121             public void call() {\r
122                 for (char ch = (char)MIN_; ch < (char)MAX_; ch ++) {\r
123                     Character.getType(ch);\r
124                 }\r
125             }\r
126 \r
127             public long getOperationsPerIteration() {\r
128                 return MAX_ - MIN_ + 1;\r
129             }\r
130         };\r
131     }\r
132 \r
133     PerfTest.Function testIsDefined() \r
134     {\r
135         return new PerfTest.Function() {\r
136             public void call() {\r
137                 for (int ch = MIN_; ch < MAX_; ch ++) {\r
138                     UCharacter.isDefined(ch);\r
139                 }\r
140             }\r
141 \r
142             public long getOperationsPerIteration() {\r
143                 return MAX_ - MIN_ + 1;\r
144             }\r
145         };\r
146     }    \r
147     \r
148     PerfTest.Function testJDKIsDefined() \r
149     {\r
150         return new PerfTest.Function() {\r
151             public void call() {\r
152                 for (char ch = (char)MIN_; ch < (char)MAX_; ch ++) {\r
153                     Character.isDefined(ch);\r
154                 }\r
155             }\r
156 \r
157             public long getOperationsPerIteration() {\r
158                 return MAX_ - MIN_ + 1;\r
159             }\r
160         };\r
161     }    \r
162 \r
163     PerfTest.Function testIsDigit() \r
164     {\r
165         return new PerfTest.Function() {\r
166             public void call() {\r
167                 for (int ch = MIN_; ch < MAX_; ch ++) {\r
168                     UCharacter.isDigit(ch);\r
169                 }\r
170             }\r
171 \r
172             public long getOperationsPerIteration() {\r
173                 return MAX_ - MIN_ + 1;\r
174             }\r
175         };\r
176     }    \r
177     \r
178     PerfTest.Function testJDKIsDigit() \r
179     {\r
180         return new PerfTest.Function() {\r
181             public void call() {\r
182                 for (char ch = (char)MIN_; ch < (char)MAX_; ch ++) {\r
183                     Character.isDigit(ch);\r
184                 }\r
185             }\r
186 \r
187             public long getOperationsPerIteration() {\r
188                 return MAX_ - MIN_ + 1;\r
189             }\r
190         };\r
191     }\r
192     \r
193     PerfTest.Function testIsIdentifierIgnorable() \r
194     {\r
195         return new PerfTest.Function() {\r
196             public void call() {\r
197                 for (int ch = MIN_; ch < MAX_; ch ++) {\r
198                     UCharacter.isIdentifierIgnorable(ch);\r
199                 }\r
200             }\r
201 \r
202             public long getOperationsPerIteration() {\r
203                 return MAX_ - MIN_ + 1;\r
204             }\r
205         };\r
206     }    \r
207     \r
208     PerfTest.Function testJDKIsIdentifierIgnorable() \r
209     {\r
210         return new PerfTest.Function() {\r
211             public void call() {\r
212                 for (char ch = (char)MIN_; ch < (char)MAX_; ch ++) {\r
213                     Character.isIdentifierIgnorable(ch);\r
214                 }\r
215             }\r
216 \r
217             public long getOperationsPerIteration() {\r
218                 return MAX_ - MIN_ + 1;\r
219             }\r
220         };\r
221     }\r
222     \r
223     PerfTest.Function testIsISOControl() \r
224     {\r
225         return new PerfTest.Function() {\r
226             public void call() {\r
227                 for (int ch = MIN_; ch < MAX_; ch ++) {\r
228                     UCharacter.isISOControl(ch);\r
229                 }\r
230             }\r
231 \r
232             public long getOperationsPerIteration() {\r
233                 return MAX_ - MIN_ + 1;\r
234             }\r
235         };\r
236     }\r
237     \r
238     PerfTest.Function testJDKIsISOControl() \r
239     {\r
240         return new PerfTest.Function() {\r
241             public void call() {\r
242                 for (char ch = (char)MIN_; ch < (char)MAX_; ch ++) {\r
243                     Character.isISOControl(ch);\r
244                 }\r
245             }\r
246 \r
247             public long getOperationsPerIteration() {\r
248                 return MAX_ - MIN_ + 1;\r
249             }\r
250         };\r
251     }\r
252     \r
253     PerfTest.Function testIsLetter() \r
254     {\r
255         return new PerfTest.Function() {\r
256             public void call() {\r
257                 for (int ch = MIN_; ch < MAX_; ch ++) {\r
258                     UCharacter.isLetter(ch);\r
259                 }\r
260             }\r
261 \r
262             public long getOperationsPerIteration() {\r
263                 return MAX_ - MIN_ + 1;\r
264             }\r
265         };\r
266     }\r
267     \r
268     PerfTest.Function testJDKIsLetter() \r
269     {\r
270         return new PerfTest.Function() {\r
271             public void call() {\r
272                 for (char ch = (char)MIN_; ch < (char)MAX_; ch ++) {\r
273                     Character.isLetter(ch);\r
274                 }\r
275             }\r
276 \r
277             public long getOperationsPerIteration() {\r
278                 return MAX_ - MIN_ + 1;\r
279             }\r
280         };\r
281     }\r
282     \r
283     PerfTest.Function testIsLetterOrDigit() \r
284     {\r
285         return new PerfTest.Function() {\r
286             public void call() {\r
287                 for (int ch = MIN_; ch < MAX_; ch ++) {\r
288                     UCharacter.isLetterOrDigit(ch);\r
289                 }\r
290             }\r
291 \r
292             public long getOperationsPerIteration() {\r
293                 return MAX_ - MIN_ + 1;\r
294             }\r
295         };\r
296     }\r
297     \r
298     PerfTest.Function testJDKIsLetterOrDigit() \r
299     {\r
300         return new PerfTest.Function() {\r
301             public void call() {\r
302                 for (char ch = (char)MIN_; ch < (char)MAX_; ch ++) {\r
303                     Character.isLetterOrDigit(ch);\r
304                 }\r
305             }\r
306 \r
307             public long getOperationsPerIteration() {\r
308                 return MAX_ - MIN_ + 1;\r
309             }\r
310         };\r
311     }\r
312 \r
313     PerfTest.Function testIsLowerCase() \r
314     {\r
315         return new PerfTest.Function() {\r
316             public void call() {\r
317                 for (int ch = MIN_; ch < MAX_; ch ++) {\r
318                     UCharacter.isLowerCase(ch);\r
319                 }\r
320             }\r
321 \r
322             public long getOperationsPerIteration() {\r
323                 return MAX_ - MIN_ + 1;\r
324             }\r
325         };\r
326     }    \r
327     \r
328     PerfTest.Function testJDKIsLowerCase() \r
329     {\r
330         return new PerfTest.Function() {\r
331             public void call() {\r
332                 for (char ch = (char)MIN_; ch < (char)MAX_; ch ++) {\r
333                     Character.isLowerCase(ch);\r
334                 }\r
335             }\r
336 \r
337             public long getOperationsPerIteration() {\r
338                 return MAX_ - MIN_ + 1;\r
339             }\r
340         };\r
341     }    \r
342     \r
343     PerfTest.Function testIsSpaceChar() \r
344     {\r
345         return new PerfTest.Function() {\r
346             public void call() {\r
347                 for (int ch = MIN_; ch < MAX_; ch ++) {\r
348                     UCharacter.isSpaceChar(ch);\r
349                 }\r
350             }\r
351 \r
352             public long getOperationsPerIteration() {\r
353                 return MAX_ - MIN_ + 1;\r
354             }\r
355         };\r
356     } \r
357     \r
358     PerfTest.Function testJDKIsSpaceChar() \r
359     {\r
360         return new PerfTest.Function() {\r
361             public void call() {\r
362                 for (char ch = (char)MIN_; ch < (char)MAX_; ch ++) {\r
363                     Character.isSpaceChar(ch);\r
364                 }\r
365             }\r
366 \r
367             public long getOperationsPerIteration() {\r
368                 return MAX_ - MIN_ + 1;\r
369             }\r
370         };\r
371     }  \r
372     \r
373     PerfTest.Function testIsTitleCase() \r
374     {\r
375         return new PerfTest.Function() {\r
376             public void call() {\r
377                 for (int ch = MIN_; ch < MAX_; ch ++) {\r
378                     UCharacter.isTitleCase(ch);\r
379                 }\r
380             }\r
381 \r
382             public long getOperationsPerIteration() {\r
383                 return MAX_ - MIN_ + 1;\r
384             }\r
385         };\r
386     }\r
387     \r
388     PerfTest.Function testJDKIsTitleCase() \r
389     {\r
390         return new PerfTest.Function() {\r
391             public void call() {\r
392                 for (char ch = (char)MIN_; ch < (char)MAX_; ch ++) {\r
393                     Character.isTitleCase(ch);\r
394                 }\r
395             }\r
396 \r
397             public long getOperationsPerIteration() {\r
398                 return MAX_ - MIN_ + 1;\r
399             }\r
400         };\r
401     }    \r
402     \r
403     PerfTest.Function testIsUnicodeIdentifierPart() \r
404     {\r
405         return new PerfTest.Function() {\r
406             public void call() {\r
407                 for (int ch = MIN_; ch < MAX_; ch ++) {\r
408                     UCharacter.isUnicodeIdentifierPart(ch);\r
409                 }\r
410             }\r
411 \r
412             public long getOperationsPerIteration() {\r
413                 return MAX_ - MIN_ + 1;\r
414             }\r
415         };\r
416     } \r
417     \r
418     PerfTest.Function testJDKIsUnicodeIdentifierPart() \r
419     {\r
420         return new PerfTest.Function() {\r
421             public void call() {\r
422                 for (char ch = (char)MIN_; ch < (char)MAX_; ch ++) {\r
423                     Character.isUnicodeIdentifierPart(ch);\r
424                 }\r
425             }\r
426 \r
427             public long getOperationsPerIteration() {\r
428                 return MAX_ - MIN_ + 1;\r
429             }\r
430         };\r
431     } \r
432     \r
433     PerfTest.Function testIsUnicodeIdentifierStart() \r
434     {\r
435         return new PerfTest.Function() {\r
436             public void call() {\r
437                 for (int ch = MIN_; ch < MAX_; ch ++) {\r
438                     UCharacter.isUnicodeIdentifierStart(ch);\r
439                 }\r
440             }\r
441 \r
442             public long getOperationsPerIteration() {\r
443                 return MAX_ - MIN_ + 1;\r
444             }\r
445         };\r
446     } \r
447     \r
448     PerfTest.Function testJDKIsUnicodeIdentifierStart() \r
449     {\r
450         return new PerfTest.Function() {\r
451             public void call() {\r
452                 for (char ch = (char)MIN_; ch < (char)MAX_; ch ++) {\r
453                     Character.isUnicodeIdentifierStart(ch);\r
454                 }\r
455             }\r
456 \r
457             public long getOperationsPerIteration() {\r
458                 return MAX_ - MIN_ + 1;\r
459             }\r
460         };\r
461     } \r
462     \r
463     PerfTest.Function testIsUpperCase() \r
464     {\r
465         return new PerfTest.Function() {\r
466             public void call() {\r
467                 for (char ch = (char)MIN_; ch < (char)MAX_; ch ++) {\r
468                     UCharacter.isUpperCase(ch);\r
469                 }\r
470             }\r
471 \r
472             public long getOperationsPerIteration() {\r
473                 return MAX_ - MIN_ + 1;\r
474             }\r
475         };\r
476     }\r
477     \r
478     PerfTest.Function testJDKIsUpperCase() \r
479     {\r
480         return new PerfTest.Function() {\r
481             public void call() {\r
482                 for (char ch = (char)MIN_; ch < (char)MAX_; ch ++) {\r
483                     Character.isUpperCase(ch);\r
484                 }\r
485             }\r
486 \r
487             public long getOperationsPerIteration() {\r
488                 return MAX_ - MIN_ + 1;\r
489             }\r
490         };\r
491     }    \r
492          \r
493     PerfTest.Function testIsWhiteSpace() \r
494     {\r
495         return new PerfTest.Function() {\r
496             public void call() {\r
497                 for (int ch = MIN_; ch < MAX_; ch ++) {\r
498                     UCharacter.isWhitespace(ch);\r
499                 }\r
500             }\r
501 \r
502             public long getOperationsPerIteration() {\r
503                 return MAX_ - MIN_ + 1;\r
504             }\r
505         };\r
506     }\r
507     \r
508     PerfTest.Function testJDKIsWhiteSpace() \r
509     {\r
510         return new PerfTest.Function() {\r
511             public void call() {\r
512                 for (char ch = (char)MIN_; ch < (char)MAX_; ch ++) {\r
513                     Character.isWhitespace(ch);\r
514                 }\r
515             }\r
516 \r
517             public long getOperationsPerIteration() {\r
518                 return MAX_ - MIN_ + 1;\r
519             }\r
520         };\r
521     }\r
522     \r
523     // private data member --------------------------------------------------\r
524     \r
525     /**\r
526      * Minimum codepoint to do test. Test is ran from MIN_ to MAX_\r
527      */\r
528     private static int MIN_;\r
529     /**\r
530      * Minimum codepoint to do test. Test is ran from MIN_ to MAX_\r
531      */\r
532     private static int MAX_;\r
533 }\r