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