@@ -37,6 +37,26 @@ def dtype(self, unit, tz_naive_fixture):
37
37
else :
38
38
return DatetimeTZDtype (unit = unit , tz = tz )
39
39
40
+ @pytest .fixture
41
+ def dta_dti (self , unit , dtype ):
42
+ tz = getattr (dtype , "tz" , None )
43
+
44
+ dti = pd .date_range ("2016-01-01" , periods = 55 , freq = "D" , tz = tz )
45
+ if tz is None :
46
+ arr = np .asarray (dti ).astype (f"M8[{ unit } ]" )
47
+ else :
48
+ arr = np .asarray (dti .tz_convert ("UTC" ).tz_localize (None )).astype (
49
+ f"M8[{ unit } ]"
50
+ )
51
+
52
+ dta = DatetimeArray ._simple_new (arr , dtype = dtype )
53
+ return dta , dti
54
+
55
+ @pytest .fixture
56
+ def dta (self , dta_dti ):
57
+ dta , dti = dta_dti
58
+ return dta
59
+
40
60
def test_non_nano (self , unit , reso , dtype ):
41
61
arr = np .arange (5 , dtype = np .int64 ).view (f"M8[{ unit } ]" )
42
62
dta = DatetimeArray ._simple_new (arr , dtype = dtype )
@@ -52,17 +72,8 @@ def test_non_nano(self, unit, reso, dtype):
52
72
@pytest .mark .parametrize (
53
73
"field" , DatetimeArray ._field_ops + DatetimeArray ._bool_ops
54
74
)
55
- def test_fields (self , unit , reso , field , dtype ):
56
- tz = getattr (dtype , "tz" , None )
57
- dti = pd .date_range ("2016-01-01" , periods = 55 , freq = "D" , tz = tz )
58
- if tz is None :
59
- arr = np .asarray (dti ).astype (f"M8[{ unit } ]" )
60
- else :
61
- arr = np .asarray (dti .tz_convert ("UTC" ).tz_localize (None )).astype (
62
- f"M8[{ unit } ]"
63
- )
64
-
65
- dta = DatetimeArray ._simple_new (arr , dtype = dtype )
75
+ def test_fields (self , unit , reso , field , dtype , dta_dti ):
76
+ dta , dti = dta_dti
66
77
67
78
# FIXME: assert (dti == dta).all()
68
79
@@ -107,6 +118,14 @@ def test_std_non_nano(self, unit):
107
118
assert res ._reso == dta ._reso
108
119
assert res == dti .std ().floor (unit )
109
120
121
+ @pytest .mark .filterwarnings ("ignore:Converting to PeriodArray.*:UserWarning" )
122
+ def test_to_period (self , dta_dti ):
123
+ dta , dti = dta_dti
124
+ result = dta .to_period ("D" )
125
+ expected = dti ._data .to_period ("D" )
126
+
127
+ tm .assert_extension_array_equal (result , expected )
128
+
110
129
111
130
class TestDatetimeArrayComparisons :
112
131
# TODO: merge this into tests/arithmetic/test_datetime64 once it is
0 commit comments