Skip to content

Commit acbfdf8

Browse files
jbrockmendeljreback
authored andcommitted
Tests for fixed issues in Series[datetime64] (#19072)
1 parent 77ec4e8 commit acbfdf8

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

pandas/tests/series/test_operators.py

+43
Original file line numberDiff line numberDiff line change
@@ -1195,6 +1195,18 @@ def test_sub_single_tz(self):
11951195
expected = Series([Timedelta('-2days')])
11961196
assert_series_equal(result, expected)
11971197

1198+
def test_dt64tz_series_sub_dtitz(self):
1199+
# GH#19071 subtracting tzaware DatetimeIndex from tzaware Series
1200+
# (with same tz) raises, fixed by #19024
1201+
dti = pd.date_range('1999-09-30', periods=10, tz='US/Pacific')
1202+
ser = pd.Series(dti)
1203+
expected = pd.Series(pd.TimedeltaIndex(['0days'] * 10))
1204+
1205+
res = dti - ser
1206+
tm.assert_series_equal(res, expected)
1207+
res = ser - dti
1208+
tm.assert_series_equal(res, expected)
1209+
11981210
def test_sub_datetime_compat(self):
11991211
# see gh-14088
12001212
s = Series([datetime(2016, 8, 23, 12, tzinfo=pytz.utc), pd.NaT])
@@ -1317,6 +1329,37 @@ def test_datetime64_ops_nat(self):
13171329
with pytest.raises(TypeError):
13181330
nat_series_dtype_timestamp / 1
13191331

1332+
def test_dt64series_arith_overflow(self):
1333+
# GH#12534, fixed by #19024
1334+
dt = pd.Timestamp('1700-01-31')
1335+
td = pd.Timedelta('20000 Days')
1336+
dti = pd.date_range('1949-09-30', freq='100Y', periods=4)
1337+
ser = pd.Series(dti)
1338+
with pytest.raises(OverflowError):
1339+
ser - dt
1340+
with pytest.raises(OverflowError):
1341+
dt - ser
1342+
with pytest.raises(OverflowError):
1343+
ser + td
1344+
with pytest.raises(OverflowError):
1345+
td + ser
1346+
1347+
ser.iloc[-1] = pd.NaT
1348+
expected = pd.Series(['2004-10-03', '2104-10-04', '2204-10-04', 'NaT'],
1349+
dtype='datetime64[ns]')
1350+
res = ser + td
1351+
tm.assert_series_equal(res, expected)
1352+
res = td + ser
1353+
tm.assert_series_equal(res, expected)
1354+
1355+
ser.iloc[1:] = pd.NaT
1356+
expected = pd.Series(['91279 Days', 'NaT', 'NaT', 'NaT'],
1357+
dtype='timedelta64[ns]')
1358+
res = ser - dt
1359+
tm.assert_series_equal(res, expected)
1360+
res = dt - ser
1361+
tm.assert_series_equal(res, -expected)
1362+
13201363

13211364
class TestSeriesOperators(TestData):
13221365
def test_op_method(self):

0 commit comments

Comments
 (0)