|
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