From: Antoine Pitrou Date: Sat, 27 Dec 2008 20:39:28 +0000 (+0000) Subject: Merged revisions 67965 via svnmerge from X-Git-Tag: v3.1a1~651 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2a013eac6c558e5065ebdcd3054a5688997de277;p=thirdparty%2FPython%2Fcpython.git 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éc. 2008) | 3 lines Issue #4677: add two list comprehension tests to pybench. ........ --- diff --git a/Misc/NEWS b/Misc/NEWS index f86712a4c340..ad49cb342f7d 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -136,6 +136,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