codekingpro/portable-devtools
114k
1from typing import Literal, Never, assert_type
2
3import numpy as np
4
5info = np.__array_namespace_info__()
6
7assert_type(info.__module__, Literal["numpy"])
8
9assert_type(info.default_device(), Literal["cpu"])
10assert_type(info.devices()[0], Literal["cpu"])
11assert_type(info.devices()[-1], Literal["cpu"])
12
13assert_type(info.capabilities()["boolean indexing"], Literal[True])
14assert_type(info.capabilities()["data-dependent shapes"], Literal[True])
15
16assert_type(info.default_dtypes()["real floating"], np.dtype[np.float64])
17assert_type(info.default_dtypes()["complex floating"], np.dtype[np.complex128])
18assert_type(info.default_dtypes()["integral"], np.dtype[np.int_])
19assert_type(info.default_dtypes()["indexing"], np.dtype[np.intp])
20
21assert_type(info.dtypes()["bool"], np.dtype[np.bool])
22assert_type(info.dtypes()["int8"], np.dtype[np.int8])
23assert_type(info.dtypes()["uint8"], np.dtype[np.uint8])
24assert_type(info.dtypes()["float32"], np.dtype[np.float32])
25assert_type(info.dtypes()["complex64"], np.dtype[np.complex64])
26
27assert_type(info.dtypes(kind="bool")["bool"], np.dtype[np.bool])
28assert_type(info.dtypes(kind="signed integer")["int64"], np.dtype[np.int64])
29assert_type(info.dtypes(kind="unsigned integer")["uint64"], np.dtype[np.uint64])
30assert_type(info.dtypes(kind="integral")["int32"], np.dtype[np.int32])
31assert_type(info.dtypes(kind="integral")["uint32"], np.dtype[np.uint32])
32assert_type(info.dtypes(kind="real floating")["float64"], np.dtype[np.float64])
33assert_type(info.dtypes(kind="complex floating")["complex128"], np.dtype[np.complex128])
34assert_type(info.dtypes(kind="numeric")["int16"], np.dtype[np.int16])
35assert_type(info.dtypes(kind="numeric")["uint16"], np.dtype[np.uint16])
36assert_type(info.dtypes(kind="numeric")["float64"], np.dtype[np.float64])
37assert_type(info.dtypes(kind="numeric")["complex128"], np.dtype[np.complex128])
38
39assert_type(info.dtypes(kind=()), dict[Never, Never])
40
41assert_type(info.dtypes(kind=("bool",))["bool"], np.dtype[np.bool])
42assert_type(info.dtypes(kind=("signed integer",))["int64"], np.dtype[np.int64])
43assert_type(info.dtypes(kind=("integral",))["uint32"], np.dtype[np.uint32])
44assert_type(info.dtypes(kind=("complex floating",))["complex128"], np.dtype[np.complex128])
45assert_type(info.dtypes(kind=("numeric",))["float64"], np.dtype[np.float64])
46
47assert_type(
48 info.dtypes(kind=("signed integer", "unsigned integer"))["int8"],
49 np.dtype[np.int8],
50)
51assert_type(
52 info.dtypes(kind=("signed integer", "unsigned integer"))["uint8"],
53 np.dtype[np.uint8],
54)
55assert_type(
56 info.dtypes(kind=("integral", "real floating", "complex floating"))["int16"],
57 np.dtype[np.int16],
58)
59assert_type(
60 info.dtypes(kind=("integral", "real floating", "complex floating"))["uint16"],
61 np.dtype[np.uint16],
62)
63assert_type(
64 info.dtypes(kind=("integral", "real floating", "complex floating"))["float32"],
65 np.dtype[np.float32],
66)
67assert_type(
68 info.dtypes(kind=("integral", "real floating", "complex floating"))["complex64"],
69 np.dtype[np.complex64],
70)
71 