MCPcopy Create free account
hub / github.com/numpy/numpy / test_special_values

Method test_special_values

numpy/core/tests/test_umath_complex.py:44–120  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

42
43 @platform_skip
44 def test_special_values(self):
45 # C99: Section G 6.3.1
46
47 check = check_complex_value
48 f = np.exp
49
50 # cexp(+-0 + 0i) is 1 + 0i
51 check(f, np.PZERO, 0, 1, 0, False)
52 check(f, np.NZERO, 0, 1, 0, False)
53
54 # cexp(x + infi) is nan + nani for finite x and raises 'invalid' FPU
55 # exception
56 check(f, 1, np.inf, np.nan, np.nan)
57 check(f, -1, np.inf, np.nan, np.nan)
58 check(f, 0, np.inf, np.nan, np.nan)
59
60 # cexp(inf + 0i) is inf + 0i
61 check(f, np.inf, 0, np.inf, 0)
62
63 # cexp(-inf + yi) is +0 * (cos(y) + i sin(y)) for finite y
64 check(f, -np.inf, 1, np.PZERO, np.PZERO)
65 check(f, -np.inf, 0.75 * np.pi, np.NZERO, np.PZERO)
66
67 # cexp(inf + yi) is +inf * (cos(y) + i sin(y)) for finite y
68 check(f, np.inf, 1, np.inf, np.inf)
69 check(f, np.inf, 0.75 * np.pi, -np.inf, np.inf)
70
71 # cexp(-inf + inf i) is +-0 +- 0i (signs unspecified)
72 def _check_ninf_inf(dummy):
73 msgform = "cexp(-inf, inf) is (%f, %f), expected (+-0, +-0)"
74 with np.errstate(invalid='ignore'):
75 z = f(np.array(complex(-np.inf, np.inf)))
76 if z.real != 0 or z.imag != 0:
77 raise AssertionError(msgform % (z.real, z.imag))
78
79 _check_ninf_inf(None)
80
81 # cexp(inf + inf i) is +-inf + NaNi and raised invalid FPU ex.
82 def _check_inf_inf(dummy):
83 msgform = "cexp(inf, inf) is (%f, %f), expected (+-inf, nan)"
84 with np.errstate(invalid='ignore'):
85 z = f(np.array(complex(np.inf, np.inf)))
86 if not np.isinf(z.real) or not np.isnan(z.imag):
87 raise AssertionError(msgform % (z.real, z.imag))
88
89 _check_inf_inf(None)
90
91 # cexp(-inf + nan i) is +-0 +- 0i
92 def _check_ninf_nan(dummy):
93 msgform = "cexp(-inf, nan) is (%f, %f), expected (+-0, +-0)"
94 with np.errstate(invalid='ignore'):
95 z = f(np.array(complex(-np.inf, np.nan)))
96 if z.real != 0 or z.imag != 0:
97 raise AssertionError(msgform % (z.real, z.imag))
98
99 _check_ninf_nan(None)
100
101 # cexp(inf + nan i) is +-inf + nan

Callers

nothing calls this directly

Calls 1

checkFunction · 0.85

Tested by

no test coverage detected