Index: test_itertools.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/test/test_itertools.py,v retrieving revision 1.18 diff -c -r1.18 test_itertools.py *** test_itertools.py 29 Aug 2003 23:09:58 -0000 1.18 --- test_itertools.py 3 Sep 2003 00:21:42 -0000 *************** *** 44,49 **** --- 44,57 ---- self.assertEqual(take(4, chain('abc', 'def')), list('abcd')) self.assertRaises(TypeError, chain, 2, 3) + def test_roundrobin(self): + self.assertEqual(list(roundrobin('abc', 'def')), list('adbecf')) + self.assertEqual(list(roundrobin('abc', 'd', 'efghi', 'lmnopqr')), + list('adelbfmcgnhoipqr')) + self.assertEqual(list(roundrobin('abc')), list('abc')) + self.assertEqual(list(roundrobin('')), []) + self.assertRaises(TypeError, roundrobin, 2,3) + def test_count(self): self.assertEqual(zip('abc',count()), [('a', 0), ('b', 1), ('c', 2)]) self.assertEqual(zip('abc',count(3)), [('a', 3), ('b', 4), ('c', 5)]) *************** *** 340,345 **** --- 348,366 ---- self.assertRaises(TypeError, chain, X(s)) self.assertRaises(TypeError, list, chain(N(s))) self.assertRaises(ZeroDivisionError, list, chain(E(s))) + + def test_roundrobin(self): + for s in ("123", "", range(1000), ('do', 1.2), xrange(2000,2200,5)): + for g in (G, I, Ig, S, L, R): + self.assertEqual(list(roundrobin(g(s))), list(g(s))) + doubleup = [] + for (x) in g(s): + doubleup.append(x) + doubleup.append(x) + self.assertEqual(list(roundrobin(g(s), g(s))), doubleup) + self.assertRaises(TypeError, roundrobin, X(s)) + self.assertRaises((TypeError, AttributeError), list, roundrobin(N(s))) + self.assertRaises(ZeroDivisionError, list, roundrobin(E(s))) def test_cycle(self): for s in ("123", "", range(1000), ('do', 1.2), xrange(2000,2200,5)):