Skip to content

Commit a362a3b

Browse files
chore: refactor compare_dicts (#1224)
--------- Co-authored-by: Marco Gorelli <[email protected]>
1 parent c692b81 commit a362a3b

File tree

127 files changed

+545
-541
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

127 files changed

+545
-541
lines changed

tests/expr_and_series/abs_test.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,18 @@
33
import narwhals.stable.v1 as nw
44
from tests.utils import Constructor
55
from tests.utils import ConstructorEager
6-
from tests.utils import compare_dicts
6+
from tests.utils import assert_equal_data
77

88

99
def test_abs(constructor: Constructor) -> None:
1010
df = nw.from_native(constructor({"a": [1, 2, 3, -4, 5]}))
1111
result = df.select(b=nw.col("a").abs())
1212
expected = {"b": [1, 2, 3, 4, 5]}
13-
compare_dicts(result, expected)
13+
assert_equal_data(result, expected)
1414

1515

1616
def test_abs_series(constructor_eager: ConstructorEager) -> None:
1717
df = nw.from_native(constructor_eager({"a": [1, 2, 3, -4, 5]}), eager_only=True)
1818
result = {"b": df["a"].abs()}
1919
expected = {"b": [1, 2, 3, 4, 5]}
20-
compare_dicts(result, expected)
20+
assert_equal_data(result, expected)

tests/expr_and_series/all_horizontal_test.py

+7-7
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
from narwhals.utils import parse_version
1010
from tests.utils import Constructor
1111
from tests.utils import ConstructorEager
12-
from tests.utils import compare_dicts
12+
from tests.utils import assert_equal_data
1313

1414

1515
@pytest.mark.parametrize("expr1", ["a", nw.col("a")])
@@ -23,7 +23,7 @@ def test_allh(constructor: Constructor, expr1: Any, expr2: Any) -> None:
2323
result = df.select(all=nw.all_horizontal(expr1, expr2))
2424

2525
expected = {"all": [False, False, True]}
26-
compare_dicts(result, expected)
26+
assert_equal_data(result, expected)
2727

2828

2929
def test_allh_series(constructor_eager: ConstructorEager) -> None:
@@ -35,7 +35,7 @@ def test_allh_series(constructor_eager: ConstructorEager) -> None:
3535
result = df.select(all=nw.all_horizontal(df["a"], df["b"]))
3636

3737
expected = {"all": [False, False, True]}
38-
compare_dicts(result, expected)
38+
assert_equal_data(result, expected)
3939

4040

4141
def test_allh_all(constructor: Constructor) -> None:
@@ -46,10 +46,10 @@ def test_allh_all(constructor: Constructor) -> None:
4646
df = nw.from_native(constructor(data))
4747
result = df.select(all=nw.all_horizontal(nw.all()))
4848
expected = {"all": [False, False, True]}
49-
compare_dicts(result, expected)
49+
assert_equal_data(result, expected)
5050
result = df.select(nw.all_horizontal(nw.all()))
5151
expected = {"a": [False, False, True]}
52-
compare_dicts(result, expected)
52+
assert_equal_data(result, expected)
5353

5454

5555
def test_allh_nth(constructor: Constructor, request: pytest.FixtureRequest) -> None:
@@ -62,10 +62,10 @@ def test_allh_nth(constructor: Constructor, request: pytest.FixtureRequest) -> N
6262
df = nw.from_native(constructor(data))
6363
result = df.select(nw.all_horizontal(nw.nth(0, 1)))
6464
expected = {"a": [False, False, True]}
65-
compare_dicts(result, expected)
65+
assert_equal_data(result, expected)
6666
result = df.select(nw.all_horizontal(nw.col("a"), nw.nth(0)))
6767
expected = {"a": [False, False, True]}
68-
compare_dicts(result, expected)
68+
assert_equal_data(result, expected)
6969

7070

7171
def test_horizontal_expressions_empty(constructor: Constructor) -> None:

tests/expr_and_series/any_all_test.py

+5-5
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import narwhals.stable.v1 as nw
44
from tests.utils import Constructor
55
from tests.utils import ConstructorEager
6-
from tests.utils import compare_dicts
6+
from tests.utils import assert_equal_data
77

88

99
def test_any_all(constructor: Constructor) -> None:
@@ -18,10 +18,10 @@ def test_any_all(constructor: Constructor) -> None:
1818
)
1919
result = df.select(nw.col("a", "b", "c").all())
2020
expected = {"a": [False], "b": [True], "c": [False]}
21-
compare_dicts(result, expected)
21+
assert_equal_data(result, expected)
2222
result = df.select(nw.all().any())
2323
expected = {"a": [True], "b": [True], "c": [False]}
24-
compare_dicts(result, expected)
24+
assert_equal_data(result, expected)
2525

