1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
U
¬ý°dHfã@sÀdZddlmZddlZzddlmZWnek
r@dZYnXddlZddl    Z    ddl
m Z m Z ddl mZddlZddlmZddlmZmZGdd    „d    ƒZGd
d „d ƒZGd d „d ƒZdS)z
Tests for DatetimeArray
é)Ú    timedeltaN)ÚZoneInfo)Únpy_unit_to_abbrevÚ
tz_compare)ÚDatetimeTZDtype)Ú DatetimeArrayÚTimedeltaArrayc @sVeZdZejdddgddd„ƒZejdd„ƒZejd    d
„ƒZejd d „ƒZd d„Z    ej
  de j e j¡dd„ƒZdd„Zdd„Zdd„Zej
 d¡dd„ƒZdd„Zdd„Zdd „Zej
  d!d"d#d$g¡d%d&„ƒZd'd(„Zd)d*„Zd+d,„Zd-d.„Zej
  d/ed0d1ejd0d1e  !d0d2¡e  !d3d¡ej" #d4¡ej" $d0¡g¡d5d6„ƒZ%d7d8„Z&d9d:„Z'd;S)<Ú TestNonNanoÚsÚmsÚus)ÚparamscCs|jS)z)Fixture returning parametrized time units)Úparam)ÚselfÚrequest©rúYd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/arrays/test_datetimes.pyÚunitszTestNonNano.unitcCs.|}|dkrt d|›d¡St||dSdS)Nz datetime64[ú])rÚtz)ÚnpÚdtyper)rrÚtz_naive_fixturerrrrr$szTestNonNano.dtypecCszt|ddƒ}tjddd|d}|dkr@t |¡ d|›d¡}n$t | d¡ d¡¡ d|›d¡}tj    ||d    }||fS)
Nrú
2016-01-01é7ÚD©ÚperiodsÚfreqrúM8[rÚUTC©r)
ÚgetattrÚpdÚ
date_rangerÚasarrayÚastypeÚ
tz_convertÚ tz_localizerÚ _simple_new)rrrrÚdtiÚarrÚdtarrrÚdta_dti,s 
ÿzTestNonNano.dta_dticCs |\}}|S©Nr)rr-r,r*rrrr,;szTestNonNano.dtacCs‚tjdtjd d|›d¡}tj||d}|j|ks:t‚|dj|ksLt‚t    |j
|dj
ƒsbt‚|d|dd…k  ¡s~t‚dS)Nér!rrré) rÚarangeÚint64Úviewrr)rÚAssertionErrorrrrÚall)rrrr+r,rrrÚ test_non_nano@s zTestNonNano.test_non_nanoÚfieldc    Cs>|\}}||k ¡st‚t||ƒ}t|j|ƒ}t ||¡dSr.)r5r4r"Ú_dataÚtmÚassert_numpy_array_equal)    rrr7rr-r,r*ÚresÚexpectedrrrÚ test_fieldsIs
 
 zTestNonNano.test_fieldscCs†tjdddd}t |¡ d|›d¡}tj||jd}|jrBt    ‚t | 
¡¡ d|›d¡}tj||jd}| 
¡}t   ||¡dS)Nz2016-01-01 06:00:00rr©rrrrr!) r#r$rr%r&rr)rÚ is_normalizedr4Ú    normalizer9Úassert_extension_array_equal)rrr*r+r,Úexpr<r;rrrÚtest_normalizeUs
zTestNonNano.test_normalizec    Csztjdtjd d|›d¡}t|dƒ}tj||d}|j|ksDt‚tddƒ}t    j
tddtj||dW5QRXdS)    Nr/r!rrr ÚnsÚ©Úmatch) rr1r2r3rrr)rr4ÚpytestÚraises)rrr+rr,ZwrongrrrÚtest_simple_new_requires_matchds
 
