codekingpro/portable-devtools
114k
1from collections.abc import Callable
2from fractions import Fraction
3from typing import Any, LiteralString, assert_type, type_check_only
4
5import numpy as np
6import numpy.typing as npt
7
8f8: np.float64
9AR_LIKE_b: list[bool]
10AR_LIKE_i8: list[int]
11AR_LIKE_f8: list[float]
12AR_LIKE_c16: list[complex]
13AR_LIKE_O: list[Fraction]
14
15AR_u1: npt.NDArray[np.uint8]
16AR_i8: npt.NDArray[np.int64]
17AR_f2: npt.NDArray[np.float16]
18AR_f4: npt.NDArray[np.float32]
19AR_f8: npt.NDArray[np.float64]
20AR_f10: npt.NDArray[np.longdouble]
21AR_c8: npt.NDArray[np.complex64]
22AR_c16: npt.NDArray[np.complex128]
23AR_c20: npt.NDArray[np.clongdouble]
24AR_m: npt.NDArray[np.timedelta64]
25AR_M: npt.NDArray[np.datetime64]
26AR_O: npt.NDArray[np.object_]
27AR_b: npt.NDArray[np.bool]
28AR_U: npt.NDArray[np.str_]
29CHAR_AR_U: np.char.chararray[tuple[Any, ...], np.dtype[np.str_]]
30
31AR_f8_1d: np.ndarray[tuple[int], np.dtype[np.float64]]
32AR_f8_2d: np.ndarray[tuple[int, int], np.dtype[np.float64]]
33AR_f8_3d: np.ndarray[tuple[int, int, int], np.dtype[np.float64]]
34AR_c16_1d: np.ndarray[tuple[int], np.dtype[np.complex128]]
35
36AR_b_list: list[npt.NDArray[np.bool]]
37
38@type_check_only
39def func(a: np.ndarray, posarg: bool = ..., /, arg: int = ..., *, kwarg: str = ...) -> np.ndarray: ...
40@type_check_only
41def func_f8(a: npt.NDArray[np.float64]) -> npt.NDArray[np.float64]: ...
42
43###
44
45# vectorize
46vectorized_func: np.vectorize
47assert_type(vectorized_func.pyfunc, Callable[..., Any])
48assert_type(vectorized_func.cache, bool)
49assert_type(vectorized_func.signature, LiteralString | None)
50assert_type(vectorized_func.otypes, LiteralString | None)
51assert_type(vectorized_func.excluded, set[int | str])
52assert_type(vectorized_func.__doc__, str | None)
53assert_type(vectorized_func([1]), Any)
54assert_type(np.vectorize(int), np.vectorize)
55assert_type(
56 np.vectorize(int, otypes="i", doc="doc", excluded=(), cache=True, signature=None),
57 np.vectorize,
58)
59
60# rot90
61assert_type(np.rot90(AR_f8_1d), np.ndarray[tuple[int], np.dtype[np.float64]])
62assert_type(np.rot90(AR_f8, k=2), npt.NDArray[np.float64])
63assert_type(np.rot90(AR_LIKE_f8, axes=(0, 1)), np.ndarray)
64
65# flip
66assert_type(np.flip(AR_f8_1d), np.ndarray[tuple[int], np.dtype[np.float64]])
67assert_type(np.flip(AR_f8, axis=(0, 1)), npt.NDArray[np.float64])
68assert_type(np.flip(AR_LIKE_f8, axis=0), np.ndarray)
69
70# iterable
71assert_type(np.iterable(1), bool)
72assert_type(np.iterable([1]), bool)
73
74# average
75assert_type(np.average(AR_f8_2d), np.float64)
76assert_type(np.average(AR_f8_2d, axis=1), npt.NDArray[np.float64])
77assert_type(np.average(AR_f8_2d, keepdims=True), np.ndarray[tuple[int, int], np.dtype[np.float64]])
78assert_type(np.average(AR_f8), np.float64)
79assert_type(np.average(AR_f8, axis=1), npt.NDArray[np.float64])
80assert_type(np.average(AR_f8, keepdims=True), npt.NDArray[np.float64])
81assert_type(np.average(AR_f8, returned=True), tuple[np.float64, np.float64])
82assert_type(np.average(AR_f8, axis=1, returned=True), tuple[npt.NDArray[np.float64], npt.NDArray[np.float64]])
83assert_type(np.average(AR_f8, keepdims=True, returned=True), tuple[npt.NDArray[np.float64], npt.NDArray[np.float64]])
84assert_type(np.average(AR_LIKE_f8), np.float64)
85assert_type(np.average(AR_LIKE_f8, weights=AR_f8), np.float64)
86assert_type(np.average(AR_LIKE_f8, axis=1), npt.NDArray[np.float64])
87assert_type(np.average(AR_LIKE_f8, keepdims=True), npt.NDArray[np.float64])
88assert_type(np.average(AR_LIKE_f8, returned=True), tuple[np.float64, np.float64])
89assert_type(np.average(AR_LIKE_f8, axis=1, returned=True), tuple[npt.NDArray[np.float64], npt.NDArray[np.float64]])
90assert_type(np.average(AR_LIKE_f8, keepdims=True, returned=True), tuple[npt.NDArray[np.float64], npt.NDArray[np.float64]])
91assert_type(np.average(AR_O), Any)
92assert_type(np.average(AR_O, axis=1), np.ndarray)
93assert_type(np.average(AR_O, keepdims=True), np.ndarray)
94assert_type(np.average(AR_O, returned=True), tuple[Any, Any])
95assert_type(np.average(AR_O, axis=1, returned=True), tuple[np.ndarray, np.ndarray])
96assert_type(np.average(AR_O, keepdims=True, returned=True), tuple[np.ndarray, np.ndarray])
97
98# asarray_chkfinite
99assert_type(np.asarray_chkfinite(AR_f8_1d), np.ndarray[tuple[int], np.dtype[np.float64]])
100assert_type(np.asarray_chkfinite(AR_f8), npt.NDArray[np.float64])
101assert_type(np.asarray_chkfinite(AR_LIKE_f8), np.ndarray)
102assert_type(np.asarray_chkfinite(AR_f8, dtype=np.float64), npt.NDArray[np.float64])
103assert_type(np.asarray_chkfinite(AR_f8, dtype=float), np.ndarray)
104
105# piecewise
106assert_type(np.piecewise(AR_f8_1d, AR_b, [func]), np.ndarray[tuple[int], np.dtype[np.float64]])
107assert_type(np.piecewise(AR_f8, AR_b, [func]), npt.NDArray[np.float64])
108assert_type(np.piecewise(AR_f8, AR_b, [func_f8]), npt.NDArray[np.float64])
109assert_type(np.piecewise(AR_f8, AR_b_list, [func]), npt.NDArray[np.float64])
110assert_type(np.piecewise(AR_f8, AR_b_list, [func_f8]), npt.NDArray[np.float64])
111assert_type(np.piecewise(AR_f8, AR_b_list, [func], True, -1, kwarg=""), npt.NDArray[np.float64])
112assert_type(np.piecewise(AR_f8, AR_b_list, [func], True, arg=-1, kwarg=""), npt.NDArray[np.float64])
113assert_type(np.piecewise(AR_LIKE_f8, AR_b_list, [func]), np.ndarray)
114assert_type(np.piecewise(AR_LIKE_f8, AR_b_list, [func_f8]), npt.NDArray[np.float64])
115
116# extract
117assert_type(np.extract(AR_i8, AR_f8), np.ndarray[tuple[int], np.dtype[np.float64]])
118assert_type(np.extract(AR_i8, AR_LIKE_b), np.ndarray[tuple[int], np.dtype[np.bool]])
119assert_type(np.extract(AR_i8, AR_LIKE_i8), np.ndarray[tuple[int], np.dtype[np.int_]])
120assert_type(np.extract(AR_i8, AR_LIKE_f8), np.ndarray[tuple[int], np.dtype[np.float64]])
121assert_type(np.extract(AR_i8, AR_LIKE_c16), np.ndarray[tuple[int], np.dtype[np.complex128]])
122
123# select
124assert_type(np.select([AR_b], [AR_f8_1d]), np.ndarray[tuple[int], np.dtype[np.float64]])
125assert_type(np.select([AR_b], [AR_f8]), npt.NDArray[np.float64])
126
127# places
128assert_type(np.place(AR_f8, mask=AR_i8, vals=5.0), None)
129
130# copy
131assert_type(np.copy(AR_LIKE_f8), np.ndarray)
132assert_type(np.copy(AR_U), npt.NDArray[np.str_])
133assert_type(np.copy(CHAR_AR_U, "K", subok=True), np.char.chararray[tuple[Any, ...], np.dtype[np.str_]])
134assert_type(np.copy(CHAR_AR_U, subok=True), np.char.chararray[tuple[Any, ...], np.dtype[np.str_]])
135# pyright correctly infers `NDArray[str_]` here
136assert_type(np.copy(CHAR_AR_U), np.ndarray[Any, Any]) # pyright: ignore[reportAssertTypeFailure]
137
138# gradient
139assert_type(np.gradient(AR_f8_1d, 1), np.ndarray[tuple[int], np.dtype[np.float64]])
140assert_type(
141 np.gradient(AR_f8_2d, [1, 2], [2, 3.5, 4]),
142 tuple[
143 np.ndarray[tuple[int, int], np.dtype[np.float64]],
144 np.ndarray[tuple[int, int], np.dtype[np.float64]],
145 ],
146)
147assert_type(
148 np.gradient(AR_f8_3d),
149 tuple[
150 np.ndarray[tuple[int, int, int], np.dtype[np.float64]],
151 np.ndarray[tuple[int, int, int], np.dtype[np.float64]],
152 np.ndarray[tuple[int, int, int], np.dtype[np.float64]],
153 ],
154)
155assert_type(np.gradient(AR_f8), np.ndarray[tuple[int], np.dtype[np.float64]] | Any)
156assert_type(np.gradient(AR_LIKE_f8, edge_order=2), np.ndarray[tuple[int], np.dtype[np.float64]])
157assert_type(np.gradient(AR_LIKE_c16, axis=0), np.ndarray[tuple[int], np.dtype[np.complex128]])
158
159# diff
160assert_type(np.diff("git", n=0), str)
161assert_type(np.diff(AR_f8), npt.NDArray[np.float64])
162assert_type(np.diff(AR_f8_1d, axis=0), np.ndarray[tuple[int], np.dtype[np.float64]])
163assert_type(np.diff(AR_f8_2d, axis=0), np.ndarray[tuple[int, int], np.dtype[np.float64]])
164assert_type(np.diff(AR_LIKE_f8, prepend=1.5), np.ndarray[tuple[int], np.dtype[np.float64]])
165assert_type(np.diff(AR_c16), npt.NDArray[np.complex128])
166assert_type(np.diff(AR_c16_1d), np.ndarray[tuple[int], np.dtype[np.complex128]])
167assert_type(np.diff(AR_LIKE_c16), np.ndarray[tuple[int], np.dtype[np.complex128]])
168
169# interp
170assert_type(np.interp(1, [1], AR_f8), np.float64)
171assert_type(np.interp(1, [1], [1]), np.float64)
172assert_type(np.interp(1, [1], AR_c16), np.complex128)
173assert_type(np.interp(1, [1], [1j]), np.complex128)
174assert_type(np.interp([1], [1], AR_f8), np.ndarray[tuple[int], np.dtype[np.float64]])
175assert_type(np.interp([1], [1], [1]), np.ndarray[tuple[int], np.dtype[np.float64]])
176assert_type(np.interp([1], [1], AR_c16), np.ndarray[tuple[int], np.dtype[np.complex128]])
177assert_type(np.interp([1], [1], [1j]), np.ndarray[tuple[int], np.dtype[np.complex128]])
178
179# angle
180assert_type(np.angle(1), np.float64)
181assert_type(np.angle(1, deg=True), np.float64)
182assert_type(np.angle(1j), np.float64)
183assert_type(np.angle(f8), np.float64)
184assert_type(np.angle(AR_b), npt.NDArray[np.float64])
185assert_type(np.angle(AR_u1), npt.NDArray[np.float64])
186assert_type(np.angle(AR_i8), npt.NDArray[np.float64])
187assert_type(np.angle(AR_f2), npt.NDArray[np.float16])
188assert_type(np.angle(AR_f4), npt.NDArray[np.float32])
189assert_type(np.angle(AR_c8), npt.NDArray[np.float32])
190assert_type(np.angle(AR_f8), npt.NDArray[np.float64])
191assert_type(np.angle(AR_c16), npt.NDArray[np.float64])
192assert_type(np.angle(AR_f10), npt.NDArray[np.longdouble])
193assert_type(np.angle(AR_c20), npt.NDArray[np.longdouble])
194assert_type(np.angle(AR_f8_1d), np.ndarray[tuple[int], np.dtype[np.float64]])
195assert_type(np.angle(AR_c16_1d), np.ndarray[tuple[int], np.dtype[np.float64]])
196assert_type(np.angle(AR_LIKE_b), np.ndarray[tuple[int], np.dtype[np.float64]])
197assert_type(np.angle(AR_LIKE_i8), np.ndarray[tuple[int], np.dtype[np.float64]])
198assert_type(np.angle(AR_LIKE_f8), np.ndarray[tuple[int], np.dtype[np.float64]])
199assert_type(np.angle(AR_LIKE_c16), np.ndarray[tuple[int], np.dtype[np.float64]])
200
201# unwrap
202assert_type(np.unwrap(AR_f2), npt.NDArray[np.float16])
203assert_type(np.unwrap(AR_f8), npt.NDArray[np.float64])
204assert_type(np.unwrap(AR_f10), npt.NDArray[np.longdouble])
205assert_type(np.unwrap(AR_O), npt.NDArray[np.object_])
206assert_type(np.unwrap(AR_f8_1d), np.ndarray[tuple[int], np.dtype[np.float64]])
207assert_type(np.unwrap(AR_f8_2d), np.ndarray[tuple[int, int], np.dtype[np.float64]])
208assert_type(np.unwrap(AR_f8_3d), np.ndarray[tuple[int, int, int], np.dtype[np.float64]])
209assert_type(np.unwrap(AR_LIKE_b), np.ndarray[tuple[int], np.dtype[np.float64]])
210assert_type(np.unwrap(AR_LIKE_i8), np.ndarray[tuple[int], np.dtype[np.float64]])
211assert_type(np.unwrap(AR_LIKE_f8), np.ndarray[tuple[int], np.dtype[np.float64]])
212
213# sort_complex
214assert_type(np.sort_complex(AR_u1), npt.NDArray[np.complex64])
215assert_type(np.sort_complex(AR_f8), npt.NDArray[np.complex128])
216assert_type(np.sort_complex(AR_f10), npt.NDArray[np.clongdouble])
217assert_type(np.sort_complex(AR_f8_1d), np.ndarray[tuple[int], np.dtype[np.complex128]])
218assert_type(np.sort_complex(AR_c16_1d), np.ndarray[tuple[int], np.dtype[np.complex128]])
219
220# trim_zeros
221assert_type(np.trim_zeros(AR_f8), npt.NDArray[np.float64])
222assert_type(np.trim_zeros(AR_LIKE_f8), list[float])
223
224# cov
225assert_type(np.cov(AR_f8_1d), np.ndarray[tuple[()], np.dtype[np.float64]])
226assert_type(np.cov(AR_f8_2d), npt.NDArray[np.float64])
227assert_type(np.cov(AR_f8), npt.NDArray[np.float64])
228assert_type(np.cov(AR_f8, AR_f8), np.ndarray[tuple[int, int], np.dtype[np.float64]])
229assert_type(np.cov(AR_c16, AR_c16), np.ndarray[tuple[int, int], np.dtype[np.complex128]])
230assert_type(np.cov(AR_LIKE_f8), np.ndarray[tuple[()], np.dtype[np.float64]])
231assert_type(np.cov(AR_LIKE_f8, AR_LIKE_f8), np.ndarray[tuple[int, int], np.dtype[np.float64]])
232assert_type(np.cov(AR_LIKE_f8, dtype=np.float16), np.ndarray[tuple[()], np.dtype[np.float16]])
233assert_type(np.cov(AR_LIKE_f8, AR_LIKE_f8, dtype=np.float32), np.ndarray[tuple[int, int], np.dtype[np.float32]])
234assert_type(np.cov(AR_f8, AR_f8, dtype=float), np.ndarray[tuple[int, int]])
235assert_type(np.cov(AR_LIKE_f8, dtype=float), np.ndarray[tuple[()]])
236assert_type(np.cov(AR_LIKE_f8, AR_LIKE_f8, dtype=float), np.ndarray[tuple[int, int]])
237
238# corrcoef
239assert_type(np.corrcoef(AR_f8_1d), np.float64)
240assert_type(np.corrcoef(AR_f8_2d), np.ndarray[tuple[int, int], np.dtype[np.float64]] | np.float64)
241assert_type(np.corrcoef(AR_f8), np.ndarray[tuple[int, int], np.dtype[np.float64]] | np.float64)
242assert_type(np.corrcoef(AR_f8, AR_f8), np.ndarray[tuple[int, int], np.dtype[np.float64]])
243assert_type(np.corrcoef(AR_c16, AR_c16), np.ndarray[tuple[int, int], np.dtype[np.complex128]])
244assert_type(np.corrcoef(AR_LIKE_f8), np.float64)
245assert_type(np.corrcoef(AR_LIKE_f8, AR_LIKE_f8), np.ndarray[tuple[int, int], np.dtype[np.float64]])
246assert_type(np.corrcoef(AR_LIKE_f8, dtype=np.float16), np.float16)
247assert_type(np.corrcoef(AR_LIKE_f8, AR_LIKE_f8, dtype=np.float32), np.ndarray[tuple[int, int], np.dtype[np.float32]])
248assert_type(np.corrcoef(AR_f8, AR_f8, dtype=float), np.ndarray[tuple[int, int]])
249assert_type(np.corrcoef(AR_LIKE_f8, dtype=float), Any)
250assert_type(np.corrcoef(AR_LIKE_f8, AR_LIKE_f8, dtype=float), np.ndarray[tuple[int, int]])
251
252# window functions
253assert_type(np.blackman(5), np.ndarray[tuple[int], np.dtype[np.float64]])
254assert_type(np.bartlett(6), np.ndarray[tuple[int], np.dtype[np.float64]])
255assert_type(np.hanning(4.5), np.ndarray[tuple[int], np.dtype[np.float64]])
256assert_type(np.hamming(0), np.ndarray[tuple[int], np.dtype[np.float64]])
257assert_type(np.kaiser(4, 5.9), np.ndarray[tuple[int], np.dtype[np.float64]])
258
259# i0 (bessel function)
260assert_type(np.i0(AR_i8), npt.NDArray[np.float64])
261
262# sinc (cardinal sine function)
263assert_type(np.sinc(1.0), np.float64)
264assert_type(np.sinc(1j), np.complex128 | Any)
265assert_type(np.sinc(AR_f8), npt.NDArray[np.float64])
266assert_type(np.sinc(AR_c16), npt.NDArray[np.complex128])
267assert_type(np.sinc(AR_LIKE_f8), np.ndarray[tuple[int], np.dtype[np.float64]])
268assert_type(np.sinc(AR_LIKE_c16), np.ndarray[tuple[int], np.dtype[np.complex128]])
269
270# median
271assert_type(np.median(AR_f8, keepdims=False), np.float64)
272assert_type(np.median(AR_c16, overwrite_input=True), np.complex128)
273assert_type(np.median(AR_m), np.timedelta64)
274assert_type(np.median(AR_O), Any)
275assert_type(np.median(AR_f8, keepdims=True), npt.NDArray[np.float64])
276assert_type(np.median(AR_f8, axis=0), npt.NDArray[np.float64])
277assert_type(np.median(AR_c16, keepdims=True), npt.NDArray[np.complex128])
278assert_type(np.median(AR_c16, axis=0), npt.NDArray[np.complex128])
279assert_type(np.median(AR_LIKE_f8, keepdims=True), npt.NDArray[np.float64])
280assert_type(np.median(AR_LIKE_c16, keepdims=True), npt.NDArray[np.complex128])
281assert_type(np.median(AR_LIKE_f8, out=AR_c16), npt.NDArray[np.complex128])
282
283# percentile
284assert_type(np.percentile(AR_f8, 50), np.float64)
285assert_type(np.percentile(AR_f8, 50, axis=1), npt.NDArray[np.float64])
286assert_type(np.percentile(AR_f8, 50, axis=(1, 0)), npt.NDArray[np.float64])
287assert_type(np.percentile(AR_f8, 50, keepdims=True), npt.NDArray[np.float64])
288assert_type(np.percentile(AR_f8, 50, axis=0, keepdims=True), npt.NDArray[np.float64])
289assert_type(np.percentile(AR_c16, 50), np.complex128)
290assert_type(np.percentile(AR_m, 50), np.timedelta64)
291assert_type(np.percentile(AR_M, 50, overwrite_input=True), np.datetime64)
292assert_type(np.percentile(AR_O, 50), Any)
293assert_type(np.percentile(AR_f8, [50]), npt.NDArray[np.float64])
294assert_type(np.percentile(AR_f8, [50], axis=1), npt.NDArray[np.float64])
295assert_type(np.percentile(AR_f8, [50], keepdims=True), npt.NDArray[np.float64])
296assert_type(np.percentile(AR_c16, [50]), npt.NDArray[np.complex128])
297assert_type(np.percentile(AR_m, [50]), npt.NDArray[np.timedelta64])
298assert_type(np.percentile(AR_M, [50], method="nearest"), npt.NDArray[np.datetime64])
299assert_type(np.percentile(AR_O, [50]), npt.NDArray[np.object_])
300assert_type(np.percentile(AR_f8, [50], keepdims=True), npt.NDArray[np.float64])
301assert_type(np.percentile(AR_f8, [50], out=AR_c16), npt.NDArray[np.complex128])
302
303# quantile
304assert_type(np.quantile(AR_f8, 0.50), np.float64)
305assert_type(np.quantile(AR_f8, 0.50, axis=1), npt.NDArray[np.float64])
306assert_type(np.quantile(AR_f8, 0.50, axis=(1, 0)), npt.NDArray[np.float64])
307assert_type(np.quantile(AR_f8, 0.50, keepdims=True), npt.NDArray[np.float64])
308assert_type(np.quantile(AR_f8, 0.50, axis=0, keepdims=True), npt.NDArray[np.float64])
309assert_type(np.quantile(AR_c16, 0.50), np.complex128)
310assert_type(np.quantile(AR_m, 0.50), np.timedelta64)
311assert_type(np.quantile(AR_M, 0.50, overwrite_input=True), np.datetime64)
312assert_type(np.quantile(AR_O, 0.50), Any)
313assert_type(np.quantile(AR_f8, [0.50]), npt.NDArray[np.float64])
314assert_type(np.quantile(AR_f8, [0.50], axis=1), npt.NDArray[np.float64])
315assert_type(np.quantile(AR_f8, [0.50], keepdims=True), npt.NDArray[np.float64])
316assert_type(np.quantile(AR_c16, [0.50]), npt.NDArray[np.complex128])
317assert_type(np.quantile(AR_m, [0.50]), npt.NDArray[np.timedelta64])
318assert_type(np.quantile(AR_M, [0.50], method="nearest"), npt.NDArray[np.datetime64])
319assert_type(np.quantile(AR_O, [0.50]), npt.NDArray[np.object_])
320assert_type(np.quantile(AR_f8, [0.50], keepdims=True), npt.NDArray[np.float64])
321assert_type(np.quantile(AR_f8, [0.50], out=AR_c16), npt.NDArray[np.complex128])
322
323# trapezoid
324assert_type(np.trapezoid(AR_LIKE_f8), np.float64)
325assert_type(np.trapezoid(AR_LIKE_f8, AR_LIKE_f8), np.float64)
326assert_type(np.trapezoid(AR_LIKE_c16), np.complex128)
327assert_type(np.trapezoid(AR_LIKE_c16, AR_LIKE_f8), np.complex128)
328assert_type(np.trapezoid(AR_LIKE_f8, AR_LIKE_c16), np.complex128)
329assert_type(np.trapezoid(AR_LIKE_O), float)
330assert_type(np.trapezoid(AR_LIKE_O, AR_LIKE_f8), float)
331assert_type(np.trapezoid(AR_f8), np.float64 | npt.NDArray[np.float64])
332assert_type(np.trapezoid(AR_f8, AR_f8), np.float64 | npt.NDArray[np.float64])
333assert_type(np.trapezoid(AR_c16), np.complex128 | npt.NDArray[np.complex128])
334assert_type(np.trapezoid(AR_c16, AR_c16), np.complex128 | npt.NDArray[np.complex128])
335assert_type(np.trapezoid(AR_m), np.timedelta64 | npt.NDArray[np.timedelta64])
336assert_type(np.trapezoid(AR_O), npt.NDArray[np.object_] | Any)
337assert_type(np.trapezoid(AR_O, AR_LIKE_f8), npt.NDArray[np.object_] | Any)
338
339# meshgrid
340assert_type(np.meshgrid(), tuple[()])
341assert_type(
342 np.meshgrid(AR_f8),
343 tuple[
344 np.ndarray[tuple[int], np.dtype[np.float64]],
345 ],
346)
347assert_type(
348 np.meshgrid(AR_c16, indexing="ij"),
349 tuple[
350 np.ndarray[tuple[int], np.dtype[np.complex128]],
351 ],
352)
353assert_type(
354 np.meshgrid(AR_i8, AR_f8, copy=False),
355 tuple[
356 np.ndarray[tuple[int, int], np.dtype[np.int64]],
357 np.ndarray[tuple[int, int], np.dtype[np.float64]],
358 ],
359)
360assert_type(
361 np.meshgrid(AR_LIKE_f8, AR_f8),
362 tuple[
363 np.ndarray[tuple[int, int]],
364 np.ndarray[tuple[int, int], np.dtype[np.float64]],
365 ],
366)
367assert_type(
368 np.meshgrid(AR_f8, AR_LIKE_f8),
369 tuple[
370 np.ndarray[tuple[int, int], np.dtype[np.float64]],
371 np.ndarray[tuple[int, int]],
372 ],
373)
374assert_type(
375 np.meshgrid(AR_LIKE_f8, AR_LIKE_f8),
376 tuple[
377 np.ndarray[tuple[int, int]],
378 np.ndarray[tuple[int, int]],
379 ],
380)
381assert_type(
382 np.meshgrid(AR_f8, AR_i8, AR_c16),
383 tuple[
384 np.ndarray[tuple[int, int, int], np.dtype[np.float64]],
385 np.ndarray[tuple[int, int, int], np.dtype[np.int64]],
386 np.ndarray[tuple[int, int, int], np.dtype[np.complex128]],
387 ],
388)
389assert_type(np.meshgrid(AR_f8, AR_f8, AR_f8, AR_f8), tuple[npt.NDArray[np.float64], ...])
390assert_type(np.meshgrid(AR_f8, AR_f8, AR_f8, AR_LIKE_f8), tuple[np.ndarray, ...])
391assert_type(np.meshgrid(*AR_LIKE_f8), tuple[np.ndarray, ...])
392
393# delete
394assert_type(np.delete(AR_f8, np.s_[:5]), np.ndarray[tuple[int], np.dtype[np.float64]])
395assert_type(np.delete(AR_LIKE_f8, [0, 4, 9], axis=0), np.ndarray)
396
397# insert
398assert_type(np.insert(AR_f8, np.s_[:5], 5), np.ndarray[tuple[int], np.dtype[np.float64]])
399assert_type(np.insert(AR_LIKE_f8, [0, 4, 9], [0.5, 9.2, 7], axis=0), np.ndarray)
400
401# append
402assert_type(np.append(f8, f8), np.ndarray[tuple[int], np.dtype[np.float64]])
403assert_type(np.append(AR_f8, AR_f8), np.ndarray[tuple[int], np.dtype[np.float64]])
404assert_type(np.append(AR_LIKE_f8, AR_LIKE_c16, axis=0), np.ndarray)
405assert_type(np.append(AR_f8, AR_LIKE_f8, axis=0), np.ndarray)
406
407# digitize
408assert_type(np.digitize(4.5, [1]), np.intp)
409assert_type(np.digitize(AR_f8, [1, 2, 3]), npt.NDArray[np.intp])
410 