2017-10-04 11:00:05 +01:00
|
|
|
# Tests domain errors in special math functions
|
|
|
|
|
|
|
|
try:
|
|
|
|
import math
|
2020-03-23 02:26:08 +00:00
|
|
|
|
2017-10-04 11:00:05 +01:00
|
|
|
math.erf
|
|
|
|
except (ImportError, AttributeError):
|
|
|
|
print("SKIP")
|
|
|
|
raise SystemExit
|
|
|
|
|
2020-03-23 02:26:08 +00:00
|
|
|
inf = float("inf")
|
|
|
|
nan = float("nan")
|
2017-10-04 11:00:05 +01:00
|
|
|
|
|
|
|
# single argument functions
|
|
|
|
for name, f, args in (
|
2020-03-23 02:26:08 +00:00
|
|
|
("expm1", math.exp, ()),
|
|
|
|
("log2", math.log2, (-1, 0)),
|
|
|
|
("log10", math.log10, (-1, 0)),
|
|
|
|
("sinh", math.sinh, ()),
|
|
|
|
("cosh", math.cosh, ()),
|
|
|
|
("tanh", math.tanh, ()),
|
|
|
|
("asinh", math.asinh, ()),
|
|
|
|
("acosh", math.acosh, (-1, 0.9, 1)),
|
|
|
|
("atanh", math.atanh, (-1, 1)),
|
|
|
|
("erf", math.erf, ()),
|
|
|
|
("erfc", math.erfc, ()),
|
|
|
|
("gamma", math.gamma, (-2, -1, 0, 1)),
|
|
|
|
("lgamma", math.lgamma, (-2, -1, 0, 1)),
|
|
|
|
):
|
2018-09-04 08:03:37 +01:00
|
|
|
for x in args + (inf, -inf, nan):
|
2017-10-04 11:00:05 +01:00
|
|
|
try:
|
|
|
|
ans = f(x)
|
2020-03-23 02:26:08 +00:00
|
|
|
print("%.4f" % ans)
|
2017-10-04 11:00:05 +01:00
|
|
|
except ValueError:
|
2020-03-23 02:26:08 +00:00
|
|
|
print(name, "ValueError")
|
2017-10-04 11:00:05 +01:00
|
|
|
except OverflowError:
|
2020-03-23 02:26:08 +00:00
|
|
|
print(name, "OverflowError")
|