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