summaryrefslogtreecommitdiff
path: root/tests/basics/int-big-and.py
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2014-05-29 15:01:49 +0100
committerDamien George <damien.p.george@gmail.com>2014-05-29 15:01:49 +0100
commitf55cf10101800139fdfd5155f0097fc47bd5a514 (patch)
tree4bc9072b778f187d58999773ab09f9757ec4a4d8 /tests/basics/int-big-and.py
parentd1e355ea8e2a5a17ee126f5c3d173b2e6f33e460 (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.py24
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)