Skip to content

Commit d5d6834

Browse files
authored
REF/TST: misplaced tests in test_timeseries, test_timezones (#32300)
1 parent 86f0468 commit d5d6834

File tree

8 files changed

+94
-103
lines changed

8 files changed

+94
-103
lines changed

pandas/tests/frame/test_constructors.py

+19
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import numpy.ma as ma
88
import numpy.ma.mrecords as mrecords
99
import pytest
10+
import pytz
1011

1112
from pandas.compat import is_platform_little_endian
1213
from pandas.compat.numpy import _is_numpy_dev
@@ -2389,6 +2390,12 @@ def test_from_records_series_list_dict(self):
23892390
result = DataFrame.from_records(data)
23902391
tm.assert_frame_equal(result, expected)
23912392

2393+
def test_frame_from_records_utc(self):
2394+
rec = {"datum": 1.5, "begin_time": datetime(2006, 4, 27, tzinfo=pytz.utc)}
2395+
2396+
# it works
2397+
DataFrame.from_records([rec], index="begin_time")
2398+
23922399
def test_to_frame_with_falsey_names(self):
23932400
# GH 16114
23942401
result = Series(name=0, dtype=object).to_frame().dtypes
@@ -2460,6 +2467,18 @@ def test_construct_with_two_categoricalindex_series(self):
24602467
)
24612468
tm.assert_frame_equal(result, expected)
24622469

2470+
def test_from_M8_structured(self):
2471+
dates = [(datetime(2012, 9, 9, 0, 0), datetime(2012, 9, 8, 15, 10))]
2472+
arr = np.array(dates, dtype=[("Date", "M8[us]"), ("Forecasting", "M8[us]")])
2473+
df = DataFrame(arr)
2474+
2475+
assert df["Date"][0] == dates[0][0]
2476+
assert df["Forecasting"][0] == dates[0][1]
2477+
2478+
s = Series(arr["Date"])
2479+
assert isinstance(s[0], Timestamp)
2480+
assert s[0] == dates[0][0]
2481+
24632482

24642483
class TestDataFrameConstructorWithDatetimeTZ:
24652484
def test_from_dict(self):

pandas/tests/frame/test_timezones.py

-8
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
"""
22
Tests for DataFrame timezone-related methods
33
"""
4-
from datetime import datetime
5-
64
import numpy as np
75
import pytest
86
import pytz
@@ -53,12 +51,6 @@ def test_frame_values_with_tz(self):
5351
result = df.values
5452
tm.assert_numpy_array_equal(result, expected)
5553

