Skip to content

Commit ec350a8

Browse files
jbrockmendelrhshadrach
authored andcommitted
TST: more specific freq attrs (pandas-dev#33781)
1 parent 2d84f49 commit ec350a8

12 files changed

+52
-8
lines changed

pandas/tests/arrays/categorical/test_constructors.py

+2
Original file line numberDiff line numberDiff line change
@@ -331,6 +331,7 @@ def test_constructor_with_datetimelike(self, dtl):
331331

332332
def test_constructor_from_index_series_datetimetz(self):
333333
idx = date_range("2015-01-01 10:00", freq="D", periods=3, tz="US/Eastern")
334+
idx = idx._with_freq(None) # freq not preserved in result.categories
334335
result = Categorical(idx)
335336
tm.assert_index_equal(result.categories, idx)
336337

@@ -339,6 +340,7 @@ def test_constructor_from_index_series_datetimetz(self):
339340

340341
def test_constructor_from_index_series_timedelta(self):
341342
idx = timedelta_range("1 days", freq="D", periods=3)
343+
idx = idx._with_freq(None) # freq not preserved in result.categories
342344
result = Categorical(idx)
343345
tm.assert_index_equal(result.categories, idx)
344346

pandas/tests/arrays/test_datetimelike.py

+6
Original file line numberDiff line numberDiff line change
@@ -302,8 +302,14 @@ def test_round(self, tz_naive_fixture):
302302

303303
result = dti.round(freq="2T")
304304
expected = dti - pd.Timedelta(minutes=1)
305+
expected = expected._with_freq(None)
305306
tm.assert_index_equal(result, expected)
306307

308+
dta = dti._data
309+
result = dta.round(freq="2T")
310+
expected = expected._data._with_freq(None)
311+
tm.assert_datetime_array_equal(result, expected)
312+
307313
def test_array_interface(self, datetime_index):
308314
arr = DatetimeArray(datetime_index)
309315

pandas/tests/frame/methods/test_tz_convert.py

+6
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,12 @@ def test_tz_convert_and_localize(self, fn):
4444
# GH7846
4545
df2 = DataFrame(np.ones(5), MultiIndex.from_arrays([l0, l1]))
4646

47+
# freq is not preserved in MultiIndex construction
48+
l1_expected = l1_expected._with_freq(None)
49+
l0_expected = l0_expected._with_freq(None)
50+
l1 = l1._with_freq(None)
51+
l0 = l0._with_freq(None)
52+
4753
df3 = getattr(df2, fn)("US/Pacific", level=0)
4854
assert not df3.index.levels[0].equals(l0)
4955
tm.assert_index_equal(df3.index.levels[0], l0_expected)

pandas/tests/frame/test_axis_select_reindex.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,8 @@ def test_reindex(self, float_frame):
9191

9292
# pass non-Index
9393
newFrame = float_frame.reindex(list(datetime_series.index))
94-
tm.assert_index_equal(newFrame.index, datetime_series.index)
94+
expected = datetime_series.index._with_freq(None)
95+
tm.assert_index_equal(newFrame.index, expected)
9596

9697
# copy with no axes
9798
result = float_frame.reindex()

pandas/tests/frame/test_to_csv.py

+5
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,8 @@ def test_to_csv_from_csv1(self, float_frame, datetime_frame):
5454
float_frame.to_csv(path, index=False)
5555

5656
# test roundtrip
57+
# freq does not roundtrip
58+
datetime_frame.index = datetime_frame.index._with_freq(None)
5759
datetime_frame.to_csv(path)
5860
recons = self.read_csv(path)
5961
tm.assert_frame_equal(datetime_frame, recons)
@@ -1157,6 +1159,7 @@ def test_to_csv_with_dst_transitions(self):
11571159
)
11581160

11591161
for i in [times, times + pd.Timedelta("10s")]:
1162+
i = i._with_freq(None) # freq is not preserved by read_csv
11601163
time_range = np.array(range(len(i)), dtype="int64")
11611164
df = DataFrame({"A": time_range}, index=i)
11621165
df.to_csv(path, index=True)
@@ -1170,6 +1173,8 @@ def test_to_csv_with_dst_transitions(self):
11701173

11711174
# GH11619
11721175
idx = pd.date_range("2015-01-01", "2015-12-31", freq="H", tz="Europe/Paris")
1176+
idx = idx._with_freq(None) # freq does not round-trip
1177+
idx._data._freq = None # otherwise there is trouble on unpickle
11731178
df = DataFrame({"values": 1, "idx": idx}, index=idx)
11741179
with tm.ensure_clean("csv_date_format_with_dst") as path:
11751180
df.to_csv(path, index=True)

pandas/tests/groupby/test_timegrouper.py

+19-7
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,16 @@
88
import pytz
99

1010
import pandas as pd
11-
from pandas import DataFrame, Index, MultiIndex, Series, Timestamp, date_range
11+
from pandas import (
12+
DataFrame,
13+
DatetimeIndex,
14+
Index,
15+
MultiIndex,
16+
Series,
17+
Timestamp,
18+
date_range,
19+
offsets,
20+
)
1221
import pandas._testing as tm
1322
from pandas.core.groupby.grouper import Grouper
1423
from pandas.core.groupby.ops import BinGrouper
@@ -243,17 +252,20 @@ def test_timegrouper_with_reg_groups(self):
243252

