Skip to content

Commit 8621970

Browse files
authored
TST: move misplaced to_datetime test (#32273)
1 parent 2c060b4 commit 8621970

File tree

2 files changed

+82
-84
lines changed

2 files changed

+82
-84
lines changed

pandas/tests/indexes/datetimes/test_tools.py

+81-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import calendar
44
from collections import deque
5-
from datetime import datetime, time
5+
from datetime import datetime, time, timedelta
66
import locale
77

88
from dateutil.parser import parse
@@ -1376,6 +1376,86 @@ def test_to_datetime_errors_ignore_utc_true(self):
13761376
expected = DatetimeIndex(["1970-01-01 00:00:01"], tz="UTC")
13771377
tm.assert_index_equal(result, expected)
13781378

1379+
# TODO: this is moved from tests.series.test_timeseries, may be redundant
1380+
def test_to_datetime_unit(self):
1381+
1382+
epoch = 1370745748
1383+
s = Series([epoch + t for t in range(20)])
1384+
result = to_datetime(s, unit="s")
1385+
expected = Series(
1386+
[Timestamp("2013-06-09 02:42:28") + timedelta(seconds=t) for t in range(20)]
1387+
)
1388+
tm.assert_series_equal(result, expected)
1389+
1390+
s = Series([epoch + t for t in range(20)]).astype(float)
1391+
result = to_datetime(s, unit="s")
1392+
expected = Series(
1393+
[Timestamp("2013-06-09 02:42:28") + timedelta(seconds=t) for t in range(20)]
1394+
)
1395+
tm.assert_series_equal(result, expected)
1396+
1397+
s = Series([epoch + t for t in range(20)] + [iNaT])
1398+
result = to_datetime(s, unit="s")
1399+
expected = Series(
1400+
[Timestamp("2013-06-09 02:42:28") + timedelta(seconds=t) for t in range(20)]
1401+
+ [NaT]
1402+
)
1403+
tm.assert_series_equal(result, expected)
1404+
1405+
s = Series([epoch + t for t in range(20)] + [iNaT]).astype(float)
1406+
result = to_datetime(s, unit="s")
1407+
expected = Series(
1408+
[Timestamp("2013-06-09 02:42:28") + timedelta(seconds=t) for t in range(20)]
1409+
+ [NaT]
1410+
)
1411+
tm.assert_series_equal(result, expected)
1412+
1413+
# GH13834
1414+
s = Series([epoch + t for t in np.arange(0, 2, 0.25)] + [iNaT]).astype(float)
1415+
result = to_datetime(s, unit="s")
1416+
expected = Series(
1417+
[
1418+
Timestamp("2013-06-09 02:42:28") + timedelta(seconds=t)
1419+
for t in np.arange(0, 2, 0.25)
1420+
]
1421+
+ [NaT]
1422+
)
1423+
tm.assert_series_equal(result, expected)
1424+
1425+
s = pd.concat(
1426+
[Series([epoch + t for t in range(20)]).astype(float), Series([np.nan])],
1427+
ignore_index=True,
1428+
)
1429+
result = to_datetime(s, unit="s")
1430+
expected = Series(
1431+
[Timestamp("2013-06-09 02:42:28") + timedelta(seconds=t) for t in range(20)]
1432+
+ [NaT]
1433+
)
1434+
tm.assert_series_equal(result, expected)
1435+
1436+
result = to_datetime([1, 2, "NaT", pd.NaT, np.nan], unit="D")
1437+
expected = DatetimeIndex(
1438+
[Timestamp("1970-01-02"), Timestamp("1970-01-03")] + ["NaT"] * 3
1439+
)
1440+
tm.assert_index_equal(result, expected)
1441+
1442+
msg = "non convertible value foo with the unit 'D'"
1443+
with pytest.raises(ValueError, match=msg):
1444+
to_datetime([1, 2, "foo"], unit="D")
1445+
msg = "cannot convert input 111111111 with the unit 'D'"
1446+
with pytest.raises(OutOfBoundsDatetime, match=msg):
1447+
to_datetime([1, 2, 111111111], unit="D")
1448+
1449+
# coerce we can process
1450+
expected = DatetimeIndex(
1451+
[Timestamp("1970-01-02"), Timestamp("1970-01-03")] + ["NaT"] * 1
1452+
)
1453+
result = to_datetime([1, 2, "foo"], unit="D", errors="coerce")
1454+
tm.assert_index_equal(result, expected)
1455+
1456+
result = to_datetime([1, 2, 111111111], unit="D", errors="coerce")
1457+
tm.assert_index_equal(result, expected)
1458+
13791459

13801460
class TestToDatetimeMisc:
13811461
def test_to_datetime_barely_out_of_bounds(self):

pandas/tests/series/test_timeseries.py

+1-83
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
1-
from datetime import datetime, timedelta
1+
from datetime import datetime
22
from io import StringIO
33

44
import numpy as np
55
import pytest
66

77
from pandas._libs.tslib import iNaT
8-
from pandas._libs.tslibs.np_datetime import OutOfBoundsDatetime
98

109
import pandas as pd
1110
from pandas import (
@@ -14,10 +13,8 @@
1413
NaT,
1514
Series,
1615
Timestamp,
17-
concat,
1816
date_range,
1917
timedelta_range,
20-
to_datetime,
2118
)
2219
import pandas._testing as tm
2320

@@ -127,85 +124,6 @@ def test_contiguous_boolean_preserve_freq(self):
127124
masked = rng[mask]
128125
assert masked.freq is None
129126

130-
def test_to_datetime_unit(self):
131-
132-
epoch = 1370745748
133-
s = Series([epoch + t for t in range(20)])
134-
result = to_datetime(s, unit="s")
135-
expected = Series(
136-
[Timestamp("2013-06-09 02:42:28") + timedelta(seconds=t) for t in range(20)]
137-
)
138-
tm.assert_series_equal(result, expected)
139-
140-
s = Series([epoch + t for t in range(20)]).astype(float)
141-
result = to_datetime(s, unit="s")
142-
expected = Series(
143-
[Timestamp("2013-06-09 02:42:28") + timedelta(seconds=t) for t in range(20)]
144-
)
145-
tm.assert_series_equal(result, expected)
146-
147-
s = Series([epoch + t for t in range(20)] + [iNaT])
148-
result = to_datetime(s, unit="s")
149-
expected = Series(
150-
[Timestamp("2013-06-09 02:42:28") + timedelta(seconds=t) for t in range(20)]
151-
+ [NaT]
152-
)
153-
tm.assert_series_equal(result, expected)
154-
155-
s = Series([epoch + t for t in range(20)] + [iNaT]).astype(float)
156-
result = to_datetime(s, unit="s")
157-
expected = Series(
158-
[Timestamp("2013-06-09 02:42:28") + timedelta(seconds=t) for t in range(20)]
159-
+ [NaT]
160-
)
161-
tm.assert_series_equal(result, expected)
162-
163-
# GH13834
164-
s = Series([epoch + t for t in np.arange(0, 2, 0.25)] + [iNaT]).astype(float)
165-
result = to_datetime(s, unit="s")
166-
expected = Series(
167-
[
168-
Timestamp("2013-06-09 02:42:28") + timedelta(seconds=t)
169-
for t in np.arange(0, 2, 0.25)
170-
]
171-
+ [NaT]
172-
)
173-
tm.assert_series_equal(result, expected)
174-
175-
s = concat(
176-
[Series([epoch + t for t in range(20)]).astype(float), Series([np.nan])],
177-
ignore_index=True,
178-
)
179-
result = to_datetime(s, unit="s")
180-
expected = Series(
181-
[Timestamp("2013-06-09 02:42:28") + timedelta(seconds=t) for t in range(20)]
182-
+ [NaT]
183-
)
184-
tm.assert_series_equal(result, expected)
185-
186-
result = to_datetime([1, 2, "NaT", pd.NaT, np.nan], unit="D")
187-
expected = DatetimeIndex(
188-
[Timestamp("1970-01-02"), Timestamp("1970-01-03")] + ["NaT"] * 3
189-
)
190-
tm.assert_index_equal(result, expected)
191-
192-
msg = "non convertible value foo with the unit 'D'"
193-
with pytest.raises(ValueError, match=msg):
194-
to_datetime([1, 2, "foo"], unit="D")
195-
msg = "cannot convert input 111111111 with the unit 'D'"
196-
with pytest.raises(OutOfBoundsDatetime, match=msg):
197-
to_datetime([1, 2, 111111111], unit="D")
198-
199-
# coerce we can process
200-
expected = DatetimeIndex(
201-
[Timestamp("1970-01-02"), Timestamp("1970-01-03")] + ["NaT"] * 1
202-
)
203-
result = to_datetime([1, 2, "foo"], unit="D", errors="coerce")
204-
tm.assert_index_equal(result, expected)
205-
206-
result = to_datetime([1, 2, 111111111], unit="D", errors="coerce")
207-
tm.assert_index_equal(result, expected)
208-
209127
def test_series_ctor_datetime64(self):
210128
rng = date_range("1/1/2000 00:00:00", "1/1/2000 1:59:50", freq="10s")
211129
dates = np.asarray(rng)

0 commit comments

Comments
 (0)