From f55cf10101800139fdfd5155f0097fc47bd5a514 Mon Sep 17 00:00:00 2001 From: Damien George Date: Thu, 29 May 2014 15:01:49 +0100 Subject: py: Implement bignum '&' with negatives on lhs and rhs. Needs proper coverage testing. Doesn't implement -ve & -ve. Addresses issue #611. --- tests/basics/int-big-and.py | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) (limited to 'tests') diff --git a/tests/basics/int-big-and.py b/tests/basics/int-big-and.py index 75fbd5288..a48848dbf 100644 --- a/tests/basics/int-big-and.py +++ b/tests/basics/int-big-and.py @@ -2,7 +2,23 @@ print(0 & (1 << 80)) print(0 & (1 << 80) == 0) print(bool(0 & (1 << 80))) -#a = 0xfffffffffffffffffffffffffffff -#print(a & (1 << 80)) -#print((a & (1 << 80)) >> 80) -#print((a & (1 << 80)) >> 80 == 1) +a = 0xfffffffffffffffffffffffffffff +print(a & (1 << 80)) +print((a & (1 << 80)) >> 80) +print((a & (1 << 80)) >> 80 == 1) + +# test negative on rhs +a = 123456789012345678901234567890 +print(a & -1) +print(a & -2) +print(a & -2345678901234567890123456789) +print(a & (-a)) + +# test negative on lhs +a = 123456789012345678901234567890 +print(-1 & a) +print(-2 & a) +print(-2345678901234567890123456789 & a) +print((-a) & a) +print((-a) & 0xffffffff) +print((-a) & 0xffffffffffffffffffffffffffffffff) -- cgit v1.2.3