micropython/tests/float/math_fun_special.py

53 lines
1.1 KiB
Python

# test the special functions imported from math
try:
from math import *
erf
except (ImportError, NameError):
print("SKIP")
raise SystemExit
test_values = [
-8.0,
-2.5,
-1,
-0.5,
0.0,
0.5,
2.5,
8.0,
]
pos_test_values = [
0.001,
0.1,
0.5,
1.0,
1.5,
10.0,
]
functions = [
("expm1", expm1, test_values),
("log2", log2, test_values),
("log10", log10, test_values),
("cosh", cosh, test_values),
("sinh", sinh, test_values),
("tanh", tanh, [-1e6, -100] + test_values + [100, 1e6]),
("acosh", acosh, [1.0, 5.0, 1.0]),
("asinh", asinh, test_values),
("atanh", atanh, [-0.99, -0.5, 0.0, 0.5, 0.99]),
("erf", erf, test_values),
("erfc", erfc, test_values),
("gamma", gamma, pos_test_values),
("lgamma", lgamma, pos_test_values + [50.0, 100.0]),
]
for function_name, function, test_vals in functions:
for value in test_vals:
try:
ans = "{:.4g}".format(function(value))
except ValueError as e:
ans = str(e)
print("{}({:.4g}) = {}".format(function_name, value, ans))