]> git.proxmox.com Git - mirror_edk2.git/blame - AppPkg/Applications/Python/Python-2.7.2/Tools/pybench/Unicode.py
EmbeddedPkg: Extend NvVarStoreFormattedLib LIBRARY_CLASS
[mirror_edk2.git] / AppPkg / Applications / Python / Python-2.7.2 / Tools / pybench / Unicode.py
CommitLineData
4710c53d 1try:\r
2 unicode\r
3except NameError:\r
4 raise ImportError\r
5\r
6from pybench import Test\r
7from string import join\r
8\r
9class ConcatUnicode(Test):\r
10\r
11 version = 2.0\r
12 operations = 10 * 5\r
13 rounds = 60000\r
14\r
15 def test(self):\r
16\r
17 # Make sure the strings are *not* interned\r
18 s = unicode(join(map(str,range(100))))\r
19 t = unicode(join(map(str,range(1,101))))\r
20\r
21 for i in xrange(self.rounds):\r
22 t + s\r
23 t + s\r
24 t + s\r
25 t + s\r
26 t + s\r
27\r
28 t + s\r
29 t + s\r
30 t + s\r
31 t + s\r
32 t + s\r
33\r
34 t + s\r
35 t + s\r
36 t + s\r
37 t + s\r
38 t + s\r
39\r
40 t + s\r
41 t + s\r
42 t + s\r
43 t + s\r
44 t + s\r
45\r
46 t + s\r
47 t + s\r
48 t + s\r
49 t + s\r
50 t + s\r
51\r
52 t + s\r
53 t + s\r
54 t + s\r
55 t + s\r
56 t + s\r
57\r
58 t + s\r
59 t + s\r
60 t + s\r
61 t + s\r
62 t + s\r
63\r
64 t + s\r
65 t + s\r
66 t + s\r
67 t + s\r
68 t + s\r
69\r
70 t + s\r
71 t + s\r
72 t + s\r
73 t + s\r
74 t + s\r
75\r
76 t + s\r
77 t + s\r
78 t + s\r
79 t + s\r
80 t + s\r
81\r
82 def calibrate(self):\r
83\r
84 s = unicode(join(map(str,range(100))))\r
85 t = unicode(join(map(str,range(1,101))))\r
86\r
87 for i in xrange(self.rounds):\r
88 pass\r
89\r
90\r
91class CompareUnicode(Test):\r
92\r
93 version = 2.0\r
94 operations = 10 * 5\r
95 rounds = 150000\r
96\r
97 def test(self):\r
98\r
99 # Make sure the strings are *not* interned\r
100 s = unicode(join(map(str,range(10))))\r
101 t = unicode(join(map(str,range(10))) + "abc")\r
102\r
103 for i in xrange(self.rounds):\r
104 t < s\r
105 t > s\r
106 t == s\r
107 t > s\r
108 t < s\r
109\r
110 t < s\r
111 t > s\r
112 t == s\r
113 t > s\r
114 t < s\r
115\r
116 t < s\r
117 t > s\r
118 t == s\r
119 t > s\r
120 t < s\r
121\r
122 t < s\r
123 t > s\r
124 t == s\r
125 t > s\r
126 t < s\r
127\r
128 t < s\r
129 t > s\r
130 t == s\r
131 t > s\r
132 t < s\r
133\r
134 t < s\r
135 t > s\r
136 t == s\r
137 t > s\r
138 t < s\r
139\r
140 t < s\r
141 t > s\r
142 t == s\r
143 t > s\r
144 t < s\r
145\r
146 t < s\r
147 t > s\r
148 t == s\r
149 t > s\r
150 t < s\r
151\r
152 t < s\r
153 t > s\r
154 t == s\r
155 t > s\r
156 t < s\r
157\r
158 t < s\r
159 t > s\r
160 t == s\r
161 t > s\r
162 t < s\r
163\r
164 def calibrate(self):\r
165\r
166 s = unicode(join(map(str,range(10))))\r
167 t = unicode(join(map(str,range(10))) + "abc")\r
168\r
169 for i in xrange(self.rounds):\r
170 pass\r
171\r
172\r
173class CreateUnicodeWithConcat(Test):\r
174\r
175 version = 2.0\r
176 operations = 10 * 5\r
177 rounds = 80000\r
178\r
179 def test(self):\r
180\r
181 for i in xrange(self.rounds):\r
182 s = u'om'\r
183 s = s + u'xbx'\r
184 s = s + u'xcx'\r
185 s = s + u'xdx'\r
186 s = s + u'xex'\r
187\r
188 s = s + u'xax'\r
189 s = s + u'xbx'\r
190 s = s + u'xcx'\r
191 s = s + u'xdx'\r
192 s = s + u'xex'\r
193\r
194 s = s + u'xax'\r
195 s = s + u'xbx'\r
196 s = s + u'xcx'\r
197 s = s + u'xdx'\r
198 s = s + u'xex'\r
199\r
200 s = s + u'xax'\r
201 s = s + u'xbx'\r
202 s = s + u'xcx'\r
203 s = s + u'xdx'\r
204 s = s + u'xex'\r
205\r
206 s = s + u'xax'\r
207 s = s + u'xbx'\r
208 s = s + u'xcx'\r
209 s = s + u'xdx'\r
210 s = s + u'xex'\r
211\r
212 s = s + u'xax'\r
213 s = s + u'xbx'\r
214 s = s + u'xcx'\r
215 s = s + u'xdx'\r
216 s = s + u'xex'\r
217\r
218 s = s + u'xax'\r
219 s = s + u'xbx'\r
220 s = s + u'xcx'\r
221 s = s + u'xdx'\r
222 s = s + u'xex'\r
223\r
224 s = s + u'xax'\r
225 s = s + u'xbx'\r
226 s = s + u'xcx'\r
227 s = s + u'xdx'\r
228 s = s + u'xex'\r
229\r
230 s = s + u'xax'\r
231 s = s + u'xbx'\r
232 s = s + u'xcx'\r
233 s = s + u'xdx'\r
234 s = s + u'xex'\r
235\r
236 s = s + u'xax'\r
237 s = s + u'xbx'\r
238 s = s + u'xcx'\r
239 s = s + u'xdx'\r
240 s = s + u'xex'\r
241\r
242 def calibrate(self):\r
243\r
244 for i in xrange(self.rounds):\r
245 pass\r
246\r
247\r
248class UnicodeSlicing(Test):\r
249\r
250 version = 2.0\r
251 operations = 5 * 7\r
252 rounds = 140000\r
253\r
254 def test(self):\r
255\r
256 s = unicode(join(map(str,range(100))))\r
257\r
258 for i in xrange(self.rounds):\r
259\r
260 s[50:]\r
261 s[:25]\r
262 s[50:55]\r
263 s[-1:]\r
264 s[:1]\r
265 s[2:]\r
266 s[11:-11]\r
267\r
268 s[50:]\r
269 s[:25]\r
270 s[50:55]\r
271 s[-1:]\r
272 s[:1]\r
273 s[2:]\r
274 s[11:-11]\r
275\r
276 s[50:]\r
277 s[:25]\r
278 s[50:55]\r
279 s[-1:]\r
280 s[:1]\r
281 s[2:]\r
282 s[11:-11]\r
283\r
284 s[50:]\r
285 s[:25]\r
286 s[50:55]\r
287 s[-1:]\r
288 s[:1]\r
289 s[2:]\r
290 s[11:-11]\r
291\r
292 s[50:]\r
293 s[:25]\r
294 s[50:55]\r
295 s[-1:]\r
296 s[:1]\r
297 s[2:]\r
298 s[11:-11]\r
299\r
300 def calibrate(self):\r
301\r
302 s = unicode(join(map(str,range(100))))\r
303\r
304 for i in xrange(self.rounds):\r
305 pass\r
306\r
307### String methods\r
308\r
309class UnicodeMappings(Test):\r
310\r
311 version = 2.0\r
312 operations = 3 * (5 + 4 + 2 + 1)\r
313 rounds = 10000\r
314\r
315 def test(self):\r
316\r
317 s = join(map(unichr,range(20)),'')\r
318 t = join(map(unichr,range(100)),'')\r
319 u = join(map(unichr,range(500)),'')\r
320 v = join(map(unichr,range(1000)),'')\r
321\r
322 for i in xrange(self.rounds):\r
323\r
324 s.lower()\r
325 s.lower()\r
326 s.lower()\r
327 s.lower()\r
328 s.lower()\r
329\r
330 s.upper()\r
331 s.upper()\r
332 s.upper()\r
333 s.upper()\r
334 s.upper()\r
335\r
336 s.title()\r
337 s.title()\r
338 s.title()\r
339 s.title()\r
340 s.title()\r
341\r
342 t.lower()\r
343 t.lower()\r
344 t.lower()\r
345 t.lower()\r
346\r
347 t.upper()\r
348 t.upper()\r
349 t.upper()\r
350 t.upper()\r
351\r
352 t.title()\r
353 t.title()\r
354 t.title()\r
355 t.title()\r
356\r
357 u.lower()\r
358 u.lower()\r
359\r
360 u.upper()\r
361 u.upper()\r
362\r
363 u.title()\r
364 u.title()\r
365\r
366 v.lower()\r
367\r
368 v.upper()\r
369\r
370 v.title()\r
371\r
372 def calibrate(self):\r
373\r
374 s = join(map(unichr,range(20)),'')\r
375 t = join(map(unichr,range(100)),'')\r
376 u = join(map(unichr,range(500)),'')\r
377 v = join(map(unichr,range(1000)),'')\r
378\r
379 for i in xrange(self.rounds):\r
380 pass\r
381\r
382class UnicodePredicates(Test):\r
383\r
384 version = 2.0\r
385 operations = 5 * 9\r
386 rounds = 120000\r
387\r
388 def test(self):\r
389\r
390 data = (u'abc', u'123', u' ', u'\u1234\u2345\u3456', u'\uFFFF'*10)\r
391 len_data = len(data)\r
392\r
393 for i in xrange(self.rounds):\r
394 s = data[i % len_data]\r
395\r
396 s.isalnum()\r
397 s.isalpha()\r
398 s.isdecimal()\r
399 s.isdigit()\r
400 s.islower()\r
401 s.isnumeric()\r
402 s.isspace()\r
403 s.istitle()\r
404 s.isupper()\r
405\r
406 s.isalnum()\r
407 s.isalpha()\r
408 s.isdecimal()\r
409 s.isdigit()\r
410 s.islower()\r
411 s.isnumeric()\r
412 s.isspace()\r
413 s.istitle()\r
414 s.isupper()\r
415\r
416 s.isalnum()\r
417 s.isalpha()\r
418 s.isdecimal()\r
419 s.isdigit()\r
420 s.islower()\r
421 s.isnumeric()\r
422 s.isspace()\r
423 s.istitle()\r
424 s.isupper()\r
425\r
426 s.isalnum()\r
427 s.isalpha()\r
428 s.isdecimal()\r
429 s.isdigit()\r
430 s.islower()\r
431 s.isnumeric()\r
432 s.isspace()\r
433 s.istitle()\r
434 s.isupper()\r
435\r
436 s.isalnum()\r
437 s.isalpha()\r
438 s.isdecimal()\r
439 s.isdigit()\r
440 s.islower()\r
441 s.isnumeric()\r
442 s.isspace()\r
443 s.istitle()\r
444 s.isupper()\r
445\r
446 def calibrate(self):\r
447\r
448 data = (u'abc', u'123', u' ', u'\u1234\u2345\u3456', u'\uFFFF'*10)\r
449 len_data = len(data)\r
450\r
451 for i in xrange(self.rounds):\r
452 s = data[i % len_data]\r
453\r
454try:\r
455 import unicodedata\r
456except ImportError:\r
457 pass\r
458else:\r
459 class UnicodeProperties(Test):\r
460\r
461 version = 2.0\r
462 operations = 5 * 8\r
463 rounds = 100000\r
464\r
465 def test(self):\r
466\r
467 data = (u'a', u'1', u' ', u'\u1234', u'\uFFFF')\r
468 len_data = len(data)\r
469 digit = unicodedata.digit\r
470 numeric = unicodedata.numeric\r
471 decimal = unicodedata.decimal\r
472 category = unicodedata.category\r
473 bidirectional = unicodedata.bidirectional\r
474 decomposition = unicodedata.decomposition\r
475 mirrored = unicodedata.mirrored\r
476 combining = unicodedata.combining\r
477\r
478 for i in xrange(self.rounds):\r
479\r
480 c = data[i % len_data]\r
481\r
482 digit(c, None)\r
483 numeric(c, None)\r
484 decimal(c, None)\r
485 category(c)\r
486 bidirectional(c)\r
487 decomposition(c)\r
488 mirrored(c)\r
489 combining(c)\r
490\r
491 digit(c, None)\r
492 numeric(c, None)\r
493 decimal(c, None)\r
494 category(c)\r
495 bidirectional(c)\r
496 decomposition(c)\r
497 mirrored(c)\r
498 combining(c)\r
499\r
500 digit(c, None)\r
501 numeric(c, None)\r
502 decimal(c, None)\r
503 category(c)\r
504 bidirectional(c)\r
505 decomposition(c)\r
506 mirrored(c)\r
507 combining(c)\r
508\r
509 digit(c, None)\r
510 numeric(c, None)\r
511 decimal(c, None)\r
512 category(c)\r
513 bidirectional(c)\r
514 decomposition(c)\r
515 mirrored(c)\r
516 combining(c)\r
517\r
518 digit(c, None)\r
519 numeric(c, None)\r
520 decimal(c, None)\r
521 category(c)\r
522 bidirectional(c)\r
523 decomposition(c)\r
524 mirrored(c)\r
525 combining(c)\r
526\r
527 def calibrate(self):\r
528\r
529 data = (u'a', u'1', u' ', u'\u1234', u'\uFFFF')\r
530 len_data = len(data)\r
531 digit = unicodedata.digit\r
532 numeric = unicodedata.numeric\r
533 decimal = unicodedata.decimal\r
534 category = unicodedata.category\r
535 bidirectional = unicodedata.bidirectional\r
536 decomposition = unicodedata.decomposition\r
537 mirrored = unicodedata.mirrored\r
538 combining = unicodedata.combining\r
539\r
540 for i in xrange(self.rounds):\r
541\r
542 c = data[i % len_data]\r