244253
# single groupers
245254
expected = DataFrame(
246-
{"Quantity": [31], "Date": [datetime(2013, 10, 31, 0, 0)]}
247-
).set_index("Date")
255+
[[31]],
256+
columns=["Quantity"],
257+
index=DatetimeIndex(
258+
[datetime(2013, 10, 31, 0, 0)], freq=offsets.MonthEnd(), name="Date"
259+
),
260+
)
248261
result = df.groupby(pd.Grouper(freq="1M")).sum()
249262
tm.assert_frame_equal(result, expected)
250263

251264
result = df.groupby([pd.Grouper(freq="1M")]).sum()
252265
tm.assert_frame_equal(result, expected)
253266

254-
expected = DataFrame(
255-
{"Quantity": [31], "Date": [datetime(2013, 11, 30, 0, 0)]}
256-
).set_index("Date")
267+
expected.index = expected.index.shift(1)
268+
assert expected.index.freq == offsets.MonthEnd()
257269
result = df.groupby(pd.Grouper(freq="1M", key="Date")).sum()
258270
tm.assert_frame_equal(result, expected)
259271

@@ -448,7 +460,7 @@ def test_groupby_groups_datetimeindex(self):
448460
for date in dates:
449461
result = grouped.get_group(date)
450462
data = [[df.loc[date, "A"], df.loc[date, "B"]]]
451-
expected_index = pd.DatetimeIndex([date], name="date")
463+
expected_index = pd.DatetimeIndex([date], name="date", freq="D")
452464
expected = pd.DataFrame(data, columns=list("AB"), index=expected_index)
453465
tm.assert_frame_equal(result, expected)
454466

pandas/tests/indexes/datetimes/test_astype.py

+2
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,10 @@ def test_astype_tzaware_to_tzaware(self):
7575
def test_astype_tznaive_to_tzaware(self):
7676
# GH 18951: tz-naive to tz-aware
7777
idx = date_range("20170101", periods=4)
78+
idx = idx._with_freq(None) # tz_localize does not preserve freq
7879
result = idx.astype("datetime64[ns, US/Eastern]")
7980
expected = date_range("20170101", periods=4, tz="US/Eastern")
81+
expected = expected._with_freq(None)
8082
tm.assert_index_equal(result, expected)
8183

8284
def test_astype_str_nat(self):

pandas/tests/indexes/test_base.py

+1
Original file line numberDiff line numberDiff line change
@@ -383,6 +383,7 @@ def test_constructor_dtypes_datetime(self, tz_naive_fixture, attr, klass):
383383
@pytest.mark.parametrize("klass", [pd.Index, pd.TimedeltaIndex])
384384
def test_constructor_dtypes_timedelta(self, attr, klass):
385385
index = pd.timedelta_range("1 days", periods=5)
386+
index = index._with_freq(None) # wont be preserved by constructors
386387
dtype = index.dtype
387388

388389
values = getattr(index, attr)

pandas/tests/series/indexing/test_alter_index.py

+2
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ def test_reindex_with_datetimes():
7575

7676
result = ts.reindex(list(ts.index[5:10]))
7777
expected = ts[5:10]
78+
expected.index = expected.index._with_freq(None)
7879
tm.assert_series_equal(result, expected)
7980

8081
result = ts[list(ts.index[5:10])]
@@ -91,6 +92,7 @@ def test_reindex_corner(datetime_series):
9192

9293
# pass non-Index
9394
reindexed = datetime_series.reindex(list(datetime_series.index))
95+
datetime_series.index = datetime_series.index._with_freq(None)
9496
tm.assert_series_equal(datetime_series, reindexed)
9597

9698
# bad fill method

pandas/tests/series/methods/test_sort_index.py

+3
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ def test_sort_index_name(self, datetime_series):
1313
assert result.name == datetime_series.name
1414

1515
def test_sort_index(self, datetime_series):
16+
datetime_series.index = datetime_series.index._with_freq(None)
17+
1618
rindex = list(datetime_series.index)
1719
random.shuffle(rindex)
1820

@@ -45,6 +47,7 @@ def test_sort_index(self, datetime_series):
4547
random_order.sort_index(level=0, axis=1)
4648

4749
def test_sort_index_inplace(self, datetime_series):
50+
datetime_series.index = datetime_series.index._with_freq(None)
4851

4952
# For GH#11402
5053
rindex = list(datetime_series.index)

pandas/tests/series/test_datetime_values.py

+2
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,8 @@ def get_dir(s):
233233
exp_values = pd.date_range(
234234
"2015-01-01", "2016-01-01", freq="T", tz="UTC"
235235
).tz_convert("America/Chicago")
236+
# freq not preserved by tz_localize above
237+
exp_values = exp_values._with_freq(None)
236238
expected = Series(exp_values, name="xxx")
237239
tm.assert_series_equal(s, expected)
238240

pandas/tests/series/test_io.py

+2
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ def read_csv(self, path, **kwargs):
2525
return out
2626

2727
def test_from_csv(self, datetime_series, string_series):
28+
# freq doesnt round-trip
29+
datetime_series.index = datetime_series.index._with_freq(None)
2830

2931
with tm.ensure_clean() as path:
3032
datetime_series.to_csv(path, header=False)

0 commit comments

Comments
 (0)