Skip to content

Commit 1c606d5

Browse files
authored
TST: dt64 unit in tests (#56126)
1 parent 68ef1da commit 1c606d5

24 files changed

+182
-226
lines changed

pandas/core/tools/datetimes.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -495,7 +495,8 @@ def _convert_listlike_datetimes(
495495
if tz_parsed is not None:
496496
# We can take a shortcut since the datetime64 numpy array
497497
# is in UTC
498-
dtype = cast(DatetimeTZDtype, tz_to_dtype(tz_parsed))
498+
out_unit = np.datetime_data(result.dtype)[0]
499+
dtype = cast(DatetimeTZDtype, tz_to_dtype(tz_parsed, out_unit))
499500
dt64_values = result.view(f"M8[{dtype.unit}]")
500501
dta = DatetimeArray._simple_new(dt64_values, dtype=dtype)
501502
return DatetimeIndex._simple_new(dta, name=name)

pandas/tests/arithmetic/test_timedelta64.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1039,7 +1039,7 @@ def test_td64arr_add_datetime64_nat(self, box_with_array):
10391039
other = np.datetime64("NaT")
10401040

10411041
tdi = timedelta_range("1 day", periods=3)
1042-
expected = DatetimeIndex(["NaT", "NaT", "NaT"])
1042+
expected = DatetimeIndex(["NaT", "NaT", "NaT"], dtype="M8[ns]")
10431043

10441044
tdser = tm.box_expected(tdi, box_with_array)
10451045
expected = tm.box_expected(expected, box_with_array)

pandas/tests/dtypes/test_dtypes.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,8 @@ def test_is_boolean(self, categories, expected):
200200

201201
def test_dtype_specific_categorical_dtype(self):
202202
expected = "datetime64[ns]"
203-
result = str(Categorical(DatetimeIndex([])).categories.dtype)
203+
dti = DatetimeIndex([], dtype=expected)
204+
result = str(Categorical(dti).categories.dtype)
204205
assert result == expected
205206

206207
def test_not_string(self):

pandas/tests/frame/methods/test_transpose.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@ def test_transpose_td64_intervals(self):
2929

3030
def test_transpose_empty_preserves_datetimeindex(self):
3131
# GH#41382
32-
df = DataFrame(index=DatetimeIndex([]))
32+
dti = DatetimeIndex([], dtype="M8[ns]")
33+
df = DataFrame(index=dti)
3334

3435
expected = DatetimeIndex([], dtype="datetime64[ns]", freq=None)
3536

pandas/tests/indexes/datetimes/test_date_range.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,7 @@ def test_date_range_edges(self, freq):
183183
)
184184
exp = DatetimeIndex(
185185
[ts + n * td for n in range(1, 5)],
186+
dtype="M8[ns]",
186187
freq=freq,
187188
)
188189
tm.assert_index_equal(idx, exp)
@@ -193,7 +194,7 @@ def test_date_range_edges(self, freq):
193194
end=ts + td,
194195
freq=freq,
195196
)
196-
exp = DatetimeIndex([], freq=freq)
197+
exp = DatetimeIndex([], dtype="M8[ns]", freq=freq)
197198
tm.assert_index_equal(idx, exp)
198199

199200
# start matches end
@@ -202,7 +203,7 @@ def test_date_range_edges(self, freq):
202203
end=ts + td,
203204
freq=freq,
204205
)
205-
exp = DatetimeIndex([ts + td], freq=freq)
206+
exp = DatetimeIndex([ts + td], dtype="M8[ns]", freq=freq)
206207
tm.assert_index_equal(idx, exp)
207208

208209
def test_date_range_near_implementation_bound(self):

pandas/tests/indexes/datetimes/test_scalar_compat.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -304,7 +304,7 @@ def test_dti_fields(self, tz):
304304
exp = dti[[0, 90, 181, 273]]
305305
tm.assert_index_equal(res, exp)
306306
res = dti[dti.is_leap_year]
307-
exp = DatetimeIndex([], freq="D", tz=dti.tz, name="name")
307+
exp = DatetimeIndex([], freq="D", tz=dti.tz, name="name").as_unit("ns")
308308
tm.assert_index_equal(res, exp)
309309

310310
def test_dti_is_year_quarter_start(self):

