Skip to content

Commit c45636e

Browse files
jbrockmendelrhshadrach
authored andcommitted
TST: fix tests for asserting matching freq (pandas-dev#33737)
1 parent 267e003 commit c45636e

File tree

7 files changed

+42
-16
lines changed

7 files changed

+42
-16
lines changed

pandas/tests/indexes/common.py

+3
Original file line numberDiff line numberDiff line change
@@ -393,6 +393,9 @@ def test_numpy_repeat(self):
393393
@pytest.mark.parametrize("klass", [list, tuple, np.array, Series])
394394
def test_where(self, klass):
395395
i = self.create_index()
396+
if isinstance(i, (pd.DatetimeIndex, pd.TimedeltaIndex)):
397+
# where does not preserve freq
398+
i._set_freq(None)
396399

397400
cond = [True] * len(i)
398401
result = i.where(klass(cond))

pandas/tests/indexes/datetimelike.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,8 @@ def test_map_dictlike(self, mapper):
8181
expected = index + index.freq
8282

8383
# don't compare the freqs
84-
if isinstance(expected, pd.DatetimeIndex):
85-
expected._data.freq = None
84+
if isinstance(expected, (pd.DatetimeIndex, pd.TimedeltaIndex)):
85+
expected._set_freq(None)
8686

8787
result = index.map(mapper(expected, index))
8888
tm.assert_index_equal(result, expected)

pandas/tests/indexes/datetimes/test_astype.py

+1
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ def test_astype_with_tz(self):
8888
result = idx.astype("datetime64[ns, US/Eastern]")
8989
expected = date_range("20170101 03:00:00", periods=4, tz="US/Eastern")
9090
tm.assert_index_equal(result, expected)
91+
assert result.freq == expected.freq
9192

9293
# GH 18951: tz-naive to tz-aware
9394
idx = date_range("20170101", periods=4)

pandas/tests/indexes/datetimes/test_constructors.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,7 @@ def test_construction_with_alt(self, kwargs, tz_aware_fixture):
131131
def test_construction_with_alt_tz_localize(self, kwargs, tz_aware_fixture):
132132
tz = tz_aware_fixture
133133
i = pd.date_range("20130101", periods=5, freq="H", tz=tz)
134+
i._set_freq(None)
134135
kwargs = {key: attrgetter(val)(i) for key, val in kwargs.items()}
135136

136137
if "tz" in kwargs:
@@ -703,7 +704,9 @@ def test_constructor_start_end_with_tz(self, tz):
703704
end = Timestamp("2013-01-02 06:00:00", tz="America/Los_Angeles")
704705
result = date_range(freq="D", start=start, end=end, tz=tz)
705706
expected = DatetimeIndex(
706-
["2013-01-01 06:00:00", "2013-01-02 06:00:00"], tz="America/Los_Angeles"
707+
["2013-01-01 06:00:00", "2013-01-02 06:00:00"],
708+
tz="America/Los_Angeles",
709+
freq="D",
707710
)
708711
tm.assert_index_equal(result, expected)
709712
# Especially assert that the timezone is consistent for pytz

pandas/tests/indexes/datetimes/test_date_range.py

+20-8
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,7 @@ def test_date_range_normalize(self):
218218
rng = date_range(snap, periods=n, normalize=False, freq="2D")
219219

220220
offset = timedelta(2)
221-
values = DatetimeIndex([snap + i * offset for i in range(n)])
221+
values = DatetimeIndex([snap + i * offset for i in range(n)], freq=offset)
222222

223223
tm.assert_index_equal(rng, values)
224224

@@ -413,7 +413,7 @@ def test_construct_over_dst(self):
413413
pre_dst,
414414
pst_dst,
415415
]
416-
expected = DatetimeIndex(expect_data)
416+
expected = DatetimeIndex(expect_data, freq="H")
417417
result = date_range(start="2010-11-7", periods=3, freq="H", tz="US/Pacific")
418418
tm.assert_index_equal(result, expected)
419419

@@ -427,7 +427,8 @@ def test_construct_with_different_start_end_string_format(self):
427427
Timestamp("2013-01-01 00:00:00+09:00"),
428428
Timestamp("2013-01-01 01:00:00+09:00"),
429429
Timestamp("2013-01-01 02:00:00+09:00"),
430-
]
430+
],
431+
freq="H",
431432
)
432433
tm.assert_index_equal(result, expected)
433434

@@ -442,7 +443,7 @@ def test_range_bug(self):
442443
result = date_range("2011-1-1", "2012-1-31", freq=offset)
443444

444445
start = datetime(2011, 1, 1)
445-
expected = DatetimeIndex([start + i * offset for i in range(5)])
446+
expected = DatetimeIndex([start + i * offset for i in range(5)], freq=offset)
446447
tm.assert_index_equal(result, expected)
447448

448449
def test_range_tz_pytz(self):
@@ -861,6 +862,7 @@ def test_bdays_and_open_boundaries(self, closed):
861862
bday_end = "2018-07-27" # Friday
862863
expected = pd.date_range(bday_start, bday_end, freq="D")
863864
tm.assert_index_equal(result, expected)
865+
# Note: we do _not_ expect the freqs to match here
864866