z*TestNonNano.test_simple_new_requires_matchcCsjtjdddd}t |¡ d|›d¡}tj||jd}| ¡}|j    |j    ksPt
‚|| ¡  |¡ksft
‚dS)Nrrrr>rrr!) r#r$rr%r&rr)rZstdÚ_cresor4Úfloor)rrr*r+r,r;rrrÚtest_std_non_nanoos zTestNonNano.test_std_non_nanoz.ignore:Converting to PeriodArray.*:UserWarningcCs.|\}}| d¡}|j d¡}t ||¡dS)Nr)Ú    to_periodr8r9rA©rr-r,r*Úresultr<rrrÚtest_to_periodzs
 zTestNonNano.test_to_periodcCsVtt|ƒƒ}|d}t|ƒtjks&t‚|j|jks6t‚|j|jksFt‚||ksRt‚dS)Nr)ÚnextÚiterÚtyper#Ú    Timestampr4Ú_valuerK)rr,r;r<rrrÚ    test_iter‚s  zTestNonNano.test_itercsDˆ t¡}t‡fdd„|Dƒƒs$t‚tdd„t|ˆƒDƒƒs@t‚dS)Nc3s|]}|jˆjkVqdSr.)rK)Ú.0Úx©r,rrÚ    <genexpr>sz1TestNonNano.test_astype_object.<locals>.<genexpr>css|]\}}||kVqdSr.r)rXrYÚyrrrr[Žs)r&Úobjectr5r4Úzip)rr,rPrrZrÚtest_astype_object‹s
zTestNonNano.test_astype_objectcCs(|\}}| ¡}| ¡}t ||¡dSr.)Ú to_pydatetimer9r:rOrrrÚtest_to_pydatetimeszTestNonNano.test_to_pydatetimeÚmethÚtimeÚtimetzÚdatecCs,|\}}t||ƒ}t||ƒ}t ||¡dSr.)r"r9r:)rr-rbr,r*rPr<rrrÚtest_time_date—s
 
zTestNonNano.test_time_datecCs*|\}}| ¡}|j ¡}t ||¡dSr.)Z_format_native_typesr8r9r:)rrrr-r,r*r;rBrrrÚtest_format_native_typesŸs
z$TestNonNano.test_format_native_typescCs0|\}}t|ƒt|jƒ dd|›¡ks,t‚dS)Nz[nsú[)Úreprr8Úreplacer4)rr-rr,r*rrrÚ    test_repr¨szTestNonNano.test_reprc CsF|}t tj¡}tj|j|jd|jgtjd}t |¡ d¡}| d¡}tj||j    d}tj||j    d}|t
j kr†t dddg¡}    nN|t
j kr¢t dddg¡}    n2|t
j t
jfkrÄt dddg¡}    nt dddg¡}    |||ƒ}
t |
|    ¡||d|ƒ}
t |
|    ¡|t
j t
j fkrB||j|jƒ} t | dd…|    dd…¡dS)Nr0r!úM8[ns]úM8[s]FT)rÚiinfor2ÚarrayÚminÚmaxr3rr)rÚoperatorÚeqÚneÚltÚler9r:Ú_ndarray) rÚ comparison_opÚoprnÚvalsr+Zarr2ÚleftÚrightr<rPZnp_resrrrÚ#test_compare_mismatched_resolutions®s*  
 
 
 
  z/TestNonNano.test_compare_mismatched_resolutionscCsJtjdd}tjddd|}|j d¡}|| d¡}|jdksFt‚dS)Nr0)Ú microsecondsré©rr )r#Ú    Timedeltar$r8Úas_unitrr4)rÚtdr*r,r;rrrÚ(test_add_mismatched_reso_doesnt_downcastÑs
  z4TestNonNano.test_add_mismatched_reso_doesnt_downcastÚscalaré)ÚhoursÚhiÝméxc
Csˆ|\}}t |¡}t|j|jƒ}t|ƒ}||j |¡}||}    t |    |¡||}    t |    |¡||j |¡}||}    t |    |¡dSr.)    r#rrqrKrr8r‚r9rA)
rr-r…r,r*rƒZexp_resoZexp_unitr<rPrrrÚ-test_add_timedeltalike_scalar_mismatched_resoÜs 
  z9TestNonNano.test_add_timedeltalike_scalar_mismatched_resocCsbtjddd}|j d¡}|d d¡}||}||dj d¡}|jdksRt‚t ||¡dS)Nrrr€r rr