2626

2727
def test_any_all_series(constructor_eager: ConstructorEager) -> None:
@@ -37,7 +37,7 @@ def test_any_all_series(constructor_eager: ConstructorEager) -> None:
3737
)
3838
result = {"a": [df["a"].all()], "b": [df["b"].all()], "c": [df["c"].all()]}
3939
expected = {"a": [False], "b": [True], "c": [False]}
40-
compare_dicts(result, expected)
40+
assert_equal_data(result, expected)
4141
result = {"a": [df["a"].any()], "b": [df["b"].any()], "c": [df["c"].any()]}
4242
expected = {"a": [True], "b": [True], "c": [False]}
43-
compare_dicts(result, expected)
43+
assert_equal_data(result, expected)

tests/expr_and_series/any_horizontal_test.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
import narwhals.stable.v1 as nw
88
from tests.utils import Constructor
9-
from tests.utils import compare_dicts
9+
from tests.utils import assert_equal_data
1010

1111

1212
@pytest.mark.parametrize("expr1", ["a", nw.col("a")])
@@ -20,7 +20,7 @@ def test_anyh(constructor: Constructor, expr1: Any, expr2: Any) -> None:
2020
result = df.select(any=nw.any_horizontal(expr1, expr2))
2121

2222
expected = {"any": [False, True, True]}
23-
compare_dicts(result, expected)
23+
assert_equal_data(result, expected)
2424

2525

2626
def test_anyh_all(constructor: Constructor) -> None:
@@ -31,7 +31,7 @@ def test_anyh_all(constructor: Constructor) -> None:
3131
df = nw.from_native(constructor(data))
3232
result = df.select(any=nw.any_horizontal(nw.all()))
3333
expected = {"any": [False, True, True]}
34-
compare_dicts(result, expected)
34+
assert_equal_data(result, expected)
3535
result = df.select(nw.any_horizontal(nw.all()))
3636
expected = {"a": [False, True, True]}
37-
compare_dicts(result, expected)
37+
assert_equal_data(result, expected)

tests/expr_and_series/arg_true_test.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import narwhals.stable.v1 as nw
66
from tests.utils import Constructor
77
from tests.utils import ConstructorEager
8-
from tests.utils import compare_dicts
8+
from tests.utils import assert_equal_data
99

1010

1111
def test_arg_true(constructor: Constructor, request: pytest.FixtureRequest) -> None:
@@ -14,12 +14,12 @@ def test_arg_true(constructor: Constructor, request: pytest.FixtureRequest) -> N
1414
df = nw.from_native(constructor({"a": [1, None, None, 3]}))
1515
result = df.select(nw.col("a").is_null().arg_true())
1616
expected = {"a": [1, 2]}
17-
compare_dicts(result, expected)
17+
assert_equal_data(result, expected)
1818

1919

2020
def test_arg_true_series(constructor_eager: ConstructorEager) -> None:
2121
df = nw.from_native(constructor_eager({"a": [1, None, None, 3]}), eager_only=True)
2222
result = df.select(df["a"].is_null().arg_true())
2323
expected = {"a": [1, 2]}
24-
compare_dicts(result, expected)
24+
assert_equal_data(result, expected)
2525
assert "a" in df # cheeky test to hit `__contains__` method

tests/expr_and_series/arithmetic_test.py

+16-16
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
from narwhals.utils import parse_version
1515
from tests.utils import Constructor
1616
from tests.utils import ConstructorEager
17-
from tests.utils import compare_dicts
17+
from tests.utils import assert_equal_data
1818

1919

