mirror of
https://github.com/python/cpython.git
synced 2025-10-09 16:34:44 +00:00
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. ........
This commit is contained in:
parent
5524089fa1
commit
f16baebf16
4 changed files with 447 additions and 58 deletions
|
@ -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)))
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue