Skip to content

Commit e9c19d1

Browse files
authored
fix(test): Deterministic explode output by sorting on multiple columns (#2988)
1 parent 411e6a2 commit e9c19d1

File tree

1 file changed

+13
-12
lines changed

1 file changed

+13
-12
lines changed

tests/frame/explode_test.py

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -46,39 +46,39 @@ def test_explode_single_col(
4646
.with_columns(nw.col(column).cast(nw.List(nw.Int32())))
4747
.explode(column)
4848
.select("a", column)
49-
.sort("a")
49+
.sort("a", column, nulls_last=True)
5050
)
5151
expected = {"a": ["w", "x", "x", "y", "z"], column: expected_values}
5252
assert_equal_data(result, expected)
5353

5454

5555
@pytest.mark.parametrize(
56-
("columns", "more_columns", "expected"),
56+
("column", "more_columns", "expected"),
5757
[
5858
(
5959
"l1",
6060
["l2"],
6161
{
62-
"a": ["x", "x", "y", "z", "w"],
63-
"l1": [1, 2, None, None, None],
64-
"l2": [3, None, None, 42, None],
62+
"a": ["w", "x", "x", "y", "z"],
63+
"l1": [None, 1, 2, None, None],
64+
"l2": [None, 3, None, None, 42],
6565
},
6666
),
6767
(
6868
"l3",
6969
["l4"],
7070
{
71-
"a": ["x", "x", "y", "z", "w"],
72-
"l3": [1, 2, 3, None, 1],
73-
"l4": [1, 2, 3, 123, 456],
71+
"a": ["w", "x", "x", "y", "z"],
72+
"l3": [1, 1, 2, 3, None],
73+
"l4": [456, 1, 2, 3, 123],
7474
},
7575
),
7676
],
7777
)
7878
def test_explode_multiple_cols(
7979
request: pytest.FixtureRequest,
8080
constructor: Constructor,
81-
columns: str | Sequence[str],
81+
column: str,
8282
more_columns: Sequence[str],
8383
expected: dict[str, list[str | int | None]],
8484
) -> None:
@@ -93,9 +93,10 @@ def test_explode_multiple_cols(
9393

9494
result = (
9595
nw.from_native(constructor(data))
96-
.with_columns(nw.col(columns, *more_columns).cast(nw.List(nw.Int32())))
97-
.explode(columns, *more_columns)
98-
.select("a", columns, *more_columns)
96+
.with_columns(nw.col(column, *more_columns).cast(nw.List(nw.Int32())))
97+
.explode(column, *more_columns)
98+
.select("a", column, *more_columns)
99+
.sort("a", column, nulls_last=True)
99100
)
100101
assert_equal_data(result, expected)
101102

0 commit comments

Comments
 (0)