@@ -129,50 +129,91 @@ def test_dti_add_tdi(self, tz):
129129 tdi = pd .timedelta_range ('0 days' , periods = 10 )
130130 expected = pd .date_range ('2017-01-01' , periods = 10 , tz = tz )
131131
132+ # add with TimdeltaIndex
132133 result = dti + tdi
133134 tm .assert_index_equal (result , expected )
134135
136+ result = tdi + dti
137+ tm .assert_index_equal (result , expected )
138+
139+ # add with timedelta64 array
135140 result = dti + tdi .values
136141 tm .assert_index_equal (result , expected )
137142
143+ result = tdi .values + dti
144+ tm .assert_index_equal (result , expected )
145+
138146 def test_dti_iadd_tdi (self , tz ):
139147 # GH 17558
148+ dti = DatetimeIndex ([Timestamp ('2017-01-01' , tz = tz )] * 10 )
140149 tdi = pd .timedelta_range ('0 days' , periods = 10 )
141150 expected = pd .date_range ('2017-01-01' , periods = 10 , tz = tz )
142151
152+ # iadd with TimdeltaIndex
143153 result = DatetimeIndex ([Timestamp ('2017-01-01' , tz = tz )] * 10 )
144154 result += tdi
145155 tm .assert_index_equal (result , expected )
146156
157+ result = pd .timedelta_range ('0 days' , periods = 10 )
158+ result += dti
159+ tm .assert_index_equal (result , expected )
160+
161+ # iadd with timedelta64 array
147162 result = DatetimeIndex ([Timestamp ('2017-01-01' , tz = tz )] * 10 )
148163 result += tdi .values
149164 tm .assert_index_equal (result , expected )
150165
166+ result = pd .timedelta_range ('0 days' , periods = 10 )
167+ result += dti
168+ tm .assert_index_equal (result , expected )
169+
151170 def test_dti_sub_tdi (self , tz ):
152171 # GH 17558
153172 dti = DatetimeIndex ([Timestamp ('2017-01-01' , tz = tz )] * 10 )
154173 tdi = pd .timedelta_range ('0 days' , periods = 10 )
155174 expected = pd .date_range ('2017-01-01' , periods = 10 , tz = tz , freq = '-1D' )
156175
176+ # sub with TimedeltaIndex
157177 result = dti - tdi
158178 tm .assert_index_equal (result , expected )
159179
180+ msg = 'cannot subtract TimedeltaIndex and DatetimeIndex'
181+ with tm .assert_raises_regex (TypeError , msg ):
182+ tdi - dti
183+
184+ # sub with timedelta64 array
160185 result = dti - tdi .values
161186 tm .assert_index_equal (result , expected )
162187
188+ msg = 'cannot perform __neg__ with this index type:'
189+ with tm .assert_raises_regex (TypeError , msg ):
190+ tdi .values - dti
191+
163192 def test_dti_isub_tdi (self , tz ):
164193 # GH 17558
194+ dti = DatetimeIndex ([Timestamp ('2017-01-01' , tz = tz )] * 10 )
165195 tdi = pd .timedelta_range ('0 days' , periods = 10 )
166196 expected = pd .date_range ('2017-01-01' , periods = 10 , tz = tz , freq = '-1D' )
167197
198+ # isub with TimedeltaIndex
168199 result = DatetimeIndex ([Timestamp ('2017-01-01' , tz = tz )] * 10 )
169200 result -= tdi
170201 tm .assert_index_equal (result , expected )
171202
203+ msg = 'cannot subtract TimedeltaIndex and DatetimeIndex'
204+ with tm .assert_raises_regex (TypeError , msg ):
205+ tdi -= dti
206+
207+ # isub with timedelta64 array
172208 result = DatetimeIndex ([Timestamp ('2017-01-01' , tz = tz )] * 10 )
173209 result -= tdi .values
174210 tm .assert_index_equal (result , expected )
175211
212+ msg = '|' .join (['cannot perform __neg__ with this index type:' ,
213+ 'ufunc subtract cannot use operands with types' ])
214+ with tm .assert_raises_regex (TypeError , msg ):
215+ tdi .values -= dti
216+
176217 # -------------------------------------------------------------
177218 # Binary Operations DatetimeIndex and datetime-like
178219 # TODO: A couple other tests belong in this section. Move them in
0 commit comments