zm8[us])r#r$r8r‚rr4r9rA)rr*r,ÚtsrPr<rrrÚ%test_sub_datetimelike_scalar_mismatchùs z1TestNonNano.test_sub_datetimelike_scalar_mismatchcCsttjddd}|j d¡}| d¡}||}tjdddgdd}tj||jd}t     
||¡||}t     
||¡dS)    Nrrr€r
r rzm8[ms]r!) r#r$r8r‚rrorr)rr9rA)rr*r{r|rPZ
exp_valuesr<Zresult2rrrÚ!test_sub_datetime64_reso_mismatchs 
þ z-TestNonNano.test_sub_datetime64_reso_mismatchN)(Ú__name__Ú
__module__Ú __qualname__rHZfixturerrr-r,r6ÚmarkÚ parametrizerZ
_field_opsZ    _bool_opsr=rCrJrMÚfilterwarningsrQrWr_rarfrgrkr}r„rr#rrÚ timedelta64ÚoffsetsZMinuteZHourrŠrŒrrrrrr    sR
 
 
 
    
ÿ
     
 
    
    # 
 
 
 
 
úþ
 r    c@seZdZdd„ZdS)ÚTestDatetimeArrayComparisonsc    CsÒ|}tjddddd}t|ƒ}|j|jks.t‚|j|jks>t‚|}tjt|ƒt    d}|j
dkrd|}|||ƒ}t   ||¡|t  |¡t|ƒt|ƒ| t¡fD]0}|||ƒ}t   ||¡|||ƒ}t   ||¡qœdS)Nz    2016-01-1ZMSé    )rrrr!)rtÚgtru)r#r$rrr4rrZonesÚlenÚboolrŽr9r:roÚlistÚtupler&r])    rrxryr*r+r|r<rPÚotherrrrÚtest_cmp_dt64_arraylike_tznaives*
 
 û
 
z<TestDatetimeArrayComparisons.test_cmp_dt64_arraylike_tznaiveN)rŽrrržrrrrr–sr–c@sHeZdZdd„Zdd„Zdd„Zej ddd    g¡ej d
dd    d g¡d d „ƒƒZ    ej de
e j e j ddg¡dd„ƒZdd„Zdd„Zdd„Zdd„Zdd„Zej de d¡e d¡ ¡e d¡ ¡g¡dd„ƒZd d!„Zd"d#„Zej d$d%d&g¡d'd(„ƒZd)d*„Zd+d,„Zd-d.„Zej d/d0d1g¡d2d3„ƒZej d/d0d1g¡d4d5„ƒZ ej d
d6e   d6¡d7e  !d8¡ej"d9d:d;e j#d<d=d>d?d@dAe  #d<¡ $dB¡d?d@dAe d¡ %dC¡g    ¡ej d/d0d1g¡dDdE„ƒƒZ&dFdG„Z'dHdI„Z(dJdK„Z)dLdM„Z*dNdOgZ+e,dPk    r.z e,dNƒZ-Wne.k
r"Yn Xe+ /e-¡ej dQe+¡dRdS„ƒZ0dPS)TÚTestDatetimeArraycCs\tjddd}| d¡}|jdks&t‚|j}| d¡}|jdksDt‚t|tjjj    ƒsXt‚dS)Nrrr€rm)
r#r$r&rr4r8Ú
isinstanceÚcoreZarraysr)rr*r;r,rrrÚtest_astype_non_nano_tznaive9s
 
