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
|
# BSD 3-Clause License; see https://github.com/scikit-hep/awkward/blob/main/LICENSE
from __future__ import annotations
import numpy as np
import pytest # noqa: F401
import awkward as ak
to_list = ak.operations.to_list
def test_bytemaskedarray():
array = ak.operations.from_iter(
[[0.0, 1.1, 2.2], [3.3, 4.4], [5.5], [6.6, 7.7, 8.8, 9.9]], highlevel=False
)
mask2 = ak.index.Index8(np.array([0, 1, 0, 0], dtype=np.int8))
maskedarray2 = ak.contents.ByteMaskedArray(mask2, array, valid_when=False)
assert to_list(maskedarray2.project()) == [
[0.0, 1.1, 2.2],
[5.5],
[6.6, 7.7, 8.8, 9.9],
]
assert to_list(maskedarray2.project(mask2)) == [
[0.0, 1.1, 2.2],
[5.5],
[6.6, 7.7, 8.8, 9.9],
]
def test_bitmaskedarray():
array = ak.operations.from_iter(
[[0.0, 1.1, 2.2], [3.3, 4.4], [5.5], [6.6, 7.7, 8.8, 9.9]], highlevel=False
)
mask = ak.index.IndexU8(np.array([0, 1, 0, 0], dtype=np.uint8))
maskedarray2 = ak.contents.BitMaskedArray(
mask, array, valid_when=False, length=4, lsb_order=True
)
assert to_list(maskedarray2.project()) == [
[0.0, 1.1, 2.2],
[3.3, 4.4],
[5.5],
[6.6, 7.7, 8.8, 9.9],
]
def test_unmasked():
array = ak.operations.from_iter(
[[0.0, 1.1, 2.2], [3.3, 4.4], [5.5], [6.6, 7.7, 8.8, 9.9]], highlevel=False
)
unmaskedarray2 = ak.contents.UnmaskedArray(array)
assert to_list(unmaskedarray2.project()) == [
[0.0, 1.1, 2.2],
[3.3, 4.4],
[5.5],
[6.6, 7.7, 8.8, 9.9],
]
def test_indexed():
array2 = ak.highlevel.Array([1, 2, 3, None, 4, None, None, 5]).layout
mask2 = ak.index.Index8(np.array([0, 1, 0, 0, 1, 0, 1, 1], dtype=np.int8))
assert to_list(array2.project()) == [1, 2, 3, 4, 5]
assert to_list(array2.project(mask2)) == [1, 3]
|