Skip to content

Commit 3530b3d

Browse files
authored
TST: parametrize over dt64 unit (#56165)
* TST: parametrize over dt64 unit * TST: specify dt64 unit
1 parent aeed91c commit 3530b3d

20 files changed

+205
-132
lines changed

pandas/tests/arithmetic/test_datetime64.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -905,7 +905,7 @@ def test_dt64arr_add_sub_td64_nat(self, box_with_array, tz_naive_fixture):
905905

906906
dti = date_range("1994-04-01", periods=9, tz=tz, freq="QS")
907907
other = np.timedelta64("NaT")
908-
expected = DatetimeIndex(["NaT"] * 9, tz=tz)
908+
expected = DatetimeIndex(["NaT"] * 9, tz=tz).as_unit("ns")
909909

910910
obj = tm.box_expected(dti, box_with_array)
911911
expected = tm.box_expected(expected, box_with_array)
@@ -1590,13 +1590,13 @@ class TestDatetime64OverflowHandling:
15901590

15911591
def test_dt64_overflow_masking(self, box_with_array):
15921592
# GH#25317
1593-
left = Series([Timestamp("1969-12-31")])
1593+
left = Series([Timestamp("1969-12-31")], dtype="M8[ns]")
15941594
right = Series([NaT])
15951595

15961596
left = tm.box_expected(left, box_with_array)
15971597
right = tm.box_expected(right, box_with_array)
15981598

1599-
expected = TimedeltaIndex([NaT])
1599+
expected = TimedeltaIndex([NaT], dtype="m8[ns]")
16001600
expected = tm.box_expected(expected, box_with_array)
16011601

16021602
result = left - right

pandas/tests/frame/indexing/test_setitem.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -1354,7 +1354,8 @@ def test_setitem_frame_dup_cols_dtype(self):
13541354

13551355
def test_frame_setitem_empty_dataframe(self):
13561356
# GH#28871
1357-
df = DataFrame({"date": [datetime(2000, 1, 1)]}).set_index("date")
1357+
dti = DatetimeIndex(["2000-01-01"], dtype="M8[ns]", name="date")
1358+
df = DataFrame({"date": dti}).set_index("date")
13581359
df = df[0:0].copy()
13591360

13601361
df["3010"] = None
@@ -1363,6 +1364,6 @@ def test_frame_setitem_empty_dataframe(self):
13631364
expected = DataFrame(
13641365
[],
13651366
columns=["3010", "2010"],
1366-
index=Index([], dtype="datetime64[ns]", name="date"),
1367+
index=dti[:0],
13671368
)
13681369
tm.assert_frame_equal(df, expected)

pandas/tests/frame/methods/test_quantile.py

+16-7
Original file line numberDiff line numberDiff line change
@@ -623,23 +623,23 @@ def test_quantile_nan(self, interp_method, request, using_array_manager):
623623
exp = DataFrame({"a": [3.0, 4.0], "b": [np.nan, np.nan]}, index=[0.5, 0.75])
624624
tm.assert_frame_equal(res, exp)
625625

626-
def test_quantile_nat(self, interp_method, request, using_array_manager):
626+
def test_quantile_nat(self, interp_method, request, using_array_manager, unit):
627627
interpolation, method = interp_method
628628
if method == "table" and using_array_manager:
629629
request.applymarker(pytest.mark.xfail(reason="Axis name incorrectly set."))
630630
# full NaT column
631-
df = DataFrame({"a": [pd.NaT, pd.NaT, pd.NaT]})
631+
df = DataFrame({"a": [pd.NaT, pd.NaT, pd.NaT]}, dtype=f"M8[{unit}]")
632632

633633
res = df.quantile(
634634
0.5, numeric_only=False, interpolation=interpolation, method=method
635635
)
636-
exp = Series([pd.NaT], index=["a"], name=0.5)
636+
exp = Series([pd.NaT], index=["a"], name=0.5, dtype=f"M8[{unit}]")
637637
tm.assert_series_equal(res, exp)
638638

639639
res = df.quantile(
640640
[0.5], numeric_only=False, interpolation=interpolation, method=method
641641
)
642-
exp = DataFrame({"a": [pd.NaT]}, index=[0.5])
642+
exp = DataFrame({"a": [pd.NaT]}, index=[0.5], dtype=f"M8[{unit}]")
643643
tm.assert_frame_equal(res, exp)
644644

645645
# mixed non-null / full null column
@@ -651,20 +651,29 @@ def test_quantile_nat(self, interp_method, request, using_array_manager):
651651
Timestamp("2012-01-03"),
652652
],
653653
"b": [pd.NaT, pd.NaT, pd.NaT],
654-
}
654+
},
655+
dtype=f"M8[{unit}]",
655656
)
656657

