<s> from test . test_support import run_unittest <EOL> import unittest <EOL> class AugAssignTest ( unittest . TestCase ) : <EOL> def testBasic ( self ) : <EOL> x = <NUM_LIT:2> <EOL> x += <NUM_LIT:1> <EOL> x *= <NUM_LIT:2> <EOL> x **= <NUM_LIT:2> <EOL> x -= <NUM_LIT:8> <EOL> x //= <NUM_LIT:5> <EOL> x %= <NUM_LIT:3> <EOL> x &= <NUM_LIT:2> <EOL> x |= <NUM_LIT:5> <EOL> x ^= <NUM_LIT:1> <EOL> x /= <NUM_LIT:2> <EOL> if <NUM_LIT:1> / <NUM_LIT:2> == <NUM_LIT:0> : <EOL> self . assertEquals ( x , <NUM_LIT:3> ) <EOL> else : <EOL> self . assertEquals ( x , <NUM_LIT> ) <EOL> def testInList ( self ) : <EOL> x = [ <NUM_LIT:2> ] <EOL> x [ <NUM_LIT:0> ] += <NUM_LIT:1> <EOL> x [ <NUM_LIT:0> ] *= <NUM_LIT:2> <EOL> x [ <NUM_LIT:0> ] **= <NUM_LIT:2> <EOL> x [ <NUM_LIT:0> ] -= <NUM_LIT:8> <EOL> x [ <NUM_LIT:0> ] //= <NUM_LIT:5> <EOL> x [ <NUM_LIT:0> ] %= <NUM_LIT:3> <EOL> x [ <NUM_LIT:0> ] &= <NUM_LIT:2> <EOL> x [ <NUM_LIT:0> ] |= <NUM_LIT:5> <EOL> x [ <NUM_LIT:0> ] ^= <NUM_LIT:1> <EOL> x [ <NUM_LIT:0> ] /= <NUM_LIT:2> <EOL> if <NUM_LIT:1> / <NUM_LIT:2> == <NUM_LIT:0> : <EOL> self . assertEquals ( x [ <NUM_LIT:0> ] , <NUM_LIT:3> ) <EOL> else : <EOL> self . assertEquals ( x [ <NUM_LIT:0> ] , <NUM_LIT> ) <EOL> def testInDict ( self ) : <EOL> x = { <NUM_LIT:0> : <NUM_LIT:2> } <EOL> x [ <NUM_LIT:0> ] += <NUM_LIT:1> <EOL> x [ <NUM_LIT:0> ] *= <NUM_LIT:2> <EOL> x [ <NUM_LIT:0> ] **= <NUM_LIT:2> <EOL> x [ <NUM_LIT:0> ] -= <NUM_LIT:8> <EOL> x [ <NUM_LIT:0> ] //= <NUM_LIT:5> <EOL> x [ <NUM_LIT:0> ] %= <NUM_LIT:3> <EOL> x [ <NUM_LIT:0> ] &= <NUM_LIT:2> <EOL> x [ <NUM_LIT:0> ] |= <NUM_LIT:5> <EOL> x [ <NUM_LIT:0> ] ^= <NUM_LIT:1> <EOL> x [ <NUM_LIT:0> ] /= <NUM_LIT:2> <EOL> if <NUM_LIT:1> / <NUM_LIT:2> == <NUM_LIT:0> : <EOL> self . assertEquals ( x [ <NUM_LIT:0> ] , <NUM_LIT:3> ) <EOL> else : <EOL> self . assertEquals ( x [ <NUM_LIT:0> ] , <NUM_LIT> ) <EOL> def testSequences ( self ) : <EOL> x = [ <NUM_LIT:1> , <NUM_LIT:2> ] <EOL> x += [ <NUM_LIT:3> , <NUM_LIT:4> ] <EOL> x *= <NUM_LIT:2> <EOL> self . assertEquals ( x , [ <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:4> , <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:4> ] ) <EOL> x = [ <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> ] <EOL> y = x <EOL> x [ <NUM_LIT:1> : <NUM_LIT:2> ] *= <NUM_LIT:2> <EOL> y [ <NUM_LIT:1> : <NUM_LIT:2> ] += [ <NUM_LIT:1> ] <EOL> self . assertEquals ( x , [ <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> ] ) <EOL> self . assert_ ( x is y ) <EOL> def testCustomMethods1 ( self ) : <EOL> class aug_test : <EOL> def __init__ ( self , value ) : <EOL> self . val = value <EOL> def __radd__ ( self , val ) : <EOL> return self . val + val <EOL> def __add__ ( self , val ) : <EOL> return aug_test ( self . val + val ) <EOL> class aug_test2 ( aug_test ) : <EOL> def __iadd__ ( self , val ) : <EOL> self . val = self . val + val <EOL> return self <EOL> class aug_test3 ( aug_test ) : <EOL> def __iadd__ ( self , val ) : <EOL> return aug_test3 ( self . val + val ) <EOL> x = aug_test ( <NUM_LIT:1> ) <EOL> y = x <EOL> x += <NUM_LIT:10> <EOL> self . assert_ ( isinstance ( x , aug_test ) ) <EOL> self . assert_ ( y is not x ) <EOL> self . assertEquals ( x . val , <NUM_LIT:11> ) <EOL> x = aug_test2 ( <NUM_LIT:2> ) <EOL> y = x <EOL> x += <NUM_LIT:10> <EOL> self . assert_ ( y is x ) <EOL> self . assertEquals ( x . val , <NUM_LIT:12> ) <EOL> x = aug_test3 ( <NUM_LIT:3> ) <EOL> y = x <EOL> x += <NUM_LIT:10> <EOL> self . assert_ ( isinstance ( x , aug_test3 ) ) <EOL> self . assert_ ( y is not x ) <EOL> self . assertEquals ( x . val , <NUM_LIT> ) <EOL> def testCustomMethods2 ( test_self ) : <EOL> output = [ ] <EOL> class testall : <EOL> def __add__ ( self , val ) : <EOL> output . append ( "<STR_LIT>" ) <EOL> def __radd__ ( self , val ) : <EOL> output . append ( "<STR_LIT>" ) <EOL> def __iadd__ ( self , val ) : <EOL> output . append ( "<STR_LIT>" ) <EOL> return self <EOL> def __sub__ ( self , val ) : <EOL> output . append ( "<STR_LIT>" ) <EOL> def __rsub__ ( self , val ) : <EOL> output . append ( "<STR_LIT>" ) <EOL> def __isub__ ( self , val ) : <EOL> output . append ( "<STR_LIT>" ) <EOL> return self <EOL> def __mul__ ( self , val ) : <EOL> output . append ( "<STR_LIT>" ) <EOL> def __rmul__ ( self , val ) : <EOL> output . append ( "<STR_LIT>" ) <EOL> def __imul__ ( self , val ) : <EOL> output . append ( "<STR_LIT>" ) <EOL> return self <EOL> def __div__ ( self , val ) : <EOL> output . append ( "<STR_LIT>" ) <EOL> def __rdiv__ ( self , val ) : <EOL> output . append ( "<STR_LIT>" ) <EOL> def __idiv__ ( self , val ) : <EOL> output . append ( "<STR_LIT>" ) <EOL> return self <EOL> def __floordiv__ ( self , val ) : <EOL> output . append ( "<STR_LIT>" ) <EOL> return self <EOL> def __ifloordiv__ ( self , val ) : <EOL> output . append ( "<STR_LIT>" ) <EOL> return self <EOL> def __rfloordiv__ ( self , val ) : <EOL> output . append ( "<STR_LIT>" ) <EOL> return self <EOL> def __truediv__ ( self , val ) : <EOL> output . append ( "<STR_LIT>" ) <EOL> return self <EOL> def __itruediv__ ( self , val ) : <EOL> output . append ( "<STR_LIT>" ) <EOL> return self <EOL> def __mod__ ( self , val ) : <EOL> output . append ( "<STR_LIT>" ) <EOL> def __rmod__ ( self , val ) : <EOL> output . append ( "<STR_LIT>" ) <EOL> def __imod__ ( self , val ) : <EOL> output . append ( "<STR_LIT>" ) <EOL> return self <EOL> def __pow__ ( self , val ) : <EOL> output . append ( "<STR_LIT>" ) <EOL> def __rpow__ ( self , val ) : <EOL> output . append ( "<STR_LIT>" ) <EOL> def __ipow__ ( self , val ) : <EOL> output . append ( "<STR_LIT>" ) <EOL> return self <EOL> def __or__ ( self , val ) : <EOL> output . append ( "<STR_LIT>" ) <EOL> def __ror__ ( self , val ) : <EOL> output . append ( "<STR_LIT>" ) <EOL> def __ior__ ( self , val ) : <EOL> output . append ( "<STR_LIT>" ) <EOL> return self <EOL> def __and__ ( self , val ) : <EOL> output . append ( "<STR_LIT>" ) <EOL> def __rand__ ( self , val ) : <EOL> output . append ( "<STR_LIT>" ) <EOL> def __iand__ ( self , val ) : <EOL> output . append ( "<STR_LIT>" ) <EOL> return self <EOL> def __xor__ ( self , val ) : <EOL> output . append ( "<STR_LIT>" ) <EOL> def __rxor__ ( self , val ) : <EOL> output . append ( "<STR_LIT>" ) <EOL> def __ixor__ ( self , val ) : <EOL> output . append ( "<STR_LIT>" ) <EOL> return self <EOL> def __rshift__ ( self , val ) : <EOL> output . append ( "<STR_LIT>" ) <EOL> def __rrshift__ ( self , val ) : <EOL> output . append ( "<STR_LIT>" ) <EOL> def __irshift__ ( self , val ) : <EOL> output . append ( "<STR_LIT>" ) <EOL> return self <EOL> def __lshift__ ( self , val ) : <EOL> output . append ( "<STR_LIT>" ) <EOL> def __rlshift__ ( self , val ) : <EOL> output . append ( "<STR_LIT>" ) <EOL> def __ilshift__ ( self , val ) : <EOL> output . append ( "<STR_LIT>" ) <EOL> return self <EOL> x = testall ( ) <EOL> x + <NUM_LIT:1> <EOL> <NUM_LIT:1> + x <EOL> x += <NUM_LIT:1> <EOL> x - <NUM_LIT:1> <EOL> <NUM_LIT:1> - x <EOL> x -= <NUM_LIT:1> <EOL> x * <NUM_LIT:1> <EOL> <NUM_LIT:1> * x <EOL> x *= <NUM_LIT:1> <EOL> if <NUM_LIT:1> / <NUM_LIT:2> == <NUM_LIT:0> : <EOL> x / <NUM_LIT:1> <EOL> <NUM_LIT:1> / x <EOL> x /= <NUM_LIT:1> <EOL> else : <EOL> x . __div__ ( <NUM_LIT:1> ) <EOL> x . __rdiv__ ( <NUM_LIT:1> ) <EOL> x . __idiv__ ( <NUM_LIT:1> ) <EOL> x // <NUM_LIT:1> <EOL> <NUM_LIT:1> // x <EOL> x //= <NUM_LIT:1> <EOL> x % <NUM_LIT:1> <EOL> <NUM_LIT:1> % x <EOL> x %= <NUM_LIT:1> <EOL> x ** <NUM_LIT:1> <EOL> <NUM_LIT:1> ** x <EOL> x **= <NUM_LIT:1> <EOL> x | <NUM_LIT:1> <EOL> <NUM_LIT:1> | x <EOL> x |= <NUM_LIT:1> <EOL> x & <NUM_LIT:1> <EOL> <NUM_LIT:1> & x <EOL> x &= <NUM_LIT:1> <EOL> x ^ <NUM_LIT:1> <EOL> <NUM_LIT:1> ^ x <EOL> x ^= <NUM_LIT:1> <EOL> x >> <NUM_LIT:1> <EOL> <NUM_LIT:1> >> x <EOL> x >>= <NUM_LIT:1> <EOL> x << <NUM_LIT:1> <EOL> <NUM_LIT:1> << x <EOL> x <<= <NUM_LIT:1> <EOL> test_self . assertEquals ( output , '''<STR_LIT>''' . splitlines ( ) ) <EOL> def test_main ( ) : <EOL> run_unittest ( AugAssignTest ) <EOL> if __name__ == '<STR_LIT:__main__>' : <EOL> test_main ( ) </s>
