@@ -96,20 +96,31 @@ def test_addition_subtraction_types(self):
96
96
assert type (ts + td64 ) == Timestamp
97
97
assert type (ts - td64 ) == Timestamp
98
98
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 )
102
109
original_freq = ts .freq
103
110
104
111
with tm .assert_produces_warning (FutureWarning ):
105
112
# GH#22535 add/sub with integers is deprecated
106
113
assert (ts + 1 ).freq == original_freq
107
114
assert (ts - 1 ).freq == original_freq
108
115
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
111
123
112
- td64 = np .timedelta64 (1 , 'D' )
113
124
assert (ts + td64 ).freq == original_freq
114
125
assert (ts - td64 ).freq == original_freq
115
126
0 commit comments