summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorYoctopuce dev <dev@yoctopuce.com>2025-07-20 16:38:33 +0200
committerDamien George <damien@micropython.org>2025-07-29 01:14:35 +1000
commit3a72f95919323d7a36cb3d153d92de90d64853a1 (patch)
tree69071a3e8593e0225851adba79cf0018ed038355 /tests
parent3c69277ba9e0f1e66c341c084320f7a763e1bdeb (diff)
py/objint_longlong: Fix longlong interoperability with floats.
Current longlong implementation does not allow a float as RHS of mathematic operators, as it lacks the delegation code present in mpz. Signed-off-by: Yoctopuce dev <dev@yoctopuce.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/float/int_64_float.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/tests/float/int_64_float.py b/tests/float/int_64_float.py
new file mode 100644
index 000000000..ffdb0c71d
--- /dev/null
+++ b/tests/float/int_64_float.py
@@ -0,0 +1,25 @@
+# test int64 operation with float/complex
+
+i = 1 << 40
+
+# convert int64 to float on rhs
+print("%.5g" % (2.0 * i))
+
+# negative int64 as float
+print("%.5g" % float(-i))
+
+# this should convert to float
+print("%.5g" % (i / 5))
+
+# these should delegate to float
+print("%.5g" % (i * 1.2))
+print("%.5g" % (i / 1.2))
+
+# negative power should produce float
+print("%.5g" % (i**-1))
+print("%.5g" % ((2 + i - i) ** -3))
+
+try:
+ i / 0
+except ZeroDivisionError:
+ print("ZeroDivisionError")