@@ -96,20 +96,31 @@ def test_addition_subtraction_types(self):
9696 assert type (ts + td64 ) == Timestamp
9797 assert type (ts - td64 ) == Timestamp
9898
99- def test_addition_subtraction_preserve_frequency (self ):
100- ts = Timestamp ('2014-03-05' , freq = 'D' )
101- td = timedelta (days = 1 )
99+ @pytest .mark .parametrize ('freq, td, td64' , [
100+ ('S' , timedelta (seconds = 1 ), np .timedelta64 (1 , 's' )),
101+ ('min' , timedelta (minutes = 1 ), np .timedelta64 (1 , 'm' )),
102+ ('H' , timedelta (hours = 1 ), np .timedelta64 (1 , 'h' )),
103+ ('D' , timedelta (days = 1 ), np .timedelta64 (1 , 'D' )),
104+ ('W' , timedelta (weeks = 1 ), np .timedelta64 (1 , 'W' )),
105+ ('M' , None , np .timedelta64 (1 , 'M' ))
106+ ])
107+ def test_addition_subtraction_preserve_frequency (self , freq , td , td64 ):
108+ ts = Timestamp ('2014-03-05 00:00:00' , freq = freq )
102109 original_freq = ts .freq
103110
104111 with tm .assert_produces_warning (FutureWarning ):
105112 # GH#22535 add/sub with integers is deprecated
106113 assert (ts + 1 ).freq == original_freq
107114 assert (ts - 1 ).freq == original_freq
108115
109- assert (ts + td ).freq == original_freq
110- assert (ts - td ).freq == original_freq
116+ assert (ts + 1 * original_freq ).freq == original_freq
117+ assert (ts - 1 * original_freq ).freq == original_freq
118+
119+ if td is not None :
120+ # timedelta does not support months as unit
121+ assert (ts + td ).freq == original_freq
122+ assert (ts - td ).freq == original_freq
111123
112- td64 = np .timedelta64 (1 , 'D' )
113124 assert (ts + td64 ).freq == original_freq
114125 assert (ts - td64 ).freq == original_freq
115126
0 commit comments