1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
|
# BSD 3-Clause License; see https://github.com/scikit-hep/awkward/blob/main/LICENSE
#
from __future__ import annotations
import sys
import numpy as np
from awkward._nplikes.numpy import Numpy
from awkward._nplikes.virtual import VirtualNDArray
def test_getitem():
numpy_like = Numpy.instance()
vc = VirtualNDArray(
numpy_like,
shape=(1,),
dtype=np.dtype(np.int64),
generator=lambda: np.array([1], dtype=np.int64),
)
for _ in range(sys.getrecursionlimit() + 1):
vc = vc[:]
assert vc.materialize()
def test_view():
numpy_like = Numpy.instance()
vc = VirtualNDArray(
numpy_like,
shape=(1,),
dtype=np.dtype(np.int64),
generator=lambda: np.array([1], dtype=np.int64),
)
for _ in range(sys.getrecursionlimit() + 1):
vc = vc.view(np.dtype(np.int64))
assert vc.materialize()
def test_transpose():
numpy_like = Numpy.instance()
vc = VirtualNDArray(
numpy_like,
shape=(1,),
dtype=np.dtype(np.int64),
generator=lambda: np.array([1], dtype=np.int64),
)
for _ in range(sys.getrecursionlimit() + 1):
vc = vc.T
assert vc.materialize()
def test_reshape():
numpy_like = Numpy.instance()
vc = VirtualNDArray(
numpy_like,
shape=(1,),
dtype=np.dtype(np.int64),
generator=lambda: np.array([1], dtype=np.int64),
)
for _ in range(sys.getrecursionlimit() + 1):
vc = numpy_like.reshape(vc, (1,), copy=False)
assert vc.materialize()
def test_asarray():
numpy_like = Numpy.instance()
# copy=False
vc = VirtualNDArray(
numpy_like,
shape=(1,),
dtype=np.dtype(np.int64),
generator=lambda: np.array([1], dtype=np.int64),
)
for _ in range(sys.getrecursionlimit() + 1):
vc = numpy_like.asarray(vc, dtype=np.dtype(np.int64), copy=False)
assert vc.materialize()
# copy=None
vc = VirtualNDArray(
numpy_like,
shape=(1,),
dtype=np.dtype(np.int64),
generator=lambda: np.array([1], dtype=np.int64),
)
for _ in range(sys.getrecursionlimit() + 1):
vc = numpy_like.asarray(vc, dtype=np.dtype(np.int64), copy=None)
assert vc.materialize()
|