865867
def test_bday_near_overflow(self):
866868
# GH#24252 avoid doing unnecessary addition that _would_ overflow
@@ -910,15 +912,19 @@ def test_daterange_bug_456(self):
910912

911913
def test_cdaterange(self):
912914
result = bdate_range("2013-05-01", periods=3, freq="C")
913-
expected = DatetimeIndex(["2013-05-01", "2013-05-02", "2013-05-03"])
915+
expected = DatetimeIndex(["2013-05-01", "2013-05-02", "2013-05-03"], freq="C")
914916
tm.assert_index_equal(result, expected)
917+
assert result.freq == expected.freq
915918

916919
def test_cdaterange_weekmask(self):
917920
result = bdate_range(
918921
"2013-05-01", periods=3, freq="C", weekmask="Sun Mon Tue Wed Thu"
919922
)
920-
expected = DatetimeIndex(["2013-05-01", "2013-05-02", "2013-05-05"])
923+
expected = DatetimeIndex(
924+
["2013-05-01", "2013-05-02", "2013-05-05"], freq=result.freq
925+
)
921926
tm.assert_index_equal(result, expected)
927+
assert result.freq == expected.freq
922928

923929
# raise with non-custom freq
924930
msg = (
@@ -930,8 +936,11 @@ def test_cdaterange_weekmask(self):
930936

931937
def test_cdaterange_holidays(self):
932938
result = bdate_range("2013-05-01", periods=3, freq="C", holidays=["2013-05-01"])
933-
expected = DatetimeIndex(["2013-05-02", "2013-05-03", "2013-05-06"])
939+
expected = DatetimeIndex(
940+
["2013-05-02", "2013-05-03", "2013-05-06"], freq=result.freq
941+
)
934942
tm.assert_index_equal(result, expected)
943+
assert result.freq == expected.freq
935944

936945
# raise with non-custom freq
937946
msg = (
@@ -949,8 +958,11 @@ def test_cdaterange_weekmask_and_holidays(self):
949958
weekmask="Sun Mon Tue Wed Thu",
950959
holidays=["2013-05-01"],
951960
)
952-
expected = DatetimeIndex(["2013-05-02", "2013-05-05", "2013-05-06"])
961+
expected = DatetimeIndex(
962+
["2013-05-02", "2013-05-05", "2013-05-06"], freq=result.freq
963+
)
953964
tm.assert_index_equal(result, expected)
965+
assert result.freq == expected.freq
954966

955967
# raise with non-custom freq
956968
msg = (

pandas/tests/indexes/period/test_astype.py

+10-4
Original file line numberDiff line numberDiff line change
@@ -143,18 +143,24 @@ def test_astype_array_fallback(self):
143143
def test_period_astype_to_timestamp(self):
144144
pi = PeriodIndex(["2011-01", "2011-02", "2011-03"], freq="M")
145145

146-
exp = DatetimeIndex(["2011-01-01", "2011-02-01", "2011-03-01"])
147-
tm.assert_index_equal(pi.astype("datetime64[ns]"), exp)
146+
exp = DatetimeIndex(["2011-01-01", "2011-02-01", "2011-03-01"], freq="MS")
147+
res = pi.astype("datetime64[ns]")
148+
tm.assert_index_equal(res, exp)
149+
assert res.freq == exp.freq
148150

149151
exp = DatetimeIndex(["2011-01-31", "2011-02-28", "2011-03-31"])
150152
exp = exp + Timedelta(1, "D") - Timedelta(1, "ns")
151-
tm.assert_index_equal(pi.astype("datetime64[ns]", how="end"), exp)
153+
res = pi.astype("datetime64[ns]", how="end")
154+
tm.assert_index_equal(res, exp)
155+
assert res.freq == exp.freq
152156

153157
exp = DatetimeIndex(["2011-01-01", "2011-02-01", "2011-03-01"], tz="US/Eastern")
154158
res = pi.astype("datetime64[ns, US/Eastern]")
155-
tm.assert_index_equal(pi.astype("datetime64[ns, US/Eastern]"), exp)
159+
tm.assert_index_equal(res, exp)
160+
assert res.freq == exp.freq
156161

157162
exp = DatetimeIndex(["2011-01-31", "2011-02-28", "2011-03-31"], tz="US/Eastern")
158163
exp = exp + Timedelta(1, "D") - Timedelta(1, "ns")
159164
res = pi.astype("datetime64[ns, US/Eastern]", how="end")
160165
tm.assert_index_equal(res, exp)
166+
assert res.freq == exp.freq

pandas/tests/indexes/period/test_to_timestamp.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,9 @@ def test_to_timestamp_quarterly_bug(self):
6060
pindex = PeriodIndex(year=years, quarter=quarters)
6161

6262
stamps = pindex.to_timestamp("D", "end")
63-
expected = DatetimeIndex([x.to_timestamp("D", "end") for x in pindex], freq="Q")
63+
expected = DatetimeIndex([x.to_timestamp("D", "end") for x in pindex])
6464
tm.assert_index_equal(stamps, expected)
65+
assert stamps.freq == expected.freq
6566

6667
def test_to_timestamp_pi_mult(self):
6768
idx = PeriodIndex(["2011-01", "NaT", "2011-02"], freq="2M", name="idx")

0 commit comments

Comments
 (0)