Skip to content

Commit fde137c

Browse files
charlesdong1991jreback
authored andcommitted
CLN: Clean tests for *.sort_index, *.sort_values and df.drop_duplicates (#30651)
1 parent c289b10 commit fde137c

File tree

5 files changed

+72
-78
lines changed

5 files changed

+72
-78
lines changed

pandas/tests/frame/methods/test_drop_duplicates.py

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -393,6 +393,7 @@ def test_drop_duplicates_inplace():
393393
tm.assert_frame_equal(result, expected)
394394

395395

396+
@pytest.mark.parametrize("inplace", [True, False])
396397
@pytest.mark.parametrize(
397398
"origin_dict, output_dict, ignore_index, output_index",
398399
[
@@ -403,24 +404,17 @@ def test_drop_duplicates_inplace():
403404
],
404405
)
405406
def test_drop_duplicates_ignore_index(
406-
origin_dict, output_dict, ignore_index, output_index
407+
inplace, origin_dict, output_dict, ignore_index, output_index
407408
):
408409
# GH 30114
409410
df = DataFrame(origin_dict)
410411
expected = DataFrame(output_dict, index=output_index)
411412

412-
# Test when inplace is False
413-
result = df.drop_duplicates(ignore_index=ignore_index)
414-
tm.assert_frame_equal(result, expected)
415-
416-
# to verify original dataframe is not mutated
417-
tm.assert_frame_equal(df, DataFrame(origin_dict))
418-
419-
# Test when inplace is True
420-
copied_df = df.copy()
421-
422-
copied_df.drop_duplicates(ignore_index=ignore_index, inplace=True)
423-
tm.assert_frame_equal(copied_df, expected)
413+
if inplace:
414+
result_df = df.copy()
415+
result_df.drop_duplicates(ignore_index=ignore_index, inplace=inplace)
416+
else:
417+
result_df = df.drop_duplicates(ignore_index=ignore_index, inplace=inplace)
424418

425-
# to verify that input is unchanged
419+
tm.assert_frame_equal(result_df, expected)
426420
tm.assert_frame_equal(df, DataFrame(origin_dict))

pandas/tests/frame/methods/test_sort_index.py

Lines changed: 29 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,7 @@ def test_sort_index_intervalindex(self):
230230
result = result.columns.levels[1].categories
231231
tm.assert_index_equal(result, expected)
232232

233+
@pytest.mark.parametrize("inplace", [True, False])
233234
@pytest.mark.parametrize(
234235
"original_dict, sorted_dict, ascending, ignore_index, output_index",
235236
[
@@ -240,25 +241,28 @@ def test_sort_index_intervalindex(self):
240241
],
241242
)
242243
def test_sort_index_ignore_index(
243-
self, original_dict, sorted_dict, ascending, ignore_index, output_index
244+
self, inplace, original_dict, sorted_dict, ascending, ignore_index, output_index
244245
):
245246
# GH 30114
246247
original_index = [2, 5, 3]
247248
df = DataFrame(original_dict, index=original_index)
248249
expected_df = DataFrame(sorted_dict, index=output_index)
249-
250-
sorted_df = df.sort_index(ascending=ascending, ignore_index=ignore_index)
251-
tm.assert_frame_equal(sorted_df, expected_df)
252-
tm.assert_frame_equal(df, DataFrame(original_dict, index=original_index))
253-
254-
# Test when inplace is True
255-
copied_df = df.copy()
256-
copied_df.sort_index(
257-
ascending=ascending, ignore_index=ignore_index, inplace=True
258-
)
259-
tm.assert_frame_equal(copied_df, expected_df)
250+
kwargs = {
251+
"ascending": ascending,
252+
"ignore_index": ignore_index,
253+
"inplace": inplace,
254+
}
255+
256+
if inplace:
257+
result_df = df.copy()
258+
result_df.sort_index(**kwargs)
259+
else:
260+
result_df = df.sort_index(**kwargs)
261+
262+
tm.assert_frame_equal(result_df, expected_df)
260263
tm.assert_frame_equal(df, DataFrame(original_dict, index=original_index))
261264

265+
@pytest.mark.parametrize("inplace", [True, False])
262266
@pytest.mark.parametrize(
263267
"original_dict, sorted_dict, ascending, ignore_index, output_index",
264268
[
@@ -293,21 +297,24 @@ def test_sort_index_ignore_index(
293297
],
294298
)
295299
def test_sort_index_ignore_index_multi_index(
296-
self, original_dict, sorted_dict, ascending, ignore_index, output_index
300+
self, inplace, original_dict, sorted_dict, ascending, ignore_index, output_index
297301
):
298302
# GH 30114, this is to test ignore_index on MulitIndex of index
299303
mi = MultiIndex.from_tuples([[2, 1], [3, 4]], names=list("AB"))
300304
df = DataFrame(original_dict, index=mi)
301305
expected_df = DataFrame(sorted_dict, index=output_index)
302306

303-
sorted_df = df.sort_index(ascending=ascending, ignore_index=ignore_index)
304-
tm.assert_frame_equal(sorted_df, expected_df)
305-
tm.assert_frame_equal(df, DataFrame(original_dict, index=mi))
307+
kwargs = {
308+
"ascending": ascending,
309+
"ignore_index": ignore_index,
310+
"inplace": inplace,
311+
}
306312

307-
# Test when inplace is True
308-
copied_df = df.copy()
309-
copied_df.sort_index(
310-
ascending=ascending, ignore_index=ignore_index, inplace=True
311-
)
312-
tm.assert_frame_equal(copied_df, expected_df)
313+
if inplace:
314+
result_df = df.copy()
315+
result_df.sort_index(**kwargs)
316+
else:
317+
result_df = df.sort_index(**kwargs)
318+
319+
tm.assert_frame_equal(result_df, expected_df)
313320
tm.assert_frame_equal(df, DataFrame(original_dict, index=mi))

pandas/tests/frame/methods/test_sort_values.py

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -461,6 +461,7 @@ def test_sort_values_na_position_with_categories_raises(self):
461461
with pytest.raises(ValueError):
462462
df.sort_values(by="c", ascending=False, na_position="bad_position")
463463

464+
@pytest.mark.parametrize("inplace", [True, False])
464465
@pytest.mark.parametrize(
465466
"original_dict, sorted_dict, ignore_index, output_index",
466467
[
@@ -481,24 +482,18 @@ def test_sort_values_na_position_with_categories_raises(self):
481482
],
482483
)
483484
def test_sort_values_ignore_index(
484-
self, original_dict, sorted_dict, ignore_index, output_index
485+
self, inplace, original_dict, sorted_dict, ignore_index, output_index
485486
):
486487
# GH 30114
487488
df = DataFrame(original_dict)
488489
expected = DataFrame(sorted_dict, index=output_index)
490+
kwargs = {"ignore_index": ignore_index, "inplace": inplace}
489491

490-
# Test when inplace is False
491-
sorted_df = df.sort_values("A", ascending=False, ignore_index=ignore_index)
492-
tm.assert_frame_equal(sorted_df, expected)
493-
494-
tm.assert_frame_equal(df, DataFrame(original_dict))
495-
496-
# Test when inplace is True
497-
copied_df = df.copy()
498-
499-
copied_df.sort_values(
500-
"A", ascending=False, ignore_index=ignore_index, inplace=True
501-
)
502-
tm.assert_frame_equal(copied_df, expected)
492+
if inplace:
493+
result_df = df.copy()
494+
result_df.sort_values("A", ascending=False, **kwargs)
495+
else:
496+
result_df = df.sort_values("A", ascending=False, **kwargs)
503497

498+
tm.assert_frame_equal(result_df, expected)
504499
tm.assert_frame_equal(df, DataFrame(original_dict))

pandas/tests/series/methods/test_sort_index.py

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,7 @@ def test_sort_index_intervals(self):
136136
)
137137
tm.assert_series_equal(result, expected)
138138

139+
@pytest.mark.parametrize("inplace", [True, False])
139140
@pytest.mark.parametrize(
140141
"original_list, sorted_list, ascending, ignore_index, output_index",
141142
[
@@ -146,23 +147,22 @@ def test_sort_index_intervals(self):
146147
],
147148
)
148149
def test_sort_index_ignore_index(
149-
self, original_list, sorted_list, ascending, ignore_index, output_index
150+
self, inplace, original_list, sorted_list, ascending, ignore_index, output_index
150151
):
151152
# GH 30114
152153
ser = Series(original_list)
153154
expected = Series(sorted_list, index=output_index)
154-
155-
# Test when inplace is False
156-
sorted_sr = ser.sort_index(ascending=ascending, ignore_index=ignore_index)
157-
tm.assert_series_equal(sorted_sr, expected)
158-
159-
tm.assert_series_equal(ser, Series(original_list))
160-
161-
# Test when inplace is True
162-
copied_sr = ser.copy()
163-
copied_sr.sort_index(
164-
ascending=ascending, ignore_index=ignore_index, inplace=True
165-
)
166-
tm.assert_series_equal(copied_sr, expected)
167-
155+
kwargs = {
156+
"ascending": ascending,
157+
"ignore_index": ignore_index,
158+
"inplace": inplace,
159+
}
160+
161+
if inplace:
162+
result_ser = ser.copy()
163+
result_ser.sort_index(**kwargs)
164+
else:
165+
result_ser = ser.sort_index(**kwargs)
166+
167+
tm.assert_series_equal(result_ser, expected)
168168
tm.assert_series_equal(ser, Series(original_list))

pandas/tests/series/methods/test_sort_values.py

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,7 @@ def test_sort_values_categorical(self):
157157
expected = df.iloc[[2, 1, 5, 4, 3, 0]]
158158
tm.assert_frame_equal(result, expected)
159159

160+
@pytest.mark.parametrize("inplace", [True, False])
160161
@pytest.mark.parametrize(
161162
"original_list, sorted_list, ignore_index, output_index",
162163
[
@@ -165,21 +166,18 @@ def test_sort_values_categorical(self):
165166
],
166167
)
167168
def test_sort_values_ignore_index(
168-
self, original_list, sorted_list, ignore_index, output_index
169+
self, inplace, original_list, sorted_list, ignore_index, output_index
169170
):
170171
# GH 30114
171-
sr = Series(original_list)
172+
ser = Series(original_list)
172173
expected = Series(sorted_list, index=output_index)
174+
kwargs = {"ignore_index": ignore_index, "inplace": inplace}
173175

174-
# Test when inplace is False
175-
sorted_sr = sr.sort_values(ascending=False, ignore_index=ignore_index)
176-
tm.assert_series_equal(sorted_sr, expected)
176+
if inplace:
177+
result_ser = ser.copy()
178+
result_ser.sort_values(ascending=False, **kwargs)
179+
else:
180+
result_ser = ser.sort_values(ascending=False, **kwargs)
177181

178-
tm.assert_series_equal(sr, Series(original_list))
179-
180-
# Test when inplace is True
181-
copied_sr = sr.copy()
182-
copied_sr.sort_values(ascending=False, ignore_index=ignore_index, inplace=True)
183-
tm.assert_series_equal(copied_sr, expected)
184-
185-
tm.assert_series_equal(sr, Series(original_list))
182+
tm.assert_series_equal(result_ser, expected)
183+
tm.assert_series_equal(ser, Series(original_list))

0 commit comments

Comments
 (0)