pandas/tests/indexes/datetimes/test_setops.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ def test_union(self, tz, sort):
7373
expected2_notsorted = DatetimeIndex(list(other2) + list(rng2[:3]))
7474

7575
rng3 = date_range("1/1/2000", freq="D", periods=5, tz=tz)
76-
other3 = DatetimeIndex([], tz=tz)
76+
other3 = DatetimeIndex([], tz=tz).as_unit("ns")
7777
expected3 = date_range("1/1/2000", freq="D", periods=5, tz=tz)
7878
expected3_notsorted = rng3
7979

@@ -235,7 +235,7 @@ def test_intersection(self, tz, sort):
235235
expected3 = date_range("6/1/2000", "6/20/2000", freq="D", name=None)
236236

237237
rng4 = date_range("7/1/2000", "7/31/2000", freq="D", name="idx")
238-
expected4 = DatetimeIndex([], freq="D", name="idx")
238+
expected4 = DatetimeIndex([], freq="D", name="idx", dtype="M8[ns]")
239239

240240
for rng, expected in [
241241
(rng2, expected2),
@@ -265,7 +265,7 @@ def test_intersection(self, tz, sort):
265265

266266
# GH 7880
267267
rng4 = date_range("7/1/2000", "7/31/2000", freq="D", tz=tz, name="idx")
268-
expected4 = DatetimeIndex([], tz=tz, name="idx")
268+
expected4 = DatetimeIndex([], tz=tz, name="idx").as_unit("ns")
269269
assert expected4.freq is None
270270

271271
for rng, expected in [
@@ -536,7 +536,7 @@ def test_intersection(self):
536536

537537
# non-overlapping
538538
the_int = rng[:10].intersection(rng[10:])
539-
expected = DatetimeIndex([])
539+
expected = DatetimeIndex([]).as_unit("ns")
540540
tm.assert_index_equal(the_int, expected)
541541

542542
def test_intersection_bug(self):

pandas/tests/indexes/interval/test_interval.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -388,7 +388,7 @@ def test_maybe_convert_i8_nat(self, breaks):
388388
# GH 20636
389389
index = IntervalIndex.from_breaks(breaks)
390390

391-
to_convert = breaks._constructor([pd.NaT] * 3)
391+
to_convert = breaks._constructor([pd.NaT] * 3).as_unit("ns")
392392
expected = Index([np.nan] * 3, dtype=np.float64)
393393
result = index._maybe_convert_i8(to_convert)
394394
tm.assert_index_equal(result, expected)

pandas/tests/indexes/period/test_partial_slicing.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ def test_range_slice_outofbounds(self, make_range):
117117
idx = make_range(start="2013/10/01", freq="D", periods=10)
118118

119119
df = DataFrame({"units": [100 + i for i in range(10)]}, index=idx)
120-
empty = DataFrame(index=type(idx)([], freq="D"), columns=["units"])
120+
empty = DataFrame(index=idx[:0], columns=["units"])
121121
empty["units"] = empty["units"].astype("int64")
122122

123123
tm.assert_frame_equal(df["2013/09/01":"2013/09/30"], empty)

pandas/tests/io/formats/test_format.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -872,20 +872,22 @@ def test_to_string_truncate_multilevel(self):
872872
with option_context("display.max_rows", 7, "display.max_columns", 7):
873873
assert has_doubly_truncated_repr(df)
874874

875-
def test_truncate_with_different_dtypes(self):
875+
@pytest.mark.parametrize("dtype", ["object", "datetime64[us]"])
876+
def test_truncate_with_different_dtypes(self, dtype):
876877
# 11594, 12045
877878
# when truncated the dtypes of the splits can differ
878879

879880
# 11594
880-
s = Series(
881+
ser = Series(
881882
[datetime(2012, 1, 1)] * 10
882883
+ [datetime(1012, 1, 2)]
883-
+ [datetime(2012, 1, 3)] * 10
884+
+ [datetime(2012, 1, 3)] * 10,
885+
dtype=dtype,
884886
)
885887

886888
with option_context("display.max_rows", 8):
887-
result = str(s)
888-
assert "object" in result
889+
result = str(ser)
890+
assert dtype in result
889891

890892
def test_truncate_with_different_dtypes2(self):
891893
# 12045

0 commit comments

Comments
 (0)