657658
res = df.quantile(
658659
0.5, numeric_only=False, interpolation=interpolation, method=method
659660
)
660-
exp = Series([Timestamp("2012-01-02"), pd.NaT], index=["a", "b"], name=0.5)
661+
exp = Series(
662+
[Timestamp("2012-01-02"), pd.NaT],
663+
index=["a", "b"],
664+
name=0.5,
665+
dtype=f"M8[{unit}]",
666+
)
661667
tm.assert_series_equal(res, exp)
662668

663669
res = df.quantile(
664670
[0.5], numeric_only=False, interpolation=interpolation, method=method
665671
)
666672
exp = DataFrame(
667-
[[Timestamp("2012-01-02"), pd.NaT]], index=[0.5], columns=["a", "b"]
673+
[[Timestamp("2012-01-02"), pd.NaT]],
674+
index=[0.5],
675+
columns=["a", "b"],
676+
dtype=f"M8[{unit}]",
668677
)
669678
tm.assert_frame_equal(res, exp)
670679

pandas/tests/frame/test_reductions.py

+14-6
Original file line numberDiff line numberDiff line change
@@ -598,7 +598,7 @@ def test_sem(self, datetime_frame):
598598
"C": [1.0],
599599
"D": ["a"],
600600
"E": Categorical(["a"], categories=["a"]),
601-
"F": to_datetime(["2000-1-2"]),
601+
"F": pd.DatetimeIndex(["2000-01-02"], dtype="M8[ns]"),
602602
"G": to_timedelta(["1 days"]),
603603
},
604604
),
@@ -610,7 +610,7 @@ def test_sem(self, datetime_frame):
610610
"C": [np.nan],
611611
"D": np.array([np.nan], dtype=object),
612612
"E": Categorical([np.nan], categories=["a"]),
613-
"F": [pd.NaT],
613+
"F": pd.DatetimeIndex([pd.NaT], dtype="M8[ns]"),
614614
"G": to_timedelta([pd.NaT]),
615615
},
616616
),
@@ -621,7 +621,9 @@ def test_sem(self, datetime_frame):
621621
"I": [8, 9, np.nan, np.nan],
622622
"J": [1, np.nan, np.nan, np.nan],
623623
"K": Categorical(["a", np.nan, np.nan, np.nan], categories=["a"]),
624-
"L": to_datetime(["2000-1-2", "NaT", "NaT", "NaT"]),
624+
"L": pd.DatetimeIndex(
625+
["2000-01-02", "NaT", "NaT", "NaT"], dtype="M8[ns]"
626+
),
625627
"M": to_timedelta(["1 days", "nan", "nan", "nan"]),
626628
"N": [0, 1, 2, 3],
627629
},
@@ -633,7 +635,9 @@ def test_sem(self, datetime_frame):
633635
"I": [8, 9, np.nan, np.nan],
634636
"J": [1, np.nan, np.nan, np.nan],
635637
"K": Categorical([np.nan, "a", np.nan, np.nan], categories=["a"]),
636-
"L": to_datetime(["NaT", "2000-1-2", "NaT", "NaT"]),
638+
"L": pd.DatetimeIndex(
639+
["NaT", "2000-01-02", "NaT", "NaT"], dtype="M8[ns]"
640+
),
637641
"M": to_timedelta(["nan", "1 days", "nan", "nan"]),
638642
"N": [0, 1, 2, 3],
639643
},
@@ -648,13 +652,17 @@ def test_mode_dropna(self, dropna, expected):
648652
"C": [1, np.nan, np.nan, np.nan],
649653
"D": [np.nan, np.nan, "a", np.nan],
650654
"E": Categorical([np.nan, np.nan, "a", np.nan]),
651-
"F": to_datetime(["NaT", "2000-1-2", "NaT", "NaT"]),
655+
"F": pd.DatetimeIndex(
656+
["NaT", "2000-01-02", "NaT", "NaT"], dtype="M8[ns]"
657+
),
652658
"G": to_timedelta(["1 days", "nan", "nan", "nan"]),
653659
"H": [8, 8, 9, 9],
654660
"I": [9, 9, 8, 8],
655661
"J": [1, 1, np.nan, np.nan],
656662
"K": Categorical(["a", np.nan, "a", np.nan]),
657-
"L": to_datetime(["2000-1-2", "2000-1-2", "NaT", "NaT"]),
663+
"L": pd.DatetimeIndex(
664+
["2000-01-02", "2000-01-02", "NaT", "NaT"], dtype="M8[ns]"
665+
),
658666
"M": to_timedelta(["1 days", "nan", "1 days", "nan"]),
659667
"N": np.arange(4, dtype="int64"),
660668
}