z.TestDatetimeArray.test_astype_non_nano_tznaivecCsžtjdddd}| d¡}|jdks(t‚|j}| d¡}|jdksFt‚| d¡}|jdks^t‚t ||¡rnt‚|jddd}|jdksŠt‚t ||¡sšt‚dS)    Nrrr ©rrzM8[s, US/Pacific]z
M8[s, UTC]F©Úcopy)r#r$r&rr4r8r9Z shares_memory)rr*r;r,Úres2Úres3rrrÚtest_astype_non_nano_tzawareDs
 
 
z.TestDatetimeArray.test_astype_non_nano_tzawarecCs:tjdgtddd}|jtdddd}||ks6t‚dS)NÚ2000ú
US/Central©rr!Fr¤)rÚ_from_sequencerr&r4)rr+rPrrrÚtest_astype_to_sameWs ÿz%TestDatetimeArray.test_astype_to_samerúdatetime64[ns]zdatetime64[ns, UTC]rzdatetime64[ns, CET]c    Cs–tjddg|d}| ¡}d}|dk|dkAr2d}|rn|dkrDd}nd}tjt|d    | |¡W5QRXn$| |¡}tj|dd…<t     ||¡dS)
Nr0r†r!Fr®Tz<Use obj.tz_localize instead or series.dt.tz_localize insteadz1from timezone-aware dtype to timezone-naive dtyperF)
r#ÚSeriesr¥rHrIÚ    TypeErrorr&ÚNaTr9Úassert_series_equal)rrrZserÚorigÚerrÚmsgÚtrrrÚtest_astype_copies^s
z$TestDatetimeArray.test_astype_copiesZuint32Zuint64c    Csxt t d¡t d¡g¡}t |¡tjkrRtjt    dd| 
|¡W5QRXdS| 
|¡}|j   d¡}t  ||¡dS)Nr©Z2001zDo obj.astype\('int64'\)rFÚi8)rr¬r#rUrrr2rHrIr°r&rwr3r9r:)rrr+rPr<rrrÚtest_astype_intxs
 z!TestDatetimeArray.test_astype_intcCs@tjddd}|j}| d¡}|jdks,t‚||k ¡s<t‚dS)Nrér€zSparse[datetime64[ns]])r#r$r8r&rr4r5)rr*r,rPrrrÚtest_astype_to_sparse_dt64…s
 
z,TestDatetimeArray.test_astype_to_sparse_dt64c    Cs:tjdgtddd}tjtdd d|_W5QRXdS)Nr©rªr«r!r(rFr )rr¬rrHrIÚAttributeErrorr)rr+rrrÚtest_tz_setter_raisesŽs ÿz'TestDatetimeArray.test_tz_setter_raisesc    Cs¦|}tjdddgdd}|dkr&|jnt|d}t||d}| ¡}t d¡ |¡}t    | d¡ƒ}||d<||d<t
  ||¡||d<||g|dd…<t
  ||¡dS)    Nr0r†rrlr!r«z2020-09-08 16:50r) rrorrrr¥r#rUr(Ústrr9Ú assert_equal)    rrrÚdatarr+r<r‹ÚsetterrrrÚtest_setitem_str_impute_tz•s  z,TestDatetimeArray.test_setitem_str_impute_tzc    Cs€tjdddgdd}t|dtddd    }tjtd
d t d ¡|d <W5QRXtjd dd}||d <|d |     d¡ks|t
‚dS)Nr0r†rrlr!Frªr«)r¥rz$Cannot compare tz-naive and tz-awarerFr©rú
US/Eastern) rrorrrHrIr°r#rUr'r4)rrÀr+r‹rrrÚ test_setitem_different_tz_raises¬sz2TestDatetimeArray.test_setitem_different_tz_raisescCs:ttjdddddƒ}tjddd|d<|jdks6t‚dS)Nr©r†rrªrr«r)rr#r$rUrr4)rÚarrrÚtest_setitem_clears_freq¸sz*TestDatetimeArray.test_setitem_clears_freqÚobjz
2021-01-01cCs2tjdddd}|j}||d<|d|ks.t‚dS)Nr©r†rr>r)r#r$r8r4)rrÇr*r+rrrÚtest_setitem_objects½s
z&TestDatetimeArray.test_setitem_objectscCsJtjddddd}t|ƒ}| ddg¡}t|jd|jd}t ||¡dS)Nr©r†rrªrr0)rr)r#r$rÚrepeatZasi8rr9r¿)rr*r+Zrepeatedr<rrrÚtest_repeat_preserves_tzÍs
z*TestDatetimeArray.test_repeat_preserves_tzcCsˆtjddddd}t|ƒ ddg¡}| ¡}|j |¡s<t‚tj|d<|jd    d
}tj    ddd g|d |d tjgd d}t
  ||¡dS)Nr©r†rrªrrºréþÿÿÿF)Zdropnar0rÚcount)ÚindexÚname) r#r$rrÉZ value_countsrÍÚequalsr4r±r¯r9r²)rr*r+rPr<rrrÚtest_value_counts_preserves_tz×s
 &z0TestDatetimeArray.test_value_counts_preserves_tzÚmethodÚpadÚbackfillcCs¶tjddddd}t|dd}tj|d<|d    kr8|d
