Skip to content

Commit 5975edb

Browse files
fbourgeyCopilot
andauthored
special: add more tests (#1577)
Co-authored-by: Copilot <copilot@github.com>
1 parent f688f1a commit 5975edb

2 files changed

Lines changed: 124 additions & 7 deletions

File tree

scripts/test_coverage.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,9 @@
1414
# `scipy.stats.chi2_contingency` is a re-export of
1515
# `scipy.stats.contingency.chi2_contingency`, which is already tested in
1616
# `tests/stats/test_contingency.pyi`.
17-
"scipy.stats.chi2_contingency"
17+
"scipy.stats.chi2_contingency",
18+
# `scipy.special.digamma` is an alias of `scipy.special.psi`.
19+
"scipy.special.digamma",
1820
}
1921

2022
_PACKAGES_PUBLIC: Final = (

tests/special/test_basic.pyi

Lines changed: 121 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,38 @@ from typing import assert_type
33
import numpy as np
44
import optype.numpy as onp
55

6-
from scipy.special import comb, factorial, factorial2, factorialk, perm, polygamma, sinc, stirling2, zeta
6+
from scipy.special import (
7+
ai_zeros,
8+
bei_zeros,
9+
beip_zeros,
10+
ber_zeros,
11+
bernoulli,
12+
berp_zeros,
13+
bi_zeros,
14+
comb,
15+
erf_zeros,
16+
euler,
17+
factorial,
18+
factorial2,
19+
factorialk,
20+
fresnel_zeros,
21+
fresnelc_zeros,
22+
fresnels_zeros,
23+
kei_zeros,
24+
keip_zeros,
25+
kelvin_zeros,
26+
kerp_zeros,
27+
perm,
28+
polygamma,
29+
sinc,
30+
stirling2,
31+
y0_zeros,
32+
y1_zeros,
33+
y1p_zeros,
34+
yn_zeros,
35+
ynp_zeros,
36+
zeta,
37+
)
738

839
f_arr: onp.ArrayND[np.float64]
940
i_arr: onp.ArrayND[np.intp]
@@ -16,6 +47,95 @@ assert_type(sinc(1), np.float64)
1647
assert_type(sinc(1j), np.complex128)
1748
assert_type(sinc(i_arr), onp.ArrayND[np.float64])
1849

50+
# yn_zeros
51+
assert_type(yn_zeros(1, 5), onp.Array1D[np.float64])
52+
53+
# ynp_zeros
54+
assert_type(ynp_zeros(1, 5), onp.Array1D[np.float64])
55+
56+
# y0_zeros
57+
assert_type(y0_zeros(5, False), tuple[onp.Array1D[np.complex128], onp.Array1D[np.complex128]])
58+
assert_type(y0_zeros(5, True), tuple[onp.Array1D[np.complex128], onp.Array1D[np.complex128]])
59+
60+
# y1_zeros
61+
assert_type(y1_zeros(5, False), tuple[onp.Array1D[np.complex128], onp.Array1D[np.complex128]])
62+
assert_type(y1_zeros(5, True), tuple[onp.Array1D[np.complex128], onp.Array1D[np.complex128]])
63+
64+
# y1p_zeros
65+
assert_type(y1p_zeros(5, False), tuple[onp.Array1D[np.complex128], onp.Array1D[np.complex128]])
66+
assert_type(y1p_zeros(5, True), tuple[onp.Array1D[np.complex128], onp.Array1D[np.complex128]])
67+
68+
# erf_zeros
69+
assert_type(erf_zeros(5), onp.Array1D[np.complex128])
70+
71+
# fresnelc_zeros
72+
assert_type(fresnelc_zeros(5), onp.Array1D[np.complex128])
73+
74+
# fresnels_zeros
75+
assert_type(fresnels_zeros(5), onp.Array1D[np.complex128])
76+
77+
# fresnel_zeros
78+
assert_type(fresnel_zeros(5), onp.Array1D[np.complex128])
79+
80+
# polygamma
81+
assert_type(polygamma(1, 1.0), np.float64)
82+
assert_type(polygamma(1, f_arr), onp.ArrayND[np.float64])
83+
assert_type(polygamma(i_arr, 1.0), onp.ArrayND[np.float64])
84+
85+
# bernoulli
86+
assert_type(bernoulli(5), onp.Array1D[np.float64])
87+
assert_type(bernoulli(5.0), onp.Array1D[np.float64])
88+
89+
# euler
90+
assert_type(euler(5), onp.Array1D[np.float64])
91+
assert_type(euler(5.0), onp.Array1D[np.float64])
92+
93+
# ai_zeros
94+
assert_type(
95+
ai_zeros(5), tuple[onp.Array1D[np.float64], onp.Array1D[np.float64], onp.Array1D[np.float64], onp.Array1D[np.float64]]
96+
)
97+
98+
# bi_zeros
99+
assert_type(
100+
bi_zeros(5), tuple[onp.Array1D[np.float64], onp.Array1D[np.float64], onp.Array1D[np.float64], onp.Array1D[np.float64]]
101+
)
102+
103+
# ber_zeros
104+
assert_type(ber_zeros(5), onp.Array1D[np.float64])
105+
106+
# bei_zeros
107+
assert_type(bei_zeros(5), onp.Array1D[np.float64])
108+
109+
# kei_zeros
110+
assert_type(kei_zeros(5), onp.Array1D[np.float64])
111+
112+
# berp_zeros
113+
assert_type(berp_zeros(5), onp.Array1D[np.float64])
114+
115+
# beip_zeros
116+
assert_type(beip_zeros(5), onp.Array1D[np.float64])
117+
118+
# kerp_zeros
119+
assert_type(kerp_zeros(5), onp.Array1D[np.float64])
120+
121+
# keip_zeros
122+
assert_type(keip_zeros(5), onp.Array1D[np.float64])
123+
124+
# kelvin_zeros
125+
assert_type(
126+
kelvin_zeros(5),
127+
tuple[
128+
onp.Array1D[np.float64],
129+
onp.Array1D[np.float64],
130+
onp.Array1D[np.float64],
131+
onp.Array1D[np.float64],
132+
onp.Array1D[np.float64],
133+
onp.Array1D[np.float64],
134+
onp.Array1D[np.float64],
135+
onp.Array1D[np.float64],
136+
],
137+
)
138+
19139
# comb
20140
assert_type(comb(5, 2, exact=True), int)
21141
assert_type(comb(5.0, 2.0), np.float32 | np.float64)
@@ -61,11 +181,6 @@ assert_type(stirling2(5, 2), np.float64)
61181
assert_type(stirling2(5, i_arr), onp.ArrayND[np.float64])
62182
assert_type(stirling2(i_arr, 2), onp.ArrayND[np.float64])
63183

64-
# polygamma
65-
assert_type(polygamma(1, 1.0), np.float64)
66-
assert_type(polygamma(1, f_arr), onp.ArrayND[np.float64])
67-
assert_type(polygamma(i_arr, 1.0), onp.ArrayND[np.float64])
68-
69184
# zeta
70185
assert_type(zeta(2.0), np.float64)
71186
assert_type(zeta(2.0, f_arr), onp.ArrayND[np.float64])

0 commit comments

Comments
 (0)