56-
def test_frame_from_records_utc(self):
57-
rec = {"datum": 1.5, "begin_time": datetime(2006, 4, 27, tzinfo=pytz.utc)}
58-
59-
# it works
60-
DataFrame.from_records([rec], index="begin_time")
61-
6254
def test_frame_join_tzaware(self):
6355
test1 = DataFrame(
6456
np.zeros((6, 3)),

pandas/tests/indexes/datetimes/test_datetime.py

+19-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import pytest
66

77
import pandas as pd
8-
from pandas import DataFrame, DatetimeIndex, Index, Timestamp, date_range, offsets
8+
from pandas import DataFrame, DatetimeIndex, Index, NaT, Timestamp, date_range, offsets
99
import pandas._testing as tm
1010

1111
randn = np.random.randn
@@ -20,6 +20,24 @@ def test_roundtrip_pickle_with_tz(self):
2020
unpickled = tm.round_trip_pickle(index)
2121
tm.assert_index_equal(index, unpickled)
2222

23+
def test_pickle(self):
24+
25+
# GH#4606
26+
p = tm.round_trip_pickle(NaT)
27+
assert p is NaT
28+
29+
idx = pd.to_datetime(["2013-01-01", NaT, "2014-01-06"])
30+
idx_p = tm.round_trip_pickle(idx)
31+
assert idx_p[0] == idx[0]
32+
assert idx_p[1] is NaT
33+
assert idx_p[2] == idx[2]
34+
35+
# GH#11002
36+
# don't infer freq
37+
idx = date_range("1750-1-1", "2050-1-1", freq="7D")
38+
idx_p = tm.round_trip_pickle(idx)
39+
tm.assert_index_equal(idx, idx_p)
40+
2341
def test_reindex_preserves_tz_if_target_is_empty_list_or_array(self):
2442
# GH7774
2543
index = date_range("20130101", periods=3, tz="US/Eastern")

pandas/tests/indexes/datetimes/test_setops.py

+35
Original file line numberDiff line numberDiff line change
@@ -347,6 +347,41 @@ def test_datetimeindex_diff(self, sort):
347347
dti2 = date_range(freq="Q-JAN", start=datetime(1997, 12, 31), periods=98)
348348
assert len(dti1.difference(dti2, sort)) == 2
349349

350+
@pytest.mark.parametrize("tz", [None, "Asia/Tokyo", "US/Eastern"])
351+
def test_setops_preserve_freq(self, tz):
352+
rng = date_range("1/1/2000", "1/1/2002", name="idx", tz=tz)
353+
354+
result = rng[:50].union(rng[50:100])
355+
assert result.name == rng.name
356+
assert result.freq == rng.freq
357+
assert result.tz == rng.tz
358+
359+
result = rng[:50].union(rng[30:100])
360+
assert result.name == rng.name
361+
assert result.freq == rng.freq
362+
assert result.tz == rng.tz
363+
364+
result = rng[:50].union(rng[60:100])
365+
assert result.name == rng.name
366+
assert result.freq is None
367+
assert result.tz == rng.tz
368+
369+
result = rng[:50].intersection(rng[25:75])
370+
assert result.name == rng.name
371+
assert result.freqstr == "D"
372+
assert result.tz == rng.tz
373+
374+
nofreq = DatetimeIndex(list(rng[25:75]), name="other")
375+
result = rng[:50].union(nofreq)
376+
assert result.name is None
377+
assert result.freq == rng.freq
378+
assert result.tz == rng.tz
379+
380+
result = rng[:50].intersection(nofreq)
381+
assert result.name is None
382+
assert result.freq == rng.freq
383+
assert result.tz == rng.tz
384+
350385

351386
class TestBusinessDatetimeIndex:
352387
def setup_method(self, method):
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
from pandas import MultiIndex, Timestamp, date_range
2+
3+
4+
class TestGetLevelValues:
5+
def test_get_level_values_box_datetime64(self):
6+
7+
dates = date_range("1/1/2000", periods=4)
8+
levels = [dates, [0, 1]]
9+
codes = [[0, 0, 1, 1, 2, 2, 3, 3], [0, 1, 0, 1, 0, 1, 0, 1]]
10+
11+
index = MultiIndex(levels=levels, codes=codes)
12+
13+
assert isinstance(index.get_level_values(0)[0], Timestamp)

pandas/tests/series/test_constructors.py

+7
Original file line numberDiff line numberDiff line change
@@ -1421,3 +1421,10 @@ def test_constructor_tz_mixed_data(self):
14211421
result = Series(dt_list)
14221422
expected = Series(dt_list, dtype=object)
14231423
tm.assert_series_equal(result, expected)
1424+
1425+
def test_constructor_data_aware_dtype_naive(self, tz_aware_fixture):
1426+
# GH#25843
1427+
tz = tz_aware_fixture
1428+
result = Series([Timestamp("2019", tz=tz)], dtype="datetime64[ns]")
1429+
expected = Series([Timestamp("2019")])
1430+
tm.assert_series_equal(result, expected)

pandas/tests/series/test_timeseries.py

+1-87
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,11 @@
1-
from datetime import datetime
21
from io import StringIO
32

43
import numpy as np
5-
import pytest
64

75
from pandas._libs.tslib import iNaT
86

97
import pandas as pd
10-
from pandas import (
11-
DataFrame,
12-
DatetimeIndex,
13-
NaT,
14-
Series,
15-
Timestamp,
16-
date_range,
17-
timedelta_range,
18-
)
8+
from pandas import DataFrame, DatetimeIndex, Series, date_range, timedelta_range
199
import pandas._testing as tm
2010

2111

@@ -225,82 +215,6 @@ def test_asfreq_resample_set_correct_freq(self):
225215
# does .resample() set .freq correctly?
226216
assert df.resample("D").asfreq().index.freq == "D"
227217

228-
def test_pickle(self):
229-
230-
# GH4606
231-
p = tm.round_trip_pickle(NaT)
232-
assert p is NaT
233-
234-
idx = pd.to_datetime(["2013-01-01", NaT, "2014-01-06"])
235-
idx_p = tm.round_trip_pickle(idx)
236-
assert idx_p[0] == idx[0]
237-
assert idx_p[1] is NaT
238-
assert idx_p[2] == idx[2]
239-
240-
# GH11002
241-
# don't infer freq
242-
idx = date_range("1750-1-1", "2050-1-1", freq="7D")
243-
idx_p = tm.round_trip_pickle(idx)
244-
tm.assert_index_equal(idx, idx_p)
245-
246-
@pytest.mark.parametrize("tz", [None, "Asia/Tokyo", "US/Eastern"])
247-
def test_setops_preserve_freq(self, tz):
248-
rng = date_range("1/1/2000", "1/1/2002", name="idx", tz=tz)
249-
250-
result = rng[:50].union(rng[50:100])
251-
assert result.name == rng.name
252-
assert result.freq == rng.freq
253-
assert result.tz == rng.tz
254-
255-
result = rng[:50].union(rng[30:100])
256-
assert result.name == rng.name
257-
assert result.freq == rng.freq
258-
assert result.tz == rng.tz
259-
260-
result = rng[:50].union(rng[60:100])
261-
assert result.name == rng.name
262-
assert result.freq is None
263-
assert result.tz == rng.tz
264-
265-
result = rng[:50].intersection(rng[25:75])
266-
assert result.name == rng.name
267-
assert result.freqstr == "D"
268-
assert result.tz == rng.tz
269-
270-
nofreq = DatetimeIndex(list(rng[25:75]), name="other")
271-
result = rng[:50].union(nofreq)
272-
assert result.name is None
273-
assert result.freq == rng.freq
274-
assert result.tz == rng.tz
275-
276-
result = rng[:50].intersection(nofreq)
277-
assert result.name is None
278-
assert result.freq == rng.freq
279-
assert result.tz == rng.tz
280-
281-
def test_from_M8_structured(self):
282-
dates = [(datetime(2012, 9, 9, 0, 0), datetime(2012, 9, 8, 15, 10))]
283-
arr = np.array(dates, dtype=[("Date", "M8[us]"), ("Forecasting", "M8[us]")])
284-
df = DataFrame(arr)
285-
286-
assert df["Date"][0] == dates[0][0]
287-
assert df["Forecasting"][0] == dates[0][1]
288-
289-
s = Series(arr["Date"])
290-
assert isinstance(s[0], Timestamp)
291-
assert s[0] == dates[0][0]
292-
293-
def test_get_level_values_box(self):
294-
from pandas import MultiIndex
295-
296-
dates = date_range("1/1/2000", periods=4)
297-
levels = [dates, [0, 1]]
298-
codes = [[0, 0, 1, 1, 2, 2, 3, 3], [0, 1, 0, 1, 0, 1, 0, 1]]
299-
300-
index = MultiIndex(levels=levels, codes=codes)
301-
302-
assert isinstance(index.get_level_values(0)[0], Timestamp)
303-
304218
def test_view_tz(self):
305219
# GH#24024
306220
ser = pd.Series(pd.date_range("2000", periods=4, tz="US/Central"))

pandas/tests/series/test_timezones.py

-7
Original file line numberDiff line numberDiff line change
@@ -76,10 +76,3 @@ def test_tz_localize_convert_copy_inplace_mutate(self, copy, method, tz):
7676
np.arange(0, 5), index=date_range("20131027", periods=5, freq="1H", tz=tz)
7777
)
7878
tm.assert_series_equal(result, expected)
79-
80-
def test_constructor_data_aware_dtype_naive(self, tz_aware_fixture):
81-
# GH 25843
82-
tz = tz_aware_fixture
83-
result = Series([Timestamp("2019", tz=tz)], dtype="datetime64[ns]")
84-
expected = Series([Timestamp("2019")])
85-
tm.assert_series_equal(result, expected)

0 commit comments

Comments
 (0)