diff options
author | Guido van Rossum <guido@python.org> | 2006-08-22 00:21:25 +0000 |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 2006-08-22 00:21:25 +0000 |
commit | 89da5d7c3d9cf5bfd4a374e23fd924bbffdeaf5c (patch) | |
tree | aef767c70a3b57c4128d44816e4e070d28fffb9d /Lib/test | |
parent | 6cefeb0e8156406ac3f99248f6a3d3cd1536ca23 (diff) | |
download | cpython-89da5d7c3d9cf5bfd4a374e23fd924bbffdeaf5c.tar.gz cpython-89da5d7c3d9cf5bfd4a374e23fd924bbffdeaf5c.zip |
Kill reduce(). A coproduction of John Reese, Jacques Frechet, and Alex M.
Diffstat (limited to 'Lib/test')
-rw-r--r-- | Lib/test/test_builtin.py | 26 | ||||
-rw-r--r-- | Lib/test/test_iter.py | 13 | ||||
-rw-r--r-- | Lib/test/test_random.py | 4 |
3 files changed, 3 insertions, 40 deletions
diff --git a/Lib/test/test_builtin.py b/Lib/test/test_builtin.py index 13a52410925..b0dbd4a17b6 100644 --- a/Lib/test/test_builtin.py +++ b/Lib/test/test_builtin.py @@ -1393,32 +1393,6 @@ class BuiltinTest(unittest.TestCase): self.assertRaises(OverflowError, range, -sys.maxint, sys.maxint) self.assertRaises(OverflowError, range, 0, 2*sys.maxint) - def test_reduce(self): - self.assertEqual(reduce(lambda x, y: x+y, ['a', 'b', 'c'], ''), 'abc') - self.assertEqual( - reduce(lambda x, y: x+y, [['a', 'c'], [], ['d', 'w']], []), - ['a','c','d','w'] - ) - self.assertEqual(reduce(lambda x, y: x*y, range(2,8), 1), 5040) - self.assertEqual( - reduce(lambda x, y: x*y, range(2,21), 1L), - 2432902008176640000L - ) - self.assertEqual(reduce(lambda x, y: x+y, Squares(10)), 285) - self.assertEqual(reduce(lambda x, y: x+y, Squares(10), 0), 285) - self.assertEqual(reduce(lambda x, y: x+y, Squares(0), 0), 0) - self.assertRaises(TypeError, reduce) - self.assertRaises(TypeError, reduce, 42, 42) - self.assertRaises(TypeError, reduce, 42, 42, 42) - self.assertEqual(reduce(42, "1"), "1") # func is never called with one item - self.assertEqual(reduce(42, "", "1"), "1") # func is never called with one item - self.assertRaises(TypeError, reduce, 42, (42, 42)) - - class BadSeq: - def __getitem__(self, index): - raise ValueError - self.assertRaises(ValueError, reduce, 42, BadSeq()) - def test_reload(self): import marshal reload(marshal) diff --git a/Lib/test/test_iter.py b/Lib/test/test_iter.py index f83de78ad67..324eb6820c7 100644 --- a/Lib/test/test_iter.py +++ b/Lib/test/test_iter.py @@ -498,19 +498,6 @@ class TestCase(unittest.TestCase): for y in NoGuessLen5(), Guess3Len5(), Guess30Len5(): self.assertEqual(zip(x, y), expected) - # 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())) - # This test case will be removed if we don't have Unicode def test_unicode_join_endcase(self): diff --git a/Lib/test/test_random.py b/Lib/test/test_random.py index bba4c7cf8ba..afcf113564d 100644 --- a/Lib/test/test_random.py +++ b/Lib/test/test_random.py @@ -77,7 +77,9 @@ class TestBasicOps(unittest.TestCase): pop = range(n) trials = 10000 # large num prevents false negatives without slowing normal case def factorial(n): - return reduce(int.__mul__, xrange(1, n), 1) + if n == 0: + return 1 + return n * factorial(n - 1) for k in xrange(n): expected = factorial(n) // factorial(n-k) perms = {} |