<s> import autopath <EOL> class AppTestReduce : <EOL> def test_None ( self ) : <EOL> raises ( TypeError , reduce , lambda x , y : x + y , [ <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> ] , None ) <EOL> def test_sum ( self ) : <EOL> assert reduce ( lambda x , y : x + y , [ <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:4> ] , <NUM_LIT:0> ) == <NUM_LIT:10> <EOL> assert reduce ( lambda x , y : x + y , [ <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:4> ] ) == <NUM_LIT:10> <EOL> def test_minus ( self ) : <EOL> assert reduce ( lambda x , y : x - y , [ <NUM_LIT:10> , <NUM_LIT:2> , <NUM_LIT:8> ] ) == <NUM_LIT:0> <EOL> assert reduce ( lambda x , y : x - y , [ <NUM_LIT:2> , <NUM_LIT:8> ] , <NUM_LIT:10> ) == <NUM_LIT:0> <EOL> def test_from_cpython ( self ) : <EOL> class SequenceClass ( object ) : <EOL> def __init__ ( self , n ) : <EOL> self . n = n <EOL> def __getitem__ ( self , i ) : <EOL> if <NUM_LIT:0> <= i < self . n : <EOL> return i <EOL> else : <EOL> raise IndexError <EOL> from operator import add <EOL> assert reduce ( add , SequenceClass ( <NUM_LIT:5> ) ) == <NUM_LIT:10> <EOL> assert reduce ( add , SequenceClass ( <NUM_LIT:5> ) , <NUM_LIT> ) == <NUM_LIT> <EOL> raises ( TypeError , reduce , add , SequenceClass ( <NUM_LIT:0> ) ) <EOL> assert reduce ( add , SequenceClass ( <NUM_LIT:0> ) , <NUM_LIT> ) == <NUM_LIT> <EOL> assert reduce ( add , SequenceClass ( <NUM_LIT:1> ) ) == <NUM_LIT:0> <EOL> assert reduce ( add , SequenceClass ( <NUM_LIT:1> ) , <NUM_LIT> ) == <NUM_LIT> <EOL> d = { "<STR_LIT>" : <NUM_LIT:1> , "<STR_LIT>" : <NUM_LIT:2> , "<STR_LIT>" : <NUM_LIT:3> } <EOL> assert reduce ( add , d ) == "<STR_LIT>" . join ( d . keys ( ) ) </s>
