MCPcopy Index your code
hub / github.com/python/cpython / test_builtin_zip

Method test_builtin_zip

Lib/test/test_iter.py:638–715  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

636
637 # Test zip()'s use of iterators.
638 def test_builtin_zip(self):
639 self.assertEqual(list(zip()), [])
640 self.assertEqual(list(zip(*[])), [])
641 self.assertEqual(list(zip(*[(1, 2), 'ab'])), [(1, 'a'), (2, 'b')])
642
643 self.assertRaises(TypeError, zip, None)
644 self.assertRaises(TypeError, zip, range(10), 42)
645 self.assertRaises(TypeError, zip, range(10), zip)
646
647 self.assertEqual(list(zip(IteratingSequenceClass(3))),
648 [(0,), (1,), (2,)])
649 self.assertEqual(list(zip(SequenceClass(3))),
650 [(0,), (1,), (2,)])
651
652 d = {"one": 1, "two": 2, "three": 3}
653 self.assertEqual(list(d.items()), list(zip(d, d.values())))
654
655 # Generate all ints starting at constructor arg.
656 class IntsFrom:
657 def __init__(self, start):
658 self.i = start
659
660 def __iter__(self):
661 return self
662
663 def __next__(self):
664 i = self.i
665 self.i = i+1
666 return i
667
668 f = open(TESTFN, "w", encoding="utf-8")
669 try:
670 f.write("a\n" "bbb\n" "cc\n")
671 finally:
672 f.close()
673 f = open(TESTFN, "r", encoding="utf-8")
674 try:
675 self.assertEqual(list(zip(IntsFrom(0), f, IntsFrom(-100))),
676 [(0, "a\n", -100),
677 (1, "bbb\n", -99),
678 (2, "cc\n", -98)])
679 finally:
680 f.close()
681 try:
682 unlink(TESTFN)
683 except OSError:
684 pass
685
686 self.assertEqual(list(zip(range(5))), [(i,) for i in range(5)])
687
688 # Classes that lie about their lengths.
689 class NoGuessLen5:
690 def __getitem__(self, i):
691 if i >= 5:
692 raise IndexError
693 return i
694
695 class Guess3Len5(NoGuessLen5):

Callers

nothing calls this directly

Calls 15

assertEqualMethod · 0.95
assertRaisesMethod · 0.95
unlinkFunction · 0.90
listClass · 0.85
IntsFromClass · 0.85
Guess3Len5Class · 0.85
Guess30Len5Class · 0.85
lzipFunction · 0.85
NoGuessLen5Class · 0.85
SequenceClassClass · 0.70
openFunction · 0.50

Tested by

no test coverage detected