summaryrefslogtreecommitdiffstatshomepage
path: root/tests/float/math_domain_special.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/float/math_domain_special.py')
-rw-r--r--tests/float/math_domain_special.py36
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/float/math_domain_special.py b/tests/float/math_domain_special.py
new file mode 100644
index 0000000000..388920350e
--- /dev/null
+++ b/tests/float/math_domain_special.py
@@ -0,0 +1,36 @@
+# Tests domain errors in special math functions
+
+try:
+ import math
+ math.erf
+except (ImportError, AttributeError):
+ print("SKIP")
+ raise SystemExit
+
+inf = float('inf')
+nan = float('nan')
+
+# single argument functions
+for name, f, args in (
+ ('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)),
+ ):
+ for x in args + (inf, nan):
+ try:
+ ans = f(x)
+ print('%.4f' % ans)
+ except ValueError:
+ print(name, 'ValueError')
+ except OverflowError:
+ print(name, 'OverflowError')