From: Georg Brandl Date: Sat, 3 Jan 2009 23:49:20 +0000 (+0000) Subject: Merged revisions 67966 via svnmerge from X-Git-Tag: v3.0.1~185 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=207560dde74dbecc6a3438aec26de6cdc9237d7b;p=thirdparty%2FPython%2Fcpython.git Merged revisions 67966 via svnmerge from svn+ssh://svn.python.org/python/branches/py3k ................ r67966 | antoine.pitrou | 2008-12-27 21:39:28 +0100 (Sat, 27 Dec 2008) | 9 lines Merged revisions 67965 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r67965 | antoine.pitrou | 2008-12-27 21:34:52 +0100 (sam., 27 d?\195?\169c. 2008) | 3 lines Issue #4677: add two list comprehension tests to pybench. ........ ................ --- diff --git a/Misc/NEWS b/Misc/NEWS index 5d710a6248fe..1703527e07a8 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -137,6 +137,11 @@ Library support unusual filenames (such as those containing semi-colons) in Content-Disposition headers. +Tools/Demos +----------- + +- Issue #4677: add two list comprehension tests to pybench. + Extension Modules ----------------- diff --git a/Tools/pybench/Lists.py b/Tools/pybench/Lists.py index c39687ea17ca..29dabeff5b23 100644 --- a/Tools/pybench/Lists.py +++ b/Tools/pybench/Lists.py @@ -293,3 +293,58 @@ class SmallLists(Test): for i in range(self.rounds): pass + +class SimpleListComprehensions(Test): + + version = 2.0 + operations = 6 + rounds = 20000 + + def test(self): + + n = list(range(10)) * 10 + + for i in range(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 = list(range(10)) * 10 + + for i in range(self.rounds): + pass + +class NestedListComprehensions(Test): + + version = 2.0 + operations = 6 + rounds = 20000 + + def test(self): + + m = list(range(10)) + n = list(range(10)) + + for i in range(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 = list(range(10)) + n = list(range(10)) + + for i in range(self.rounds): + pass