@@ -129,46 +129,45 @@ def test_resample_timedelta_values():
129
129
130
130
131
131
@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
+ ],
134
138
)
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 ,):
138
140
# GH 30353
139
141
# 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 )
142
144
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 )
146
146
tm .assert_index_equal (result .index , expected_index )
147
147
assert not np .isnan (result [- 1 ])
148
148
149
149
150
150
@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
+ ],
152
156
)
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
155
159
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 ):
159
161
epoch = pd .Timestamp (0 )
160
162
if start is not None :
161
163
start = epoch + pd .Timedelta (start )
162
164
if end is not None :
163
165
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
170
169
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 )
173
172
174
- tm .assert_index_equal (res , exp )
173
+ tm .assert_index_equal (res , exp )
0 commit comments