2020
@pytest.mark.parametrize(
@@ -45,7 +45,7 @@ def test_arithmetic_expr(
4545
data = {"a": [1.0, 2, 3]}
4646
df = nw.from_native(constructor(data))
4747
result = df.select(getattr(nw.col("a"), attr)(rhs))
48-
compare_dicts(result, {"a": expected})
48+
assert_equal_data(result, {"a": expected})
4949

5050

5151
@pytest.mark.parametrize(
@@ -75,7 +75,7 @@ def test_right_arithmetic_expr(
7575
data = {"a": [1, 2, 3]}
7676
df = nw.from_native(constructor(data))
7777
result = df.select(a=getattr(nw.col("a"), attr)(rhs))
78-
compare_dicts(result, {"a": expected})
78+
assert_equal_data(result, {"a": expected})
7979

8080

8181
@pytest.mark.parametrize(
@@ -106,7 +106,7 @@ def test_arithmetic_series(
106106
data = {"a": [1, 2, 3]}
107107
df = nw.from_native(constructor_eager(data), eager_only=True)
108108
result = df.select(getattr(df["a"], attr)(rhs))
109-
compare_dicts(result, {"a": expected})
109+
assert_equal_data(result, {"a": expected})
110110

111111

112112
@pytest.mark.parametrize(
@@ -136,7 +136,7 @@ def test_right_arithmetic_series(
136136
data = {"a": [1, 2, 3]}
137137
df = nw.from_native(constructor_eager(data), eager_only=True)
138138
result = df.select(a=getattr(df["a"], attr)(rhs))
139-
compare_dicts(result, {"a": expected})
139+
assert_equal_data(result, {"a": expected})
140140

141141

142142
def test_truediv_same_dims(
@@ -148,9 +148,9 @@ def test_truediv_same_dims(
148148
s_left = nw.from_native(constructor_eager({"a": [1, 2, 3]}), eager_only=True)["a"]
149149
s_right = nw.from_native(constructor_eager({"a": [2, 2, 1]}), eager_only=True)["a"]
150150
result = s_left / s_right
151-
compare_dicts({"a": result}, {"a": [0.5, 1.0, 3.0]})
151+
assert_equal_data({"a": result}, {"a": [0.5, 1.0, 3.0]})
152152
result = s_left.__rtruediv__(s_right)
153-
compare_dicts({"a": result}, {"a": [2, 1, 1 / 3]})
153+
assert_equal_data({"a": result}, {"a": [2, 1, 1 / 3]})
154154

155155

156156
@pytest.mark.slow
@@ -169,7 +169,7 @@ def test_floordiv(left: int, right: int) -> None:
169169
result = nw.from_native(pd.DataFrame({"a": [left]}), eager_only=True).select(
170170
nw.col("a") // right
171171
)
172-
compare_dicts(result, expected)
172+
assert_equal_data(result, expected)
173173
if parse_version(pd.__version__) < (2, 2): # pragma: no cover
174174
# Bug in old version of pandas
175175
pass
@@ -178,19 +178,19 @@ def test_floordiv(left: int, right: int) -> None:
178178
pd.DataFrame({"a": [left]}).convert_dtypes(dtype_backend="pyarrow"),
179179
eager_only=True,
180180
).select(nw.col("a") // right)
181-
compare_dicts(result, expected)
181+
assert_equal_data(result, expected)
182182
result = nw.from_native(
183183
pd.DataFrame({"a": [left]}).convert_dtypes(), eager_only=True
184184
).select(nw.col("a") // right)
185-
compare_dicts(result, expected)
185+
assert_equal_data(result, expected)
186186
result = nw.from_native(pl.DataFrame({"a": [left]}), eager_only=True).select(
187187
nw.col("a") // right
188188
)
189-
compare_dicts(result, expected)
189+
assert_equal_data(result, expected)
190190
result = nw.from_native(pa.table({"a": [left]}), eager_only=True).select(
191191
nw.col("a") // right
192192
)
193-
compare_dicts(result, expected)
193+
assert_equal_data(result, expected)
194194

195195

196196
@pytest.mark.slow
@@ -209,16 +209,16 @@ def test_mod(left: int, right: int) -> None:
209209
result = nw.from_native(pd.DataFrame({"a": [left]}), eager_only=True).select(
210210
nw.col("a") % right
211211
)
212-
compare_dicts(result, expected)
212+
assert_equal_data(result, expected)
213213
result = nw.from_native(
214214
pd.DataFrame({"a": [left]}).convert_dtypes(), eager_only=True
215215
).select(nw.col("a") % right)
216-
compare_dicts(result, expected)
216+
assert_equal_data(result, expected)
217217
result = nw.from_native(pl.DataFrame({"a": [left]}), eager_only=True).select(
218218
nw.col("a") % right
219219
)
220-
compare_dicts(result, expected)
220+
assert_equal_data(result, expected)
221221
result = nw.from_native(pa.table({"a": [left]}), eager_only=True).select(
222222
nw.col("a") % right
223223
)
224-
compare_dicts(result, expected)
224+
assert_equal_data(result, expected)

tests/expr_and_series/binary_test.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import narwhals.stable.v1 as nw
44
from tests.utils import Constructor
5-
from tests.utils import compare_dicts
5+
from tests.utils import assert_equal_data
66

77

88
def test_expr_binary(constructor: Constructor) -> None:
@@ -43,4 +43,4 @@ def test_expr_binary(constructor: Constructor) -> None:
4343
"l": [0, 1, 1],
4444
"m": [1, 9, 4],
4545
}
46-
compare_dicts(result, expected)
46+
assert_equal_data(result, expected)

tests/expr_and_series/cast_test.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
import narwhals.stable.v1 as nw
1212
from narwhals.utils import parse_version
1313
from tests.utils import Constructor
14-
from tests.utils import compare_dicts
14+
from tests.utils import assert_equal_data
1515
from tests.utils import is_windows
1616

1717
data = {
@@ -217,4 +217,4 @@ def test_cast_datetime_tz_aware(
217217
.cast(nw.String())
218218
.str.slice(offset=0, length=19)
219219
)
220-
compare_dicts(result, expected)
220+
assert_equal_data(result, expected)

tests/expr_and_series/cat/get_categories_test.py

+5-5
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import narwhals.stable.v1 as nw
77
from narwhals.utils import parse_version
88
from tests.utils import ConstructorEager
9-
from tests.utils import compare_dicts
9+
from tests.utils import assert_equal_data
1010

1111
data = {"a": ["one", "two", "two"]}
1212

@@ -24,10 +24,10 @@ def test_get_categories(
2424
expected = {"a": ["one", "two"]}
2525

2626
result_expr = df.select(nw.col("a").cat.get_categories())
27-
compare_dicts(result_expr, expected)
27+
assert_equal_data(result_expr, expected)
2828

2929
result_series = df["a"].cat.get_categories()
30-
compare_dicts({"a": result_series}, expected)
30+
assert_equal_data({"a": result_series}, expected)
3131

3232

3333
def test_get_categories_pyarrow() -> None:
@@ -40,7 +40,7 @@ def test_get_categories_pyarrow() -> None:
4040
expected = {"a": ["a", "b", "d"]}
4141

4242
result_expr = df.select(nw.col("a").cat.get_categories())
43-
compare_dicts(result_expr, expected)
43+
assert_equal_data(result_expr, expected)
4444

4545
result_series = df["a"].cat.get_categories()
46-
compare_dicts({"a": result_series}, expected)
46+
assert_equal_data({"a": result_series}, expected)

tests/expr_and_series/clip_test.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import narwhals.stable.v1 as nw
44
from tests.utils import Constructor
55
from tests.utils import ConstructorEager
6-
from tests.utils import compare_dicts
6+
from tests.utils import assert_equal_data
77

88

99
def test_clip(constructor: Constructor) -> None:
@@ -18,7 +18,7 @@ def test_clip(constructor: Constructor) -> None:
1818
"upper_only": [1, 2, 3, -4, 4],
1919
"both": [3, 3, 3, 3, 4],
2020
}
21-
compare_dicts(result, expected)
21+
assert_equal_data(result, expected)
2222

2323

2424
def test_clip_series(constructor_eager: ConstructorEager) -> None:
@@ -34,4 +34,4 @@ def test_clip_series(constructor_eager: ConstructorEager) -> None:
3434
"upper_only": [1, 2, 3, -4, 4],
3535
"both": [3, 3, 3, 3, 4],
3636
}
37-
compare_dicts(result, expected)
37+
assert_equal_data(result, expected)

tests/expr_and_series/concat_str_test.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
import narwhals.stable.v1 as nw
66
from tests.utils import Constructor
7-
from tests.utils import compare_dicts
7+
from tests.utils import assert_equal_data
88

99
data = {
1010
"a": [1, 2, 3],
@@ -40,7 +40,7 @@ def test_concat_str(
4040
.sort("a")
4141
.select("full_sentence")
4242
)
43-
compare_dicts(result, {"full_sentence": expected})
43+
assert_equal_data(result, {"full_sentence": expected})
4444
result = (
4545
df.select(
4646
"a",
@@ -55,4 +55,4 @@ def test_concat_str(
5555
.sort("a")
5656
.select("full_sentence")
5757
)
58-
compare_dicts(result, {"full_sentence": expected})
58+
assert_equal_data(result, {"full_sentence": expected})

0 commit comments

Comments
 (0)