mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 23:21:29 +00:00 
			
		
		
		
	Kill reduce(). A coproduction of John Reese, Jacques Frechet, and Alex M.
This commit is contained in:
		
							parent
							
								
									6cefeb0e81
								
							
						
					
					
						commit
						89da5d7c3d
					
				
					 10 changed files with 25 additions and 144 deletions
				
			
		| 
						 | 
				
			
			@ -1393,32 +1393,6 @@ def __cmp__(self, other):
 | 
			
		|||
        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)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue