Skip to content

Commit bf613c1

Browse files
TST: Use sort fixture in more places (#32292)
1 parent 4e5e73e commit bf613c1

File tree

11 files changed

+18
-74
lines changed

11 files changed

+18
-74
lines changed

pandas/tests/indexes/base_class/test_setops.py

-3
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,6 @@ def test_union_sort_other_incomparable_true(self):
9191
with pytest.raises(TypeError, match=".*"):
9292
idx.union(idx[:1], sort=True)
9393

94-
@pytest.mark.parametrize("sort", [None, False])
9594
def test_intersection_base(self, sort):
9695
# (same results for py2 and py3 but sortedness not tested elsewhere)
9796
index = Index([0, "a", 1, "b", 2, "c"])
@@ -103,7 +102,6 @@ def test_intersection_base(self, sort):
103102
tm.assert_index_equal(result, expected)
104103

105104
@pytest.mark.parametrize("klass", [np.array, Series, list])
106-
@pytest.mark.parametrize("sort", [None, False])
107105
def test_intersection_different_type_base(self, klass, sort):
108106
# GH 10149
109107
index = Index([0, "a", 1, "b", 2, "c"])
@@ -123,7 +121,6 @@ def test_intersection_equal_sort(self):
123121
tm.assert_index_equal(idx.intersection(idx, sort=False), idx)
124122
tm.assert_index_equal(idx.intersection(idx, sort=None), idx)
125123

126-
@pytest.mark.parametrize("sort", [None, False])
127124
def test_difference_base(self, sort):
128125
# (same results for py2 and py3 but sortedness not tested elsewhere)
129126
index = Index([0, "a", 1, "b", 2, "c"])

pandas/tests/indexes/common.py

-1
Original file line numberDiff line numberDiff line change
@@ -512,7 +512,6 @@ def test_union_base(self, indices):
512512
with pytest.raises(TypeError, match=msg):
513513
first.union([1, 2, 3])
514514

515-
@pytest.mark.parametrize("sort", [None, False])
516515
def test_difference_base(self, sort, indices):
517516
first = indices[2:]
518517
second = indices[:4]

pandas/tests/indexes/conftest.py

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import pytest
2+
3+
4+
@pytest.fixture(params=[None, False])
5+
def sort(request):
6+
"""
7+
Valid values for the 'sort' parameter used in the Index
8+
setops methods (intersection, union, etc.)
9+
10+
Caution:
11+
Don't confuse this one with the "sort" fixture used
12+
for DataFrame.append or concat. That one has
13+
parameters [True, False].
14+
15+
We can't combine them as sort=True is not permitted
16+
in in the Index setops methods.
17+
"""
18+
return request.param

pandas/tests/indexes/datetimes/test_join.py

-1
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,6 @@ def test_join_utc_convert(self, join_type):
6464
assert isinstance(result, DatetimeIndex)
6565
assert result.tz.zone == "UTC"
6666

67-
@pytest.mark.parametrize("sort", [None, False])
6867
def test_datetimeindex_union_join_empty(self, sort):
6968
dti = date_range(start="1/1/2001", end="2/1/2001", freq="D")
7069
empty = Index([])

pandas/tests/indexes/datetimes/test_setops.py

-18
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ class TestDatetimeIndexSetOps:
3333
]
3434

3535
# TODO: moved from test_datetimelike; dedup with version below
36-
@pytest.mark.parametrize("sort", [None, False])
3736
def test_union2(self, sort):
3837
everything = tm.makeDateIndex(10)
3938
first = everything[:5]
@@ -42,7 +41,6 @@ def test_union2(self, sort):
4241
tm.assert_index_equal(union, everything)
4342

4443
@pytest.mark.parametrize("box", [np.array, Series, list])
45-
@pytest.mark.parametrize("sort", [None, False])
4644
def test_union3(self, sort, box):
4745
everything = tm.makeDateIndex(10)
4846
first = everything[:5]
@@ -57,7 +55,6 @@ def test_union3(self, sort, box):
5755
tm.assert_index_equal(result, expected)
5856

5957
@pytest.mark.parametrize("tz", tz)
60-
@pytest.mark.parametrize("sort", [None, False])
6158
def test_union(self, tz, sort):
6259
rng1 = pd.date_range("1/1/2000", freq="D", periods=5, tz=tz)
6360
other1 = pd.date_range("1/6/2000", freq="D", periods=5, tz=tz)
@@ -89,7 +86,6 @@ def test_union(self, tz, sort):
8986
else:
9087
tm.assert_index_equal(result_union, exp_notsorted)
9188

