Generalize reduce() to work with iterators.

NEEDS DOC CHANGES.
This commit is contained in:
Tim Peters 2001-05-04 04:39:21 +00:00
parent 8bc10b0c57
commit 15d81efb8a
3 changed files with 33 additions and 12 deletions

View file

@ -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)