mirror of
https://github.com/python/cpython.git
synced 2025-12-04 00:30:19 +00:00
Generalize reduce() to work with iterators.
NEEDS DOC CHANGES.
This commit is contained in:
parent
8bc10b0c57
commit
15d81efb8a
3 changed files with 33 additions and 12 deletions
|
|
@ -385,4 +385,17 @@ class TestCase(unittest.TestCase):
|
|||
except OSError:
|
||||
pass
|
||||
|
||||
# Test reduces()'s use of iterators.
|
||||
def test_builtin_reduce(self):
|
||||
from operator import add
|
||||
self.assertEqual(reduce(add, SequenceClass(5)), 10)
|
||||
self.assertEqual(reduce(add, SequenceClass(5), 42), 52)
|
||||
self.assertRaises(TypeError, reduce, add, SequenceClass(0))
|
||||
self.assertEqual(reduce(add, SequenceClass(0), 42), 42)
|
||||
self.assertEqual(reduce(add, SequenceClass(1)), 0)
|
||||
self.assertEqual(reduce(add, SequenceClass(1), 42), 42)
|
||||
|
||||
d = {"one": 1, "two": 2, "three": 3}
|
||||
self.assertEqual(reduce(add, d), "".join(d.keys()))
|
||||
|
||||
run_unittest(TestCase)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue