|
1 | 1 | import numpy as np
|
2 | 2 | import pytest
|
3 | 3 |
|
4 |
| -from pandas import Timedelta, Timestamp, date_range, timedelta_range, to_timedelta |
| 4 | +from pandas import Timedelta, timedelta_range, to_timedelta |
5 | 5 | import pandas._testing as tm
|
6 | 6 |
|
7 | 7 | from pandas.tseries.offsets import Day, Second
|
@@ -63,31 +63,19 @@ def test_errors(self):
|
63 | 63 | timedelta_range(start="0 days", end="5 days", periods=10, freq="H")
|
64 | 64 |
|
65 | 65 | @pytest.mark.parametrize(
|
66 |
| - "start, end, freq", |
| 66 | + "start, end, freq, expected_periods", |
67 | 67 | [
|
68 |
| - ("1D", "10D", "2D"), |
69 |
| - ("2D", "30D", "3D"), |
70 |
| - ("2s", "50s", "5s"), |
| 68 | + ("1D", "10D", "2D", (10 - 1) // 2 + 1), |
| 69 | + ("2D", "30D", "3D", (30 - 2) // 3 + 1), |
| 70 | + ("2s", "50s", "5s", (50 - 2) // 5 + 1), |
71 | 71 | # tests that worked before GH 33498:
|
72 |
| - ("4D", "16D", "3D"), |
73 |
| - ("8D", "16D", "40s"), |
| 72 | + ("4D", "16D", "3D", (16 - 4) // 3 + 1), |
| 73 | + ("8D", "16D", "40s", (16 * 3600 * 24 - 8 * 3600 * 24) // 40 + 1), |
74 | 74 | ],
|
75 | 75 | )
|
76 |
| - def test_timedelta_range_freq_divide_end(self, start, end, freq): |
| 76 | + def test_timedelta_range_freq_divide_end(self, start, end, freq, expected_periods): |
77 | 77 | # GH 33498 only the cases where `(end % freq) == 0` used to fail
|
78 |
| - |
79 |
| - def mock_timedelta_range(start=None, end=None, **kwargs): |
80 |
| - epoch = Timestamp(0) |
81 |
| - if start is not None: |
82 |
| - start = epoch + Timedelta(start) |
83 |
| - if end is not None: |
84 |
| - end = epoch + Timedelta(end) |
85 |
| - result = date_range(start=start, end=end, **kwargs) - epoch |
86 |
| - result.freq = freq |
87 |
| - return result |
88 |
| - |
89 | 78 | res = timedelta_range(start=start, end=end, freq=freq)
|
90 |
| - exp = mock_timedelta_range(start=start, end=end, freq=freq) |
91 |
| - |
92 |
| - tm.assert_index_equal(res, exp) |
93 |
| - assert res.freq == exp.freq |
| 79 | + assert Timedelta(start) == res[0] |
| 80 | + assert Timedelta(end) >= res[-1] |
| 81 | + assert len(res) == expected_periods |
0 commit comments