aboutsummaryrefslogtreecommitdiff
path: root/tests/float
diff options
context:
space:
mode:
authorDamien George2020-09-04 11:04:46 +1000
committerDamien George2020-09-11 10:03:57 +1000
commit8d5a40c86e384bf3cddb2f687374e0bb1ae6df7d (patch)
treeab7068d18e41e1c19d4a7fa62f08875a65594520 /tests/float
parent709398daae14b3630de7050e08b9e77ea1232716 (diff)
py/objfloat: Fix handling of negative float to power of nan.
Prior to this commit, pow(-2, float('nan')) would return (nan+nanj), or raise an exception on targets that don't support complex numbers. This is fixed to return simply nan, as CPython does. Signed-off-by: Damien George <damien@micropython.org>
Diffstat (limited to 'tests/float')
-rw-r--r--tests/float/inf_nan_arith.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/float/inf_nan_arith.py b/tests/float/inf_nan_arith.py
new file mode 100644
index 000000000..c27e38bc5
--- /dev/null
+++ b/tests/float/inf_nan_arith.py
@@ -0,0 +1,20 @@
+# Test behaviour of inf and nan in basic float operations
+
+inf = float("inf")
+nan = float("nan")
+
+values = (-2, -1, 0, 1, 2, inf, nan)
+
+for x in values:
+ for y in values:
+ print(x, y)
+ print(" + - *", x + y, x - y, x * y)
+ try:
+ print(" /", x / y)
+ except ZeroDivisionError:
+ print(" / ZeroDivisionError")
+ try:
+ print(" ** pow", x ** y, pow(x, y))
+ except ZeroDivisionError:
+ print(" ** pow ZeroDivisionError")
+ print(" == != < <= > >=", x == y, x != y, x < y, x <= y, x > y, x >= y)