summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBas van Beek <b.f.van.beek@vu.nl>2022-01-28 14:06:50 +0100
committerBas van Beek <43369155+BvB93@users.noreply.github.com>2022-02-09 16:04:12 +0100
commit4ab7bae7715d2b23309ddf7be76e23daadecf851 (patch)
treea41b09c89373c10e109f1962e97df71d720d9885
parent0045296d24e8389fae24acae110744978bfe7374 (diff)
downloadnumpy-4ab7bae7715d2b23309ddf7be76e23daadecf851.tar.gz
TST: Add more typing tests for `np.core.fromnumeric`
-rw-r--r--numpy/typing/tests/data/fail/fromnumeric.pyi49
-rw-r--r--numpy/typing/tests/data/reveal/fromnumeric.pyi86
2 files changed, 77 insertions, 58 deletions
diff --git a/numpy/typing/tests/data/fail/fromnumeric.pyi b/numpy/typing/tests/data/fail/fromnumeric.pyi
index 84c95639d..5f292999a 100644
--- a/numpy/typing/tests/data/fail/fromnumeric.pyi
+++ b/numpy/typing/tests/data/fail/fromnumeric.pyi
@@ -7,10 +7,10 @@ A.setflags(write=False)
a = np.bool_(True)
-np.take(a, None) # E: incompatible type
-np.take(a, axis=1.0) # E: incompatible type
-np.take(A, out=1) # E: incompatible type
-np.take(A, mode="bob") # E: incompatible type
+np.take(a, None) # E: No overload variant
+np.take(a, axis=1.0) # E: No overload variant
+np.take(A, out=1) # E: No overload variant
+np.take(A, mode="bob") # E: No overload variant
np.reshape(a, None) # E: No overload variant
np.reshape(A, 1, order="bob") # E: No overload variant
@@ -80,9 +80,9 @@ np.diagonal(A, offset=None) # E: No overload variant
np.diagonal(A, axis1="bob") # E: No overload variant
np.diagonal(A, axis2=[]) # E: No overload variant
-np.trace(A, offset=None) # E: Argument "offset" to "trace" has incompatible type
-np.trace(A, axis1="bob") # E: Argument "axis1" to "trace" has incompatible type
-np.trace(A, axis2=[]) # E: Argument "axis2" to "trace" has incompatible type
+np.trace(A, offset=None) # E: No overload variant
+np.trace(A, axis1="bob") # E: No overload variant
+np.trace(A, axis2=[]) # E: No overload variant
np.ravel(a, order="bob") # E: No overload variant
@@ -91,11 +91,10 @@ np.compress( # E: No overload variant
)
np.clip(a, 1, 2, out=1) # E: No overload variant of "clip" matches argument type
-np.clip(1, None, None) # E: No overload variant of "clip" matches argument type
-np.sum(a, axis=1.0) # E: incompatible type
-np.sum(a, keepdims=1.0) # E: incompatible type
-np.sum(a, initial=[1]) # E: incompatible type
+np.sum(a, axis=1.0) # E: No overload variant
+np.sum(a, keepdims=1.0) # E: No overload variant
+np.sum(a, initial=[1]) # E: No overload variant
np.all(a, axis=1.0) # E: No overload variant
np.all(a, keepdims=1.0) # E: No overload variant
@@ -105,24 +104,24 @@ np.any(a, axis=1.0) # E: No overload variant
np.any(a, keepdims=1.0) # E: No overload variant
np.any(a, out=1.0) # E: No overload variant
-np.cumsum(a, axis=1.0) # E: incompatible type
-np.cumsum(a, dtype=1.0) # E: incompatible type
-np.cumsum(a, out=1.0) # E: incompatible type
+np.cumsum(a, axis=1.0) # E: No overload variant
+np.cumsum(a, dtype=1.0) # E: No overload variant
+np.cumsum(a, out=1.0) # E: No overload variant
-np.ptp(a, axis=1.0) # E: incompatible type
-np.ptp(a, keepdims=1.0) # E: incompatible type
-np.ptp(a, out=1.0) # E: incompatible type
+np.ptp(a, axis=1.0) # E: No overload variant
+np.ptp(a, keepdims=1.0) # E: No overload variant
+np.ptp(a, out=1.0) # E: No overload variant
-np.amax(a, axis=1.0) # E: incompatible type
-np.amax(a, keepdims=1.0) # E: incompatible type
-np.amax(a, out=1.0) # E: incompatible type
-np.amax(a, initial=[1.0]) # E: incompatible type
+np.amax(a, axis=1.0) # E: No overload variant
+np.amax(a, keepdims=1.0) # E: No overload variant
+np.amax(a, out=1.0) # E: No overload variant
+np.amax(a, initial=[1.0]) # E: No overload variant
np.amax(a, where=[1.0]) # E: incompatible type
-np.amin(a, axis=1.0) # E: incompatible type
-np.amin(a, keepdims=1.0) # E: incompatible type
-np.amin(a, out=1.0) # E: incompatible type
-np.amin(a, initial=[1.0]) # E: incompatible type
+np.amin(a, axis=1.0) # E: No overload variant
+np.amin(a, keepdims=1.0) # E: No overload variant
+np.amin(a, out=1.0) # E: No overload variant
+np.amin(a, initial=[1.0]) # E: No overload variant
np.amin(a, where=[1.0]) # E: incompatible type
np.prod(a, axis=1.0) # E: incompatible type
diff --git a/numpy/typing/tests/data/reveal/fromnumeric.pyi b/numpy/typing/tests/data/reveal/fromnumeric.pyi
index bec23508d..f9f0ff625 100644
--- a/numpy/typing/tests/data/reveal/fromnumeric.pyi
+++ b/numpy/typing/tests/data/reveal/fromnumeric.pyi
@@ -3,21 +3,27 @@
import numpy as np
import numpy.typing as npt
+class NDArraySubclass(npt.NDArray[np.complex128]):
+ ...
+
AR_b: npt.NDArray[np.bool_]
AR_f4: npt.NDArray[np.float32]
AR_i8: npt.NDArray[np.int64]
+AR_subclass: NDArraySubclass
b: np.bool_
f4: np.float32
f: float
-reveal_type(np.take(b, 0)) # E: Any
-reveal_type(np.take(f4, 0)) # E: Any
+reveal_type(np.take(b, 0)) # E: bool_
+reveal_type(np.take(f4, 0)) # E: {float32}
reveal_type(np.take(f, 0)) # E: Any
-reveal_type(np.take(AR_b, 0)) # E: Any
-reveal_type(np.take(AR_f4, 0)) # E: Any
-reveal_type(np.take(AR_b, [0])) # E: Any
-reveal_type(np.take(AR_f4, [0])) # E: Any
+reveal_type(np.take(AR_b, 0)) # E: bool_
+reveal_type(np.take(AR_f4, 0)) # E: {float32}
+reveal_type(np.take(AR_b, [0])) # E: ndarray[Any, dtype[bool_]]
+reveal_type(np.take(AR_f4, [0])) # E: ndarray[Any, dtype[{float32}]]
+reveal_type(np.take([1], [0])) # E: ndarray[Any, dtype[Any]]
+reveal_type(np.take(AR_f4, [0], out=AR_subclass)) # E: NDArraySubclass
reveal_type(np.reshape(b, 1)) # E: ndarray[Any, dtype[bool_]]
reveal_type(np.reshape(f4, 1)) # E: ndarray[Any, dtype[{float32}]]
@@ -71,11 +77,13 @@ reveal_type(np.argmax(AR_b)) # E: {intp}
reveal_type(np.argmax(AR_f4)) # E: {intp}
reveal_type(np.argmax(AR_b, axis=0)) # E: Any
reveal_type(np.argmax(AR_f4, axis=0)) # E: Any
+reveal_type(np.argmax(AR_f4, out=AR_subclass)) # E: NDArraySubclass
reveal_type(np.argmin(AR_b)) # E: {intp}
reveal_type(np.argmin(AR_f4)) # E: {intp}
reveal_type(np.argmin(AR_b, axis=0)) # E: Any
reveal_type(np.argmin(AR_f4, axis=0)) # E: Any
+reveal_type(np.argmin(AR_f4, out=AR_subclass)) # E: NDArraySubclass
reveal_type(np.searchsorted(AR_b[0], 0)) # E: {intp}
reveal_type(np.searchsorted(AR_f4[0], 0)) # E: {intp}
@@ -99,6 +107,7 @@ reveal_type(np.diagonal(AR_f4)) # E: ndarray[Any, dtype[{float32}]]
reveal_type(np.trace(AR_b)) # E: Any
reveal_type(np.trace(AR_f4)) # E: Any
+reveal_type(np.trace(AR_f4, out=AR_subclass)) # E: NDArraySubclass
reveal_type(np.ravel(b)) # E: ndarray[Any, dtype[bool_]]
reveal_type(np.ravel(f4)) # E: ndarray[Any, dtype[{float32}]]
@@ -124,19 +133,22 @@ reveal_type(np.compress([True], f)) # E: ndarray[Any, dtype[Any]]
reveal_type(np.compress([True], AR_b)) # E: ndarray[Any, dtype[bool_]]
reveal_type(np.compress([True], AR_f4)) # E: ndarray[Any, dtype[{float32}]]
-reveal_type(np.clip(b, 0, 1.0)) # E: Any
-reveal_type(np.clip(f4, -1, 1)) # E: Any
+reveal_type(np.clip(b, 0, 1.0)) # E: bool_
+reveal_type(np.clip(f4, -1, 1)) # E: {float32}
reveal_type(np.clip(f, 0, 1)) # E: Any
-reveal_type(np.clip(AR_b, 0, 1)) # E: Any
-reveal_type(np.clip(AR_f4, 0, 1)) # E: Any
+reveal_type(np.clip(AR_b, 0, 1)) # E: ndarray[Any, dtype[bool_]]
+reveal_type(np.clip(AR_f4, 0, 1)) # E: ndarray[Any, dtype[{float32}]]
+reveal_type(np.clip([0], 0, 1)) # E: ndarray[Any, dtype[Any]]
+reveal_type(np.clip(AR_b, 0, 1, out=AR_subclass)) # E: NDArraySubclass
-reveal_type(np.sum(b)) # E: Any
-reveal_type(np.sum(f4)) # E: Any
+reveal_type(np.sum(b)) # E: bool_
+reveal_type(np.sum(f4)) # E: {float32}
reveal_type(np.sum(f)) # E: Any
-reveal_type(np.sum(AR_b)) # E: Any
-reveal_type(np.sum(AR_f4)) # E: Any
+reveal_type(np.sum(AR_b)) # E: bool_
+reveal_type(np.sum(AR_f4)) # E: {float32}
reveal_type(np.sum(AR_b, axis=0)) # E: Any
reveal_type(np.sum(AR_f4, axis=0)) # E: Any
+reveal_type(np.sum(AR_f4, out=AR_subclass)) # E: NDArraySubclass
reveal_type(np.all(b)) # E: bool_
reveal_type(np.all(f4)) # E: bool_
@@ -147,6 +159,7 @@ reveal_type(np.all(AR_b, axis=0)) # E: Any
reveal_type(np.all(AR_f4, axis=0)) # E: Any
reveal_type(np.all(AR_b, keepdims=True)) # E: Any
reveal_type(np.all(AR_f4, keepdims=True)) # E: Any
+reveal_type(np.all(AR_f4, out=AR_subclass)) # E: NDArraySubclass
reveal_type(np.any(b)) # E: bool_
reveal_type(np.any(f4)) # E: bool_
@@ -157,42 +170,49 @@ reveal_type(np.any(AR_b, axis=0)) # E: Any
reveal_type(np.any(AR_f4, axis=0)) # E: Any
reveal_type(np.any(AR_b, keepdims=True)) # E: Any
reveal_type(np.any(AR_f4, keepdims=True)) # E: Any
-
-reveal_type(np.cumsum(b)) # E: ndarray[Any, Any]
-reveal_type(np.cumsum(f4)) # E: ndarray[Any, Any]
-reveal_type(np.cumsum(f)) # E: ndarray[Any, Any]
-reveal_type(np.cumsum(AR_b)) # E: ndarray[Any, Any]
-reveal_type(np.cumsum(AR_f4)) # E: ndarray[Any, Any]
-
-reveal_type(np.ptp(b)) # E: Any
-reveal_type(np.ptp(f4)) # E: Any
+reveal_type(np.any(AR_f4, out=AR_subclass)) # E: NDArraySubclass
+
+reveal_type(np.cumsum(b)) # E: ndarray[Any, dtype[bool_]]
+reveal_type(np.cumsum(f4)) # E: ndarray[Any, dtype[{float32}]]
+reveal_type(np.cumsum(f)) # E: ndarray[Any, dtype[Any]]
+reveal_type(np.cumsum(AR_b)) # E: ndarray[Any, dtype[bool_]]
+reveal_type(np.cumsum(AR_f4)) # E: ndarray[Any, dtype[{float32}]]
+reveal_type(np.cumsum(f, dtype=float)) # E: ndarray[Any, dtype[Any]]
+reveal_type(np.cumsum(f, dtype=np.float64)) # E: ndarray[Any, dtype[{float64}]]
+reveal_type(np.cumsum(AR_f4, out=AR_subclass)) # E: NDArraySubclass
+
+reveal_type(np.ptp(b)) # E: bool_
+reveal_type(np.ptp(f4)) # E: {float32}
reveal_type(np.ptp(f)) # E: Any
-reveal_type(np.ptp(AR_b)) # E: Any
-reveal_type(np.ptp(AR_f4)) # E: Any
+reveal_type(np.ptp(AR_b)) # E: bool_
+reveal_type(np.ptp(AR_f4)) # E: {float32}
reveal_type(np.ptp(AR_b, axis=0)) # E: Any
reveal_type(np.ptp(AR_f4, axis=0)) # E: Any
reveal_type(np.ptp(AR_b, keepdims=True)) # E: Any
reveal_type(np.ptp(AR_f4, keepdims=True)) # E: Any
+reveal_type(np.ptp(AR_f4, out=AR_subclass)) # E: NDArraySubclass
-reveal_type(np.amax(b)) # E: Any
-reveal_type(np.amax(f4)) # E: Any
+reveal_type(np.amax(b)) # E: bool_
+reveal_type(np.amax(f4)) # E: {float32}
reveal_type(np.amax(f)) # E: Any
-reveal_type(np.amax(AR_b)) # E: Any
-reveal_type(np.amax(AR_f4)) # E: Any
+reveal_type(np.amax(AR_b)) # E: bool_
+reveal_type(np.amax(AR_f4)) # E: {float32}
reveal_type(np.amax(AR_b, axis=0)) # E: Any
reveal_type(np.amax(AR_f4, axis=0)) # E: Any
reveal_type(np.amax(AR_b, keepdims=True)) # E: Any
reveal_type(np.amax(AR_f4, keepdims=True)) # E: Any
+reveal_type(np.amax(AR_f4, out=AR_subclass)) # E: NDArraySubclass
-reveal_type(np.amin(b)) # E: Any
-reveal_type(np.amin(f4)) # E: Any
+reveal_type(np.amin(b)) # E: bool_
+reveal_type(np.amin(f4)) # E: {float32}
reveal_type(np.amin(f)) # E: Any
-reveal_type(np.amin(AR_b)) # E: Any
-reveal_type(np.amin(AR_f4)) # E: Any
+reveal_type(np.amin(AR_b)) # E: bool_
+reveal_type(np.amin(AR_f4)) # E: {float32}
reveal_type(np.amin(AR_b, axis=0)) # E: Any
reveal_type(np.amin(AR_f4, axis=0)) # E: Any
reveal_type(np.amin(AR_b, keepdims=True)) # E: Any
reveal_type(np.amin(AR_f4, keepdims=True)) # E: Any
+reveal_type(np.amin(AR_f4, out=AR_subclass)) # E: NDArraySubclass
reveal_type(np.prod(b)) # E: Any
reveal_type(np.prod(f4)) # E: Any