diff --git a/tests/.tmpHaXt1g b/tests/.tmpHaXt1g new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/v2/test_1308-zip-after-option.py b/tests/v2/test_1308-zip-after-option.py new file mode 100644 index 0000000000..bdb9bf98f5 --- /dev/null +++ b/tests/v2/test_1308-zip-after-option.py @@ -0,0 +1,44 @@ +# BSD 3-Clause License; see https://github.com/scikit-hep/awkward-1.0/blob/main/LICENSE + +import pytest # noqa: F401 +import awkward as ak # noqa: F401 + + +def test_all_options(): + one = ak._v2.highlevel.Array([1, 2, None]) + two = ak._v2.highlevel.Array([None, 5, None]) + result = ak._v2.operations.structure.zip([one, two], optiontype_outside_record=True) + assert str(result.type) == "3 * ?(int64, int64)" + assert result.tolist() == [None, (2, 5), None] + + +def test_mixed_options(): + one = ak._v2.highlevel.Array([1, 2, None]) + two = ak._v2.highlevel.Array([4, 5, 6]) + result = ak._v2.operations.structure.zip([one, two], optiontype_outside_record=True) + assert str(result.type) == "3 * ?(int64, int64)" + assert result.tolist() == [(1, 4), (2, 5), None] + + +def test_no_options(): + one = ak._v2.highlevel.Array([1, 2, 3]) + two = ak._v2.highlevel.Array([4, 5, 6]) + result = ak._v2.operations.structure.zip([one, two], optiontype_outside_record=True) + assert str(result.type) == "3 * (int64, int64)" + assert result.tolist() == [(1, 4), (2, 5), (3, 6)] + + +def test_complex_inner(): + one = ak._v2.highlevel.Array([1, 2, 3]) + two = ak._v2.highlevel.Array([[7, 5], [1, 2], [4, None]]) + result = ak._v2.operations.structure.zip([one, two], optiontype_outside_record=True) + assert str(result.type) == "3 * var * ?(int64, int64)" + assert result.tolist() == [[(1, 7), (1, 5)], [(2, 1), (2, 2)], [(3, 4), None]] + + +def test_complex_outer(): + one = ak._v2.highlevel.Array([1, None, 3]) + two = ak._v2.highlevel.Array([[7, 5], [1, 2], [4, None]]) + result = ak._v2.operations.structure.zip([one, two], optiontype_outside_record=True) + assert str(result.type) == "3 * option[var * ?(int64, int64)]" + assert result.tolist() == [[(1, 7), (1, 5)], None, [(3, 4), None]]