def test_NumpyArray(): v2a = ak._v2.contents.numpyarray.NumpyArray(np.array([0.0, 1.1, 2.2, 3.3])) resultv2 = v2a[np.array([0, 1, -2], np.int64)] assert ak.to_list(resultv2) == [0.0, 1.1, 2.2] v1a = ak.layout.NumpyArray(np.array([0.0, 1.1, 2.2, 3.3])) resultv1 = v1a.carry(ak.layout.Index64(np.array([0, 1, 2], np.int64)), False) assert ak.to_list(resultv1) == [0.0, 1.1, 2.2] assert v1v2_equal(resultv1, resultv2) v2b = ak._v2.contents.numpyarray.NumpyArray( np.arange(2 * 3 * 5, dtype=np.int64).reshape(2, 3, 5)) resultv2 = v2b[np.array([1, 1, 1], np.int64)] assert ak.to_list(resultv2) == [ [[15, 16, 17, 18, 19], [20, 21, 22, 23, 24], [25, 26, 27, 28, 29]], [[15, 16, 17, 18, 19], [20, 21, 22, 23, 24], [25, 26, 27, 28, 29]], [[15, 16, 17, 18, 19], [20, 21, 22, 23, 24], [25, 26, 27, 28, 29]], ] v1b = ak.layout.NumpyArray( np.arange(2 * 3 * 5, dtype=np.int64).reshape(2, 3, 5)) resultv1 = v1b.carry(ak.layout.Index64(np.array([1, 1, 1], np.int64)), False) assert ak.to_list(resultv1) == ak.to_list(resultv2) assert v1v2_equal(resultv1, resultv2)
def test_EmptyArray(): v1a = ak.layout.EmptyArray() v2a = ak._v2.contents.emptyarray.EmptyArray() assert v1v2_equal(v1a, v2a) assert v1v2_equal(v2_to_v1(v2a), v1_to_v2(v1a)) assert ak.to_list(v1a) == ak.to_list(v2a) assert newform(json.loads(v1a.form.tojson())) == v2a.form.tolist()
def test_ListArray_RecordArray_NumpyArray(): v1a = ak.layout.ListArray64( ak.layout.Index64(np.array([4, 100, 1], dtype=np.int64)), ak.layout.Index64(np.array([7, 100, 3, 200], dtype=np.int64)), ak.layout.RecordArray( [ak.layout.NumpyArray(np.array([6.6, 4.4, 5.5, 7.7, 1.1, 2.2, 3.3, 8.8]))], ["nest"], ), ) v2a = ak._v2.contents.listarray.ListArray( ak._v2.index.Index(np.array([4, 100, 1], dtype=np.int64)), ak._v2.index.Index(np.array([7, 100, 3, 200], dtype=np.int64)), ak._v2.contents.recordarray.RecordArray( [ ak._v2.contents.numpyarray.NumpyArray( np.array([6.6, 4.4, 5.5, 7.7, 1.1, 2.2, 3.3, 8.8]) ) ], ["nest"], ), ) assert v1v2_equal(v1a, v2a) assert v1v2_equal(v2_to_v1(v2a), v1_to_v2(v1a)) assert ak.to_list(v1a) == ak.to_list(v2a) assert newform(json.loads(v1a.form.tojson())) == v2a.form.tolist()
def test_ByteMaskedArray_NumpyArray(): v1a = ak.layout.ByteMaskedArray( ak.layout.Index8(np.array([1, 0, 1, 0, 1], dtype=np.int8)), ak.layout.NumpyArray(np.array([1.1, 2.2, 3.3, 4.4, 5.5, 6.6])), valid_when=True, ) v2a = ak._v2.contents.bytemaskedarray.ByteMaskedArray( ak._v2.index.Index(np.array([1, 0, 1, 0, 1], dtype=np.int8)), ak._v2.contents.numpyarray.NumpyArray(np.array([1.1, 2.2, 3.3, 4.4, 5.5, 6.6])), valid_when=True, ) assert v1v2_equal(v1a, v2a) assert v1v2_equal(v2_to_v1(v2a), v1_to_v2(v1a)) assert ak.to_list(v1a) == ak.to_list(v2a) assert newform(json.loads(v1a.form.tojson())) == v2a.form.tolist() v1b = ak.layout.ByteMaskedArray( ak.layout.Index8(np.array([0, 1, 0, 1, 0], dtype=np.int8)), ak.layout.NumpyArray(np.array([1.1, 2.2, 3.3, 4.4, 5.5, 6.6])), valid_when=False, ) v2b = ak._v2.contents.bytemaskedarray.ByteMaskedArray( ak._v2.index.Index(np.array([0, 1, 0, 1, 0], dtype=np.int8)), ak._v2.contents.numpyarray.NumpyArray(np.array([1.1, 2.2, 3.3, 4.4, 5.5, 6.6])), valid_when=False, ) assert v1v2_equal(v1b, v2b) assert v1v2_equal(v2_to_v1(v2b), v1_to_v2(v1b)) assert ak.to_list(v1b) == ak.to_list(v2b) assert newform(json.loads(v1b.form.tojson())) == v2b.form.tolist()
def test_UnmaskedArray(): old = ak.layout.UnmaskedArray( ak.layout.NumpyArray( np.array([[0.0, 1.1, 2.2, 3.3], [0.0, 1.1, 2.2, 3.3]]))) new = v1_to_v2(old) assert ak.to_list(old[0, 1:]) == [1.1, 2.2, 3.3] assert ak.to_list(new[0, 1:]) == [1.1, 2.2, 3.3] assert v1v2_equal(old[0, 1:], new[0, 1:]) with pytest.raises(IndexError): new[1, "hello"] with pytest.raises(IndexError): new[1, ["hello", "there"]] assert ak.to_list(new[1, np.newaxis, -2]) == [2.2] assert ak.to_list(new[1, np.newaxis, np.newaxis, -2]) == [[2.2]] assert old.minmax_depth == (2, 2) assert new.minmax_depth == (2, 2) assert ak.to_list(old[1, ..., -2]) == 2.2 assert ak.to_list(new[1, ..., -2]) == 2.2 expectation = [[0.0, 1.1, 2.2, 3.3], [0.0, 1.1, 2.2, 3.3]] assert (ak.to_list(old[[1, 0], ]) == expectation) assert (ak.to_list(new[[1, 0], ]) == expectation) assert ak.to_list(new[[1, 0]]) == expectation assert v1v2_equal(old[1, ...], new[1, ...]) assert ak.to_list(old[1, [1, 0]]) == [1.1, 0.0] assert ak.to_list(new[1, [1, 0]]) == [1.1, 0.0]
def test_ByteMaskedArray_RecordArray_NumpyArray(): v2a = ak._v2.contents.bytemaskedarray.ByteMaskedArray( ak._v2.index.Index(np.array([1, 0, 1, 0, 1], np.int8)), ak._v2.contents.recordarray.RecordArray( [ ak._v2.contents.numpyarray.NumpyArray( np.array([1.1, 2.2, 3.3, 4.4, 5.5, 6.6])) ], ["nest"], ), valid_when=True, ) resultv2 = v2a._carry(ak._v2.index.Index(np.array([0, 1, 4], np.int64)), False, NestedIndexError) assert ak.to_list(resultv2) == [{"nest": 1.1}, None, {"nest": 5.5}] v1a = ak.layout.ByteMaskedArray( ak.layout.Index8(np.array([1, 0, 1, 0, 1], np.int8)), ak.layout.RecordArray( [ak.layout.NumpyArray(np.array([1.1, 2.2, 3.3, 4.4, 5.5, 6.6]))], ["nest"], ), valid_when=True, ) resultv1 = v1a.carry(ak.layout.Index64(np.array([0, 1, 4], np.int64)), False) assert ak.to_list(resultv1) == ak.to_list(resultv2) assert v1v2_equal(resultv1, resultv2) v2b = ak._v2.contents.bytemaskedarray.ByteMaskedArray( ak._v2.index.Index(np.array([0, 1, 0, 1, 0], np.int8)), ak._v2.contents.recordarray.RecordArray( [ ak._v2.contents.numpyarray.NumpyArray( np.array([1.1, 2.2, 3.3, 4.4, 5.5, 6.6])) ], ["nest"], ), valid_when=False, ) resultv2 = v2b._carry(ak._v2.index.Index(np.array([3, 1, 4], np.int64)), False, NestedIndexError) assert ak.to_list(resultv2) == [None, None, {"nest": 5.5}] v1b = ak.layout.ByteMaskedArray( ak.layout.Index8(np.array([0, 1, 0, 1, 0], np.int8)), ak.layout.RecordArray( [ak.layout.NumpyArray(np.array([1.1, 2.2, 3.3, 4.4, 5.5, 6.6]))], ["nest"], ), valid_when=False, ) resultv1 = v1b.carry(ak.layout.Index64(np.array([3, 1, 4], np.int64)), False) assert ak.to_list(resultv1) == ak.to_list(resultv2) assert v1v2_equal(resultv1, resultv2)
def test_UnmaskedArray_NumpyArray(): v1a = ak.layout.UnmaskedArray(ak.layout.NumpyArray(np.array([0.0, 1.1, 2.2, 3.3]))) v2a = ak._v2.contents.unmaskedarray.UnmaskedArray( ak._v2.contents.numpyarray.NumpyArray(np.array([0.0, 1.1, 2.2, 3.3])) ) assert v1v2_equal(v1a, v2a) assert v1v2_equal(v2_to_v1(v2a), v1_to_v2(v1a)) assert ak.to_list(v1a) == ak.to_list(v2a) assert newform(json.loads(v1a.form.tojson())) == v2a.form.tolist()
def test_IndexedArray(): old = ak.layout.IndexedArray64( ak.layout.Index64(np.array([1, 0], np.int64)), ak.layout.RegularArray( ak.from_numpy(np.arange(2 * 3 * 5).reshape(-1, 5)).layout, 3), ) new = v1_to_v2(old) assert v1v2_equal(old[1, 1:], new[1, 1:]) assert ak.to_list(old[1, 1:]) == [[5, 6, 7, 8, 9], [10, 11, 12, 13, 14]] assert ak.to_list(new[1, 1:]) == [[5, 6, 7, 8, 9], [10, 11, 12, 13, 14]] with pytest.raises(IndexError): new[1, "hello"] with pytest.raises(IndexError): new[1, ["hello", "there"]] assert ak.to_list(new[0, np.newaxis]) == [[[15, 16, 17, 18, 19], [20, 21, 22, 23, 24], [25, 26, 27, 28, 29]]] assert ak.to_list(old[0, np.newaxis]) == [[[15, 16, 17, 18, 19], [20, 21, 22, 23, 24], [25, 26, 27, 28, 29]]] assert old.minmax_depth == (3, 3) assert new.minmax_depth == (3, 3) assert v1v2_equal(old[1, ...], new[1, ...]) assert ak.to_list(old[1, ...]) == [ [0, 1, 2, 3, 4], [5, 6, 7, 8, 9], [10, 11, 12, 13, 14], ] assert ak.to_list(new[1, ...]) == [ [0, 1, 2, 3, 4], [5, 6, 7, 8, 9], [10, 11, 12, 13, 14], ] expectation = [ [[0, 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]], ] assert (ak.to_list(old[[1, 0], ]) == expectation) assert (ak.to_list(new[[1, 0], ]) == expectation) assert ak.to_list(old[[1, 0]]) == expectation assert ak.to_list(new[[1, 0]]) == expectation assert ak.to_list(old[1, [1, 0]]) == [[5, 6, 7, 8, 9], [0, 1, 2, 3, 4]] assert ak.to_list(new[1, [1, 0]]) == [[5, 6, 7, 8, 9], [0, 1, 2, 3, 4]] assert v1v2_equal(old[1, [1, 0]], new[1, [1, 0]])
def test_IndexedOptionArray_NumpyArray(): v1a = ak.layout.IndexedOptionArray64( ak.layout.Index64(np.array([2, 2, -1, 1, -1, 5, 4], dtype=np.int64)), ak.layout.NumpyArray(np.array([1.1, 2.2, 3.3, 4.4, 5.5, 6.6])), ) v2a = ak._v2.contents.indexedoptionarray.IndexedOptionArray( ak._v2.index.Index(np.array([2, 2, -1, 1, -1, 5, 4], dtype=np.int64)), ak._v2.contents.numpyarray.NumpyArray(np.array([1.1, 2.2, 3.3, 4.4, 5.5, 6.6])), ) assert v1v2_equal(v1a, v2a) assert v1v2_equal(v2_to_v1(v2a), v1_to_v2(v1a)) assert ak.to_list(v1a) == ak.to_list(v2a) assert newform(json.loads(v1a.form.tojson())) == v2a.form.tolist()
def test_ListOffsetArray_NumpyArray(): v1a = ak.layout.ListOffsetArray64( ak.layout.Index64(np.array([1, 4, 4, 6], dtype=np.int64)), ak.layout.NumpyArray([6.6, 1.1, 2.2, 3.3, 4.4, 5.5, 7.7]), ) v2a = ak._v2.contents.listoffsetarray.ListOffsetArray( ak._v2.index.Index(np.array([1, 4, 4, 6], dtype=np.int64)), ak._v2.contents.numpyarray.NumpyArray([6.6, 1.1, 2.2, 3.3, 4.4, 5.5, 7.7]), ) assert v1v2_equal(v1a, v2a) assert v1v2_equal(v2_to_v1(v2a), v1_to_v2(v1a)) assert ak.to_list(v1a) == ak.to_list(v2a) assert newform(json.loads(v1a.form.tojson())) == v2a.form.tolist()
def test_RecordArray_NumpyArray(): v1a = ak.layout.RecordArray( [ ak.layout.NumpyArray(np.array([0, 1, 2, 3, 4], dtype=np.int64)), ak.layout.NumpyArray(np.array([0.0, 1.1, 2.2, 3.3, 4.4, 5.5])), ], ["x", "y"], ) v2a = ak._v2.contents.recordarray.RecordArray( [ ak._v2.contents.numpyarray.NumpyArray( np.array([0, 1, 2, 3, 4], dtype=np.int64) ), ak._v2.contents.numpyarray.NumpyArray( np.array([0.0, 1.1, 2.2, 3.3, 4.4, 5.5]) ), ], ["x", "y"], ) assert v1v2_equal(v1a, v2a) assert v1v2_equal(v2_to_v1(v2a), v1_to_v2(v1a)) assert ak.to_list(v1a) == ak.to_list(v2a) assert newform(json.loads(v1a.form.tojson())) == v2a.form.tolist() v1b = ak.layout.RecordArray( [ ak.layout.NumpyArray(np.array([0, 1, 2, 3, 4], dtype=np.int64)), ak.layout.NumpyArray(np.array([0.0, 1.1, 2.2, 3.3, 4.4, 5.5])), ], None, ) v2b = ak._v2.contents.recordarray.RecordArray( [ ak._v2.contents.numpyarray.NumpyArray( np.array([0, 1, 2, 3, 4], dtype=np.int64) ), ak._v2.contents.numpyarray.NumpyArray( np.array([0.0, 1.1, 2.2, 3.3, 4.4, 5.5]) ), ], None, ) assert v1v2_equal(v1b, v2b) assert v1v2_equal(v2_to_v1(v2b), v1_to_v2(v1b)) assert ak.to_list(v1b) == ak.to_list(v2b) assert newform(json.loads(v1b.form.tojson())) == v2b.form.tolist() v1c = ak.layout.RecordArray([], [], 10) v2c = ak._v2.contents.recordarray.RecordArray([], [], 10) assert v1v2_equal(v1c, v2c) assert v1v2_equal(v2_to_v1(v2c), v1_to_v2(v1c)) assert ak.to_list(v1c) == ak.to_list(v2c) assert newform(json.loads(v1c.form.tojson())) == v2c.form.tolist() v1d = ak.layout.RecordArray([], None, 10) v2d = ak._v2.contents.recordarray.RecordArray([], None, 10) assert v1v2_equal(v1d, v2d) assert v1v2_equal(v2_to_v1(v2d), v1_to_v2(v1d)) assert ak.to_list(v1d) == ak.to_list(v2d) assert newform(json.loads(v1c.form.tojson())) == v2c.form.tolist()
def test_RegularArray_NumpyArray(): v2a = ak._v2.contents.regulararray.RegularArray( ak._v2.contents.numpyarray.NumpyArray( np.array([0.0, 1.1, 2.2, 3.3, 4.4, 5.5])), 3, ) resultv2 = v2a[np.array([0, 1], np.int64)] assert ak.to_list(resultv2) == [[0.0, 1.1, 2.2], [3.3, 4.4, 5.5]] v1a = ak.layout.RegularArray( ak.layout.NumpyArray(np.array([0.0, 1.1, 2.2, 3.3, 4.4, 5.5])), 3, ) resultv1 = v1a.carry(ak.layout.Index64(np.array([0, 1], np.int64)), False) assert ak.to_list(resultv1) == ak.to_list(resultv2) assert v1v2_equal(resultv1, resultv2) v2b = ak._v2.contents.regulararray.RegularArray( ak._v2.contents.emptyarray.EmptyArray(), 0, zeros_length=10) resultv2 = ak.to_list(v2b[np.array([0, 0, 0], np.int64)]) assert resultv2 == [[], [], []] v1b = ak.layout.RegularArray(ak.layout.EmptyArray(), 0, zeros_length=10) resultv1 = ak.to_list( v1b.carry(ak.layout.Index64(np.array([0, 0, 0], np.int64)), False)) assert ak.to_list(resultv1) == ak.to_list(resultv2)
def test_UnionArray_NumpyArray(): v2a = ak._v2.contents.unionarray.UnionArray( ak._v2.index.Index(np.array([1, 1, 0, 0, 1, 0, 1], np.int8)), ak._v2.index.Index(np.array([4, 3, 0, 1, 2, 2, 4, 100], np.int64)), [ ak._v2.contents.numpyarray.NumpyArray(np.array([1, 2, 3], np.int64)), ak._v2.contents.numpyarray.NumpyArray( np.array([1.1, 2.2, 3.3, 4.4, 5.5])), ], ) resultv2 = v2a[np.array([0, 1, 3], np.int64)] assert ak.to_list(resultv2) == [5.5, 4.4, 2] v1a = ak.layout.UnionArray8_64( ak.layout.Index8(np.array([1, 1, 0, 0, 1, 0, 1], np.int8)), ak.layout.Index64(np.array([4, 3, 0, 1, 2, 2, 4, 100], np.int64)), [ ak.layout.NumpyArray(np.array([1, 2, 3], np.int64)), ak.layout.NumpyArray(np.array([1.1, 2.2, 3.3, 4.4, 5.5])), ], ) resultv1 = v1a.carry(ak.layout.Index64(np.array([0, 1, 3], np.int64)), False) assert ak.to_list(resultv1) == ak.to_list(resultv2) assert v1v2_equal(resultv1, resultv2)
def test_NumpyArray(): v1a = ak.layout.NumpyArray(np.array([0.0, 1.1, 2.2, 3.3])) v2a = ak._v2.contents.numpyarray.NumpyArray(np.array([0.0, 1.1, 2.2, 3.3])) assert v1v2_equal(v1a, v2a) assert v1v2_equal(v2_to_v1(v2a), v1_to_v2(v1a)) assert ak.to_list(v1a) == ak.to_list(v2a) assert newform(json.loads(v1a.form.tojson())) == v2a.form.tolist() v1b = ak.layout.NumpyArray(np.arange(2 * 3 * 5, dtype=np.int64).reshape(2, 3, 5)) v2b = ak._v2.contents.numpyarray.NumpyArray( np.arange(2 * 3 * 5, dtype=np.int64).reshape(2, 3, 5) ) assert v1v2_equal(v1b, v2b) assert v1v2_equal(v2_to_v1(v2b), v1_to_v2(v1b)) assert ak.to_list(v1b) == ak.to_list(v2b) assert newform(json.loads(v1b.form.tojson())) == v2b.form.tolist()
def test_ListArray_RecordArray_NumpyArray(): v2a = ak._v2.contents.listarray.ListArray( ak._v2.index.Index(np.array([4, 100, 1], np.int64)), ak._v2.index.Index(np.array([7, 100, 3, 200], np.int64)), ak._v2.contents.recordarray.RecordArray( [ ak._v2.contents.numpyarray.NumpyArray( np.array([6.6, 4.4, 5.5, 7.7, 1.1, 2.2, 3.3, 8.8])) ], ["nest"], ), ) resultv2 = v2a[np.array([0, 1], np.int64)] assert ak.to_list(resultv2) == [[{ "nest": 1.1 }, { "nest": 2.2 }, { "nest": 3.3 }], []] v1a = ak.layout.ListArray64( ak.layout.Index64(np.array([4, 100, 1], np.int64)), ak.layout.Index64(np.array([7, 100, 3, 200], np.int64)), ak.layout.RecordArray( [ ak.layout.NumpyArray( np.array([6.6, 4.4, 5.5, 7.7, 1.1, 2.2, 3.3, 8.8])) ], ["nest"], ), ) resultv1 = v1a.carry(ak.layout.Index64(np.array([0, 1], np.int64)), False) assert ak.to_list(resultv1) == ak.to_list(resultv2) assert v1v2_equal(resultv1, resultv2)
def test_IndexedOptionArray_RecordArray_NumpyArray(): v2a = ak._v2.contents.indexedoptionarray.IndexedOptionArray( ak._v2.index.Index(np.array([2, 2, -1, 1, -1, 5, 4], np.int64)), ak._v2.contents.recordarray.RecordArray( [ ak._v2.contents.numpyarray.NumpyArray( np.array([1.1, 2.2, 3.3, 4.4, 5.5, 6.6])) ], ["nest"], ), ) resultv2 = v2a[np.array([0, 1, 4], np.int64)] assert ak.to_list(resultv2) == [{"nest": 3.3}, {"nest": 3.3}, None] v1a = ak.layout.IndexedOptionArray64( ak.layout.Index64(np.array([2, 2, -1, 1, -1, 5, 4], np.int64)), ak.layout.RecordArray( [ak.layout.NumpyArray(np.array([1.1, 2.2, 3.3, 4.4, 5.5, 6.6]))], ["nest"], ), ) resultv1 = v1a.carry(ak.layout.Index64(np.array([0, 1, 4], np.int64)), False) assert ak.to_list(resultv1) == ak.to_list(resultv2) assert v1v2_equal(resultv1, resultv2)
def test_RegularArray_RecordArray_NumpyArray(): v2a = ak._v2.contents.regulararray.RegularArray( ak._v2.contents.recordarray.RecordArray( [ ak._v2.contents.numpyarray.NumpyArray( np.array([0.0, 1.1, 2.2, 3.3, 4.4, 5.5, 6.6])) ], ["nest"], ), 3, ) resultv2 = v2a._carry(ak._v2.index.Index(np.array([0], np.int64)), False, NestedIndexError) assert ak.to_list(resultv2) == [[{ "nest": 0.0 }, { "nest": 1.1 }, { "nest": 2.2 }]] v1a = ak.layout.RegularArray( ak.layout.RecordArray( [ ak.layout.NumpyArray( np.array([0.0, 1.1, 2.2, 3.3, 4.4, 5.5, 6.6])) ], ["nest"], ), 3, ) resultv1 = v1a.carry(ak.layout.Index64(np.array([0], np.int64)), False) assert ak.to_list(resultv1) == ak.to_list(resultv2) assert v1v2_equal(resultv1, resultv2) v2b = ak._v2.contents.regulararray.RegularArray( ak._v2.contents.recordarray.RecordArray( [ak._v2.contents.emptyarray.EmptyArray()], ["nest"]), 0, zeros_length=10, ) resultv2 = v2b._carry(ak._v2.index.Index(np.array([0], np.int64)), False, NestedIndexError) assert ak.to_list(resultv2) == [[]] v1b = ak.layout.RegularArray( ak.layout.RecordArray([ak.layout.EmptyArray()], ["nest"]), 0, zeros_length=10, ) resultv1 = v1b.carry(ak.layout.Index64(np.array([0], np.int64)), False) assert ak.to_list(resultv1) == [[]] assert ak.to_list(resultv1) == ak.to_list(resultv2)
def test_UnionArray_NumpyArray(): v1a = ak.layout.UnionArray8_64( ak.layout.Index8(np.array([1, 1, 0, 0, 1, 0, 1], dtype=np.int8)), ak.layout.Index64(np.array([4, 3, 0, 1, 2, 2, 4, 100], dtype=np.int64)), [ ak.layout.NumpyArray(np.array([1, 2, 3], dtype=np.int64)), ak.layout.NumpyArray(np.array([1.1, 2.2, 3.3, 4.4, 5.5])), ], ) v2a = ak._v2.contents.unionarray.UnionArray( ak._v2.index.Index(np.array([1, 1, 0, 0, 1, 0, 1], dtype=np.int8)), ak._v2.index.Index(np.array([4, 3, 0, 1, 2, 2, 4, 100], dtype=np.int64)), [ ak._v2.contents.numpyarray.NumpyArray(np.array([1, 2, 3], dtype=np.int64)), ak._v2.contents.numpyarray.NumpyArray(np.array([1.1, 2.2, 3.3, 4.4, 5.5])), ], ) assert v1v2_equal(v1a, v2a) assert v1v2_equal(v2_to_v1(v2a), v1_to_v2(v1a)) assert ak.to_list(v1a) == ak.to_list(v2a) assert newform(json.loads(v1a.form.tojson())) == v2a.form.tolist()
def test_RegularArray_RecordArray_NumpyArray(): v1a = ak.layout.RegularArray( ak.layout.RecordArray( [ak.layout.NumpyArray(np.array([0.0, 1.1, 2.2, 3.3, 4.4, 5.5, 6.6]))], ["nest"], ), 3, ) v2a = ak._v2.contents.regulararray.RegularArray( ak._v2.contents.recordarray.RecordArray( [ ak._v2.contents.numpyarray.NumpyArray( np.array([0.0, 1.1, 2.2, 3.3, 4.4, 5.5, 6.6]) ) ], ["nest"], ), 3, ) assert v1v2_equal(v1a, v2a) assert v1v2_equal(v2_to_v1(v2a), v1_to_v2(v1a)) assert ak.to_list(v1a) == ak.to_list(v2a) assert newform(json.loads(v1a.form.tojson())) == v2a.form.tolist() v1b = ak.layout.RegularArray( ak.layout.RecordArray([ak.layout.EmptyArray()], ["nest"]), 0, zeros_length=10, ) v2b = ak._v2.contents.regulararray.RegularArray( ak._v2.contents.recordarray.RecordArray( [ak._v2.contents.emptyarray.EmptyArray()], ["nest"] ), 0, zeros_length=10, ) assert v1v2_equal(v1b, v2b) assert v1v2_equal(v2_to_v1(v2b), v1_to_v2(v1b)) assert ak.to_list(v1b) == ak.to_list(v2b) assert newform(json.loads(v1b.form.tojson())) == v2b.form.tolist()
def test_ListOffsetArray_NumpyArray(): old = ak.layout.ListOffsetArray64( ak.layout.Index64(np.array([0, 1, 2, 3], np.int64)), ak.layout.NumpyArray( np.array([ [1.1, 2.2, 3.3, 4.4, 5.5, 6.6], [11.1, 22.2, 33.3, 44.4, 55.5, 66.6], [21.1, 22.2, 23.3, 24.4, 25.5, 26.6], [31.1, 32.2, 33.3, 34.4, 35.5, 36.6], [41.1, 42.2, 43.3, 44.4, 45.5, 46.6], ])), ) new = v1_to_v2(old) assert ak.to_list(old[0, 0:]) == [[1.1, 2.2, 3.3, 4.4, 5.5, 6.6]] assert ak.to_list(new[0, 0:]) == [[1.1, 2.2, 3.3, 4.4, 5.5, 6.6]] assert v1v2_equal(old[0, 1:], new[0, 1:]) with pytest.raises(IndexError): new[1, "hello"] with pytest.raises(IndexError): new[1, ["hello", "there"]] assert ak.to_list( new[1, np.newaxis]) == [[[11.1, 22.2, 33.3, 44.4, 55.5, 66.6]]] assert ak.to_list( old[1, np.newaxis]) == [[[11.1, 22.2, 33.3, 44.4, 55.5, 66.6]]] assert old.minmax_depth == (3, 3) assert new.minmax_depth == (3, 3) assert ak.to_list(old[1, ...]) == [[11.1, 22.2, 33.3, 44.4, 55.5, 66.6]] assert ak.to_list(new[1, ...]) == [[11.1, 22.2, 33.3, 44.4, 55.5, 66.6]] expectation = [ [[11.1, 22.2, 33.3, 44.4, 55.5, 66.6]], [[1.1, 2.2, 3.3, 4.4, 5.5, 6.6]], ] assert (ak.to_list(old[[1, 0], ]) == expectation) assert (ak.to_list(new[[1, 0], ]) == expectation) assert ak.to_list(old[[1, 0]]) == expectation assert ak.to_list(new[[1, 0]]) == expectation assert ak.to_list(old[0, [0, 0]]) == [ [1.1, 2.2, 3.3, 4.4, 5.5, 6.6], [1.1, 2.2, 3.3, 4.4, 5.5, 6.6], ] assert ak.to_list(new[0, [0, 0]]) == [ [1.1, 2.2, 3.3, 4.4, 5.5, 6.6], [1.1, 2.2, 3.3, 4.4, 5.5, 6.6], ]
def test_UnmaskedArray_NumpyArray(): v2a = ak._v2.contents.unmaskedarray.UnmaskedArray( ak._v2.contents.numpyarray.NumpyArray(np.array([0.0, 1.1, 2.2, 3.3]))) resultv2 = v2a[np.array([0, 1, 3], np.int64)] assert ak.to_list(resultv2) == [0.0, 1.1, 3.3] v1a = ak.layout.UnmaskedArray( ak.layout.NumpyArray(np.array([0.0, 1.1, 2.2, 3.3]))) resultv1 = v1a.carry(ak.layout.Index64(np.array([0, 1, 3], np.int64)), False) assert ak.to_list(resultv1) == ak.to_list(resultv2) assert v1v2_equal(resultv1, resultv2)
def test_ListOffsetArray_NumpyArray(): v2a = ak._v2.contents.listoffsetarray.ListOffsetArray( ak._v2.index.Index(np.array([1, 4, 4, 6, 3], np.int64)), ak._v2.contents.numpyarray.NumpyArray( [6.6, 1.1, 2.2, 3.3, 4.4, 5.5, 7.7]), ) resultv2 = v2a[np.array([1, 2], np.int64)] assert ak.to_list(resultv2) == [[], [4.4, 5.5]] v1a = ak.layout.ListOffsetArray64( ak.layout.Index64(np.array([1, 4, 4, 6, 3], np.int64)), ak.layout.NumpyArray([6.6, 1.1, 2.2, 3.3, 4.4, 5.5, 7.7]), ) resultv1 = v1a.carry(ak.layout.Index64(np.array([1, 2], np.int64)), False) assert ak.to_list(resultv1) == ak.to_list(resultv2) assert v1v2_equal(resultv1, resultv2)
def test_IndexedArray_NumpyArray(): v2a = ak._v2.contents.indexedarray.IndexedArray( ak._v2.index.Index(np.array([2, 2, 0, 1, 4, 5, 4], np.int64)), ak._v2.contents.numpyarray.NumpyArray( np.array([1.1, 2.2, 3.3, 4.4, 5.5, 6.6])), ) resultv2 = v2a[np.array([0, 1, 4], np.int64)] assert ak.to_list(resultv2) == [3.3, 3.3, 5.5] v1a = ak.layout.IndexedArray64( ak.layout.Index64(np.array([2, 2, 0, 1, 4, 5, 4], np.int64)), ak.layout.NumpyArray(np.array([1.1, 2.2, 3.3, 4.4, 5.5, 6.6])), ) resultv1 = v1a.carry(ak.layout.Index64(np.array([0, 1, 4], np.int64)), False) assert ak.to_list(resultv1) == ak.to_list(resultv2) assert v1v2_equal(resultv1, resultv2)
def test_ListArray_NumpyArray(): v2a = ak._v2.contents.listarray.ListArray( ak._v2.index.Index(np.array([4, 100, 1], np.int64)), ak._v2.index.Index(np.array([7, 100, 3, 200], np.int64)), ak._v2.contents.numpyarray.NumpyArray( np.array([6.6, 4.4, 5.5, 7.7, 1.1, 2.2, 3.3, 8.8])), ) resultv2 = v2a[np.array([1, -1], np.int64)] assert ak.to_list(resultv2) == [[], [4.4, 5.5]] v1a = ak.layout.ListArray64( ak.layout.Index64(np.array([4, 100, 1], np.int64)), ak.layout.Index64(np.array([7, 100, 3, 200], np.int64)), ak.layout.NumpyArray(np.array([6.6, 4.4, 5.5, 7.7, 1.1, 2.2, 3.3, 8.8])), ) resultv1 = v1a[np.array([1, -1], np.int64)] assert ak.to_list(resultv1) == ak.to_list(resultv2) assert v1v2_equal(resultv1, resultv2)
def test_ByteMaskedArray(): old = ak.layout.ByteMaskedArray( ak.layout.Index8(np.array([1, 1, 1], np.int8)), ak.layout.NumpyArray( np.array([ [1.1, 2.2, 3.3, 4.4, 5.5, 6.6], [1.1, 2.2, 3.3, 4.4, 5.5, 6.6], [1.1, 2.2, 3.3, 4.4, 5.5, 6.6], ])), valid_when=True, ) new = v1_to_v2(old) assert ak.to_list(old[:, 5:]) == [[6.6], [6.6], [6.6]] assert ak.to_list(new[:, 5:]) == [[6.6], [6.6], [6.6]] assert v1v2_equal(old[:, 5:], new[:, 5:]) with pytest.raises(IndexError): new[1, "hello"] with pytest.raises(IndexError): new[1, ["hello", "there"]] assert ak.to_list(new[1, np.newaxis]) == [[1.1, 2.2, 3.3, 4.4, 5.5, 6.6]] assert ak.to_list(old[1, np.newaxis]) == [[1.1, 2.2, 3.3, 4.4, 5.5, 6.6]] assert old.minmax_depth == (2, 2) assert new.minmax_depth == (2, 2) assert ak.to_list(old[0, ..., 0]) == 1.1 assert ak.to_list(new[0, ..., 0]) == 1.1 expectation = [[1.1, 2.2, 3.3, 4.4, 5.5, 6.6], [1.1, 2.2, 3.3, 4.4, 5.5, 6.6]] assert (ak.to_list(old[[1, 0], ]) == expectation) assert (ak.to_list(new[[1, 0], ]) == expectation) assert ak.to_list(new[[1, 0]]) == expectation assert ak.to_list(old[1, [1, 0]]) == [2.2, 1.1] assert ak.to_list(new[1, [1, 0]]) == [2.2, 1.1]
def test_UnmaskedArray_RecordArray_NumpyArray(): v2a = ak._v2.contents.unmaskedarray.UnmaskedArray( ak._v2.contents.recordarray.RecordArray( [ ak._v2.contents.numpyarray.NumpyArray( np.array([0.0, 1.1, 2.2, 3.3])) ], ["nest"], )) resultv2 = v2a._carry( ak._v2.index.Index(np.array([0, 1, 1, 1, 1], np.int64)), False, NestedIndexError) assert ak.to_list(resultv2) == [ { "nest": 0.0 }, { "nest": 1.1 }, { "nest": 1.1 }, { "nest": 1.1 }, { "nest": 1.1 }, ] v1a = ak.layout.UnmaskedArray( ak.layout.RecordArray( [ak.layout.NumpyArray(np.array([0.0, 1.1, 2.2, 3.3]))], ["nest"], )) resultv1 = v1a.carry( ak.layout.Index64(np.array([0, 1, 1, 1, 1], np.int64)), False) assert ak.to_list(resultv1) == ak.to_list(resultv2) assert v1v2_equal(resultv1, resultv2)
def test_BitMaskedArray_RecordArray_NumpyArray(): v2a = ak._v2.contents.bitmaskedarray.BitMaskedArray( ak._v2.index.Index( np.packbits( np.array([ True, True, True, True, False, False, False, False, True, False, True, False, True, ]))), ak._v2.contents.recordarray.RecordArray( [ ak._v2.contents.numpyarray.NumpyArray( np.array([ 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 1.1, 2.2, 3.3, 4.4, 5.5, 6.6, ])) ], ["nest"], ), valid_when=True, length=13, lsb_order=False, ) resultv2 = v2a._carry(ak._v2.index.Index(np.array([0, 1, 4], np.int64)), False, NestedIndexError) assert ak.to_list(resultv2) == [{"nest": 0.0}, {"nest": 1.0}, None] v1a = ak.layout.BitMaskedArray( ak.layout.IndexU8( np.packbits( np.array([ True, True, True, True, False, False, False, False, True, False, True, False, True, ]))), ak.layout.RecordArray( [ ak.layout.NumpyArray( np.array([ 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 1.1, 2.2, 3.3, 4.4, 5.5, 6.6, ])) ], ["nest"], ), valid_when=True, length=13, lsb_order=False, ) resultv1 = v1a.carry(ak.layout.Index64(np.array([0, 1, 4], np.int64)), False) assert ak.to_list(resultv1) == ak.to_list(resultv2) assert v1v2_equal(resultv1, resultv2) v2b = ak._v2.contents.bitmaskedarray.BitMaskedArray( ak._v2.index.Index( np.packbits( np.array( [ 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, ], np.uint8, ))), ak._v2.contents.recordarray.RecordArray( [ ak._v2.contents.numpyarray.NumpyArray( np.array([ 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 1.1, 2.2, 3.3, 4.4, 5.5, 6.6, ])) ], ["nest"], ), valid_when=False, length=13, lsb_order=False, ) resultv2 = v2b._carry(ak._v2.index.Index(np.array([1, 1, 4], np.int64)), False, NestedIndexError) assert ak.to_list(resultv2) == [{"nest": 1.0}, {"nest": 1.0}, None] v1b = ak.layout.BitMaskedArray( ak.layout.IndexU8( np.packbits( np.array( [ 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, ], np.uint8, ))), ak.layout.RecordArray( [ ak.layout.NumpyArray( np.array([ 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 1.1, 2.2, 3.3, 4.4, 5.5, 6.6, ])) ], ["nest"], ), valid_when=False, length=13, lsb_order=False, ) resultv1 = v1b.carry(ak.layout.Index64(np.array([1, 1, 4], np.int64)), False) assert ak.to_list(resultv1) == ak.to_list(resultv2) assert v1v2_equal(resultv1, resultv2) v2c = ak._v2.contents.bitmaskedarray.BitMaskedArray( ak._v2.index.Index( np.packbits( np.array( [ 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, ], np.uint8, ))), ak._v2.contents.recordarray.RecordArray( [ ak._v2.contents.numpyarray.NumpyArray( np.array([ 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 1.1, 2.2, 3.3, 4.4, 5.5, 6.6, ])) ], ["nest"], ), valid_when=True, length=13, lsb_order=True, ) resultv2 = v2c._carry(ak._v2.index.Index(np.array([0, 1, 4], np.int64)), False, NestedIndexError) assert ak.to_list(resultv2) == [{"nest": 0.0}, {"nest": 1.0}, None] v1c = ak.layout.BitMaskedArray( ak.layout.IndexU8( np.packbits( np.array( [ 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, ], np.uint8, ))), ak.layout.RecordArray( [ ak.layout.NumpyArray( np.array([ 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 1.1, 2.2, 3.3, 4.4, 5.5, 6.6, ])) ], ["nest"], ), valid_when=True, length=13, lsb_order=True, ) resultv1 = v1c.carry(ak.layout.Index64(np.array([0, 1, 4], np.int64)), False) assert ak.to_list(resultv1) == ak.to_list(resultv2) assert v1v2_equal(resultv1, resultv2) v2d = ak._v2.contents.bitmaskedarray.BitMaskedArray( ak._v2.index.Index( np.packbits( np.array( [ 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, ], np.uint8, ))), ak._v2.contents.recordarray.RecordArray( [ ak._v2.contents.numpyarray.NumpyArray( np.array([ 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 1.1, 2.2, 3.3, 4.4, 5.5, 6.6, ])) ], ["nest"], ), valid_when=False, length=13, lsb_order=True, ) resultv2 = v2d._carry(ak._v2.index.Index(np.array([0, 0, 0], np.int64)), False, NestedIndexError) assert ak.to_list(resultv2) == [{ "nest": 0.0 }, { "nest": 0.0 }, { "nest": 0.0 }] v1d = ak.layout.BitMaskedArray( ak.layout.IndexU8( np.packbits( np.array( [ 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, ], np.uint8, ))), ak.layout.RecordArray( [ ak.layout.NumpyArray( np.array([ 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 1.1, 2.2, 3.3, 4.4, 5.5, 6.6, ])) ], ["nest"], ), valid_when=False, length=13, lsb_order=True, ) resultv1 = v1d.carry(ak.layout.Index64(np.array([0, 0, 0], np.int64)), False) assert ak.to_list(resultv1) == ak.to_list(resultv2) assert v1v2_equal(resultv1, resultv2)
def test_BitMaskedArray_RecordArray_NumpyArray(): v1a = ak.layout.BitMaskedArray( ak.layout.IndexU8( np.packbits( np.array( [ True, True, True, True, False, False, False, False, True, False, True, False, True, ] ) ) ), ak.layout.RecordArray( [ ak.layout.NumpyArray( np.array( [ 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 1.1, 2.2, 3.3, 4.4, 5.5, 6.6, ] ) ) ], ["nest"], ), valid_when=True, length=13, lsb_order=False, ) v2a = ak._v2.contents.bitmaskedarray.BitMaskedArray( ak._v2.index.Index( np.packbits( np.array( [ True, True, True, True, False, False, False, False, True, False, True, False, True, ] ) ) ), ak._v2.contents.recordarray.RecordArray( [ ak._v2.contents.numpyarray.NumpyArray( np.array( [ 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 1.1, 2.2, 3.3, 4.4, 5.5, 6.6, ] ) ) ], ["nest"], ), valid_when=True, length=13, lsb_order=False, ) assert v1v2_equal(v1a, v2a) assert v1v2_equal(v2_to_v1(v2a), v1_to_v2(v1a)) assert ak.to_list(v1a) == ak.to_list(v2a) assert newform(json.loads(v1a.form.tojson())) == v2a.form.tolist() v1b = ak.layout.BitMaskedArray( ak.layout.IndexU8( np.packbits( np.array( [ 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, ], dtype=np.uint8, ) ) ), ak.layout.RecordArray( [ ak.layout.NumpyArray( np.array( [ 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 1.1, 2.2, 3.3, 4.4, 5.5, 6.6, ] ) ) ], ["nest"], ), valid_when=False, length=13, lsb_order=False, ) v2b = ak._v2.contents.bitmaskedarray.BitMaskedArray( ak._v2.index.Index( np.packbits( np.array( [ 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, ], dtype=np.uint8, ) ) ), ak._v2.contents.recordarray.RecordArray( [ ak._v2.contents.numpyarray.NumpyArray( np.array( [ 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 1.1, 2.2, 3.3, 4.4, 5.5, 6.6, ] ) ) ], ["nest"], ), valid_when=False, length=13, lsb_order=False, ) assert v1v2_equal(v1b, v2b) assert v1v2_equal(v2_to_v1(v2b), v1_to_v2(v1b)) assert ak.to_list(v1b) == ak.to_list(v2b) assert newform(json.loads(v1b.form.tojson())) == v2b.form.tolist() v1c = ak.layout.BitMaskedArray( ak.layout.IndexU8( np.packbits( np.array( [ 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, ], dtype=np.uint8, ) ) ), ak.layout.RecordArray( [ ak.layout.NumpyArray( np.array( [ 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 1.1, 2.2, 3.3, 4.4, 5.5, 6.6, ] ) ) ], ["nest"], ), valid_when=True, length=13, lsb_order=True, ) v2c = ak._v2.contents.bitmaskedarray.BitMaskedArray( ak._v2.index.Index( np.packbits( np.array( [ 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, ], dtype=np.uint8, ) ) ), ak._v2.contents.recordarray.RecordArray( [ ak._v2.contents.numpyarray.NumpyArray( np.array( [ 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 1.1, 2.2, 3.3, 4.4, 5.5, 6.6, ] ) ) ], ["nest"], ), valid_when=True, length=13, lsb_order=True, ) assert v1v2_equal(v1c, v2c) assert v1v2_equal(v2_to_v1(v2c), v1_to_v2(v1c)) assert ak.to_list(v1c) == ak.to_list(v2c) assert newform(json.loads(v1c.form.tojson())) == v2c.form.tolist() v1d = ak.layout.BitMaskedArray( ak.layout.IndexU8( np.packbits( np.array( [ 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, ], dtype=np.uint8, ) ) ), ak.layout.RecordArray( [ ak.layout.NumpyArray( np.array( [ 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 1.1, 2.2, 3.3, 4.4, 5.5, 6.6, ] ) ) ], ["nest"], ), valid_when=False, length=13, lsb_order=True, ) v2d = ak._v2.contents.bitmaskedarray.BitMaskedArray( ak._v2.index.Index( np.packbits( np.array( [ 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, ], dtype=np.uint8, ) ) ), ak._v2.contents.recordarray.RecordArray( [ ak._v2.contents.numpyarray.NumpyArray( np.array( [ 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 1.1, 2.2, 3.3, 4.4, 5.5, 6.6, ] ) ) ], ["nest"], ), valid_when=False, length=13, lsb_order=True, ) assert v1v2_equal(v1d, v2d) assert v1v2_equal(v2_to_v1(v2d), v1_to_v2(v1d)) assert ak.to_list(v1d) == ak.to_list(v2d) assert newform(json.loads(v1d.form.tojson())) == v2d.form.tolist()
def test_BitMaskedArray(): old = ak.layout.BitMaskedArray( ak.layout.IndexU8( np.packbits( np.array( [ [ 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, ], [ 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, ], ], np.uint8, ))), ak.layout.NumpyArray( np.array([ [ 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 1.1, 2.2, 3.3, 4.4, 5.5, 6.6, ], [ 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 1.1, 2.2, 3.3, 4.4, 5.5, 6.6, ], ])), valid_when=True, length=2, lsb_order=False, ) new = v1_to_v2(old) assert v1v2_equal(old[:, :], new[:, :]) assert ak.to_list(old[:, 5:]) == [ [5.0, 6.0, 7.0, 1.1, 2.2, 3.3, 4.4, 5.5, 6.6], [5.0, 6.0, 7.0, 1.1, 2.2, 3.3, 4.4, 5.5, 6.6], ] assert ak.to_list(new[:, 5:]) == [ [5.0, 6.0, 7.0, 1.1, 2.2, 3.3, 4.4, 5.5, 6.6], [5.0, 6.0, 7.0, 1.1, 2.2, 3.3, 4.4, 5.5, 6.6], ] assert v1v2_equal(old[:, 5:], new[:, 5:]) with pytest.raises(IndexError): new[1, "hello"] with pytest.raises(IndexError): new[1, ["hello", "there"]] assert ak.to_list(new[1, np.newaxis]) == [[ 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 1.1, 2.2, 3.3, 4.4, 5.5, 6.6 ]] assert ak.to_list(old[1, np.newaxis]) == [[ 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 1.1, 2.2, 3.3, 4.4, 5.5, 6.6 ]] assert old.minmax_depth == (2, 2) assert new.minmax_depth == (2, 2) assert ak.to_list(old[0, ..., 0]) == 0.0 assert ak.to_list(new[0, ..., 0]) == 0.0 expectation = [ [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 1.1, 2.2, 3.3, 4.4, 5.5, 6.6], [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 1.1, 2.2, 3.3, 4.4, 5.5, 6.6], ] assert (ak.to_list(old[[1, 0], ]) == expectation) assert (ak.to_list(new[[1, 0], ]) == expectation) assert ak.to_list(old[[1, 0]]) == expectation assert ak.to_list(new[[1, 0]]) == expectation assert ak.to_list(old[1, [1, 0]]) == [1.0, 0.0] assert ak.to_list(new[1, [1, 0]]) == [1.0, 0.0] assert v1v2_equal(old[1, [1, 0]], new[1, [1, 0]])
def test_RecordArray_NumpyArray_lazy(): v2a = ak._v2.contents.recordarray.RecordArray( [ ak._v2.contents.numpyarray.NumpyArray( np.array([0, 1, 2, 3, 4], np.int64)), ak._v2.contents.numpyarray.NumpyArray( np.array([0.0, 1.1, 2.2, 3.3, 4.4, 5.5])), ], ["x", "y"], ) resultv2 = v2a._carry(ak._v2.index.Index(np.array([1, 2], np.int64)), True, NestedIndexError) assert ak.to_list(resultv2) == [{"x": 1, "y": 1.1}, {"x": 2, "y": 2.2}] v1a = ak.layout.RecordArray( [ ak.layout.NumpyArray(np.array([0, 1, 2, 3, 4], np.int64)), ak.layout.NumpyArray(np.array([0.0, 1.1, 2.2, 3.3, 4.4, 5.5])), ], ["x", "y"], ) resultv1 = v1a[np.array([1, 2], np.int64)] assert ak.to_list(resultv1) == ak.to_list(resultv2) assert v1v2_equal(resultv1, resultv2) v2b = ak._v2.contents.recordarray.RecordArray( [ ak._v2.contents.numpyarray.NumpyArray( np.array([0, 1, 2, 3, 4], np.int64)), ak._v2.contents.numpyarray.NumpyArray( np.array([0.0, 1.1, 2.2, 3.3, 4.4, 5.5])), ], None, ) resultv2 = v2b._carry( ak._v2.index.Index(np.array([0, 1, 2, 3, 4], np.int64)), True, NestedIndexError) assert ak.to_list(resultv2) == [(0, 0.0), (1, 1.1), (2, 2.2), (3, 3.3), (4, 4.4)] v1b = ak.layout.RecordArray( [ ak.layout.NumpyArray(np.array([0, 1, 2, 3, 4], np.int64)), ak.layout.NumpyArray(np.array([0.0, 1.1, 2.2, 3.3, 4.4, 5.5])), ], None, ) resultv1 = v1b.carry( ak.layout.Index64(np.array([0, 1, 2, 3, 4], np.int64)), True) assert ak.to_list(resultv1) == ak.to_list(resultv2) assert v1v2_equal(resultv1, resultv2) v2c = ak._v2.contents.recordarray.RecordArray([], [], 10) resultv2 = v2c[np.array([0], np.int64)] assert ak.to_list(resultv2) == [{}] v1c = ak.layout.RecordArray([], [], 10) resultv1 = v1c[np.array([0], np.int64)] assert ak.to_list(resultv1) == ak.to_list(resultv2) v2d = ak._v2.contents.recordarray.RecordArray([], None, 10) resultv2 = v2d[np.array([0], np.int64)] assert ak.to_list(resultv2) == [()] v1d = ak.layout.RecordArray([], None, 10) resultv1 = v1d[np.array([0], np.int64)] assert ak.to_list(resultv1) == ak.to_list(resultv2)