n|d }tj|d |d
||d |d gtddd}|j|d}t ||¡|dtjks˜t    ‚|dtj
dddks²t    ‚dS)Nz
2000-01-01r/rrªrTr¤r†rÒr0rrrºr«r!©rÑz
2000-01-03) r#r$rr±r¬rÚfillnar9rAr4rU)rrÑr*r+Zfill_valr<rPrrrÚtest_fillna_preserves_tzås 
þ  z*TestDatetimeArray.test_fillna_preserves_tzc Csdtjdddd}|j dd¡ ¡}tj|d<tj|d<|jd    d
}| ¡}|d |d<t ||¡|jd d
}| ¡}| ¡}|d |d<|d|d<t ||¡|     |j
jdd¡}|j
j dsÆt ‚|j
j drÖt ‚t ||¡|jd    d
}t ||¡|jd d
}    t |    |¡t  |¡}
|
jd    d
} t  |¡} t | | ¡|
jd d
} t  |¡} t | | ¡dS)Nréú
US/Pacificr£rr†)rr0)r0rrÒrÔ)rrrÓ)r†r)r0r0ÚF)ÚorderZ F_CONTIGUOUSZ C_CONTIGUOUS)r#r$r8Úreshaper¥r±rÕr9rAZ_from_backing_datarwÚflagsr4Z    DataFrameZassert_frame_equal) rr*r,Zres1Z    expected1r¦Z    expected2Zdta2r§Zres4Zdfr;r<rrrÚtest_fillna_2døs:
 
 
 
 
z TestDatetimeArray.test_fillna_2dcCsžd}ttjdd|dƒ}t |¡}tjtjd|dtjd|dgtd}t     ||¡tj|td}t     ||¡tj|d    d}tjd
d gd    d}t     ||¡dS) NrªÚ2017r†r£ú2017-01-01T00:00:00r«ú2017-01-02T00:00:00r!rlz2017-01-01T06:00:00z2017-01-02T06:00:00)
rr#r$rr%rorUr]r9r:)rrrÀrPr<rrrÚtest_array_interface_tz!s$
  þû  ÿz)TestDatetimeArray.test_array_interface_tzcCsvttjdddƒ}tjddgdd}t |¡}t ||¡tj|td}tjt     d¡t     d¡gtd}t ||¡dS)NrÞr†r€rßràr®r!)
rr#r$rror%r9r:r]rU)rrÀr<rPrrrÚtest_array_interface9sÿ
 þz&TestDatetimeArray.test_array_interfacerÍTFcCs¢tjdddddd}t|dd d    ¡}|r:t |¡}| |d
¡}| |d
 d ¡¡}||ksht‚| |d
d …¡}| |d
d … d ¡¡}t     
||¡dS) Né
r¸r!éééʚ;r©rú
Asia/Tokyor†r r×) rr1rr(r#ÚIndexÚ searchsortedr'r4r9r¿)rrÍrÀr+r<rPrrrÚtest_searchsorted_different_tzIs
 z0TestDatetimeArray.test_searchsorted_different_tzc    CsÞtjdddddd}t|dd}|r4t |¡}| d    ¡}d
}tjt|d |     |d ¡W5QRXtjt|d |     |¡W5QRXtjt|d |     |d ¡W5QRXtjt|d |     |¡W5QRXdS) Nrãr¸r!rärårærrçrèz:Cannot compare tz-naive and tz-aware datetime-like objectsrFr)
rr1rr#rér(rHrIr°rê)rrÍrÀr+ZmismatchrµrrrÚ$test_searchsorted_tzawareness_compatXs 
 
