| from pybench import Test | |
| class SimpleListManipulation(Test): | |
| version = 2.0 | |
| operations = 5* (6 + 6 + 6) | |
| rounds = 130000 | |
| def test(self): | |
| l = [] | |
| append = l.append | |
| for i in xrange(self.rounds): | |
| append(2) | |
| append(3) | |
| append(4) | |
| append(2) | |
| append(3) | |
| append(4) | |
| l[0] = 3 | |
| l[1] = 4 | |
| l[2] = 5 | |
| l[3] = 3 | |
| l[4] = 4 | |
| l[5] = 5 | |
| x = l[0] | |
| x = l[1] | |
| x = l[2] | |
| x = l[3] | |
| x = l[4] | |
| x = l[5] | |
| append(2) | |
| append(3) | |
| append(4) | |
| append(2) | |
| append(3) | |
| append(4) | |
| l[0] = 3 | |
| l[1] = 4 | |
| l[2] = 5 | |
| l[3] = 3 | |
| l[4] = 4 | |
| l[5] = 5 | |
| x = l[0] | |
| x = l[1] | |
| x = l[2] | |
| x = l[3] | |
| x = l[4] | |
| x = l[5] | |
| append(2) | |
| append(3) | |
| append(4) | |
| append(2) | |
| append(3) | |
| append(4) | |
| l[0] = 3 | |
| l[1] = 4 | |
| l[2] = 5 | |
| l[3] = 3 | |
| l[4] = 4 | |
| l[5] = 5 | |
| x = l[0] | |
| x = l[1] | |
| x = l[2] | |
| x = l[3] | |
| x = l[4] | |
| x = l[5] | |
| append(2) | |
| append(3) | |
| append(4) | |
| append(2) | |
| append(3) | |
| append(4) | |
| l[0] = 3 | |
| l[1] = 4 | |
| l[2] = 5 | |
| l[3] = 3 | |
| l[4] = 4 | |
| l[5] = 5 | |
| x = l[0] | |
| x = l[1] | |
| x = l[2] | |
| x = l[3] | |
| x = l[4] | |
| x = l[5] | |
| append(2) | |
| append(3) | |
| append(4) | |
| append(2) | |
| append(3) | |
| append(4) | |
| l[0] = 3 | |
| l[1] = 4 | |
| l[2] = 5 | |
| l[3] = 3 | |
| l[4] = 4 | |
| l[5] = 5 | |
| x = l[0] | |
| x = l[1] | |
| x = l[2] | |
| x = l[3] | |
| x = l[4] | |
| x = l[5] | |
| if len(l) > 10000: | |
| # cut down the size | |
| del l[:] | |
| def calibrate(self): | |
| l = [] | |
| append = l.append | |
| for i in xrange(self.rounds): | |
| pass | |
| class ListSlicing(Test): | |
| version = 2.0 | |
| operations = 25*(3+1+2+1) | |
| rounds = 800 | |
| def test(self): | |
| n = range(100) | |
| r = range(25) | |
| for i in xrange(self.rounds): | |
| l = n[:] | |
| for j in r: | |
| m = l[50:] | |
| m = l[:25] | |
| m = l[50:55] | |
| l[:3] = n | |
| m = l[:-1] | |
| m = l[1:] | |
| l[-1:] = n | |
| def calibrate(self): | |
| n = range(100) | |
| r = range(25) | |
| for i in xrange(self.rounds): | |
| for j in r: | |
| pass | |
| class SmallLists(Test): | |
| version = 2.0 | |
| operations = 5*(1+ 6 + 6 + 3 + 1) | |
| rounds = 80000 | |
| def test(self): | |
| for i in xrange(self.rounds): | |
| l = [] | |
| append = l.append | |
| append(2) | |
| append(3) | |
| append(4) | |
| append(2) | |
| append(3) | |
| append(4) | |
| l[0] = 3 | |
| l[1] = 4 | |
| l[2] = 5 | |
| l[3] = 3 | |
| l[4] = 4 | |
| l[5] = 5 | |
| l[:3] = [1,2,3] | |
| m = l[:-1] | |
| m = l[1:] | |
| l[-1:] = [4,5,6] | |
| l = [] | |
| append = l.append | |
| append(2) | |
| append(3) | |
| append(4) | |
| append(2) | |
| append(3) | |
| append(4) | |
| l[0] = 3 | |
| l[1] = 4 | |
| l[2] = 5 | |
| l[3] = 3 | |
| l[4] = 4 | |
| l[5] = 5 | |
| l[:3] = [1,2,3] | |
| m = l[:-1] | |
| m = l[1:] | |
| l[-1:] = [4,5,6] | |
| l = [] | |
| append = l.append | |
| append(2) | |
| append(3) | |
| append(4) | |
| append(2) | |
| append(3) | |
| append(4) | |
| l[0] = 3 | |
| l[1] = 4 | |
| l[2] = 5 | |
| l[3] = 3 | |
| l[4] = 4 | |
| l[5] = 5 | |
| l[:3] = [1,2,3] | |
| m = l[:-1] | |
| m = l[1:] | |
| l[-1:] = [4,5,6] | |
| l = [] | |
| append = l.append | |
| append(2) | |
| append(3) | |
| append(4) | |
| append(2) | |
| append(3) | |
| append(4) | |
| l[0] = 3 | |
| l[1] = 4 | |
| l[2] = 5 | |
| l[3] = 3 | |
| l[4] = 4 | |
| l[5] = 5 | |
| l[:3] = [1,2,3] | |
| m = l[:-1] | |
| m = l[1:] | |
| l[-1:] = [4,5,6] | |
| l = [] | |
| append = l.append | |
| append(2) | |
| append(3) | |
| append(4) | |
| append(2) | |
| append(3) | |
| append(4) | |
| l[0] = 3 | |
| l[1] = 4 | |
| l[2] = 5 | |
| l[3] = 3 | |
| l[4] = 4 | |
| l[5] = 5 | |
| l[:3] = [1,2,3] | |
| m = l[:-1] | |
| m = l[1:] | |
| l[-1:] = [4,5,6] | |
| def calibrate(self): | |
| for i in xrange(self.rounds): | |
| pass | |
| class SimpleListComprehensions(Test): | |
| version = 2.0 | |
| operations = 6 | |
| rounds = 20000 | |
| def test(self): | |
| n = range(10) * 10 | |
| for i in xrange(self.rounds): | |
| l = [x for x in n] | |
| l = [x for x in n if x] | |
| l = [x for x in n if not x] | |
| l = [x for x in n] | |
| l = [x for x in n if x] | |
| l = [x for x in n if not x] | |
| def calibrate(self): | |
| n = range(10) * 10 | |
| for i in xrange(self.rounds): | |
| pass | |
| class NestedListComprehensions(Test): | |
| version = 2.0 | |
| operations = 6 | |
| rounds = 20000 | |
| def test(self): | |
| m = range(10) | |
| n = range(10) | |
| for i in xrange(self.rounds): | |
| l = [x for x in n for y in m] | |
| l = [y for x in n for y in m] | |
| l = [x for x in n for y in m if y] | |
| l = [y for x in n for y in m if x] | |
| l = [x for x in n for y in m if not y] | |
| l = [y for x in n for y in m if not x] | |
| def calibrate(self): | |
| m = range(10) | |
| n = range(10) | |
| for i in xrange(self.rounds): | |
| pass |