Skip to content

Commit a2aef2a

Browse files
committed
use fixtures
1 parent ec44623 commit a2aef2a

File tree

2 files changed

+39
-39
lines changed

2 files changed

+39
-39
lines changed

pandas/tests/indexes/datetimes/test_arithmetic.py

+26-29
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,34 @@
1414
date_range)
1515

1616

17-
class TestDatetimeIndexArithmetic(object):
18-
tz = [None, 'UTC', 'Asia/Tokyo', 'US/Eastern', 'dateutil/Asia/Singapore',
19-
'dateutil/US/Pacific']
17+
@pytest.fixture(params=[None, 'UTC', 'Asia/Tokyo',
18+
'US/Eastern', 'dateutil/Asia/Singapore',
19+
'dateutil/US/Pacific'])
20+
def tz(request):
21+
return request.param
22+
2023

24+
@pytest.fixture(params=[pd.offsets.Hour(2), timedelta(hours=2),
25+
np.timedelta64(2, 'h'), Timedelta(hours=2)],
26+
ids=str)
27+
def delta(request):
2128
# Several ways of representing two hours
22-
two_hour_variants = [pd.offsets.Hour(2), timedelta(hours=2),
23-
np.timedelta64(2, 'h'), Timedelta(hours=2)]
29+
return request.param
30+
31+
32+
@pytest.fixture(
33+
params=[
34+
datetime(2011, 1, 1),
35+
DatetimeIndex(['2011-01-01', '2011-01-02']),
36+
DatetimeIndex(['2011-01-01', '2011-01-02']).tz_localize('US/Eastern'),
37+
np.datetime64('2011-01-01'),
38+
Timestamp('2011-01-01')],
39+
ids=lambda x: type(x).__name__)
40+
def addend(request):
41+
return request.param
42+
43+
44+
class TestDatetimeIndexArithmetic(object):
2445

2546
def test_dti_add_timestamp_raises(self):
2647
idx = DatetimeIndex(['2011-01-01', '2011-01-02'])
@@ -37,7 +58,6 @@ def test_dti_radd_timestamp_raises(self):
3758
# -------------------------------------------------------------
3859
# Binary operations DatetimeIndex and int
3960

40-
@pytest.mark.parametrize('tz', tz)
4161
def test_dti_add_int(self, tz):
4262
rng = pd.date_range('2000-01-01 09:00', freq='H',
4363
periods=10, tz=tz)
@@ -46,7 +66,6 @@ def test_dti_add_int(self, tz):
4666
periods=10, tz=tz)
4767
tm.assert_index_equal(result, expected)
4868

49-
@pytest.mark.parametrize('tz', tz)
5069
def test_dti_iadd_int(self, tz):
5170
rng = pd.date_range('2000-01-01 09:00', freq='H',
5271
periods=10, tz=tz)
@@ -55,7 +74,6 @@ def test_dti_iadd_int(self, tz):
5574
rng += 1
5675
tm.assert_index_equal(rng, expected)
5776

58-
@pytest.mark.parametrize('tz', tz)
5977
def test_dti_sub_int(self, tz):
6078
rng = pd.date_range('2000-01-01 09:00', freq='H',
6179
periods=10, tz=tz)
@@ -64,7 +82,6 @@ def test_dti_sub_int(self, tz):
6482
periods=10, tz=tz)
6583
tm.assert_index_equal(result, expected)
6684

67-
@pytest.mark.parametrize('tz', tz)
6885
def test_dti_isub_int(self, tz):
6986
rng = pd.date_range('2000-01-01 09:00', freq='H',
7087
periods=10, tz=tz)
@@ -76,35 +93,27 @@ def test_dti_isub_int(self, tz):
7693
# -------------------------------------------------------------
7794
# Binary operations DatetimeIndex and timedelta-like
7895

79-
@pytest.mark.parametrize('delta', two_hour_variants)
80-
@pytest.mark.parametrize('tz', tz)
8196
def test_dti_add_timedeltalike(self, tz, delta):
8297
rng = pd.date_range('2000-01-01', '2000-02-01', tz=tz)
8398
result = rng + delta
8499
expected = pd.date_range('2000-01-01 02:00',
85100
'2000-02-01 02:00', tz=tz)
86101
tm.assert_index_equal(result, expected)
87102

88-
@pytest.mark.parametrize('delta', two_hour_variants)
89-
@pytest.mark.parametrize('tz', tz)
90103
def test_dti_iadd_timedeltalike(self, tz, delta):
91104
rng = pd.date_range('2000-01-01', '2000-02-01', tz=tz)
92105
expected = pd.date_range('2000-01-01 02:00',
93106
'2000-02-01 02:00', tz=tz)
94107
rng += delta
95108
tm.assert_index_equal(rng, expected)
96109

97-
@pytest.mark.parametrize('delta', two_hour_variants)
98-
@pytest.mark.parametrize('tz', tz)
99110
def test_dti_sub_timedeltalike(self, tz, delta):
100111
rng = pd.date_range('2000-01-01', '2000-02-01', tz=tz)
101112
expected = pd.date_range('1999-12-31 22:00',
102113
'2000-01-31 22:00', tz=tz)
103114
result = rng - delta
104115
tm.assert_index_equal(result, expected)
105116

