@@ -96,20 +96,28 @@ 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
+ ('D' , timedelta (days = 1 ), np .timedelta64 (1 , 'D' )),
101
+ ('W' , timedelta (weeks = 1 ), np .timedelta64 (1 , 'W' )),
102
+ ('M' , timedelta (months = 1 ), np .timedelta64 (1 , 'M' ))
103
+ ])
104
+ def test_addition_subtraction_preserve_frequency (self , freq , td , td64 ):
105
+ ts = Timestamp ('2014-03-05' , freq = freq )
102
106
original_freq = ts .freq
103
107
104
108
with tm .assert_produces_warning (FutureWarning ):
105
109
# GH#22535 add/sub with integers is deprecated
106
110
assert (ts + 1 ).freq == original_freq
107
111
assert (ts - 1 ).freq == original_freq
108
112
109
- assert (ts + td ).freq == original_freq
110
- assert (ts - td ).freq == original_freq
113
+ assert (ts + 1 * original_freq ).freq == original_freq
114
+ assert (ts - 1 * original_freq ).freq == original_freq
115
+
116
+ if td is not None :
117
+ # timedelta does not support months as unit
118
+ assert (ts + td ).freq == original_freq
119
+ assert (ts - td ).freq == original_freq
111
120
112
- td64 = np .timedelta64 (1 , 'D' )
113
121
assert (ts + td64 ).freq == original_freq
114
122
assert (ts - td64 ).freq == original_freq
115
123
0 commit comments