Skip to content

Commit a52f97c

Browse files
committed
unit tests
1 parent d9be409 commit a52f97c

File tree

1 file changed

+51
-0
lines changed

1 file changed

+51
-0
lines changed

pandas/tests/groupby/aggregate/test_aggregate.py

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -866,6 +866,57 @@ def test_agg_namedtuple(self):
866866
expected = df.groupby("A").agg(b=("B", "sum"), c=("B", "count"))
867867
tm.assert_frame_equal(result, expected)
868868

869+
def n_between(self, ser, low, high, **kwargs):
870+
return ser.between(low, high, **kwargs).sum()
871+
872+
def test_namedagg_args(self):
873+
df = DataFrame({"A": [0, 0, 1, 1], "B": [-1, 0, 1, 2]})
874+
875+
result = df.groupby("A").agg(
876+
count_between=pd.NamedAgg("B", self.n_between, 0, 1)
877+
)
878+
expected = DataFrame({"count_between": [1, 1]}, index=Index([0, 1], name="A"))
879+
tm.assert_frame_equal(result, expected)
880+
881+
def test_namedagg_kwargs(self):
882+
df = DataFrame({"A": [0, 0, 1, 1], "B": [-1, 0, 1, 2]})
883+
884+
result = df.groupby("A").agg(
885+
count_between_kw=pd.NamedAgg("B", self.n_between, 0, 1, inclusive="both")
886+
)
887+
expected = DataFrame(
888+
{"count_between_kw": [1, 1]}, index=Index([0, 1], name="A")
889+
)
890+
tm.assert_frame_equal(result, expected)
891+
892+
def test_namedagg_args_and_kwargs(self):
893+
df = DataFrame({"A": [0, 0, 1, 1], "B": [-1, 0, 1, 2]})
894+
895+
result = df.groupby("A").agg(
896+
count_between_mix=pd.NamedAgg(
897+
"B", self.n_between, 0, 1, inclusive="neither"
898+
)
899+
)
900+
expected = DataFrame(
901+
{"count_between_mix": [0, 0]}, index=Index([0, 1], name="A")
902+
)
903+
tm.assert_frame_equal(result, expected)
904+
905+
def test_multiple_named_agg_with_args_and_kwargs(self):
906+
df = DataFrame({"A": [0, 1, 2, 3], "B": [1, 2, 3, 4]})
907+
908+
result = df.groupby("A").agg(
909+
n_between01=pd.NamedAgg("B", self.n_between, 0, 1),
910+
n_between13=pd.NamedAgg("B", self.n_between, 1, 3),
911+
n_between02=pd.NamedAgg("B", self.n_between, 0, 2),
912+
)
913+
expected = df.groupby("A").agg(
914+
n_between01=("B", lambda x: x.between(0, 1).sum()),
915+
n_between13=("B", lambda x: x.between(0, 3).sum()),
916+
n_between02=("B", lambda x: x.between(0, 2).sum()),
917+
)
918+
tm.assert_frame_equal(result, expected)
919+
869920
def test_mangled(self):
870921
df = DataFrame({"A": [0, 1], "B": [1, 2], "C": [3, 4]})
871922
result = df.groupby("A").agg(b=("B", lambda x: 0), c=("C", lambda x: 1))

0 commit comments

Comments
 (0)