summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBas van Beek <b.f.van.beek@vu.nl>2021-05-12 14:49:06 +0200
committerBas van Beek <b.f.van.beek@vu.nl>2021-05-12 15:53:36 +0200
commiteb28af241185586467f145d4c986e8f315b3d940 (patch)
tree11f1e00a806c1d36a6be1a8fd15f9061fd59d3d3
parent5f59e7729f0b1708f58ec0e5c72a90b023f45458 (diff)
downloadnumpy-eb28af241185586467f145d4c986e8f315b3d940.tar.gz
TST: Add typing tests for the `item`, `take`, `tolist` and `repeat` methods
-rw-r--r--numpy/typing/tests/data/fail/fromnumeric.py4
-rw-r--r--numpy/typing/tests/data/pass/ndarray_misc.py11
-rw-r--r--numpy/typing/tests/data/pass/scalars.py16
-rw-r--r--numpy/typing/tests/data/reveal/ndarray_misc.py165
-rw-r--r--numpy/typing/tests/data/reveal/scalars.py16
5 files changed, 127 insertions, 85 deletions
diff --git a/numpy/typing/tests/data/fail/fromnumeric.py b/numpy/typing/tests/data/fail/fromnumeric.py
index d8f7a5d69..8fafed1b7 100644
--- a/numpy/typing/tests/data/fail/fromnumeric.py
+++ b/numpy/typing/tests/data/fail/fromnumeric.py
@@ -117,13 +117,13 @@ 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, where=[1.0]) # E: List item 0 has incompatible type
+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, where=[1.0]) # E: List item 0 has incompatible type
+np.amin(a, where=[1.0]) # E: incompatible type
np.prod(a, axis=1.0) # E: incompatible type
np.prod(a, out=False) # E: incompatible type
diff --git a/numpy/typing/tests/data/pass/ndarray_misc.py b/numpy/typing/tests/data/pass/ndarray_misc.py
index 6c6f5d50b..ba10ce974 100644
--- a/numpy/typing/tests/data/pass/ndarray_misc.py
+++ b/numpy/typing/tests/data/pass/ndarray_misc.py
@@ -6,17 +6,19 @@ function-based counterpart in `../from_numeric.py`.
"""
-from typing import cast
+from __future__ import annotations
+
+from typing import cast, Any
import numpy as np
class SubClass(np.ndarray): ...
i4 = np.int32(1)
-A = np.array([[1]], dtype=np.int32)
+A: np.ndarray[Any, np.dtype[np.int32]] = np.array([[1]], dtype=np.int32)
B0 = np.empty((), dtype=np.int32).view(SubClass)
B1 = np.empty((1,), dtype=np.int32).view(SubClass)
B2 = np.empty((1, 1), dtype=np.int32).view(SubClass)
-C = np.array([0, 1, 2], dtype=np.int32)
+C: np.ndarray[Any, np.dtype[np.int32]] = np.array([0, 1, 2], dtype=np.int32)
D = np.empty(3).view(SubClass)
i4.all()
@@ -157,3 +159,6 @@ A.trace(out=B0)
void = cast(np.void, np.array(1, dtype=[("f", np.float64)]).take(0))
void.setfield(10, np.float64)
+
+A.item(0)
+C.item(0)
diff --git a/numpy/typing/tests/data/pass/scalars.py b/numpy/typing/tests/data/pass/scalars.py
index 815566b68..f7965e1c5 100644
--- a/numpy/typing/tests/data/pass/scalars.py
+++ b/numpy/typing/tests/data/pass/scalars.py
@@ -204,3 +204,19 @@ np.cfloat()
np.clongdouble()
np.clongfloat()
np.longcomplex()
+
+np.bool_().item()
+np.int_().item()
+np.uint64().item()
+np.float32().item()
+np.complex128().item()
+np.str_().item()
+np.bytes_().item()
+
+np.bool_().tolist()
+np.int_().tolist()
+np.uint64().tolist()
+np.float32().tolist()
+np.complex128().tolist()
+np.str_().tolist()
+np.bytes_().tolist()
diff --git a/numpy/typing/tests/data/reveal/ndarray_misc.py b/numpy/typing/tests/data/reveal/ndarray_misc.py
index e0f44bcbc..8c45eb6f3 100644
--- a/numpy/typing/tests/data/reveal/ndarray_misc.py
+++ b/numpy/typing/tests/data/reveal/ndarray_misc.py
@@ -6,145 +6,150 @@ function-based counterpart in `../from_numeric.py`.
"""
+from typing import Any
import numpy as np
class SubClass(np.ndarray): ...
f8: np.float64
-A: np.ndarray
+AR_f8: np.ndarray[Any, np.dtype[np.float64]]
B: SubClass
+AR_U: np.ndarray[Any, np.dtype[np.str_]]
reveal_type(f8.all()) # E: numpy.bool_
-reveal_type(A.all()) # E: numpy.bool_
-reveal_type(A.all(axis=0)) # E: Any
-reveal_type(A.all(keepdims=True)) # E: Any
-reveal_type(A.all(out=B)) # E: SubClass
+reveal_type(AR_f8.all()) # E: numpy.bool_
+reveal_type(AR_f8.all(axis=0)) # E: Any
+reveal_type(AR_f8.all(keepdims=True)) # E: Any
+reveal_type(AR_f8.all(out=B)) # E: SubClass
reveal_type(f8.any()) # E: numpy.bool_
-reveal_type(A.any()) # E: numpy.bool_
-reveal_type(A.any(axis=0)) # E: Any
-reveal_type(A.any(keepdims=True)) # E: Any
-reveal_type(A.any(out=B)) # E: SubClass
+reveal_type(AR_f8.any()) # E: numpy.bool_
+reveal_type(AR_f8.any(axis=0)) # E: Any
+reveal_type(AR_f8.any(keepdims=True)) # E: Any
+reveal_type(AR_f8.any(out=B)) # E: SubClass
reveal_type(f8.argmax()) # E: {intp}
-reveal_type(A.argmax()) # E: {intp}
-reveal_type(A.argmax(axis=0)) # E: Any
-reveal_type(A.argmax(out=B)) # E: SubClass
+reveal_type(AR_f8.argmax()) # E: {intp}
+reveal_type(AR_f8.argmax(axis=0)) # E: Any
+reveal_type(AR_f8.argmax(out=B)) # E: SubClass
reveal_type(f8.argmin()) # E: {intp}
-reveal_type(A.argmin()) # E: {intp}
-reveal_type(A.argmin(axis=0)) # E: Any
-reveal_type(A.argmin(out=B)) # E: SubClass
+reveal_type(AR_f8.argmin()) # E: {intp}
+reveal_type(AR_f8.argmin(axis=0)) # E: Any
+reveal_type(AR_f8.argmin(out=B)) # E: SubClass
reveal_type(f8.argsort()) # E: numpy.ndarray[Any, Any]
-reveal_type(A.argsort()) # E: numpy.ndarray[Any, Any]
+reveal_type(AR_f8.argsort()) # E: numpy.ndarray[Any, Any]
reveal_type(f8.astype(np.int64).choose([()])) # E: numpy.ndarray[Any, Any]
-reveal_type(A.choose([0])) # E: numpy.ndarray[Any, Any]
-reveal_type(A.choose([0], out=B)) # E: SubClass
+reveal_type(AR_f8.choose([0])) # E: numpy.ndarray[Any, Any]
+reveal_type(AR_f8.choose([0], out=B)) # E: SubClass
reveal_type(f8.clip(1)) # E: Any
-reveal_type(A.clip(1)) # E: Any
-reveal_type(A.clip(None, 1)) # E: Any
-reveal_type(A.clip(1, out=B)) # E: SubClass
-reveal_type(A.clip(None, 1, out=B)) # E: SubClass
+reveal_type(AR_f8.clip(1)) # E: Any
+reveal_type(AR_f8.clip(None, 1)) # E: Any
+reveal_type(AR_f8.clip(1, out=B)) # E: SubClass
+reveal_type(AR_f8.clip(None, 1, out=B)) # E: SubClass
reveal_type(f8.compress([0])) # E: numpy.ndarray[Any, Any]
-reveal_type(A.compress([0])) # E: numpy.ndarray[Any, Any]
-reveal_type(A.compress([0], out=B)) # E: SubClass
+reveal_type(AR_f8.compress([0])) # E: numpy.ndarray[Any, Any]
+reveal_type(AR_f8.compress([0], out=B)) # E: SubClass
reveal_type(f8.conj()) # E: {float64}
-reveal_type(A.conj()) # E: numpy.ndarray[Any, Any]
+reveal_type(AR_f8.conj()) # E: numpy.ndarray[Any, numpy.dtype[{float64}]]
reveal_type(B.conj()) # E: SubClass
reveal_type(f8.conjugate()) # E: {float64}
-reveal_type(A.conjugate()) # E: numpy.ndarray[Any, Any]
+reveal_type(AR_f8.conjugate()) # E: numpy.ndarray[Any, numpy.dtype[{float64}]]
reveal_type(B.conjugate()) # E: SubClass
reveal_type(f8.cumprod()) # E: numpy.ndarray[Any, Any]
-reveal_type(A.cumprod()) # E: numpy.ndarray[Any, Any]
-reveal_type(A.cumprod(out=B)) # E: SubClass
+reveal_type(AR_f8.cumprod()) # E: numpy.ndarray[Any, Any]
+reveal_type(AR_f8.cumprod(out=B)) # E: SubClass
reveal_type(f8.cumsum()) # E: numpy.ndarray[Any, Any]
-reveal_type(A.cumsum()) # E: numpy.ndarray[Any, Any]
-reveal_type(A.cumsum(out=B)) # E: SubClass
+reveal_type(AR_f8.cumsum()) # E: numpy.ndarray[Any, Any]
+reveal_type(AR_f8.cumsum(out=B)) # E: SubClass
reveal_type(f8.max()) # E: Any
-reveal_type(A.max()) # E: Any
-reveal_type(A.max(axis=0)) # E: Any
-reveal_type(A.max(keepdims=True)) # E: Any
-reveal_type(A.max(out=B)) # E: SubClass
+reveal_type(AR_f8.max()) # E: Any
+reveal_type(AR_f8.max(axis=0)) # E: Any
+reveal_type(AR_f8.max(keepdims=True)) # E: Any
+reveal_type(AR_f8.max(out=B)) # E: SubClass
reveal_type(f8.mean()) # E: Any
-reveal_type(A.mean()) # E: Any
-reveal_type(A.mean(axis=0)) # E: Any
-reveal_type(A.mean(keepdims=True)) # E: Any
-reveal_type(A.mean(out=B)) # E: SubClass
+reveal_type(AR_f8.mean()) # E: Any
+reveal_type(AR_f8.mean(axis=0)) # E: Any
+reveal_type(AR_f8.mean(keepdims=True)) # E: Any
+reveal_type(AR_f8.mean(out=B)) # E: SubClass
reveal_type(f8.min()) # E: Any
-reveal_type(A.min()) # E: Any
-reveal_type(A.min(axis=0)) # E: Any
-reveal_type(A.min(keepdims=True)) # E: Any
-reveal_type(A.min(out=B)) # E: SubClass
+reveal_type(AR_f8.min()) # E: Any
+reveal_type(AR_f8.min(axis=0)) # E: Any
+reveal_type(AR_f8.min(keepdims=True)) # E: Any
+reveal_type(AR_f8.min(out=B)) # E: SubClass
reveal_type(f8.newbyteorder()) # E: {float64}
-reveal_type(A.newbyteorder()) # E: numpy.ndarray[Any, Any]
+reveal_type(AR_f8.newbyteorder()) # E: numpy.ndarray[Any, numpy.dtype[{float64}]]
reveal_type(B.newbyteorder('|')) # E: SubClass
reveal_type(f8.prod()) # E: Any
-reveal_type(A.prod()) # E: Any
-reveal_type(A.prod(axis=0)) # E: Any
-reveal_type(A.prod(keepdims=True)) # E: Any
-reveal_type(A.prod(out=B)) # E: SubClass
+reveal_type(AR_f8.prod()) # E: Any
+reveal_type(AR_f8.prod(axis=0)) # E: Any
+reveal_type(AR_f8.prod(keepdims=True)) # E: Any
+reveal_type(AR_f8.prod(out=B)) # E: SubClass
reveal_type(f8.ptp()) # E: Any
-reveal_type(A.ptp()) # E: Any
-reveal_type(A.ptp(axis=0)) # E: Any
-reveal_type(A.ptp(keepdims=True)) # E: Any
-reveal_type(A.ptp(out=B)) # E: SubClass
+reveal_type(AR_f8.ptp()) # E: Any
+reveal_type(AR_f8.ptp(axis=0)) # E: Any
+reveal_type(AR_f8.ptp(keepdims=True)) # E: Any
+reveal_type(AR_f8.ptp(out=B)) # E: SubClass
reveal_type(f8.round()) # E: {float64}
-reveal_type(A.round()) # E: numpy.ndarray[Any, Any]
-reveal_type(A.round(out=B)) # E: SubClass
+reveal_type(AR_f8.round()) # E: numpy.ndarray[Any, numpy.dtype[{float64}]]
+reveal_type(AR_f8.round(out=B)) # E: SubClass
-reveal_type(f8.repeat(1)) # E: numpy.ndarray[Any, Any]
-reveal_type(A.repeat(1)) # E: numpy.ndarray[Any, Any]
+reveal_type(f8.repeat(1)) # E: numpy.ndarray[Any, numpy.dtype[{float64}]]
+reveal_type(AR_f8.repeat(1)) # E: numpy.ndarray[Any, numpy.dtype[{float64}]]
reveal_type(B.repeat(1)) # E: numpy.ndarray[Any, Any]
reveal_type(f8.std()) # E: Any
-reveal_type(A.std()) # E: Any
-reveal_type(A.std(axis=0)) # E: Any
-reveal_type(A.std(keepdims=True)) # E: Any
-reveal_type(A.std(out=B)) # E: SubClass
+reveal_type(AR_f8.std()) # E: Any
+reveal_type(AR_f8.std(axis=0)) # E: Any
+reveal_type(AR_f8.std(keepdims=True)) # E: Any
+reveal_type(AR_f8.std(out=B)) # E: SubClass
reveal_type(f8.sum()) # E: Any
-reveal_type(A.sum()) # E: Any
-reveal_type(A.sum(axis=0)) # E: Any
-reveal_type(A.sum(keepdims=True)) # E: Any
-reveal_type(A.sum(out=B)) # E: SubClass
+reveal_type(AR_f8.sum()) # E: Any
+reveal_type(AR_f8.sum(axis=0)) # E: Any
+reveal_type(AR_f8.sum(keepdims=True)) # E: Any
+reveal_type(AR_f8.sum(out=B)) # E: SubClass
-reveal_type(f8.take(0)) # E: Any
-reveal_type(A.take(0)) # E: Any
-reveal_type(A.take([0])) # E: numpy.ndarray[Any, Any]
-reveal_type(A.take(0, out=B)) # E: SubClass
-reveal_type(A.take([0], out=B)) # E: SubClass
+reveal_type(f8.take(0)) # E: {float64}
+reveal_type(AR_f8.take(0)) # E: {float64}
+reveal_type(AR_f8.take([0])) # E: numpy.ndarray[Any, numpy.dtype[{float64}]]
+reveal_type(AR_f8.take(0, out=B)) # E: SubClass
+reveal_type(AR_f8.take([0], out=B)) # E: SubClass
reveal_type(f8.var()) # E: Any
-reveal_type(A.var()) # E: Any
-reveal_type(A.var(axis=0)) # E: Any
-reveal_type(A.var(keepdims=True)) # E: Any
-reveal_type(A.var(out=B)) # E: SubClass
+reveal_type(AR_f8.var()) # E: Any
+reveal_type(AR_f8.var(axis=0)) # E: Any
+reveal_type(AR_f8.var(keepdims=True)) # E: Any
+reveal_type(AR_f8.var(out=B)) # E: SubClass
-reveal_type(A.argpartition([0])) # E: numpy.ndarray[Any, Any]
+reveal_type(AR_f8.argpartition([0])) # E: numpy.ndarray[Any, Any]
-reveal_type(A.diagonal()) # E: numpy.ndarray[Any, Any]
+reveal_type(AR_f8.diagonal()) # E: numpy.ndarray[Any, numpy.dtype[{float64}]]
-reveal_type(A.dot(1)) # E: Any
-reveal_type(A.dot(1, out=B)) # E: SubClass
+reveal_type(AR_f8.dot(1)) # E: Any
+reveal_type(AR_f8.dot(1, out=B)) # E: SubClass
-reveal_type(A.nonzero()) # E: tuple[numpy.ndarray[Any, Any]]
+reveal_type(AR_f8.nonzero()) # E: tuple[numpy.ndarray[Any, Any]]
-reveal_type(A.searchsorted([1])) # E: numpy.ndarray[Any, Any]
+reveal_type(AR_f8.searchsorted([1])) # E: numpy.ndarray[Any, Any]
-reveal_type(A.trace()) # E: Any
-reveal_type(A.trace(out=B)) # E: SubClass
+reveal_type(AR_f8.trace()) # E: Any
+reveal_type(AR_f8.trace(out=B)) # E: SubClass
+
+reveal_type(AR_f8.item()) # E: float
+reveal_type(AR_U.item()) # E: str
diff --git a/numpy/typing/tests/data/reveal/scalars.py b/numpy/typing/tests/data/reveal/scalars.py
index fa94aa49b..f50c46c43 100644
--- a/numpy/typing/tests/data/reveal/scalars.py
+++ b/numpy/typing/tests/data/reveal/scalars.py
@@ -67,3 +67,19 @@ reveal_type(np.cfloat()) # E: {cdouble}
reveal_type(np.clongdouble()) # E: {clongdouble}
reveal_type(np.clongfloat()) # E: {clongdouble}
reveal_type(np.longcomplex()) # E: {clongdouble}
+
+reveal_type(np.bool_().item()) # E: bool
+reveal_type(np.int_().item()) # E: int
+reveal_type(np.uint64().item()) # E: int
+reveal_type(np.float32().item()) # E: float
+reveal_type(np.complex128().item()) # E: complex
+reveal_type(np.str_().item()) # E: str
+reveal_type(np.bytes_().item()) # E: bytes
+
+reveal_type(np.bool_().tolist()) # E: bool
+reveal_type(np.int_().tolist()) # E: int
+reveal_type(np.uint64().tolist()) # E: int
+reveal_type(np.float32().tolist()) # E: float
+reveal_type(np.complex128().tolist()) # E: complex
+reveal_type(np.str_().tolist()) # E: str
+reveal_type(np.bytes_().tolist()) # E: bytes