106-
@pytest.mark.parametrize('delta', two_hour_variants)
107-
@pytest.mark.parametrize('tz', tz)
108117
def test_dti_isub_timedeltalike(self, tz, delta):
109118
rng = pd.date_range('2000-01-01', '2000-02-01', tz=tz)
110119
expected = pd.date_range('1999-12-31 22:00',
@@ -117,12 +126,6 @@ def test_dti_isub_timedeltalike(self, tz, delta):
117126
# TODO: A couple other tests belong in this section. Move them in
118127
# A PR where there isn't already a giant diff.
119128

120-
@pytest.mark.parametrize('addend', [
121-
datetime(2011, 1, 1),
122-
DatetimeIndex(['2011-01-01', '2011-01-02']),
123-
DatetimeIndex(['2011-01-01', '2011-01-02']).tz_localize('US/Eastern'),
124-
np.datetime64('2011-01-01'),
125-
Timestamp('2011-01-01')])
126129
def test_add_datetimelike_and_dti(self, addend):
127130
# GH#9631
128131
dti = DatetimeIndex(['2011-01-01', '2011-01-02'])
@@ -133,12 +136,6 @@ def test_add_datetimelike_and_dti(self, addend):
133136
with tm.assert_raises_regex(TypeError, msg):
134137
addend + dti
135138

136-
@pytest.mark.parametrize('addend', [
137-
datetime(2011, 1, 1),
138-
DatetimeIndex(['2011-01-01', '2011-01-02']),
139-
DatetimeIndex(['2011-01-01', '2011-01-02']).tz_localize('US/Eastern'),
140-
np.datetime64('2011-01-01'),
141-
Timestamp('2011-01-01')])
142139
def test_add_datetimelike_and_dti_tz(self, addend):
143140
# GH#9631
144141
dti_tz = DatetimeIndex(['2011-01-01',

pandas/tests/indexes/timedeltas/test_arithmetic.py

+13-10
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,21 @@
1212
Timestamp, Timedelta)
1313

1414

15+
@pytest.fixture(params=[pd.offsets.Hour(2), timedelta(hours=2),
16+
np.timedelta64(2, 'h'), Timedelta(hours=2)],
17+
ids=str)
18+
def delta(request):
19+
# Several ways of representing two hours
20+
return request.param
21+
22+
23+
@pytest.fixture(params=['B', 'D'])
24+
def freq(request):
25+
return request.param
26+
27+
1528
class TestTimedeltaIndexArithmetic(object):
1629
_holder = TimedeltaIndex
17-
_multiprocess_can_split_ = True
18-
19-
# Several ways of representing two hours
20-
two_hour_variants = [pd.offsets.Hour(2), timedelta(hours=2),
21-
np.timedelta64(2, 'h'), Timedelta(hours=2)]
2230

2331
# TODO: Split by ops, better name
2432
def test_numeric_compat(self):
@@ -122,7 +130,6 @@ def test_tdi_isub_int(self):
122130
# -------------------------------------------------------------
123131
# Binary operations TimedeltaIndex and timedelta-like
124132

125-
@pytest.mark.parametrize('delta', two_hour_variants)
126133
def test_tdi_add_timedeltalike(self, delta):
127134
# only test adding/sub offsets as + is now numeric
128135
rng = timedelta_range('1 days', '10 days')
@@ -131,7 +138,6 @@ def test_tdi_add_timedeltalike(self, delta):
131138
freq='D')
132139
tm.assert_index_equal(result, expected)
133140

134-
@pytest.mark.parametrize('delta', two_hour_variants)
135141
def test_tdi_iadd_timedeltalike(self, delta):
136142
# only test adding/sub offsets as + is now numeric
137143
rng = timedelta_range('1 days', '10 days')
@@ -140,15 +146,13 @@ def test_tdi_iadd_timedeltalike(self, delta):
140146
rng += delta
141147
tm.assert_index_equal(rng, expected)
142148

143-
@pytest.mark.parametrize('delta', two_hour_variants)
144149
def test_tdi_sub_timedeltalike(self, delta):
145150
# only test adding/sub offsets as - is now numeric
146151
rng = timedelta_range('1 days', '10 days')
147152
result = rng - delta
148153
expected = timedelta_range('0 days 22:00:00', '9 days 22:00:00')
149154
tm.assert_index_equal(result, expected)
150155

151-
@pytest.mark.parametrize('delta', two_hour_variants)
152156
def test_tdi_isub_timedeltalike(self, delta):
153157
# only test adding/sub offsets as - is now numeric
154158
rng = timedelta_range('1 days', '10 days')
@@ -671,7 +675,6 @@ def test_tdi_ops_attributes(self):
671675

672676
# TODO: Needs more informative name, probably split up into
673677
# more targeted tests
674-
@pytest.mark.parametrize('freq', ['B', 'D'])
675678
def test_timedelta(self, freq):
676679
index = date_range('1/1/2000', periods=50, freq=freq)
677680

0 commit comments

Comments
 (0)