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

Method test_iterator_usage

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

Source from the content-addressed store, hash-verified

1091
1092 # Test reduce()'s use of iterators.
1093 def test_iterator_usage(self):
1094 class SequenceClass:
1095 def __init__(self, n):
1096 self.n = n
1097 def __getitem__(self, i):
1098 if 0 <= i < self.n:
1099 return i
1100 else:
1101 raise IndexError
1102
1103 from operator import add
1104 self.assertEqual(self.reduce(add, SequenceClass(5)), 10)
1105 self.assertEqual(self.reduce(add, SequenceClass(5), 42), 52)
1106 self.assertRaises(TypeError, self.reduce, add, SequenceClass(0))
1107 self.assertEqual(self.reduce(add, SequenceClass(0), 42), 42)
1108 self.assertEqual(self.reduce(add, SequenceClass(1)), 0)
1109 self.assertEqual(self.reduce(add, SequenceClass(1), 42), 42)
1110
1111 d = {"one": 1, "two": 2, "three": 3}
1112 self.assertEqual(self.reduce(add, d), "".join(d.keys()))
1113
1114 # test correctness of keyword usage of `initial` in `reduce`
1115 def test_initial_keyword(self):

Callers

nothing calls this directly

Calls 6

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

Tested by

no test coverage detected