From: Antoine Pitrou Date: Sat, 27 Dec 2008 20:34:52 +0000 (+0000) Subject: Issue #4677: add two list comprehension tests to pybench. X-Git-Tag: v2.7a1~2482 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e555f581dc3d23b0d305b6a74bb292ed8cb674f3;p=thirdparty%2FPython%2Fcpython.git Issue #4677: add two list comprehension tests to pybench. --- diff --git a/Misc/NEWS b/Misc/NEWS index 64ff4062c86a..3fc5664b35fa 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -190,6 +190,11 @@ Library - Issue #4730: Fixed the cPickle module to handle correctly astral characters when protocol 0 is used. +Tools/Demos +----------- + +- Issue #4677: add two list comprehension tests to pybench. + Build ----- diff --git a/Tools/pybench/Lists.py b/Tools/pybench/Lists.py index 67760db35034..6c297a3416b2 100644 --- a/Tools/pybench/Lists.py +++ b/Tools/pybench/Lists.py @@ -293,3 +293,58 @@ class SmallLists(Test): 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