diff options
author | Damien George <damien.p.george@gmail.com> | 2014-05-29 15:01:49 +0100 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2014-05-29 15:01:49 +0100 |
commit | f55cf10101800139fdfd5155f0097fc47bd5a514 (patch) | |
tree | 4bc9072b778f187d58999773ab09f9757ec4a4d8 /tests/basics/int-big-and.py | |
parent | d1e355ea8e2a5a17ee126f5c3d173b2e6f33e460 (diff) |
py: Implement bignum '&' with negatives on lhs and rhs.
Needs proper coverage testing. Doesn't implement -ve & -ve.
Addresses issue #611.
Diffstat (limited to 'tests/basics/int-big-and.py')
-rw-r--r-- | tests/basics/int-big-and.py | 24 |
1 files changed, 20 insertions, 4 deletions
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) |