diff options
author | Christian Heimes <christian@cheimes.de> | 2008-02-29 14:57:44 (GMT) |
---|---|---|
committer | Christian Heimes <christian@cheimes.de> | 2008-02-29 14:57:44 (GMT) |
commit | f16baebf168a56afdc5c26c7ee195aed00a25617 (patch) | |
tree | 95acdaffa79ffe492a19e0db4268f5bd9f6d08f6 /Lib/test/test_itertools.py | |
parent | 5524089fa1712a0f483bcacc7a8c3cd75bc3dc0c (diff) | |
download | cpython-f16baebf168a56afdc5c26c7ee195aed00a25617.zip cpython-f16baebf168a56afdc5c26c7ee195aed00a25617.tar.gz cpython-f16baebf168a56afdc5c26c7ee195aed00a25617.tar.bz2 |
Merged revisions 61038,61042-61045,61047,61050,61053,61055-61056,61061-61062,61066,61068,61070,61083,61085,61092-61097,61103-61104,61110-61112,61114-61115,61117-61125 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r61118 | raymond.hettinger | 2008-02-28 23:30:42 +0100 (Thu, 28 Feb 2008) | 1 line
Have itertools.chain() consume its inputs lazily instead of building a tuple of iterators at the outset.
........
r61119 | raymond.hettinger | 2008-02-28 23:46:41 +0100 (Thu, 28 Feb 2008) | 1 line
Add alternate constructor for itertools.chain().
........
r61123 | mark.dickinson | 2008-02-29 03:16:37 +0100 (Fri, 29 Feb 2008) | 2 lines
Add __format__ method to Decimal, to support PEP 3101
........
r61124 | raymond.hettinger | 2008-02-29 03:21:48 +0100 (Fri, 29 Feb 2008) | 1 line
Handle the repeat keyword argument for itertools.product().
........
r61125 | mark.dickinson | 2008-02-29 04:29:17 +0100 (Fri, 29 Feb 2008) | 2 lines
Fix docstring typo.
........
Diffstat (limited to 'Lib/test/test_itertools.py')
-rw-r--r-- | Lib/test/test_itertools.py | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/Lib/test/test_itertools.py b/Lib/test/test_itertools.py index ba726b5..b1c1033 100644 --- a/Lib/test/test_itertools.py +++ b/Lib/test/test_itertools.py @@ -54,7 +54,14 @@ class TestBasicOps(unittest.TestCase): self.assertEqual(list(chain('abc')), list('abc')) self.assertEqual(list(chain('')), []) self.assertEqual(take(4, chain('abc', 'def')), list('abcd')) - self.assertRaises(TypeError, chain, 2, 3) + self.assertRaises(TypeError, list,chain(2, 3)) + + def test_chain_from_iterable(self): + self.assertEqual(list(chain.from_iterable(['abc', 'def'])), list('abcdef')) + self.assertEqual(list(chain.from_iterable(['abc'])), list('abc')) + self.assertEqual(list(chain.from_iterable([''])), []) + self.assertEqual(take(4, chain.from_iterable(['abc', 'def'])), list('abcd')) + self.assertRaises(TypeError, list, chain.from_iterable([2, 3])) def test_combinations(self): self.assertRaises(TypeError, combinations, 'abc') # missing r argument @@ -298,6 +305,9 @@ class TestBasicOps(unittest.TestCase): ([range(2), range(3), range(0)], []), # last iterable with zero length ]: self.assertEqual(list(product(*args)), result) + for r in range(4): + self.assertEqual(list(product(*(args*r))), + list(product(*args, **dict(repeat=r)))) self.assertEqual(len(list(product(*[range(7)]*6))), 7**6) self.assertRaises(TypeError, product, range(6), None) argtypes = ['', 'abc', '', range(0), range(4), dict(a=1, b=2, c=3), @@ -684,7 +694,7 @@ class TestVariousIteratorArgs(unittest.TestCase): for g in (G, I, Ig, S, L, R): self.assertEqual(list(chain(g(s))), list(g(s))) self.assertEqual(list(chain(g(s), g(s))), list(g(s))+list(g(s))) - self.assertRaises(TypeError, chain, X(s)) + self.assertRaises(TypeError, list, chain(X(s))) self.assertRaises(TypeError, chain, N(s)) self.assertRaises(ZeroDivisionError, list, chain(E(s))) |