<s> import sys , py <EOL> from pypy . objspace . std . inttype import wrapint <EOL> from pypy . objspace . std . objspace import FailedToImplement <EOL> from pypy . rlib . rarithmetic import r_uint <EOL> from pypy . conftest import gettestobjspace <EOL> class TestW_IntObject : <EOL> def setup_class ( cls ) : <EOL> cls . space = gettestobjspace ( ** { "<STR_LIT>" : True } ) <EOL> def test_int_w ( self ) : <EOL> assert self . space . int_w ( self . space . wrap ( <NUM_LIT> ) ) == <NUM_LIT> <EOL> def test_uint_w ( self ) : <EOL> space = self . space <EOL> assert space . uint_w ( space . wrap ( <NUM_LIT> ) ) == <NUM_LIT> <EOL> assert isinstance ( space . uint_w ( space . wrap ( <NUM_LIT> ) ) , r_uint ) <EOL> space . raises_w ( space . w_ValueError , space . uint_w , space . wrap ( - <NUM_LIT:1> ) ) <EOL> def test_repr ( self ) : <EOL> x = <NUM_LIT:1> <EOL> f1 = wrapint ( self . space , x ) <EOL> result = self . space . repr ( f1 ) <EOL> assert self . space . unwrap ( result ) == repr ( x ) <EOL> def test_str ( self ) : <EOL> x = <NUM_LIT> <EOL> f1 = wrapint ( self . space , x ) <EOL> result = self . space . str ( f1 ) <EOL> assert self . space . unwrap ( result ) == str ( x ) <EOL> def test_hash ( self ) : <EOL> x = <NUM_LIT> <EOL> f1 = wrapint ( self . space , x ) <EOL> result = self . space . hash ( f1 ) <EOL> assert result . intval == hash ( x ) <EOL> def test_compare ( self ) : <EOL> import operator <EOL> optab = [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] <EOL> for x in ( - <NUM_LIT:10> , - <NUM_LIT:1> , <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:1000> , sys . maxint ) : <EOL> for y in ( - sys . maxint - <NUM_LIT:1> , - <NUM_LIT:11> , - <NUM_LIT:9> , - <NUM_LIT:2> , <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:3> , <NUM_LIT> , sys . maxint ) : <EOL> for op in optab : <EOL> wx = wrapint ( self . space , x ) <EOL> wy = wrapint ( self . space , y ) <EOL> res = getattr ( operator , op ) ( x , y ) <EOL> method = getattr ( self . space , op ) <EOL> myres = method ( wx , wy ) <EOL> assert self . space . unwrap ( myres ) == res <EOL> def test_add ( self ) : <EOL> for x in [ <NUM_LIT:1> , <NUM_LIT:100> , sys . maxint // <NUM_LIT:2> - <NUM_LIT:50> , <EOL> sys . maxint // <NUM_LIT:2> , sys . maxint - <NUM_LIT:1000> , sys . maxint ] : <EOL> for y in [ <NUM_LIT:1> , <NUM_LIT:100> , sys . maxint // <NUM_LIT:2> - <NUM_LIT:50> , <EOL> sys . maxint // <NUM_LIT:2> , sys . maxint - <NUM_LIT:1000> , sys . maxint ] : <EOL> f1 = wrapint ( self . space , x ) <EOL> f2 = wrapint ( self . space , y ) <EOL> result = self . space . unwrap ( self . space . add ( f1 , f2 ) ) <EOL> assert result == x + y and type ( result ) == type ( x + y ) <EOL> def test_sub ( self ) : <EOL> for x in [ <NUM_LIT:1> , <NUM_LIT:100> , sys . maxint // <NUM_LIT:2> - <NUM_LIT:50> , <EOL> sys . maxint // <NUM_LIT:2> , sys . maxint - <NUM_LIT:1000> , sys . maxint ] : <EOL> for y in [ <NUM_LIT:1> , <NUM_LIT:100> , sys . maxint // <NUM_LIT:2> - <NUM_LIT:50> , <EOL> sys . maxint // <NUM_LIT:2> , sys . maxint - <NUM_LIT:1000> , sys . maxint ] : <EOL> f1 = wrapint ( self . space , x ) <EOL> f2 = wrapint ( self . space , y ) <EOL> result = self . space . unwrap ( self . space . sub ( f1 , f2 ) ) <EOL> assert result == x - y and type ( result ) == type ( x - y ) <EOL> def test_mul ( self ) : <EOL> for x in [ <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:100> , sys . maxint // <NUM_LIT:2> - <NUM_LIT:50> , sys . maxint - <NUM_LIT:1000> ] : <EOL> for y in [ <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:100> , sys . maxint // <NUM_LIT:2> - <NUM_LIT:50> , sys . maxint - <NUM_LIT:1000> ] : <EOL> f1 = wrapint ( self . space , x ) <EOL> f2 = wrapint ( self . space , y ) <EOL> result = self . space . unwrap ( self . space . mul ( f1 , f2 ) ) <EOL> assert result == x * y and type ( result ) == type ( x * y ) <EOL> def test_div ( self ) : <EOL> for i in range ( <NUM_LIT:10> ) : <EOL> res = i // <NUM_LIT:3> <EOL> f1 = wrapint ( self . space , i ) <EOL> f2 = wrapint ( self . space , <NUM_LIT:3> ) <EOL> result = self . space . div ( f1 , f2 ) <EOL> assert result . intval == res <EOL> def test_mod ( self ) : <EOL> x = <NUM_LIT:1> <EOL> y = <NUM_LIT:2> <EOL> f1 = wrapint ( self . space , x ) <EOL> f2 = wrapint ( self . space , y ) <EOL> v = self . space . mod ( f1 , f2 ) <EOL> assert v . intval == x % y <EOL> def test_divmod ( self ) : <EOL> x = <NUM_LIT:1> <EOL> y = <NUM_LIT:2> <EOL> f1 = wrapint ( self . space , x ) <EOL> f2 = wrapint ( self . space , y ) <EOL> ret = self . space . divmod ( f1 , f2 ) <EOL> v , w = self . space . unwrap ( ret ) <EOL> assert ( v , w ) == divmod ( x , y ) <EOL> def test_pow_iii ( self ) : <EOL> x = <NUM_LIT:10> <EOL> y = <NUM_LIT:2> <EOL> z = <NUM_LIT> <EOL> f1 = wrapint ( self . space , x ) <EOL> f2 = wrapint ( self . space , y ) <EOL> f3 = wrapint ( self . space , z ) <EOL> v = self . space . pow ( f1 , f2 , f3 ) <EOL> assert v . intval == pow ( x , y , z ) <EOL> f1 , f2 , f3 = [ wrapint ( self . space , i ) for i in ( <NUM_LIT:10> , - <NUM_LIT:1> , <NUM_LIT> ) ] <EOL> self . space . raises_w ( self . space . w_TypeError , <EOL> self . space . pow , <EOL> f1 , f2 , f3 ) <EOL> f1 , f2 , f3 = [ wrapint ( self . space , i ) for i in ( <NUM_LIT:10> , <NUM_LIT:5> , <NUM_LIT:0> ) ] <EOL> self . space . raises_w ( self . space . w_ValueError , <EOL> self . space . pow , <EOL> f1 , f2 , f3 ) <EOL> def test_pow_iin ( self ) : <EOL> x = <NUM_LIT:10> <EOL> y = <NUM_LIT:2> <EOL> f1 = wrapint ( self . space , x ) <EOL> f2 = wrapint ( self . space , y ) <EOL> v = self . space . pow ( f1 , f2 , self . space . w_None ) <EOL> assert v . intval == x ** y <EOL> def test_neg ( self ) : <EOL> x = <NUM_LIT> <EOL> f1 = wrapint ( self . space , x ) <EOL> v = self . space . neg ( f1 ) <EOL> assert v . intval == - x <EOL> def test_pos ( self ) : <EOL> x = <NUM_LIT> <EOL> f1 = wrapint ( self . space , x ) <EOL> v = self . space . pos ( f1 ) <EOL> assert v . intval == + x <EOL> x = - <NUM_LIT> <EOL> f1 = wrapint ( self . space , x ) <EOL> v = self . space . pos ( f1 ) <EOL> assert v . intval == + x <EOL> def test_abs ( self ) : <EOL> x = <NUM_LIT> <EOL> f1 = wrapint ( self . space , x ) <EOL> v = self . space . abs ( f1 ) <EOL> assert v . intval == abs ( x ) <EOL> x = - <NUM_LIT> <EOL> f1 = wrapint ( self . space , x ) <EOL> v = self . space . abs ( f1 ) <EOL> assert v . intval == abs ( x ) <EOL> def test_invert ( self ) : <EOL> x = <NUM_LIT> <EOL> f1 = wrapint ( self . space , x ) <EOL> v = self . space . invert ( f1 ) <EOL> assert v . intval == ~ x <EOL> def test_lshift ( self ) : <EOL> x = <NUM_LIT> <EOL> y = <NUM_LIT:2> <EOL> f1 = wrapint ( self . space , x ) <EOL> f2 = wrapint ( self . space , y ) <EOL> v = self . space . lshift ( f1 , f2 ) <EOL> assert v . intval == x << y <EOL> def test_rshift ( self ) : <EOL> x = <NUM_LIT> <EOL> y = <NUM_LIT:2> <EOL> f1 = wrapint ( self . space , x ) <EOL> f2 = wrapint ( self . space , y ) <EOL> v = self . space . rshift ( f1 , f2 ) <EOL> assert v . intval == x >> y <EOL> def test_and ( self ) : <EOL> x = <NUM_LIT> <EOL> y = <NUM_LIT:2> <EOL> f1 = wrapint ( self . space , x ) <EOL> f2 = wrapint ( self . space , y ) <EOL> v = self . space . and_ ( f1 , f2 ) <EOL> assert v . intval == x & y <EOL> def test_xor ( self ) : <EOL> x = <NUM_LIT> <EOL> y = <NUM_LIT:2> <EOL> f1 = wrapint ( self . space , x ) <EOL> f2 = wrapint ( self . space , y ) <EOL> v = self . space . xor ( f1 , f2 ) <EOL> assert v . intval == x ^ y <EOL> def test_or ( self ) : <EOL> x = <NUM_LIT> <EOL> y = <NUM_LIT:2> <EOL> f1 = wrapint ( self . space , x ) <EOL> f2 = wrapint ( self . space , y ) <EOL> v = self . space . or_ ( f1 , f2 ) <EOL> assert v . intval == x | y <EOL> def test_int ( self ) : <EOL> f1 = wrapint ( self . space , <NUM_LIT:1> ) <EOL> result = self . space . int ( f1 ) <EOL> assert result == f1 <EOL> def test_oct ( self ) : <EOL> x = <NUM_LIT:0> <NUM_LIT> <EOL> f1 = wrapint ( self . space , x ) <EOL> result = self . space . oct ( f1 ) <EOL> assert self . space . unwrap ( result ) == oct ( x ) <EOL> def test_hex ( self ) : <EOL> x = <NUM_LIT> <EOL> f1 = wrapint ( self . space , x ) <EOL> result = self . space . hex ( f1 ) <EOL> assert self . space . unwrap ( result ) == hex ( x ) </s>