92-
@pytest.mark.parametrize("sort", [None, False])
9389
def test_union_coverage(self, sort):
9490
idx = DatetimeIndex(["2000-01-03", "2000-01-01", "2000-01-02"])
9591
ordered = DatetimeIndex(idx.sort_values(), freq="infer")
@@ -100,7 +96,6 @@ def test_union_coverage(self, sort):
10096
tm.assert_index_equal(result, ordered)
10197
assert result.freq == ordered.freq
10298

103-
@pytest.mark.parametrize("sort", [None, False])
10499
def test_union_bug_1730(self, sort):
105100
rng_a = date_range("1/1/2012", periods=4, freq="3H")
106101
rng_b = date_range("1/1/2012", periods=4, freq="4H")
@@ -113,7 +108,6 @@ def test_union_bug_1730(self, sort):
113108
exp = DatetimeIndex(exp)
114109
tm.assert_index_equal(result, exp)
115110

116-
@pytest.mark.parametrize("sort", [None, False])
117111
def test_union_bug_1745(self, sort):
118112
left = DatetimeIndex(["2012-05-11 15:19:49.695000"])
119113
right = DatetimeIndex(
@@ -137,7 +131,6 @@ def test_union_bug_1745(self, sort):
137131
exp = exp.sort_values()
138132
tm.assert_index_equal(result, exp)
139133

140-
@pytest.mark.parametrize("sort", [None, False])
141134
def test_union_bug_4564(self, sort):
142135
from pandas import DateOffset
143136

@@ -152,7 +145,6 @@ def test_union_bug_4564(self, sort):
152145
exp = DatetimeIndex(exp)
153146
tm.assert_index_equal(result, exp)
154147

155-
@pytest.mark.parametrize("sort", [None, False])
156148
def test_union_freq_both_none(self, sort):
157149
# GH11086
158150
expected = bdate_range("20150101", periods=10)
@@ -188,7 +180,6 @@ def test_union_dataframe_index(self):
188180
exp = pd.date_range("1/1/1980", "1/1/2012", freq="MS")
189181
tm.assert_index_equal(df.index, exp)
190182

191-
@pytest.mark.parametrize("sort", [None, False])
192183
def test_union_with_DatetimeIndex(self, sort):
193184
i1 = Int64Index(np.arange(0, 20, 2))
194185
i2 = date_range(start="2012-01-03 00:00:00", periods=10, freq="D")
@@ -218,7 +209,6 @@ def test_intersection2(self):
218209
@pytest.mark.parametrize(
219210
"tz", [None, "Asia/Tokyo", "US/Eastern", "dateutil/US/Pacific"]
220211
)
221-
@pytest.mark.parametrize("sort", [None, False])
222212
def test_intersection(self, tz, sort):
223213
# GH 4690 (with tz)
224214
base = date_range("6/1/2000", "6/30/2000", freq="D", name="idx")
@@ -298,7 +288,6 @@ def test_intersection_bug_1708(self):
298288
assert len(result) == 0
299289

300290
@pytest.mark.parametrize("tz", tz)
301-
@pytest.mark.parametrize("sort", [None, False])
302291
def test_difference(self, tz, sort):
303292
rng_dates = ["1/2/2000", "1/3/2000", "1/1/2000", "1/4/2000", "1/5/2000"]
304293

@@ -324,7 +313,6 @@ def test_difference(self, tz, sort):
324313
expected = expected.sort_values()
325314
tm.assert_index_equal(result_diff, expected)
326315

327-
@pytest.mark.parametrize("sort", [None, False])
328316
def test_difference_freq(self, sort):
329317
# GH14323: difference of DatetimeIndex should not preserve frequency
330318

@@ -341,7 +329,6 @@ def test_difference_freq(self, sort):
341329
tm.assert_index_equal(idx_diff, expected)
342330
tm.assert_attr_equal("freq", idx_diff, expected)
343331

344-
@pytest.mark.parametrize("sort", [None, False])
345332
def test_datetimeindex_diff(self, sort):
346333
dti1 = date_range(freq="Q-JAN", start=datetime(1997, 12, 31), periods=100)
347334
dti2 = date_range(freq="Q-JAN", start=datetime(1997, 12, 31), periods=98)
@@ -387,7 +374,6 @@ class TestBusinessDatetimeIndex:
387374
def setup_method(self, method):
388375
self.rng = bdate_range(START, END)
389376

390-
@pytest.mark.parametrize("sort", [None, False])
391377
def test_union(self, sort):
392378
# overlapping
393379
left = self.rng[:10]
@@ -423,7 +409,6 @@ def test_union(self, sort):
423409
the_union = self.rng.union(rng, sort=sort)
424410
assert isinstance(the_union, DatetimeIndex)
425411

426-
@pytest.mark.parametrize("sort", [None, False])
427412
def test_union_not_cacheable(self, sort):
428413
rng = date_range("1/1/2000", periods=50, freq=Minute())
429414
rng1 = rng[10:]
@@ -466,7 +451,6 @@ def test_intersection_bug(self):
466451
result = a.intersection(b)
467452
tm.assert_index_equal(result, b)
468453

469-
@pytest.mark.parametrize("sort", [None, False])
470454
def test_month_range_union_tz_pytz(self, sort):
471455
from pytz import timezone
472456

@@ -484,7 +468,6 @@ def test_month_range_union_tz_pytz(self, sort):
484468
early_dr.union(late_dr, sort=sort)
485469

486470
@td.skip_if_windows_python_3
487-
@pytest.mark.parametrize("sort", [None, False])
488471
def test_month_range_union_tz_dateutil(self, sort):
489472
from pandas._libs.tslibs.timezones import dateutil_gettz
490473

@@ -506,7 +489,6 @@ class TestCustomDatetimeIndex:
506489
def setup_method(self, method):
507490
self.rng = bdate_range(START, END, freq="C")
508491

509-
@pytest.mark.parametrize("sort", [None, False])
510492
def test_union(self, sort):
511493
# overlapping
512494
left = self.rng[:10]

pandas/tests/indexes/interval/test_setops.py

-6
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,6 @@ def name(request):
1010
return request.param
1111

1212

13-
@pytest.fixture(params=[None, False])
14-
def sort(request):
15-
return request.param
16-
17-
1813
def monotonic_index(start, end, dtype="int64", closed="right"):
1914
return IntervalIndex.from_breaks(np.arange(start, end, dtype=dtype), closed=closed)
2015

@@ -153,7 +148,6 @@ def test_symmetric_difference(self, closed, sort):
153148
@pytest.mark.parametrize(
154149
"op_name", ["union", "intersection", "difference", "symmetric_difference"]
155150
)
156-
@pytest.mark.parametrize("sort", [None, False])
157151
def test_set_incompatible_types(self, closed, op_name, sort):
158152
index = monotonic_index(0, 11, closed=closed)
159153
set_op = getattr(index, op_name)

pandas/tests/indexes/multi/test_setops.py

-8
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77

88

99
@pytest.mark.parametrize("case", [0.5, "xxx"])
10-
@pytest.mark.parametrize("sort", [None, False])
1110
@pytest.mark.parametrize(
1211
"method", ["intersection", "union", "difference", "symmetric_difference"]
1312
)
@@ -18,7 +17,6 @@ def test_set_ops_error_cases(idx, case, sort, method):
1817
getattr(idx, method)(case, sort=sort)
1918

2019

21-
@pytest.mark.parametrize("sort", [None, False])
2220
@pytest.mark.parametrize("klass", [MultiIndex, np.array, Series, list])
2321
def test_intersection_base(idx, sort, klass):
2422
first = idx[2::-1] # first 3 elements reversed
@@ -39,7 +37,6 @@ def test_intersection_base(idx, sort, klass):
3937
first.intersection([1, 2, 3], sort=sort)
4038

4139

42-
@pytest.mark.parametrize("sort", [None, False])
4340
@pytest.mark.parametrize("klass", [MultiIndex, np.array, Series, list])
4441
def test_union_base(idx, sort, klass):
4542
first = idx[::-1]
@@ -60,7 +57,6 @@ def test_union_base(idx, sort, klass):
6057
first.union([1, 2, 3], sort=sort)
6158

6259

63-
@pytest.mark.parametrize("sort", [None, False])
6460
def test_difference_base(idx, sort):
6561
second = idx[4:]
6662
answer = idx[:4]
@@ -83,7 +79,6 @@ def test_difference_base(idx, sort):
8379
idx.difference([1, 2, 3], sort=sort)
8480

8581

86-
@pytest.mark.parametrize("sort", [None, False])
8782
def test_symmetric_difference(idx, sort):
8883
first = idx[1:]
8984
second = idx[:-1]
@@ -123,7 +118,6 @@ def test_empty(idx):
123118
assert idx[:0].empty
124119

125120

126-
@pytest.mark.parametrize("sort", [None, False])
127121
def test_difference(idx, sort):
128122

129123
first = idx
@@ -234,7 +228,6 @@ def test_difference_sort_incomparable_true():
234228
idx.difference(other, sort=True)
235229

236230

237-
@pytest.mark.parametrize("sort", [None, False])
238231
def test_union(idx, sort):
239232
piece1 = idx[:5][::-1]
240233
piece2 = idx[3:]
@@ -270,7 +263,6 @@ def test_union(idx, sort):
270263
# assert result.equals(result2)
271264

272265

273-
@pytest.mark.parametrize("sort", [None, False])
274266
def test_intersection(idx, sort):
275267
piece1 = idx[:5][::-1]
276268
piece2 = idx[3:]

pandas/tests/indexes/period/test_setops.py

-6
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ def _permute(obj):
1313

1414

1515
class TestPeriodIndex:
16-
@pytest.mark.parametrize("sort", [None, False])
1716
def test_union(self, sort):
1817
# union
1918
other1 = period_range("1/1/2000", freq="D", periods=5)
@@ -134,7 +133,6 @@ def test_union(self, sort):
134133
expected = expected.sort_values()
135134
tm.assert_index_equal(result_union, expected)
136135

137-
@pytest.mark.parametrize("sort", [None, False])
138136
def test_union_misc(self, sort):
139137
index = period_range("1/1/2000", "1/20/2000", freq="D")
140138

@@ -165,7 +163,6 @@ def test_union_dataframe_index(self):
165163
exp = period_range("1/1/1980", "1/1/2012", freq="M")
166164
tm.assert_index_equal(df.index, exp)
167165

168-
@pytest.mark.parametrize("sort", [None, False])
169166
def test_intersection(self, sort):
170167
index = period_range("1/1/2000", "1/20/2000", freq="D")
171168

@@ -190,7 +187,6 @@ def test_intersection(self, sort):
190187
with pytest.raises(IncompatibleFrequency):
191188
index.intersection(index3, sort=sort)
192189

193-
@pytest.mark.parametrize("sort", [None, False])
194190
def test_intersection_cases(self, sort):
195191
base = period_range("6/1/2000", "6/30/2000", freq="D", name="idx")
196192

@@ -259,7 +255,6 @@ def test_intersection_cases(self, sort):
259255
result = rng.intersection(rng[0:0])
260256
assert len(result) == 0
261257

262-
@pytest.mark.parametrize("sort", [None, False])
263258
def test_difference(self, sort):
264259
# diff
265260
period_rng = ["1/3/2000", "1/2/2000", "1/1/2000", "1/5/2000", "1/4/2000"]
@@ -324,7 +319,6 @@ def test_difference(self, sort):
324319
expected = expected.sort_values()
325320
tm.assert_index_equal(result_difference, expected)
326321

327-
@pytest.mark.parametrize("sort", [None, False])
328322
def test_difference_freq(self, sort):
329323
# GH14323: difference of Period MUST preserve frequency
330324
# but the ability to union results must be preserved

pandas/tests/indexes/ranges/test_setops.py

-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88

99

1010
class TestRangeIndexSetOps:
11-
@pytest.mark.parametrize("sort", [None, False])
1211
def test_intersection(self, sort):
1312
# intersect with Int64Index
1413
index = RangeIndex(start=0, stop=20, step=2)
@@ -79,7 +78,6 @@ def test_intersection(self, sort):
7978
expected = RangeIndex(0, 0, 1)
8079
tm.assert_index_equal(result, expected)
8180

82-
@pytest.mark.parametrize("sort", [False, None])
8381
def test_union_noncomparable(self, sort):
8482
# corner case, non-Int64Index
8583
index = RangeIndex(start=0, stop=20, step=2)

0 commit comments

Comments
 (0)