Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
arithmetic.pyi720 linesDownload Raw Back to reveal
1import datetime as dt
2from typing import Any, assert_type
3
4import numpy as np
5import numpy.typing as npt
6from numpy._typing import _64Bit, _128Bit
7
8b: bool
9c: complex
10f: float
11i: int
12
13c16: np.complex128
14c8: np.complex64
15
16# Can't directly import `np.float128` as it is not available on all platforms
17f16: np.floating[_128Bit]
18f8: np.float64
19f4: np.float32
20
21i8: np.int64
22i4: np.int32
23
24u8: np.uint64
25u4: np.uint32
26
27b_: np.bool
28
29M8: np.datetime64
30M8_none: np.datetime64[None]
31M8_date: np.datetime64[dt.date]
32M8_time: np.datetime64[dt.datetime]
33M8_int: np.datetime64[int]
34date: dt.date
35time: dt.datetime
36
37m8: np.timedelta64
38m8_none: np.timedelta64[None]
39m8_int: np.timedelta64[int]
40m8_delta: np.timedelta64[dt.timedelta]
41delta: dt.timedelta
42
43AR_b: npt.NDArray[np.bool]
44AR_u: npt.NDArray[np.uint32]
45AR_i: npt.NDArray[np.int64]
46AR_f: npt.NDArray[np.float64]
47AR_c: npt.NDArray[np.complex128]
48AR_m: npt.NDArray[np.timedelta64]
49AR_M: npt.NDArray[np.datetime64]
50AR_O: npt.NDArray[np.object_]
51AR_S: npt.NDArray[np.bytes_]
52AR_U: npt.NDArray[np.str_]
53AR_T: np.ndarray[tuple[Any, ...], np.dtypes.StringDType]
54AR_floating: npt.NDArray[np.floating]
55AR_number: npt.NDArray[np.number]
56AR_Any: npt.NDArray[Any]
57
58AR_LIKE_b: list[bool]
59AR_LIKE_u: list[np.uint32]
60AR_LIKE_i: list[int]
61AR_LIKE_f: list[float]
62AR_LIKE_c: list[complex]
63AR_LIKE_m: list[np.timedelta64]
64AR_LIKE_M: list[np.datetime64]
65AR_LIKE_O: list[np.object_]
66
67# Array subtraction
68
69assert_type(AR_number - AR_number, npt.NDArray[np.number])
70
71assert_type(AR_b - AR_LIKE_u, npt.NDArray[np.uint32])
72assert_type(AR_b - AR_LIKE_i, npt.NDArray[np.signedinteger])
73assert_type(AR_b - AR_LIKE_f, npt.NDArray[np.floating])
74assert_type(AR_b - AR_LIKE_c, npt.NDArray[np.complexfloating])
75assert_type(AR_b - AR_LIKE_m, npt.NDArray[np.timedelta64])
76assert_type(AR_b - AR_LIKE_O, Any)
77
78assert_type(AR_LIKE_u - AR_b, npt.NDArray[np.uint32])
79assert_type(AR_LIKE_i - AR_b, npt.NDArray[np.signedinteger])
80assert_type(AR_LIKE_f - AR_b, npt.NDArray[np.floating])
81assert_type(AR_LIKE_c - AR_b, npt.NDArray[np.complexfloating])
82assert_type(AR_LIKE_m - AR_b, npt.NDArray[np.timedelta64])
83assert_type(AR_LIKE_M - AR_b, npt.NDArray[np.datetime64])
84assert_type(AR_LIKE_O - AR_b, Any)
85
86assert_type(AR_u - AR_LIKE_b, npt.NDArray[np.uint32])
87assert_type(AR_u - AR_LIKE_u, npt.NDArray[np.unsignedinteger])
88assert_type(AR_u - AR_LIKE_i, npt.NDArray[np.signedinteger])
89assert_type(AR_u - AR_LIKE_f, npt.NDArray[np.floating])
90assert_type(AR_u - AR_LIKE_c, npt.NDArray[np.complexfloating])
91assert_type(AR_u - AR_LIKE_m, npt.NDArray[np.timedelta64])
92assert_type(AR_u - AR_LIKE_O, Any)
93
94assert_type(AR_LIKE_b - AR_u, npt.NDArray[np.uint32])
95assert_type(AR_LIKE_u - AR_u, npt.NDArray[np.unsignedinteger])
96assert_type(AR_LIKE_i - AR_u, npt.NDArray[np.signedinteger])
97assert_type(AR_LIKE_f - AR_u, npt.NDArray[np.floating])
98assert_type(AR_LIKE_c - AR_u, npt.NDArray[np.complexfloating])
99assert_type(AR_LIKE_m - AR_u, npt.NDArray[np.timedelta64])
100assert_type(AR_LIKE_M - AR_u, npt.NDArray[np.datetime64])
101assert_type(AR_LIKE_O - AR_u, Any)
102
103assert_type(AR_i - AR_LIKE_b, npt.NDArray[np.int64])
104assert_type(AR_i - AR_LIKE_u, npt.NDArray[np.signedinteger])
105assert_type(AR_i - AR_LIKE_i, npt.NDArray[np.signedinteger])
106assert_type(AR_i - AR_LIKE_f, npt.NDArray[np.floating])
107assert_type(AR_i - AR_LIKE_c, npt.NDArray[np.complexfloating])
108assert_type(AR_i - AR_LIKE_m, npt.NDArray[np.timedelta64])
109assert_type(AR_i - AR_LIKE_O, Any)
110
111assert_type(AR_LIKE_b - AR_i, npt.NDArray[np.int64])
112assert_type(AR_LIKE_u - AR_i, npt.NDArray[np.signedinteger])
113assert_type(AR_LIKE_i - AR_i, npt.NDArray[np.signedinteger])
114assert_type(AR_LIKE_f - AR_i, npt.NDArray[np.floating])
115assert_type(AR_LIKE_c - AR_i, npt.NDArray[np.complexfloating])
116assert_type(AR_LIKE_m - AR_i, npt.NDArray[np.timedelta64])
117assert_type(AR_LIKE_M - AR_i, npt.NDArray[np.datetime64])
118assert_type(AR_LIKE_O - AR_i, Any)
119
120assert_type(AR_f - AR_LIKE_b, npt.NDArray[np.float64])
121assert_type(AR_f - AR_LIKE_u, npt.NDArray[np.float64])
122assert_type(AR_f - AR_LIKE_i, npt.NDArray[np.float64])
123assert_type(AR_f - AR_LIKE_f, npt.NDArray[np.float64])
124assert_type(AR_f - AR_LIKE_c, npt.NDArray[np.complexfloating])
125assert_type(AR_f - AR_LIKE_O, Any)
126
127assert_type(AR_LIKE_b - AR_f, npt.NDArray[np.float64])
128assert_type(AR_LIKE_u - AR_f, npt.NDArray[np.float64])
129assert_type(AR_LIKE_i - AR_f, npt.NDArray[np.float64])
130assert_type(AR_LIKE_f - AR_f, npt.NDArray[np.float64])
131assert_type(AR_LIKE_c - AR_f, npt.NDArray[np.complexfloating])
132assert_type(AR_LIKE_O - AR_f, Any)
133
134assert_type(AR_c - AR_LIKE_b, npt.NDArray[np.complex128])
135assert_type(AR_c - AR_LIKE_u, npt.NDArray[np.complex128])
136assert_type(AR_c - AR_LIKE_i, npt.NDArray[np.complex128])
137assert_type(AR_c - AR_LIKE_f, npt.NDArray[np.complex128])
138assert_type(AR_c - AR_LIKE_c, npt.NDArray[np.complex128])
139assert_type(AR_c - AR_LIKE_O, Any)
140
141assert_type(AR_LIKE_b - AR_c, npt.NDArray[np.complex128])
142assert_type(AR_LIKE_u - AR_c, npt.NDArray[np.complex128])
143assert_type(AR_LIKE_i - AR_c, npt.NDArray[np.complex128])
144assert_type(AR_LIKE_f - AR_c, npt.NDArray[np.complex128])
145assert_type(AR_LIKE_c - AR_c, npt.NDArray[np.complex128])
146assert_type(AR_LIKE_O - AR_c, Any)
147
148assert_type(AR_m - AR_LIKE_b, npt.NDArray[np.timedelta64])
149assert_type(AR_m - AR_LIKE_u, npt.NDArray[np.timedelta64])
150assert_type(AR_m - AR_LIKE_i, npt.NDArray[np.timedelta64])
151assert_type(AR_m - AR_LIKE_m, npt.NDArray[np.timedelta64])
152assert_type(AR_m - AR_LIKE_O, Any)
153
154assert_type(AR_LIKE_b - AR_m, npt.NDArray[np.timedelta64])
155assert_type(AR_LIKE_u - AR_m, npt.NDArray[np.timedelta64])
156assert_type(AR_LIKE_i - AR_m, npt.NDArray[np.timedelta64])
157assert_type(AR_LIKE_m - AR_m, npt.NDArray[np.timedelta64])
158assert_type(AR_LIKE_M - AR_m, npt.NDArray[np.datetime64])
159assert_type(AR_LIKE_O - AR_m, Any)
160
161assert_type(AR_M - AR_LIKE_b, npt.NDArray[np.datetime64])
162assert_type(AR_M - AR_LIKE_u, npt.NDArray[np.datetime64])
163assert_type(AR_M - AR_LIKE_i, npt.NDArray[np.datetime64])
164assert_type(AR_M - AR_LIKE_m, npt.NDArray[np.datetime64])
165assert_type(AR_M - AR_LIKE_M, npt.NDArray[np.timedelta64])
166assert_type(AR_M - AR_LIKE_O, Any)
167
168assert_type(AR_LIKE_M - AR_M, npt.NDArray[np.timedelta64])
169assert_type(AR_LIKE_O - AR_M, Any)
170
171assert_type(AR_O - AR_LIKE_b, Any)
172assert_type(AR_O - AR_LIKE_u, Any)
173assert_type(AR_O - AR_LIKE_i, Any)
174assert_type(AR_O - AR_LIKE_f, Any)
175assert_type(AR_O - AR_LIKE_c, Any)
176assert_type(AR_O - AR_LIKE_m, Any)
177assert_type(AR_O - AR_LIKE_M, Any)
178assert_type(AR_O - AR_LIKE_O, Any)
179
180assert_type(AR_LIKE_b - AR_O, Any)
181assert_type(AR_LIKE_u - AR_O, Any)
182assert_type(AR_LIKE_i - AR_O, Any)
183assert_type(AR_LIKE_f - AR_O, Any)
184assert_type(AR_LIKE_c - AR_O, Any)
185assert_type(AR_LIKE_m - AR_O, Any)
186assert_type(AR_LIKE_M - AR_O, Any)
187assert_type(AR_LIKE_O - AR_O, Any)
188
189# Array "true" division
190
191assert_type(AR_f / b, npt.NDArray[np.float64])
192assert_type(AR_f / i, npt.NDArray[np.float64])
193assert_type(AR_f / f, npt.NDArray[np.float64])
194
195assert_type(b / AR_f, npt.NDArray[np.float64])
196assert_type(i / AR_f, npt.NDArray[np.float64])
197assert_type(f / AR_f, npt.NDArray[np.float64])
198
199assert_type(AR_b / AR_LIKE_b, npt.NDArray[np.float64])
200assert_type(AR_b / AR_LIKE_u, npt.NDArray[np.float64])
201assert_type(AR_b / AR_LIKE_i, npt.NDArray[np.float64])
202assert_type(AR_b / AR_LIKE_f, npt.NDArray[np.float64])
203assert_type(AR_b / AR_LIKE_O, Any)
204
205assert_type(AR_LIKE_b / AR_b, npt.NDArray[np.float64])
206assert_type(AR_LIKE_u / AR_b, npt.NDArray[np.float64])
207assert_type(AR_LIKE_i / AR_b, npt.NDArray[np.float64])
208assert_type(AR_LIKE_f / AR_b, npt.NDArray[np.float64])
209assert_type(AR_LIKE_O / AR_b, Any)
210
211assert_type(AR_u / AR_LIKE_b, npt.NDArray[np.float64])
212assert_type(AR_u / AR_LIKE_u, npt.NDArray[np.float64])
213assert_type(AR_u / AR_LIKE_i, npt.NDArray[np.float64])
214assert_type(AR_u / AR_LIKE_f, npt.NDArray[np.float64])
215assert_type(AR_u / AR_LIKE_O, Any)
216
217assert_type(AR_LIKE_b / AR_u, npt.NDArray[np.float64])
218assert_type(AR_LIKE_u / AR_u, npt.NDArray[np.float64])
219assert_type(AR_LIKE_i / AR_u, npt.NDArray[np.float64])
220assert_type(AR_LIKE_f / AR_u, npt.NDArray[np.float64])
221assert_type(AR_LIKE_m / AR_u, npt.NDArray[np.timedelta64])
222assert_type(AR_LIKE_O / AR_u, Any)
223
224assert_type(AR_i / AR_LIKE_b, npt.NDArray[np.float64])
225assert_type(AR_i / AR_LIKE_u, npt.NDArray[np.float64])
226assert_type(AR_i / AR_LIKE_i, npt.NDArray[np.float64])
227assert_type(AR_i / AR_LIKE_f, npt.NDArray[np.float64])
228assert_type(AR_i / AR_LIKE_O, Any)
229
230assert_type(AR_LIKE_b / AR_i, npt.NDArray[np.float64])
231assert_type(AR_LIKE_u / AR_i, npt.NDArray[np.float64])
232assert_type(AR_LIKE_i / AR_i, npt.NDArray[np.float64])
233assert_type(AR_LIKE_f / AR_i, npt.NDArray[np.float64])
234assert_type(AR_LIKE_m / AR_i, npt.NDArray[np.timedelta64])
235assert_type(AR_LIKE_O / AR_i, Any)
236
237assert_type(AR_f / AR_LIKE_b, npt.NDArray[np.float64])
238assert_type(AR_f / AR_LIKE_u, npt.NDArray[np.float64])
239assert_type(AR_f / AR_LIKE_i, npt.NDArray[np.float64])
240assert_type(AR_f / AR_LIKE_f, npt.NDArray[np.float64])
241assert_type(AR_f / AR_LIKE_O, Any)
242
243assert_type(AR_LIKE_b / AR_f, npt.NDArray[np.float64])
244assert_type(AR_LIKE_u / AR_f, npt.NDArray[np.float64])
245assert_type(AR_LIKE_i / AR_f, npt.NDArray[np.float64])
246assert_type(AR_LIKE_f / AR_f, npt.NDArray[np.float64])
247assert_type(AR_LIKE_m / AR_f, npt.NDArray[np.timedelta64])
248assert_type(AR_LIKE_O / AR_f, Any)
249
250assert_type(AR_m / AR_LIKE_u, npt.NDArray[np.timedelta64])
251assert_type(AR_m / AR_LIKE_i, npt.NDArray[np.timedelta64])
252assert_type(AR_m / AR_LIKE_f, npt.NDArray[np.timedelta64])
253assert_type(AR_m / AR_LIKE_m, npt.NDArray[np.float64])
254assert_type(AR_m / AR_LIKE_O, Any)
255
256assert_type(AR_LIKE_m / AR_m, npt.NDArray[np.float64])
257assert_type(AR_LIKE_O / AR_m, Any)
258
259assert_type(AR_O / AR_LIKE_b, Any)
260assert_type(AR_O / AR_LIKE_u, Any)
261assert_type(AR_O / AR_LIKE_i, Any)
262assert_type(AR_O / AR_LIKE_f, Any)
263assert_type(AR_O / AR_LIKE_m, Any)
264assert_type(AR_O / AR_LIKE_M, Any)
265assert_type(AR_O / AR_LIKE_O, Any)
266
267assert_type(AR_LIKE_b / AR_O, Any)
268assert_type(AR_LIKE_u / AR_O, Any)
269assert_type(AR_LIKE_i / AR_O, Any)
270assert_type(AR_LIKE_f / AR_O, Any)
271assert_type(AR_LIKE_m / AR_O, Any)
272assert_type(AR_LIKE_M / AR_O, Any)
273assert_type(AR_LIKE_O / AR_O, Any)
274
275# Array floor division
276
277assert_type(AR_b // AR_LIKE_b, npt.NDArray[np.int8])
278assert_type(AR_b // AR_LIKE_u, npt.NDArray[np.uint32])
279assert_type(AR_b // AR_LIKE_i, npt.NDArray[np.signedinteger])
280assert_type(AR_b // AR_LIKE_f, npt.NDArray[np.floating])
281assert_type(AR_b // AR_LIKE_O, Any)
282
283assert_type(AR_LIKE_b // AR_b, npt.NDArray[np.int8])
284assert_type(AR_LIKE_u // AR_b, npt.NDArray[np.uint32])
285assert_type(AR_LIKE_i // AR_b, npt.NDArray[np.signedinteger])
286assert_type(AR_LIKE_f // AR_b, npt.NDArray[np.floating])
287assert_type(AR_LIKE_O // AR_b, Any)
288
289assert_type(AR_u // AR_LIKE_b, npt.NDArray[np.uint32])
290assert_type(AR_u // AR_LIKE_u, npt.NDArray[np.unsignedinteger])
291assert_type(AR_u // AR_LIKE_i, npt.NDArray[np.signedinteger])
292assert_type(AR_u // AR_LIKE_f, npt.NDArray[np.floating])
293assert_type(AR_u // AR_LIKE_O, Any)
294
295assert_type(AR_LIKE_b // AR_u, npt.NDArray[np.uint32])
296assert_type(AR_LIKE_u // AR_u, npt.NDArray[np.unsignedinteger])
297assert_type(AR_LIKE_i // AR_u, npt.NDArray[np.signedinteger])
298assert_type(AR_LIKE_f // AR_u, npt.NDArray[np.floating])
299assert_type(AR_LIKE_m // AR_u, npt.NDArray[np.timedelta64])
300assert_type(AR_LIKE_O // AR_u, Any)
301
302assert_type(AR_i // AR_LIKE_b, npt.NDArray[np.int64])
303assert_type(AR_i // AR_LIKE_u, npt.NDArray[np.signedinteger])
304assert_type(AR_i // AR_LIKE_i, npt.NDArray[np.signedinteger])
305assert_type(AR_i // AR_LIKE_f, npt.NDArray[np.floating])
306assert_type(AR_i // AR_LIKE_O, Any)
307
308assert_type(AR_LIKE_b // AR_i, npt.NDArray[np.int64])
309assert_type(AR_LIKE_u // AR_i, npt.NDArray[np.signedinteger])
310assert_type(AR_LIKE_i // AR_i, npt.NDArray[np.signedinteger])
311assert_type(AR_LIKE_f // AR_i, npt.NDArray[np.floating])
312assert_type(AR_LIKE_m // AR_i, npt.NDArray[np.timedelta64])
313assert_type(AR_LIKE_O // AR_i, Any)
314
315assert_type(AR_f // AR_LIKE_b, npt.NDArray[np.float64])
316assert_type(AR_f // AR_LIKE_u, npt.NDArray[np.float64])
317assert_type(AR_f // AR_LIKE_i, npt.NDArray[np.float64])
318assert_type(AR_f // AR_LIKE_f, npt.NDArray[np.float64])
319assert_type(AR_f // AR_LIKE_O, Any)
320
321assert_type(AR_LIKE_b // AR_f, npt.NDArray[np.float64])
322assert_type(AR_LIKE_u // AR_f, npt.NDArray[np.float64])
323assert_type(AR_LIKE_i // AR_f, npt.NDArray[np.float64])
324assert_type(AR_LIKE_f // AR_f, npt.NDArray[np.float64])
325assert_type(AR_LIKE_m // AR_f, npt.NDArray[np.timedelta64])
326assert_type(AR_LIKE_O // AR_f, Any)
327
328assert_type(AR_m // AR_LIKE_u, npt.NDArray[np.timedelta64])
329assert_type(AR_m // AR_LIKE_i, npt.NDArray[np.timedelta64])
330assert_type(AR_m // AR_LIKE_f, npt.NDArray[np.timedelta64])
331assert_type(AR_m // AR_LIKE_m, npt.NDArray[np.int64])
332assert_type(AR_m // AR_LIKE_O, Any)
333
334assert_type(AR_LIKE_m // AR_m, npt.NDArray[np.int64])
335assert_type(AR_LIKE_O // AR_m, Any)
336
337assert_type(AR_O // AR_LIKE_b, Any)
338assert_type(AR_O // AR_LIKE_u, Any)
339assert_type(AR_O // AR_LIKE_i, Any)
340assert_type(AR_O // AR_LIKE_f, Any)
341assert_type(AR_O // AR_LIKE_m, Any)
342assert_type(AR_O // AR_LIKE_M, Any)
343assert_type(AR_O // AR_LIKE_O, Any)
344
345assert_type(AR_LIKE_b // AR_O, Any)
346assert_type(AR_LIKE_u // AR_O, Any)
347assert_type(AR_LIKE_i // AR_O, Any)
348assert_type(AR_LIKE_f // AR_O, Any)
349assert_type(AR_LIKE_m // AR_O, Any)
350assert_type(AR_LIKE_M // AR_O, Any)
351assert_type(AR_LIKE_O // AR_O, Any)
352
353# unary ops
354
355assert_type(-f16, np.floating[_128Bit])
356assert_type(-c16, np.complex128)
357assert_type(-c8, np.complex64)
358assert_type(-f8, np.float64)
359assert_type(-f4, np.float32)
360assert_type(-i8, np.int64)
361assert_type(-i4, np.int32)
362assert_type(-u8, np.uint64)
363assert_type(-u4, np.uint32)
364assert_type(-m8, np.timedelta64)
365assert_type(-m8_none, np.timedelta64[None])
366assert_type(-m8_int, np.timedelta64[int])
367assert_type(-m8_delta, np.timedelta64[dt.timedelta])
368assert_type(-AR_f, npt.NDArray[np.float64])
369
370assert_type(+f16, np.floating[_128Bit])
371assert_type(+c16, np.complex128)
372assert_type(+c8, np.complex64)
373assert_type(+f8, np.float64)
374assert_type(+f4, np.float32)
375assert_type(+i8, np.int64)
376assert_type(+i4, np.int32)
377assert_type(+u8, np.uint64)
378assert_type(+u4, np.uint32)
379assert_type(+m8_none, np.timedelta64[None])
380assert_type(+m8_int, np.timedelta64[int])
381assert_type(+m8_delta, np.timedelta64[dt.timedelta])
382assert_type(+AR_f, npt.NDArray[np.float64])
383
384assert_type(abs(f16), np.floating[_128Bit])
385assert_type(abs(c16), np.float64)
386assert_type(abs(c8), np.float32)
387assert_type(abs(f8), np.float64)
388assert_type(abs(f4), np.float32)
389assert_type(abs(i8), np.int64)
390assert_type(abs(i4), np.int32)
391assert_type(abs(u8), np.uint64)
392assert_type(abs(u4), np.uint32)
393assert_type(abs(m8), np.timedelta64)
394assert_type(abs(m8_none), np.timedelta64[None])
395assert_type(abs(m8_int), np.timedelta64[int])
396assert_type(abs(m8_delta), np.timedelta64[dt.timedelta])
397assert_type(abs(b_), np.bool)
398assert_type(abs(AR_O), npt.NDArray[np.object_])
399
400# Time structures
401
402assert_type(M8 + m8, np.datetime64)
403assert_type(M8 + i, np.datetime64)
404assert_type(M8 + i8, np.datetime64)
405assert_type(M8 - M8, np.timedelta64)
406assert_type(M8 - i, np.datetime64)
407assert_type(M8 - i8, np.datetime64)
408
409assert_type(M8_none + m8, np.datetime64[None])
410assert_type(M8_none + i, np.datetime64[None])
411assert_type(M8_none + i8, np.datetime64[None])
412assert_type(M8_none - M8, np.timedelta64[None])
413assert_type(M8_none - m8, np.datetime64[None])
414assert_type(M8_none - i, np.datetime64[None])
415assert_type(M8_none - i8, np.datetime64[None])
416
417assert_type(m8 + m8, np.timedelta64)
418assert_type(m8 + i, np.timedelta64)
419assert_type(m8 + i8, np.timedelta64)
420assert_type(m8 - m8, np.timedelta64)
421assert_type(m8 - i, np.timedelta64)
422assert_type(m8 - i8, np.timedelta64)
423assert_type(m8 * f, np.timedelta64)
424assert_type(m8 * f4, np.timedelta64)
425assert_type(m8 * np.True_, np.timedelta64)
426assert_type(m8 / f, np.timedelta64)
427assert_type(m8 / f4, np.timedelta64)
428assert_type(m8 / m8, np.float64)
429assert_type(m8 // m8, np.int64)
430assert_type(m8 % m8, np.timedelta64)
431assert_type(divmod(m8, m8), tuple[np.int64, np.timedelta64])
432
433assert_type(m8_none + m8, np.timedelta64[None])
434assert_type(m8_none + i, np.timedelta64[None])
435assert_type(m8_none + i8, np.timedelta64[None])
436assert_type(m8_none - i, np.timedelta64[None])
437assert_type(m8_none - i8, np.timedelta64[None])
438
439assert_type(m8_int + i, np.timedelta64[int])
440assert_type(m8_int + m8_delta, np.timedelta64[int])
441assert_type(m8_int + m8, np.timedelta64[int | None])
442assert_type(m8_int - i, np.timedelta64[int])
443assert_type(m8_int - m8_delta, np.timedelta64[int])
444assert_type(m8_int - m8, np.timedelta64[int | None])
445
446assert_type(m8_delta + date, dt.date)
447assert_type(m8_delta + time, dt.datetime)
448assert_type(m8_delta + delta, dt.timedelta)
449assert_type(m8_delta - delta, dt.timedelta)
450assert_type(m8_delta / delta, float)
451assert_type(m8_delta // delta, int)
452assert_type(m8_delta % delta, dt.timedelta)
453assert_type(divmod(m8_delta, delta), tuple[int, dt.timedelta])
454
455# boolean
456
457assert_type(b_ / b, np.float64)
458assert_type(b_ / b_, np.float64)
459assert_type(b_ / i, np.float64)
460assert_type(b_ / i8, np.float64)
461assert_type(b_ / i4, np.float64)
462assert_type(b_ / u8, np.float64)
463assert_type(b_ / u4, np.float64)
464assert_type(b_ / f, np.float64)
465assert_type(b_ / f16, np.floating[_128Bit])
466assert_type(b_ / f8, np.float64)
467assert_type(b_ / f4, np.float32)
468assert_type(b_ / c, np.complex128)
469assert_type(b_ / c16, np.complex128)
470assert_type(b_ / c8, np.complex64)
471
472assert_type(b / b_, np.float64)
473assert_type(b_ / b_, np.float64)
474assert_type(i / b_, np.float64)
475assert_type(i8 / b_, np.float64)
476assert_type(i4 / b_, np.float64)
477assert_type(u8 / b_, np.float64)
478assert_type(u4 / b_, np.float64)
479assert_type(f / b_, np.float64)
480assert_type(f16 / b_, np.floating[_128Bit])
481assert_type(f8 / b_, np.float64)
482assert_type(f4 / b_, np.float32)
483assert_type(c / b_, np.complex128)
484assert_type(c16 / b_, np.complex128)
485assert_type(c8 / b_, np.complex64)
486
487# Complex
488
489assert_type(c16 + f16, np.complexfloating)
490assert_type(c16 + c16, np.complex128)
491assert_type(c16 + f8, np.complex128)
492assert_type(c16 + i8, np.complex128)
493assert_type(c16 + c8, np.complex128)
494assert_type(c16 + f4, np.complex128)
495assert_type(c16 + i4, np.complex128)
496assert_type(c16 + b_, np.complex128)
497assert_type(c16 + b, np.complex128)
498assert_type(c16 + c, np.complex128)
499assert_type(c16 + f, np.complex128)
500assert_type(c16 + AR_f, npt.NDArray[np.complex128])
501
502assert_type(f16 + c16, np.complexfloating)
503assert_type(c16 + c16, np.complex128)
504assert_type(f8 + c16, np.complex128)
505assert_type(i8 + c16, np.complex128)
506assert_type(c8 + c16, np.complex128 | np.complex64)
507assert_type(f4 + c16, np.complexfloating)
508assert_type(i4 + c16, np.complex128)
509assert_type(b_ + c16, np.complex128)
510assert_type(b + c16, np.complex128)
511assert_type(c + c16, np.complex128)
512assert_type(f + c16, np.complex128)
513assert_type(AR_f + c16, npt.NDArray[np.complex128])
514
515assert_type(c8 + f16, np.complex64 | np.complexfloating[_128Bit, _128Bit])
516assert_type(c8 + c16, np.complex64 | np.complex128)
517assert_type(c8 + f8, np.complex64 | np.complex128)
518assert_type(c8 + i8, np.complex64 | np.complexfloating[_64Bit, _64Bit])
519assert_type(c8 + c8, np.complex64)
520assert_type(c8 + f4, np.complex64)
521assert_type(c8 + i4, np.complex64)
522assert_type(c8 + b_, np.complex64)
523assert_type(c8 + b, np.complex64)
524assert_type(c8 + c, np.complex64 | np.complex128)
525assert_type(c8 + f, np.complex64 | np.complex128)
526assert_type(c8 + AR_f, npt.NDArray[np.complexfloating])
527
528assert_type(f16 + c8, np.complexfloating[_128Bit, _128Bit] | np.complex64)
529assert_type(c16 + c8, np.complex128)
530assert_type(f8 + c8, np.complexfloating[_64Bit, _64Bit])
531assert_type(i8 + c8, np.complexfloating[_64Bit, _64Bit] | np.complex64)
532assert_type(c8 + c8, np.complex64)
533assert_type(f4 + c8, np.complex64)
534assert_type(i4 + c8, np.complex64)
535assert_type(b_ + c8, np.complex64)
536assert_type(b + c8, np.complex64)
537assert_type(c + c8, np.complex64 | np.complex128)
538assert_type(f + c8, np.complex64 | np.complex128)
539assert_type(AR_f + c8, npt.NDArray[np.complexfloating])
540
541# Float
542
543assert_type(f8 + f16, np.floating)
544assert_type(f8 + f8, np.float64)
545assert_type(f8 + i8, np.float64)
546assert_type(f8 + f4, np.float64)
547assert_type(f8 + i4, np.float64)
548assert_type(f8 + b_, np.float64)
549assert_type(f8 + b, np.float64)
550assert_type(f8 + c, np.float64 | np.complex128)
551assert_type(f8 + f, np.float64)
552assert_type(f8 + AR_f, npt.NDArray[np.float64])
553
554assert_type(f16 + f8, np.floating)
555assert_type(f8 + f8, np.float64)
556assert_type(i8 + f8, np.float64)
557assert_type(f4 + f8, np.floating)
558assert_type(i4 + f8, np.float64)
559assert_type(b_ + f8, np.float64)
560assert_type(b + f8, np.float64)
561assert_type(c + f8, np.complex128 | np.float64)
562assert_type(f + f8, np.float64)
563assert_type(AR_f + f8, npt.NDArray[np.float64])
564
565assert_type(f4 + f16, np.floating)
566assert_type(f4 + f8, np.floating)
567assert_type(f4 + i8, np.floating)
568assert_type(f4 + f4, np.float32)
569assert_type(f4 + i4, np.floating)
570assert_type(f4 + b_, np.float32)
571assert_type(f4 + b, np.float32)
572assert_type(f4 + c, np.complexfloating)
573assert_type(f4 + f, np.float32)
574assert_type(f4 + AR_f, npt.NDArray[np.float64])
575
576assert_type(f16 + f4, np.floating)
577assert_type(f8 + f4, np.float64)
578assert_type(i8 + f4, np.floating)
579assert_type(f4 + f4, np.float32)
580assert_type(i4 + f4, np.floating)
581assert_type(b_ + f4, np.float32)
582assert_type(b + f4, np.float32)
583assert_type(c + f4, np.complexfloating)
584assert_type(f + f4, np.float32)
585assert_type(AR_f + f4, npt.NDArray[np.float64])
586
587# Int
588
589assert_type(i8 + i8, np.int64)
590assert_type(i8 + u8, Any)
591assert_type(i8 + i4, np.signedinteger)
592assert_type(i8 + u4, Any)
593assert_type(i8 + b_, np.int64)
594assert_type(i8 + b, np.int64)
595assert_type(i8 + c, np.complex128)
596assert_type(i8 + f, np.float64)
597assert_type(i8 + AR_f, npt.NDArray[np.float64])
598
599assert_type(u8 + u8, np.uint64)
600assert_type(u8 + i4, Any)
601assert_type(u8 + u4, np.unsignedinteger)
602assert_type(u8 + b_, np.uint64)
603assert_type(u8 + b, np.uint64)
604assert_type(u8 + c, np.complex128)
605assert_type(u8 + f, np.float64)
606assert_type(u8 + AR_f, npt.NDArray[np.float64])
607
608assert_type(i8 + i8, np.int64)
609assert_type(u8 + i8, Any)
610assert_type(i4 + i8, np.signedinteger)
611assert_type(u4 + i8, Any)
612assert_type(b_ + i8, np.int64)
613assert_type(b + i8, np.int64)
614assert_type(c + i8, np.complex128)
615assert_type(f + i8, np.float64)
616assert_type(AR_f + i8, npt.NDArray[np.float64])
617
618assert_type(u8 + u8, np.uint64)
619assert_type(i4 + u8, Any)
620assert_type(u4 + u8, np.unsignedinteger)
621assert_type(b_ + u8, np.uint64)
622assert_type(b + u8, np.uint64)
623assert_type(c + u8, np.complex128)
624assert_type(f + u8, np.float64)
625assert_type(AR_f + u8, npt.NDArray[np.float64])
626
627assert_type(i4 + i8, np.signedinteger)
628assert_type(i4 + i4, np.int32)
629assert_type(i4 + b_, np.int32)
630assert_type(i4 + b, np.int32)
631assert_type(i4 + AR_f, npt.NDArray[np.float64])
632
633assert_type(u4 + i8, Any)
634assert_type(u4 + i4, Any)
635assert_type(u4 + u8, np.unsignedinteger)
636assert_type(u4 + u4, np.uint32)
637assert_type(u4 + b_, np.uint32)
638assert_type(u4 + b, np.uint32)
639assert_type(u4 + AR_f, npt.NDArray[np.float64])
640
641assert_type(i8 + i4, np.signedinteger)
642assert_type(i4 + i4, np.int32)
643assert_type(b_ + i4, np.int32)
644assert_type(b + i4, np.int32)
645assert_type(AR_f + i4, npt.NDArray[np.float64])
646
647assert_type(i8 + u4, Any)
648assert_type(i4 + u4, Any)
649assert_type(u8 + u4, np.unsignedinteger)
650assert_type(u4 + u4, np.uint32)
651assert_type(b_ + u4, np.uint32)
652assert_type(b + u4, np.uint32)
653assert_type(AR_f + u4, npt.NDArray[np.float64])
654
655# Any
656
657assert_type(AR_Any + 2, npt.NDArray[Any])
658
659# regression tests for https://github.com/numpy/numpy/issues/28805
660
661assert_type(AR_floating + f, npt.NDArray[np.floating])
662assert_type(AR_floating - f, npt.NDArray[np.floating])
663assert_type(AR_floating * f, npt.NDArray[np.floating])
664assert_type(AR_floating ** f, npt.NDArray[np.floating])
665assert_type(AR_floating / f, npt.NDArray[np.floating])
666assert_type(AR_floating // f, npt.NDArray[np.floating])
667assert_type(AR_floating % f, npt.NDArray[np.floating])
668assert_type(divmod(AR_floating, f), tuple[npt.NDArray[np.floating], npt.NDArray[np.floating]])
669
670assert_type(f + AR_floating, npt.NDArray[np.floating])
671assert_type(f - AR_floating, npt.NDArray[np.floating])
672assert_type(f * AR_floating, npt.NDArray[np.floating])
673assert_type(f ** AR_floating, npt.NDArray[np.floating])
674assert_type(f / AR_floating, npt.NDArray[np.floating])
675assert_type(f // AR_floating, npt.NDArray[np.floating])
676assert_type(f % AR_floating, npt.NDArray[np.floating])
677assert_type(divmod(f, AR_floating), tuple[npt.NDArray[np.floating], npt.NDArray[np.floating]])
678
679# character-like
680
681assert_type(AR_S + b"", npt.NDArray[np.bytes_])
682assert_type(AR_S + [b""], npt.NDArray[np.bytes_])
683assert_type([b""] + AR_S, npt.NDArray[np.bytes_])
684assert_type(AR_S + AR_S, npt.NDArray[np.bytes_])
685
686assert_type(AR_U + "", npt.NDArray[np.str_])
687assert_type(AR_U + [""], npt.NDArray[np.str_])
688assert_type("" + AR_U, npt.NDArray[np.str_])
689assert_type([""] + AR_U, npt.NDArray[np.str_])
690assert_type(AR_U + AR_U, npt.NDArray[np.str_])
691
692assert_type(AR_T + "", np.ndarray[tuple[Any, ...], np.dtypes.StringDType])
693assert_type(AR_T + [""], np.ndarray[tuple[Any, ...], np.dtypes.StringDType])
694assert_type("" + AR_T, np.ndarray[tuple[Any, ...], np.dtypes.StringDType])
695assert_type([""] + AR_T, np.ndarray[tuple[Any, ...], np.dtypes.StringDType])
696assert_type(AR_T + AR_T, np.ndarray[tuple[Any, ...], np.dtypes.StringDType])
697assert_type(AR_T + AR_U, np.ndarray[tuple[Any, ...], np.dtypes.StringDType])
698assert_type(AR_U + AR_T, np.ndarray[tuple[Any, ...], np.dtypes.StringDType])
699
700assert_type(AR_S * i, np.ndarray[tuple[Any, ...], np.dtype[np.bytes_]])
701assert_type(AR_S * AR_LIKE_i, np.ndarray[tuple[Any, ...], np.dtype[np.bytes_]])
702assert_type(AR_S * AR_i, np.ndarray[tuple[Any, ...], np.dtype[np.bytes_]])
703assert_type(i * AR_S, np.ndarray[tuple[Any, ...], np.dtype[np.bytes_]])
704# mypy incorrectly infers `AR_LIKE_i * AR_S` as `list[int]`
705assert_type(AR_i * AR_S, np.ndarray[tuple[Any, ...], np.dtype[np.bytes_]])
706
707assert_type(AR_U * i, np.ndarray[tuple[Any, ...], np.dtype[np.str_]])
708assert_type(AR_U * AR_LIKE_i, np.ndarray[tuple[Any, ...], np.dtype[np.str_]])
709assert_type(AR_U * AR_i, np.ndarray[tuple[Any, ...], np.dtype[np.str_]])
710assert_type(i * AR_U, np.ndarray[tuple[Any, ...], np.dtype[np.str_]])
711# mypy incorrectly infers `AR_LIKE_i * AR_U` as `list[int]`
712assert_type(AR_i * AR_U, np.ndarray[tuple[Any, ...], np.dtype[np.str_]])
713
714assert_type(AR_T * i, np.ndarray[tuple[Any, ...], np.dtypes.StringDType])
715assert_type(AR_T * AR_LIKE_i, np.ndarray[tuple[Any, ...], np.dtypes.StringDType])
716assert_type(AR_T * AR_i, np.ndarray[tuple[Any, ...], np.dtypes.StringDType])
717assert_type(i * AR_T, np.ndarray[tuple[Any, ...], np.dtypes.StringDType])
718# mypy incorrectly infers `AR_LIKE_i * AR_T` as `list[int]`
719assert_type(AR_i * AR_T, np.ndarray[tuple[Any, ...], np.dtypes.StringDType])
720 
codekingpro/portable-devtools · Team Ai