MCPcopy Index your code
hub / github.com/RustPython/RustPython / test_iterator_usage

Method test_iterator_usage

Lib/test/test_functools.py:1029–1048  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

1027
1028 # Test reduce()'s use of iterators.
1029 def test_iterator_usage(self):
1030 class SequenceClass:
1031 def __init__(self, n):
1032 self.n = n
1033 def __getitem__(self, i):
1034 if 0 <= i < self.n:
1035 return i
1036 else:
1037 raise IndexError
1038
1039 from operator import add
1040 self.assertEqual(self.reduce(add, SequenceClass(5)), 10)
1041 self.assertEqual(self.reduce(add, SequenceClass(5), 42), 52)
1042 self.assertRaises(TypeError, self.reduce, add, SequenceClass(0))
1043 self.assertEqual(self.reduce(add, SequenceClass(0), 42), 42)
1044 self.assertEqual(self.reduce(add, SequenceClass(1)), 0)
1045 self.assertEqual(self.reduce(add, SequenceClass(1), 42), 42)
1046
1047 d = {"one": 1, "two": 2, "three": 3}
1048 self.assertEqual(self.reduce(add, d), "".join(d.keys()))
1049
1050 # test correctness of keyword usage of `initial` in `reduce`
1051 def test_initial_keyword(self):

Callers

nothing calls this directly

Calls 6

SequenceClassClass · 0.70
assertEqualMethod · 0.45
reduceMethod · 0.45
assertRaisesMethod · 0.45
joinMethod · 0.45
keysMethod · 0.45

Tested by

no test coverage detected