tests/float: Test domain errors for more combos of args to math funcs.

Instead of having a special set of arguments to test for each math-module
function, just test all functions with all sets of arguments.  This gives
improved test cases to prevent regressions.

Signed-off-by: Damien George <damien@micropython.org>
This commit is contained in:
Damien George
2023-06-16 12:08:34 +10:00
parent 47dc7d0130
commit ed962f1f23
3 changed files with 94 additions and 44 deletions

View File

@@ -0,0 +1,26 @@
# Tests domain errors in math functions.
# This is split out from math_domain.py because math.pow(0, -inf) was changed
# in Python 3.11, and so this test requires a .py.exp file.
# (See https://github.com/python/cpython/issues/88505)
try:
import math
except ImportError:
print("SKIP")
raise SystemExit
inf = float("inf")
for name, f in (
("pow", math.pow),
("log", math.log),
("fmod", math.fmod),
("atan2", math.atan2),
("copysign", math.copysign),
):
for x in ((0, -inf),):
try:
ans = "%.4f" % f(*x)
except ValueError:
ans = "ValueError"
print("%s(%.4f, %.4f) = %s" % (name, x[0], x[1], ans))