pandas/tests/groupby/methods/test_groupby_shift_diff.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -117,10 +117,11 @@ def test_group_diff_real_frame(any_real_numpy_dtype):
117117
[Timedelta("5 days"), Timedelta("6 days"), Timedelta("7 days")],
118118
],
119119
)
120-
def test_group_diff_datetimelike(data):
120+
def test_group_diff_datetimelike(data, unit):
121121
df = DataFrame({"a": [1, 2, 2], "b": data})
122+
df["b"] = df["b"].dt.as_unit(unit)
122123
result = df.groupby("a")["b"].diff()
123-
expected = Series([NaT, NaT, Timedelta("1 days")], name="b")
124+
expected = Series([NaT, NaT, Timedelta("1 days")], name="b").dt.as_unit(unit)
124125
tm.assert_series_equal(result, expected)
125126

126127

pandas/tests/groupby/test_timegrouper.py

+18-6
Original file line numberDiff line numberDiff line change
@@ -98,11 +98,17 @@ def test_groupby_with_timegrouper(self):
9898
for df in [df_original, df_reordered]:
9999
df = df.set_index(["Date"])
100100

101+
exp_dti = date_range(
102+
"20130901",
103+
"20131205",
104+
freq="5D",
105+
name="Date",
106+
inclusive="left",
107+
unit=df.index.unit,
108+
)
101109
expected = DataFrame(
102110
{"Buyer": 0, "Quantity": 0},
103-
index=date_range(
104-
"20130901", "20131205", freq="5D", name="Date", inclusive="left"
105-
),
111+
index=exp_dti,
106112
)
107113
# Cast to object to avoid implicit cast when setting entry to "CarlCarlCarl"
108114
expected = expected.astype({"Buyer": object})
@@ -514,6 +520,7 @@ def test_groupby_groups_datetimeindex(self):
514520
groups = grouped.groups
515521
assert isinstance(next(iter(groups.keys())), datetime)
516522

