|
1 |
| -from typing import Any |
| 1 | +from typing import Any, Never |
2 | 2 |
|
| 3 | +import numpy as np |
3 | 4 | import numpy.typing as npt
|
4 | 5 |
|
5 | 6 | import array_api_typing as xpt
|
6 | 7 |
|
7 |
| -# Define an NDArray against which we can test the protocols |
8 |
| -arr: npt.NDArray[Any] |
| 8 | +# Define NDArrays against which we can test the protocols |
| 9 | +nparr: npt.NDArray[Any] |
| 10 | +nparr_i32: npt.NDArray[np.int32] = np.array([1], dtype=np.int32) |
| 11 | +nparr_f32: npt.NDArray[np.float32] = np.array([1.0], dtype=np.float32) |
9 | 12 |
|
10 | 13 | ###
|
11 | 14 | # Ensure that `np.ndarray` instances are assignable to `xpt.HasArrayNamespace`.
|
12 | 15 |
|
13 |
| -arr_namespace: xpt.HasArrayNamespace[Any] = arr |
| 16 | +arr_ns: xpt.HasArrayNamespace[Any] = nparr |
| 17 | +arr_ns_i32: xpt.HasArrayNamespace[Any] = nparr_i32 |
| 18 | +arr_ns_f32: xpt.HasArrayNamespace[Any] = nparr_f32 |
14 | 19 |
|
15 | 20 | ###
|
16 | 21 | # Ensure that `np.ndarray` instances are assignable to `xpt.Array`.
|
17 | 22 |
|
18 |
| -arr_array: xpt.Array[Any, Any] = arr |
19 |
| -arr_floatarray: xpt.Array[float, Any] = arr |
20 |
| -arr_boolarray: xpt.Array[bool, Any] = arr |
| 23 | +arr_array: xpt.Array[Never, Any] = nparr |
| 24 | +arr_floatarray: xpt.Array[float, Any] = nparr |
| 25 | +arr_boolarray: xpt.Array[bool, Any] = nparr |
| 26 | + |
| 27 | +# Test correct type assignments with actual array instances |
| 28 | +arr_i32: xpt.Array[np.int32, Any] = nparr_i32 # type: ignore[assignment] # FIXME |
| 29 | +arr_f32: xpt.Array[np.float32, Any] = nparr_f32 |
0 commit comments