Modified itertools.izip() to match the behavior of __builtin__.zip()

which can now take zero arguments.
This commit is contained in:
Raymond Hettinger 2003-08-08 05:10:41 +00:00
parent 77fe69bd08
commit b5a420883c
4 changed files with 15 additions and 8 deletions

View file

@ -87,7 +87,7 @@ class TestBasicOps(unittest.TestCase):
self.assertEqual(list(izip('abcdef', range(3))), zip('abcdef', range(3)))
self.assertEqual(take(3,izip('abcdef', count())), zip('abcdef', range(3)))
self.assertEqual(list(izip('abcdef')), zip('abcdef'))
self.assertRaises(TypeError, izip)
self.assertEqual(list(izip()), zip())
self.assertRaises(TypeError, izip, 3)
self.assertRaises(TypeError, izip, range(3), 3)
# Check tuple re-use (implementation detail)
@ -199,6 +199,8 @@ class TestBasicOps(unittest.TestCase):
self.assertRaises(ValueError, dropwhile(errfunc, [(4,5)]).next)
def test_StopIteration(self):
self.assertRaises(StopIteration, izip().next)
for f in (chain, cycle, izip):
self.assertRaises(StopIteration, f([]).next)
self.assertRaises(StopIteration, f(StopNow()).next)
@ -540,6 +542,9 @@ True
>>> no(lambda x: x%2==0, [1, 2, 5, 9])
False
>>> quantify(lambda x: x%2==0, xrange(99))
50
>>> list(window('abc'))
[('a', 'b'), ('b', 'c')]