/Tools/pybench/Constructs.py

http://unladen-swallow.googlecode.com/ · Python · 564 lines · 512 code · 52 blank · 0 comment · 244 complexity · 77c8a815855949e7750c3ca83a5fd43b MD5 · raw file

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