z6TestDatetimeArray.test_searchsorted_tzawareness_compatr0gð?r±r†)ÚdaysÚinvalidrãr¸r!räråræztimedelta64[ns]rc    Csjtjdddddd}t|dd}|r4t |¡}d     d
d g¡}tjt|d |     |¡W5QRXdS) Nrãr¸r!rärårærrçú|z0searchsorted requires compatible dtype or scalarz<value should be a 'Timestamp', 'NaT', or array of those. GotrF)
rr1rr#réÚjoinrHrIr°rê)rrrÍrÀr+rµrrrÚtest_searchsorted_invalid_typesls 
þÿz1TestDatetimeArray.test_searchsorted_invalid_typescCs¬tjddd}|j}tt |jd¡ƒ}|d}|| ¡| ¡fD]}|j    d|d}t
  ||¡q@|  d¡}|  d¡}|d}|| ¡fD]}|j    d|d}t
  ||¡qˆdS)Nrrr€r0éÿÿÿÿ©Ú
fill_valuer ) r#r$r8rrZrollrwr`Ú to_datetime64Úshiftr9Úassert_datetime_array_equalr()rr*r,r<ÚfvrôrPrrrÚtest_shift_fill_valueŠs
 
z'TestDatetimeArray.test_shift_fill_valuec
Cs¸tjddd}|j}|d d¡}|| ¡fD],}tjtdd|jd|d    W5QRXq.| d¡}|d d¡}|| ¡|     ¡fD],}tjtdd|jd|d    W5QRXq†dS)
Nrrr€ròr zCannot comparerFr0ró)
r#r$r8r(r`rHrIr°rörõ)rr*r,rørîrrrÚ%test_shift_value_tzawareness_mismatchœs
z7TestDatetimeArray.test_shift_value_tzawareness_mismatchcCsVtjdddd}|j}tjddd}|jd|d    }|jd| d¡d    }t ||¡dS)
Nrrr r£z2020-10-18 18:44rØr«r0ró)r#r$r8rUrör'r9r¿)rr*r,rôrPr<rrrÚtest_shift_requires_tzmatch¬s z-TestDatetimeArray.test_shift_requires_tzmatchcCsdtjdddd}|j dd¡}| d¡}| ¡ d¡ |j¡}t ||¡| d¡}t ||¡dS)Nz
1994-05-12é rØr£rrº)    r#r$r8rÛr(ZravelÚshaper9r÷)rr*r,rPr<Z    roundtriprrrÚtest_tz_localize_t2d¸s
 
z&TestDatetimeArray.test_tz_localize_t2drÃzdateutil/US/EasternNrcCsªtjddddgtjd}|d9}t|ƒ d¡ |¡}|d}t|ƒd}t|ƒt|ƒks\t‚|     ¡|     ¡kspt‚| 
t ¡d}t|ƒt|ƒks’t‚|     ¡|     ¡ks¦t‚dS)    Ni@¶NiP¶Ni`"¶Nip0¶Nr!rær r†) rror2rr(r'r›r¾r4Ú    utcoffsetr&r])rrZutc_valsr,r{r|Zright2rrrÚtest_iter_zoneinfo_foldÍs
ÿ z)TestDatetimeArray.test_iter_zoneinfo_fold)1rŽrrr¢r¨r­rHr‘r’r·ÚintrÚint32r2r¹r»r½rÂrÄrÆr#rUrõr`rÈrÊrÐrÖrÝrárârërìr”rr1r3rNrñrùrúrûrþZeastsrrÚKeyErrorÚappendrrrrrrŸ8s~ ÿ 
       ýþ
 
 
)
 
 
÷þ   
 
 rŸ)Ú__doc__ÚdatetimerrrZzoneinforÚ ImportErrorÚnumpyrrHZpandas._libs.tslibsrrZpandas.core.dtypes.dtypesrZpandasr#Zpandas._testingZ_testingr9Zpandas.core.arraysrrr    r–rŸrrrrÚ<module>s" 
  w$