[pypy-svn] pypy default: Test and fix for empty products.
arigo
commits-noreply at bitbucket.org
Tue Jan 25 17:47:56 CET 2011
Author: Armin Rigo <arigo at tunes.org>
Branch:
Changeset: r41306:c9211c2b1623
Date: 2011-01-24 15:48 +0100
http://bitbucket.org/pypy/pypy/changeset/c9211c2b1623/
Log: Test and fix for empty products.
diff --git a/pypy/module/itertools/test/test_itertools.py b/pypy/module/itertools/test/test_itertools.py
--- a/pypy/module/itertools/test/test_itertools.py
+++ b/pypy/module/itertools/test/test_itertools.py
@@ -756,6 +756,9 @@
prodlist = product(l, m)
assert list(prodlist) == [(1, 'a'), (1, 'b')]
+ assert list(product([], [1, 2, 3])) == []
+ assert list(product([1, 2, 3], [])) == []
+
def test_product_toomany_args(self):
from itertools import product
l = [1, 2]
diff --git a/pypy/module/itertools/interp_itertools.py b/pypy/module/itertools/interp_itertools.py
--- a/pypy/module/itertools/interp_itertools.py
+++ b/pypy/module/itertools/interp_itertools.py
@@ -1045,6 +1045,9 @@
self.indicies = [(0, space.int_w(space.len(w_gear)))
for w_gear in self.gears_w]
self.cont = True
+ for _, lim in self.indicies:
+ if lim <= 0:
+ self.cont = False
def roll_gears(self):
if self.num_gears == 0:
More information about the Pypy-commit
mailing list