Skip to content

Commit b1144fe

Browse files
committed
TST: Split up groupby.shift and groupby.diff tests into two different files.
1 parent 126bb92 commit b1144fe

File tree

2 files changed

+54
-46
lines changed

2 files changed

+54
-46
lines changed
+54
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
import numpy as np
2+
import pytest
3+
4+
from pandas import (
5+
DataFrame,
6+
NaT,
7+
Series,
8+
Timedelta,
9+
Timestamp,
10+
)
11+
import pandas._testing as tm
12+
13+
14+
def test_group_diff_real(any_real_dtype):
15+
df = DataFrame({"a": [1, 2, 3, 3, 2], "b": [1, 2, 3, 4, 5]}, dtype=any_real_dtype)
16+
result = df.groupby("a")["b"].diff()
17+
exp_dtype = "float"
18+
if any_real_dtype in ["int8", "int16", "float32"]:
19+
exp_dtype = "float32"
20+
expected = Series([np.nan, np.nan, np.nan, 1.0, 3.0], dtype=exp_dtype, name="b")
21+
tm.assert_series_equal(result, expected)
22+
23+
24+
@pytest.mark.parametrize(
25+
"data",
26+
[
27+
[
28+
Timestamp("2013-01-01"),
29+
Timestamp("2013-01-02"),
30+
Timestamp("2013-01-03"),
31+
],
32+
[Timedelta("5 days"), Timedelta("6 days"), Timedelta("7 days")],
33+
],
34+
)
35+
def test_group_diff_datetimelike(data):
36+
df = DataFrame({"a": [1, 2, 2], "b": data})
37+
result = df.groupby("a")["b"].diff()
38+
expected = Series([NaT, NaT, Timedelta("1 days")], name="b")
39+
tm.assert_series_equal(result, expected)
40+
41+
42+
def test_group_diff_bool():
43+
df = DataFrame({"a": [1, 2, 3, 3, 2], "b": [True, True, False, False, True]})
44+
result = df.groupby("a")["b"].diff()
45+
expected = Series([np.nan, np.nan, np.nan, False, False], name="b")
46+
tm.assert_series_equal(result, expected)
47+
48+
49+
def test_group_diff_object_raises(object_dtype):
50+
df = DataFrame(
51+
{"a": ["foo", "bar", "bar"], "b": ["baz", "foo", "foo"]}, dtype=object_dtype
52+
)
53+
with pytest.raises(TypeError, match=r"unsupported operand type\(s\) for -"):
54+
df.groupby("a")["b"].diff()

pandas/tests/groupby/test_groupby_shift_diff.py renamed to pandas/tests/groupby/test_groupby_shift.py

-46
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,8 @@
11
import numpy as np
2-
import pytest
32

43
from pandas import (
54
DataFrame,
6-
NaT,
75
Series,
8-
Timedelta,
96
Timestamp,
107
)
118
import pandas._testing as tm
@@ -67,46 +64,3 @@ def test_group_shift_lose_timezone():
6764
result = df.groupby("a").shift(0).iloc[0]
6865
expected = Series({"date": now_dt}, name=result.name)
6966
tm.assert_series_equal(result, expected)
70-
71-
72-
def test_group_diff_real(any_real_dtype):
73-
df = DataFrame({"a": [1, 2, 3, 3, 2], "b": [1, 2, 3, 4, 5]}, dtype=any_real_dtype)
74-
result = df.groupby("a")["b"].diff()
75-
exp_dtype = "float"
76-
if any_real_dtype in ["int8", "int16", "float32"]:
77-
exp_dtype = "float32"
78-
expected = Series([np.nan, np.nan, np.nan, 1.0, 3.0], dtype=exp_dtype, name="b")
79-
tm.assert_series_equal(result, expected)
80-
81-
82-
@pytest.mark.parametrize(
83-
"data",
84-
[
85-
[
86-
Timestamp("2013-01-01"),
87-
Timestamp("2013-01-02"),
88-
Timestamp("2013-01-03"),
89-
],
90-
[Timedelta("5 days"), Timedelta("6 days"), Timedelta("7 days")],
91-
],
92-
)
93-
def test_group_diff_datetimelike(data):
94-
df = DataFrame({"a": [1, 2, 2], "b": data})
95-
result = df.groupby("a")["b"].diff()
96-
expected = Series([NaT, NaT, Timedelta("1 days")], name="b")
97-
tm.assert_series_equal(result, expected)
98-
99-
100-
def test_group_diff_bool():
101-
df = DataFrame({"a": [1, 2, 3, 3, 2], "b": [True, True, False, False, True]})
102-
result = df.groupby("a")["b"].diff()
103-
expected = Series([np.nan, np.nan, np.nan, False, False], name="b")
104-
tm.assert_series_equal(result, expected)
105-
106-
107-
def test_group_diff_object_raises(object_dtype):
108-
df = DataFrame(
109-
{"a": ["foo", "bar", "bar"], "b": ["baz", "foo", "foo"]}, dtype=object_dtype
110-
)
111-
with pytest.raises(TypeError, match=r"unsupported operand type\(s\) for -"):
112-
df.groupby("a")["b"].diff()

0 commit comments

Comments
 (0)