From 5c0a09558ca361d30563f63a5d204f0825ede699 Mon Sep 17 00:00:00 2001 From: r-toroxel Date: Fri, 3 Jul 2020 13:47:17 +0200 Subject: [PATCH 1/6] TST add test case to drop_duplicates for inplace=True --- pandas/tests/frame/methods/test_drop_duplicates.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pandas/tests/frame/methods/test_drop_duplicates.py b/pandas/tests/frame/methods/test_drop_duplicates.py index 7c6391140e2bb..983696587c5e1 100644 --- a/pandas/tests/frame/methods/test_drop_duplicates.py +++ b/pandas/tests/frame/methods/test_drop_duplicates.py @@ -425,3 +425,8 @@ def test_drop_duplicates_null_in_object_column(nulls_fixture): df = DataFrame([[1, nulls_fixture], [2, "a"]], dtype=object) result = df.drop_duplicates() tm.assert_frame_equal(result, df) + +def test_drop_duplicates_inplace(): + df = DataFrame({"a": [1,2,3], "b": [1,2,4], "c": [1,6,5]}) + result = df.drop_duplicates(inplace=True) + assert result is None From 6b940bb782995e0306f339c2ae797f983e6a9822 Mon Sep 17 00:00:00 2001 From: r-toroxel Date: Sat, 4 Jul 2020 14:22:54 +0200 Subject: [PATCH 2/6] CLN PEP-8 --- pandas/tests/frame/methods/test_drop_duplicates.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pandas/tests/frame/methods/test_drop_duplicates.py b/pandas/tests/frame/methods/test_drop_duplicates.py index 983696587c5e1..7104f932f8300 100644 --- a/pandas/tests/frame/methods/test_drop_duplicates.py +++ b/pandas/tests/frame/methods/test_drop_duplicates.py @@ -426,7 +426,8 @@ def test_drop_duplicates_null_in_object_column(nulls_fixture): result = df.drop_duplicates() tm.assert_frame_equal(result, df) -def test_drop_duplicates_inplace(): - df = DataFrame({"a": [1,2,3], "b": [1,2,4], "c": [1,6,5]}) + +def test_drop_duplicates_inplace_result(): + df = DataFrame({"a": [1, 2, 3], "b": [1, 2, 4], "c": [1, 6, 5]}) result = df.drop_duplicates(inplace=True) assert result is None From 4b8679c1b3fc9319f46bcbd6031e76b0d0b73d1e Mon Sep 17 00:00:00 2001 From: r-toroxel Date: Tue, 7 Jul 2020 19:41:56 +0200 Subject: [PATCH 3/6] TST move to existing test --- .../frame/methods/test_drop_duplicates.py | 33 ++++++++++--------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/pandas/tests/frame/methods/test_drop_duplicates.py b/pandas/tests/frame/methods/test_drop_duplicates.py index 7104f932f8300..64fb1ce7ab6b2 100644 --- a/pandas/tests/frame/methods/test_drop_duplicates.py +++ b/pandas/tests/frame/methods/test_drop_duplicates.py @@ -333,64 +333,73 @@ def test_drop_duplicates_inplace(): ) # single column df = orig.copy() - df.drop_duplicates("A", inplace=True) + return_value = df.drop_duplicates("A", inplace=True) expected = orig[:2] result = df tm.assert_frame_equal(result, expected) + assert(return_value is None) df = orig.copy() - df.drop_duplicates("A", keep="last", inplace=True) + return_value = df.drop_duplicates("A", keep="last", inplace=True) expected = orig.loc[[6, 7]] result = df tm.assert_frame_equal(result, expected) + assert (return_value is None) df = orig.copy() - df.drop_duplicates("A", keep=False, inplace=True) + return_value = df.drop_duplicates("A", keep=False, inplace=True) expected = orig.loc[[]] result = df tm.assert_frame_equal(result, expected) assert len(df) == 0 + assert (return_value is None) # multi column df = orig.copy() - df.drop_duplicates(["A", "B"], inplace=True) + return_value = df.drop_duplicates(["A", "B"], inplace=True) expected = orig.loc[[0, 1, 2, 3]] result = df tm.assert_frame_equal(result, expected) + assert (return_value is None) df = orig.copy() - df.drop_duplicates(["A", "B"], keep="last", inplace=True) + return_value = df.drop_duplicates(["A", "B"], keep="last", inplace=True) expected = orig.loc[[0, 5, 6, 7]] result = df tm.assert_frame_equal(result, expected) + assert (return_value is None) df = orig.copy() - df.drop_duplicates(["A", "B"], keep=False, inplace=True) + return_value = df.drop_duplicates(["A", "B"], keep=False, inplace=True) expected = orig.loc[[0]] result = df tm.assert_frame_equal(result, expected) + assert (return_value is None) # consider everything orig2 = orig.loc[:, ["A", "B", "C"]].copy() df2 = orig2.copy() - df2.drop_duplicates(inplace=True) + return_value = df2.drop_duplicates(inplace=True) # in this case only expected = orig2.drop_duplicates(["A", "B"]) result = df2 tm.assert_frame_equal(result, expected) + assert (return_value is None) df2 = orig2.copy() - df2.drop_duplicates(keep="last", inplace=True) + return_value = df2.drop_duplicates(keep="last", inplace=True) expected = orig2.drop_duplicates(["A", "B"], keep="last") result = df2 tm.assert_frame_equal(result, expected) + assert (return_value is None) df2 = orig2.copy() - df2.drop_duplicates(keep=False, inplace=True) + return_value = df2.drop_duplicates(keep=False, inplace=True) expected = orig2.drop_duplicates(["A", "B"], keep=False) result = df2 tm.assert_frame_equal(result, expected) + assert (return_value is None) @pytest.mark.parametrize("inplace", [True, False]) @@ -425,9 +434,3 @@ def test_drop_duplicates_null_in_object_column(nulls_fixture): df = DataFrame([[1, nulls_fixture], [2, "a"]], dtype=object) result = df.drop_duplicates() tm.assert_frame_equal(result, df) - - -def test_drop_duplicates_inplace_result(): - df = DataFrame({"a": [1, 2, 3], "b": [1, 2, 4], "c": [1, 6, 5]}) - result = df.drop_duplicates(inplace=True) - assert result is None From cb2ab5e3ab2f0b3b755a467b312b610659ec46c8 Mon Sep 17 00:00:00 2001 From: r-toroxel Date: Tue, 7 Jul 2020 19:55:19 +0200 Subject: [PATCH 4/6] CLN remove parenthesis --- .../frame/methods/test_drop_duplicates.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/pandas/tests/frame/methods/test_drop_duplicates.py b/pandas/tests/frame/methods/test_drop_duplicates.py index 64fb1ce7ab6b2..cebec215a0d9d 100644 --- a/pandas/tests/frame/methods/test_drop_duplicates.py +++ b/pandas/tests/frame/methods/test_drop_duplicates.py @@ -337,14 +337,14 @@ def test_drop_duplicates_inplace(): expected = orig[:2] result = df tm.assert_frame_equal(result, expected) - assert(return_value is None) + assert return_value is None df = orig.copy() return_value = df.drop_duplicates("A", keep="last", inplace=True) expected = orig.loc[[6, 7]] result = df tm.assert_frame_equal(result, expected) - assert (return_value is None) + assert return_value is None df = orig.copy() return_value = df.drop_duplicates("A", keep=False, inplace=True) @@ -352,7 +352,7 @@ def test_drop_duplicates_inplace(): result = df tm.assert_frame_equal(result, expected) assert len(df) == 0 - assert (return_value is None) + assert return_value is None # multi column df = orig.copy() @@ -360,21 +360,21 @@ def test_drop_duplicates_inplace(): expected = orig.loc[[0, 1, 2, 3]] result = df tm.assert_frame_equal(result, expected) - assert (return_value is None) + assert return_value is None df = orig.copy() return_value = df.drop_duplicates(["A", "B"], keep="last", inplace=True) expected = orig.loc[[0, 5, 6, 7]] result = df tm.assert_frame_equal(result, expected) - assert (return_value is None) + assert return_value is None df = orig.copy() return_value = df.drop_duplicates(["A", "B"], keep=False, inplace=True) expected = orig.loc[[0]] result = df tm.assert_frame_equal(result, expected) - assert (return_value is None) + assert return_value is None # consider everything orig2 = orig.loc[:, ["A", "B", "C"]].copy() @@ -385,21 +385,21 @@ def test_drop_duplicates_inplace(): expected = orig2.drop_duplicates(["A", "B"]) result = df2 tm.assert_frame_equal(result, expected) - assert (return_value is None) + assert return_value is None df2 = orig2.copy() return_value = df2.drop_duplicates(keep="last", inplace=True) expected = orig2.drop_duplicates(["A", "B"], keep="last") result = df2 tm.assert_frame_equal(result, expected) - assert (return_value is None) + assert return_value is None df2 = orig2.copy() return_value = df2.drop_duplicates(keep=False, inplace=True) expected = orig2.drop_duplicates(["A", "B"], keep=False) result = df2 tm.assert_frame_equal(result, expected) - assert (return_value is None) + assert return_value is None @pytest.mark.parametrize("inplace", [True, False]) From df3489f33983c0669b675d0fc082464840a34b60 Mon Sep 17 00:00:00 2001 From: toroxel Date: Tue, 8 Jun 2021 14:22:43 +0200 Subject: [PATCH 5/6] add NaN test cases for unique interval index and non unique interval index --- pandas/tests/indexes/interval/test_interval.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pandas/tests/indexes/interval/test_interval.py b/pandas/tests/indexes/interval/test_interval.py index cd61fcaa835a4..032c975985793 100644 --- a/pandas/tests/indexes/interval/test_interval.py +++ b/pandas/tests/indexes/interval/test_interval.py @@ -247,6 +247,14 @@ def test_is_unique_interval(self, closed): idx = IntervalIndex.from_tuples([(-1, 1), (-2, 2)], closed=closed) assert idx.is_unique is True + # unique NaN + idx = IntervalIndex.from_tuples([(np.NaN, np.NaN)], closed=closed) + assert idx.is_unique is True + + # non-unique NaN + idx = IntervalIndex.from_tuples([(np.NaN, np.NaN), (np.NaN, np.NaN)], closed=closed) + assert idx.is_unique is False + def test_monotonic(self, closed): # increasing non-overlapping idx = IntervalIndex.from_tuples([(0, 1), (2, 3), (4, 5)], closed=closed) From 329d34c43c72541f6e26e439fc56d44a2707bd0a Mon Sep 17 00:00:00 2001 From: toroxel Date: Tue, 8 Jun 2021 14:26:24 +0200 Subject: [PATCH 6/6] formatting --- pandas/tests/indexes/interval/test_interval.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pandas/tests/indexes/interval/test_interval.py b/pandas/tests/indexes/interval/test_interval.py index 032c975985793..4b4351c0fe870 100644 --- a/pandas/tests/indexes/interval/test_interval.py +++ b/pandas/tests/indexes/interval/test_interval.py @@ -252,7 +252,9 @@ def test_is_unique_interval(self, closed): assert idx.is_unique is True # non-unique NaN - idx = IntervalIndex.from_tuples([(np.NaN, np.NaN), (np.NaN, np.NaN)], closed=closed) + idx = IntervalIndex.from_tuples( + [(np.NaN, np.NaN), (np.NaN, np.NaN)], closed=closed + ) assert idx.is_unique is False def test_monotonic(self, closed):