Issue #4969: The mimetypes module now reads the MIME database from
[python.git] / Tools / pybench / Arithmetic.py
blob6923b4b496e5a2ef66eea0fc27cc18700dac2d66
1 from pybench import Test
3 class SimpleIntegerArithmetic(Test):
5 version = 2.0
6 operations = 5 * (3 + 5 + 5 + 3 + 3 + 3)
7 rounds = 120000
9 def test(self):
11 for i in xrange(self.rounds):
13 a = 2
14 b = 3
15 c = 3
17 c = a + b
18 c = b + c
19 c = c + a
20 c = a + b
21 c = b + c
23 c = c - a
24 c = a - b
25 c = b - c
26 c = c - a
27 c = b - c
29 c = a / b
30 c = b / a
31 c = c / b
33 c = a * b
34 c = b * a
35 c = c * b
37 c = a / b
38 c = b / a
39 c = c / b
41 a = 2
42 b = 3
43 c = 3
45 c = a + b
46 c = b + c
47 c = c + a
48 c = a + b
49 c = b + c
51 c = c - a
52 c = a - b
53 c = b - c
54 c = c - a
55 c = b - c
57 c = a / b
58 c = b / a
59 c = c / b
61 c = a * b
62 c = b * a
63 c = c * b
65 c = a / b
66 c = b / a
67 c = c / b
69 a = 2
70 b = 3
71 c = 3
73 c = a + b
74 c = b + c
75 c = c + a
76 c = a + b
77 c = b + c
79 c = c - a
80 c = a - b
81 c = b - c
82 c = c - a
83 c = b - c
85 c = a / b
86 c = b / a
87 c = c / b
89 c = a * b
90 c = b * a
91 c = c * b
93 c = a / b
94 c = b / a
95 c = c / b
97 a = 2
98 b = 3
99 c = 3
101 c = a + b
102 c = b + c
103 c = c + a
104 c = a + b
105 c = b + c
107 c = c - a
108 c = a - b
109 c = b - c
110 c = c - a
111 c = b - c
113 c = a / b
114 c = b / a
115 c = c / b
117 c = a * b
118 c = b * a
119 c = c * b
121 c = a / b
122 c = b / a
123 c = c / b
125 a = 2
126 b = 3
127 c = 3
129 c = a + b
130 c = b + c
131 c = c + a
132 c = a + b
133 c = b + c
135 c = c - a
136 c = a - b
137 c = b - c
138 c = c - a
139 c = b - c
141 c = a / b
142 c = b / a
143 c = c / b
145 c = a * b
146 c = b * a
147 c = c * b
149 c = a / b
150 c = b / a
151 c = c / b
153 def calibrate(self):
155 for i in xrange(self.rounds):
156 pass
158 class SimpleFloatArithmetic(Test):
160 version = 2.0
161 operations = 5 * (3 + 5 + 5 + 3 + 3 + 3)
162 rounds = 120000
164 def test(self):
166 for i in xrange(self.rounds):
168 a = 2.1
169 b = 3.3332
170 c = 3.14159
172 c = a + b
173 c = b + c
174 c = c + a
175 c = a + b
176 c = b + c
178 c = c - a
179 c = a - b
180 c = b - c
181 c = c - a
182 c = b - c
184 c = a / b
185 c = b / a
186 c = c / b
188 c = a * b
189 c = b * a
190 c = c * b
192 c = a / b
193 c = b / a
194 c = c / b
196 a = 2.1
197 b = 3.3332
198 c = 3.14159
200 c = a + b
201 c = b + c
202 c = c + a
203 c = a + b
204 c = b + c
206 c = c - a
207 c = a - b
208 c = b - c
209 c = c - a
210 c = b - c
212 c = a / b
213 c = b / a
214 c = c / b
216 c = a * b
217 c = b * a
218 c = c * b
220 c = a / b
221 c = b / a
222 c = c / b
224 a = 2.1
225 b = 3.3332
226 c = 3.14159
228 c = a + b
229 c = b + c
230 c = c + a
231 c = a + b
232 c = b + c
234 c = c - a
235 c = a - b
236 c = b - c
237 c = c - a
238 c = b - c
240 c = a / b
241 c = b / a
242 c = c / b
244 c = a * b
245 c = b * a
246 c = c * b
248 c = a / b
249 c = b / a
250 c = c / b
252 a = 2.1
253 b = 3.3332
254 c = 3.14159
256 c = a + b
257 c = b + c
258 c = c + a
259 c = a + b
260 c = b + c
262 c = c - a
263 c = a - b
264 c = b - c
265 c = c - a
266 c = b - c
268 c = a / b
269 c = b / a
270 c = c / b
272 c = a * b
273 c = b * a
274 c = c * b
276 c = a / b
277 c = b / a
278 c = c / b
280 a = 2.1
281 b = 3.3332
282 c = 3.14159
284 c = a + b
285 c = b + c
286 c = c + a
287 c = a + b
288 c = b + c
290 c = c - a
291 c = a - b
292 c = b - c
293 c = c - a
294 c = b - c
296 c = a / b
297 c = b / a
298 c = c / b
300 c = a * b
301 c = b * a
302 c = c * b
304 c = a / b
305 c = b / a
306 c = c / b
308 def calibrate(self):
310 for i in xrange(self.rounds):
311 pass
313 class SimpleIntFloatArithmetic(Test):
315 version = 2.0
316 operations = 5 * (3 + 5 + 5 + 3 + 3 + 3)
317 rounds = 120000
319 def test(self):
321 for i in xrange(self.rounds):
323 a = 2
324 b = 3
325 c = 3.14159
327 c = a + b
328 c = b + c
329 c = c + a
330 c = a + b
331 c = b + c
333 c = c - a
334 c = a - b
335 c = b - c
336 c = c - a
337 c = b - c
339 c = a / b
340 c = b / a
341 c = c / b
343 c = a * b
344 c = b * a
345 c = c * b
347 c = a / b
348 c = b / a
349 c = c / b
351 a = 2
352 b = 3
353 c = 3.14159
355 c = a + b
356 c = b + c
357 c = c + a
358 c = a + b
359 c = b + c
361 c = c - a
362 c = a - b
363 c = b - c
364 c = c - a
365 c = b - c
367 c = a / b
368 c = b / a
369 c = c / b
371 c = a * b
372 c = b * a
373 c = c * b
375 c = a / b
376 c = b / a
377 c = c / b
379 a = 2
380 b = 3
381 c = 3.14159
383 c = a + b
384 c = b + c
385 c = c + a
386 c = a + b
387 c = b + c
389 c = c - a
390 c = a - b
391 c = b - c
392 c = c - a
393 c = b - c
395 c = a / b
396 c = b / a
397 c = c / b
399 c = a * b
400 c = b * a
401 c = c * b
403 c = a / b
404 c = b / a
405 c = c / b
407 a = 2
408 b = 3
409 c = 3.14159
411 c = a + b
412 c = b + c
413 c = c + a
414 c = a + b
415 c = b + c
417 c = c - a
418 c = a - b
419 c = b - c
420 c = c - a
421 c = b - c
423 c = a / b
424 c = b / a
425 c = c / b
427 c = a * b
428 c = b * a
429 c = c * b
431 c = a / b
432 c = b / a
433 c = c / b
435 a = 2
436 b = 3
437 c = 3.14159
439 c = a + b
440 c = b + c
441 c = c + a
442 c = a + b
443 c = b + c
445 c = c - a
446 c = a - b
447 c = b - c
448 c = c - a
449 c = b - c
451 c = a / b
452 c = b / a
453 c = c / b
455 c = a * b
456 c = b * a
457 c = c * b
459 c = a / b
460 c = b / a
461 c = c / b
463 def calibrate(self):
465 for i in xrange(self.rounds):
466 pass
469 class SimpleLongArithmetic(Test):
471 version = 2.0
472 operations = 5 * (3 + 5 + 5 + 3 + 3 + 3)
473 rounds = 60000
475 def test(self):
477 for i in xrange(self.rounds):
479 a = 2220001L
480 b = 100001L
481 c = 30005L
483 c = a + b
484 c = b + c
485 c = c + a
486 c = a + b
487 c = b + c
489 c = c - a
490 c = a - b
491 c = b - c
492 c = c - a
493 c = b - c
495 c = a / b
496 c = b / a
497 c = c / b
499 c = a * b
500 c = b * a
501 c = c * b
503 c = a / b
504 c = b / a
505 c = c / b
507 a = 2220001L
508 b = 100001L
509 c = 30005L
511 c = a + b
512 c = b + c
513 c = c + a
514 c = a + b
515 c = b + c
517 c = c - a
518 c = a - b
519 c = b - c
520 c = c - a
521 c = b - c
523 c = a / b
524 c = b / a
525 c = c / b
527 c = a * b
528 c = b * a
529 c = c * b
531 c = a / b
532 c = b / a
533 c = c / b
535 a = 2220001L
536 b = 100001L
537 c = 30005L
539 c = a + b
540 c = b + c
541 c = c + a
542 c = a + b
543 c = b + c
545 c = c - a
546 c = a - b
547 c = b - c
548 c = c - a
549 c = b - c
551 c = a / b
552 c = b / a
553 c = c / b
555 c = a * b
556 c = b * a
557 c = c * b
559 c = a / b
560 c = b / a
561 c = c / b
563 a = 2220001L
564 b = 100001L
565 c = 30005L
567 c = a + b
568 c = b + c
569 c = c + a
570 c = a + b
571 c = b + c
573 c = c - a
574 c = a - b
575 c = b - c
576 c = c - a
577 c = b - c
579 c = a / b
580 c = b / a
581 c = c / b
583 c = a * b
584 c = b * a
585 c = c * b
587 c = a / b
588 c = b / a
589 c = c / b
591 a = 2220001L
592 b = 100001L
593 c = 30005L
595 c = a + b
596 c = b + c
597 c = c + a
598 c = a + b
599 c = b + c
601 c = c - a
602 c = a - b
603 c = b - c
604 c = c - a
605 c = b - c
607 c = a / b
608 c = b / a
609 c = c / b
611 c = a * b
612 c = b * a
613 c = c * b
615 c = a / b
616 c = b / a
617 c = c / b
619 def calibrate(self):
621 for i in xrange(self.rounds):
622 pass
624 class SimpleComplexArithmetic(Test):
626 version = 2.0
627 operations = 5 * (3 + 5 + 5 + 3 + 3 + 3)
628 rounds = 80000
630 def test(self):
632 for i in xrange(self.rounds):
634 a = 2 + 3j
635 b = 2.5 + 4.5j
636 c = 1.2 + 6.2j
638 c = a + b
639 c = b + c
640 c = c + a
641 c = a + b
642 c = b + c
644 c = c - a
645 c = a - b
646 c = b - c
647 c = c - a
648 c = b - c
650 c = a / b
651 c = b / a
652 c = c / b
654 c = a * b
655 c = b * a
656 c = c * b
658 c = a / b
659 c = b / a
660 c = c / b
662 a = 2 + 3j
663 b = 2.5 + 4.5j
664 c = 1.2 + 6.2j
666 c = a + b
667 c = b + c
668 c = c + a
669 c = a + b
670 c = b + c
672 c = c - a
673 c = a - b
674 c = b - c
675 c = c - a
676 c = b - c
678 c = a / b
679 c = b / a
680 c = c / b
682 c = a * b
683 c = b * a
684 c = c * b
686 c = a / b
687 c = b / a
688 c = c / b
690 a = 2 + 3j
691 b = 2.5 + 4.5j
692 c = 1.2 + 6.2j
694 c = a + b
695 c = b + c
696 c = c + a
697 c = a + b
698 c = b + c
700 c = c - a
701 c = a - b
702 c = b - c
703 c = c - a
704 c = b - c
706 c = a / b
707 c = b / a
708 c = c / b
710 c = a * b
711 c = b * a
712 c = c * b
714 c = a / b
715 c = b / a
716 c = c / b
718 a = 2 + 3j
719 b = 2.5 + 4.5j
720 c = 1.2 + 6.2j
722 c = a + b
723 c = b + c
724 c = c + a
725 c = a + b
726 c = b + c
728 c = c - a
729 c = a - b
730 c = b - c
731 c = c - a
732 c = b - c
734 c = a / b
735 c = b / a
736 c = c / b
738 c = a * b
739 c = b * a
740 c = c * b
742 c = a / b
743 c = b / a
744 c = c / b
746 a = 2 + 3j
747 b = 2.5 + 4.5j
748 c = 1.2 + 6.2j
750 c = a + b
751 c = b + c
752 c = c + a
753 c = a + b
754 c = b + c
756 c = c - a
757 c = a - b
758 c = b - c
759 c = c - a
760 c = b - c
762 c = a / b
763 c = b / a
764 c = c / b
766 c = a * b
767 c = b * a
768 c = c * b
770 c = a / b
771 c = b / a
772 c = c / b
774 def calibrate(self):
776 for i in xrange(self.rounds):
777 pass