Skip to content

Commit cdecc74

Browse files
committed
TST: add more edges cases to test timedelta_range (tests that fails on master)
1 parent a2adbb8 commit cdecc74

File tree

1 file changed

+24
-25
lines changed

1 file changed

+24
-25
lines changed

pandas/tests/resample/test_timedelta.py

+24-25
Original file line numberDiff line numberDiff line change
@@ -129,46 +129,45 @@ def test_resample_timedelta_values():
129129

130130

131131
@pytest.mark.parametrize(
132-
"freq, resample_freq, start, periods, expected_resample_end",
133-
[("10S", "3H", "8H", 5040, "20H")],
132+
"start, end, freq, resample_freq",
133+
[
134+
("8H", "21h59min", "10S", "3H"),
135+
("3H", "22H", "1H", "5H"),
136+
("527D", "5006D", "3D", "10D")
137+
],
134138
)
135-
def test_resample_timedelta_end_already_included_in_bins(
136-
freq, resample_freq, start, periods, expected_resample_end,
137-
):
139+
def test_resample_timedelta_edge_case(start, end, freq, resample_freq,):
138140
# GH 30353
139141
# check that the timedelta bins does not contains an extra bin
140-
idx = pd.timedelta_range(start=start, freq=freq, periods=periods)
141-
s = pd.Series(np.arange(periods), index=idx)
142+
idx = pd.timedelta_range(start=start, end=end, freq=freq)
143+
s = pd.Series(np.arange(len(idx)), index=idx)
142144
result = s.resample(resample_freq).min()
143-
expected_index = pd.timedelta_range(
144-
freq=resample_freq, start=start, end=expected_resample_end
145-
)
145+
expected_index = pd.timedelta_range(freq=resample_freq, start=start, end=end)
146146
tm.assert_index_equal(result.index, expected_index)
147147
assert not np.isnan(result[-1])
148148

149149

150150
@pytest.mark.parametrize(
151-
"freq, start, end", [("1day", "10day", "2D")],
151+
"start, end, freq", [
152+
("1day", "10day", "2D"),
153+
("2day", "30day", "3D"),
154+
("2s", "50s", "5s")
155+
],
152156
)
153-
def test_timedelta_range_large_stride(start, end, freq):
154-
# GH 30353
157+
def test_timedelta_range_freq_divide_end(start, end, freq):
158+
# GH 30353 only the cases where `(end % freq) == 0` used to fail
155159

156-
def mock_timedelta_range(
157-
start=None, end=None, periods=None, freq=None, name=None, closed=None
158-
):
160+
def mock_timedelta_range(start=None, end=None, **kwargs):
159161
epoch = pd.Timestamp(0)
160162
if start is not None:
161163
start = epoch + pd.Timedelta(start)
162164
if end is not None:
163165
end = epoch + pd.Timedelta(end)
164-
res = pd.date_range(
165-
start=start, end=end, periods=periods, freq=freq, name=name, closed=closed
166-
)
167-
res -= epoch
168-
res.freq = freq
169-
return res
166+
result = pd.date_range(start=start, end=end, **kwargs) - epoch
167+
result.freq = freq
168+
return result
170169

171-
res = pd.timedelta_range("1day", "10day", freq="2D")
172-
exp = mock_timedelta_range("1day", "10day", freq="2D")
170+
res = pd.timedelta_range(start=start, end=end, freq=freq)
171+
exp = mock_timedelta_range(start=start, end=end, freq=freq)
173172

174-
tm.assert_index_equal(res, exp)
173+
tm.assert_index_equal(res, exp)

0 commit comments

Comments
 (0)