summaryrefslogtreecommitdiffstatshomepage
path: root/tests/basics/int_intbig.py
diff options
context:
space:
mode:
authorPaul Sokolovsky <pfalcon@users.sourceforge.net>2017-03-04 00:13:27 +0300
committerPaul Sokolovsky <pfalcon@users.sourceforge.net>2017-03-04 00:13:27 +0300
commit3ab6aa3a6d0506e805caa19369bef279c1c789b4 (patch)
tree1232b7c9b796c907a7202dcd46f5008724058b05 /tests/basics/int_intbig.py
parent89e570a5b4025976da66123032c58611f0f6cb17 (diff)
downloadmicropython-3ab6aa3a6d0506e805caa19369bef279c1c789b4.tar.gz
micropython-3ab6aa3a6d0506e805caa19369bef279c1c789b4.zip
tests/basic: Split tests into working with small ints and not working.
Tests which don't work with small ints are suffixed with _intbig.py. Some of these may still work with long long ints and need to be reclassified later.
Diffstat (limited to 'tests/basics/int_intbig.py')
-rw-r--r--tests/basics/int_intbig.py54
1 files changed, 54 insertions, 0 deletions
diff --git a/tests/basics/int_intbig.py b/tests/basics/int_intbig.py
new file mode 100644
index 0000000000..a22075d1f9
--- /dev/null
+++ b/tests/basics/int_intbig.py
@@ -0,0 +1,54 @@
+# This tests long ints for 32-bit machine
+
+a = 0x1ffffffff
+b = 0x100000000
+print(a)
+print(b)
+print(a + b)
+print(a - b)
+print(b - a)
+# overflows long long implementation
+#print(a * b)
+print(a // b)
+print(a % b)
+print("&", a & b)
+print(a | b)
+print(a ^ b)
+print(a << 3)
+print(a >> 1)
+
+a += b
+print(a)
+a -= 123456
+print(a)
+a *= 257
+print(a)
+a //= 257
+print(a)
+a %= b
+print(a)
+a ^= b
+print(a)
+a |= b
+print(a)
+a &= b
+print("&=", a)
+a <<= 5
+print(a)
+a >>= 1
+print(a)
+
+# Test referential integrity of long ints
+a = 0x1ffffffff
+b = a
+a += 1
+print(a)
+print(b)
+
+# Bitwise ops on 64-bit
+
+a = 0x1ffffffffffffffff
+b = 0x10000000000000000
+print("&", a & b)
+print(a | b)
+print(a ^ b)