523+
def test_groupby_groups_datetimeindex2(self):
517524
# GH#11442
518525
index = date_range("2015/01/01", periods=5, name="date")
519526
df = DataFrame({"A": [5, 6, 7, 8, 9], "B": [1, 2, 3, 4, 5]}, index=index)
@@ -876,7 +883,9 @@ def test_groupby_apply_timegrouper_with_nat_dict_returns(
876883

877884
res = gb["Quantity"].apply(lambda x: {"foo": len(x)})
878885

879-
dti = date_range("2013-09-01", "2013-10-01", freq="5D", name="Date")
886+
df = gb.obj
887+
unit = df["Date"]._values.unit
888+
dti = date_range("2013-09-01", "2013-10-01", freq="5D", name="Date", unit=unit)
880889
mi = MultiIndex.from_arrays([dti, ["foo"] * len(dti)])
881890
expected = Series([3, 0, 0, 0, 0, 0, 2], index=mi, name="Quantity")
882891
tm.assert_series_equal(res, expected)
@@ -890,7 +899,9 @@ def test_groupby_apply_timegrouper_with_nat_scalar_returns(
890899

891900
res = gb["Quantity"].apply(lambda x: x.iloc[0] if len(x) else np.nan)
892901

893-
dti = date_range("2013-09-01", "2013-10-01", freq="5D", name="Date")
902+
df = gb.obj
903+
unit = df["Date"]._values.unit
904+
dti = date_range("2013-09-01", "2013-10-01", freq="5D", name="Date", unit=unit)
894905
expected = Series(
895906
[18, np.nan, np.nan, np.nan, np.nan, np.nan, 5],
896907
index=dti._with_freq(None),
@@ -919,9 +930,10 @@ def test_groupby_apply_timegrouper_with_nat_apply_squeeze(
919930
with tm.assert_produces_warning(FutureWarning, match=msg):
920931
res = gb.apply(lambda x: x["Quantity"] * 2)
921932

933+
dti = Index([Timestamp("2013-12-31")], dtype=df["Date"].dtype, name="Date")
922934
expected = DataFrame(
923935
[[36, 6, 6, 10, 2]],
924-
index=Index([Timestamp("2013-12-31")], name="Date"),
936+
index=dti,
925937
columns=Index([0, 1, 5, 2, 3], name="Quantity"),
926938
)
927939
tm.assert_frame_equal(res, expected)

pandas/tests/groupby/transform/test_transform.py

+13-8
Original file line numberDiff line numberDiff line change
@@ -115,12 +115,15 @@ def test_transform_fast2():
115115
)
116116
result = df.groupby("grouping").transform("first")
117117

118-
dates = [
119-
Timestamp("2014-1-1"),
120-
Timestamp("2014-1-2"),
121-
Timestamp("2014-1-2"),
122-
Timestamp("2014-1-4"),
123-
]
118+
dates = pd.Index(
119+
[
120+
Timestamp("2014-1-1"),
121+
Timestamp("2014-1-2"),
122+
Timestamp("2014-1-2"),
123+
Timestamp("2014-1-4"),
124+
],
125+
dtype="M8[ns]",
126+
)
124127
expected = DataFrame(
125128
{"f": [1.1, 2.1, 2.1, 4.5], "d": dates, "i": [1, 2, 2, 4]},
126129
columns=["f", "i", "d"],
@@ -532,7 +535,7 @@ def test_series_fast_transform_date():
532535
Timestamp("2014-1-2"),
533536
Timestamp("2014-1-4"),
534537
]
535-
expected = Series(dates, name="d")
538+
expected = Series(dates, name="d", dtype="M8[ns]")
536539
tm.assert_series_equal(result, expected)
537540

538541

@@ -1204,7 +1207,9 @@ def test_groupby_transform_with_datetimes(func, values):
12041207

12051208
result = stocks.groupby(stocks["week_id"])["price"].transform(func)
12061209

1207-
expected = Series(data=pd.to_datetime(values), index=dates, name="price")
1210+
expected = Series(
1211+
data=pd.to_datetime(values).as_unit("ns"), index=dates, name="price"
1212+
)
12081213

12091214
tm.assert_series_equal(result, expected)
12101215

pandas/tests/indexes/datetimes/methods/test_astype.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -292,7 +292,7 @@ def test_integer_index_astype_datetime(self, tz, dtype):
292292
# GH 20997, 20964, 24559
293293
val = [Timestamp("2018-01-01", tz=tz).as_unit("ns")._value]
294294
result = Index(val, name="idx").astype(dtype)
295-
expected = DatetimeIndex(["2018-01-01"], tz=tz, name="idx")
295+
expected = DatetimeIndex(["2018-01-01"], tz=tz, name="idx").as_unit("ns")
296296
tm.assert_index_equal(result, expected)
297297

298298
def test_dti_astype_period(self):
@@ -312,8 +312,9 @@ class TestAstype:
312312
def test_astype_category(self, tz):
313313
obj = date_range("2000", periods=2, tz=tz, name="idx")
314314
result = obj.astype("category")
315+
dti = DatetimeIndex(["2000-01-01", "2000-01-02"], tz=tz).as_unit("ns")
315316
expected = pd.CategoricalIndex(
316-
[Timestamp("2000-01-01", tz=tz), Timestamp("2000-01-02", tz=tz)],
317+
dti,
317318
name="idx",
318319
)
319320
tm.assert_index_equal(result, expected)

0 commit comments

Comments
 (0)