micropython: add micropython component
This commit is contained in:
51
components/language/micropython/tests/float/math_domain.py
Normal file
51
components/language/micropython/tests/float/math_domain.py
Normal file
@@ -0,0 +1,51 @@
|
||||
# Tests domain errors in math functions
|
||||
|
||||
try:
|
||||
import math
|
||||
except ImportError:
|
||||
print("SKIP")
|
||||
raise SystemExit
|
||||
|
||||
inf = float("inf")
|
||||
nan = float("nan")
|
||||
|
||||
# single argument functions
|
||||
for name, f, args in (
|
||||
("fabs", math.fabs, ()),
|
||||
("ceil", math.ceil, ()),
|
||||
("floor", math.floor, ()),
|
||||
("trunc", math.trunc, ()),
|
||||
("sqrt", math.sqrt, (-1, 0)),
|
||||
("exp", math.exp, ()),
|
||||
("sin", math.sin, ()),
|
||||
("cos", math.cos, ()),
|
||||
("tan", math.tan, ()),
|
||||
("asin", math.asin, (-1.1, 1, 1.1)),
|
||||
("acos", math.acos, (-1.1, 1, 1.1)),
|
||||
("atan", math.atan, ()),
|
||||
("ldexp", lambda x: math.ldexp(x, 0), ()),
|
||||
("radians", math.radians, ()),
|
||||
("degrees", math.degrees, ()),
|
||||
):
|
||||
for x in args + (inf, nan):
|
||||
try:
|
||||
ans = f(x)
|
||||
print("%.4f" % ans)
|
||||
except ValueError:
|
||||
print(name, "ValueError")
|
||||
except OverflowError:
|
||||
print(name, "OverflowError")
|
||||
|
||||
# double argument functions
|
||||
for name, f, args in (
|
||||
("pow", math.pow, ((0, 2), (-1, 2), (0, -1), (-1, 2.3), (nan, 0), (1, nan))),
|
||||
("fmod", math.fmod, ((1.2, inf), (1.2, -inf), (1.2, 0), (inf, 1.2))),
|
||||
("atan2", math.atan2, ((0, 0), (-inf, inf), (-inf, -inf), (inf, -inf))),
|
||||
("copysign", math.copysign, ()),
|
||||
):
|
||||
for x in args + ((0, inf), (inf, 0), (inf, inf), (inf, nan), (nan, inf), (nan, nan)):
|
||||
try:
|
||||
ans = f(*x)
|
||||
print("%.4f" % ans)
|
||||
except ValueError:
|
||||
print(name, "ValueError")
|
Reference in New Issue
Block a user