zmc
2023-08-08 e792e9a60d958b93aef96050644f369feb25d61b
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
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
U
¬ý°d»ã @sÜddlmZddlZddlZddlZddlZddlmZm    Z    m
Z
ddl m m ZddlZddlmZmZmZmZddlmZddlmZmZmZmZddlmZddlm Z ej!dd    d
d d d gddd„ƒZ"ej!dd„ƒZ#ej!dd„ƒZ$ej!dd„ƒZ%Gdd„dƒZ&Gdd„de&ƒZ'Gdd„de&ƒZ(Gdd„de&ƒZ)ej*j+ded d!d"gƒj,ee -d"d#¡ffej.d$d%dd&j,ee /d"d#¡ffej0d$d%dd&j,effgd'd(„d)d*d+„ƒZ1ej*j+d,ed d!d"gƒj,e /d"d#¡ej2ffej.d$d%dd&j,e -d"d#¡ej2ffej0d$d%dd&j,e /d"d#¡e -d"d#¡ej2ffgd-d(„d)d.d/„ƒZ3ej* +d0ej.d1d2d3jej4d1d2d3jg¡d4d5„ƒZ5ej* +d6d7d8g¡ej* +d9e 6d:d;g¡ed<d=gdd>ed:d;gdd?g¡ej* +d@e7ejejej8ej9ej:ej;g¡dAdB„ƒƒƒZ<ej* +d9e 6d:d;g¡ed<d=gdd>ed:d;gdd?g¡ej* +dCd<d=gdDdEge
d:dFdGgd=g¡dHdI„ƒƒZ=ej* +d@e7e>ejej8g¡dJdK„ƒZ?ej* +dLdMdNg¡dOdP„ƒZ@ej!dQdRejAdSe BdT¡dUejAdVe BdV¡dUgddWdX„ƒZCej* +dLdMdNg¡dYdZ„ƒZDdS)[é)Ú annotationsN)ÚNaTÚOutOfBoundsDatetimeÚ    Timestamp)Ú DatetimeIndexÚPeriodÚ PeriodIndexÚTimedeltaIndex)Ú DatetimeArrayÚ PandasArrayÚ PeriodArrayÚTimedeltaArray)Ú_sequence_to_dt64ns)Úsequence_to_td64nsÚDÚBÚWÚMÚQÚY)ÚparamscCs|jS)z:Fixture returning parametrized frequency in string format.)Úparam)Úrequest©rú\d:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/arrays/test_datetimelike.pyÚfreqstr#srcCstjtdƒd|d}|S)zò
    A fixture to provide PeriodIndex objects with different frequencies.
 
    Most PeriodArray behavior is already tested in PeriodIndex tests,
    so here we just test that the PeriodArray behavior matches
    the PeriodIndex behavior.
    ú
2000-01-01éd©ÚstartÚperiodsÚfreq)ÚpdÚ period_ranger)rÚpirrrÚ period_index)s
r%cCstjtdƒd|d}|S)zü
    A fixture to provide DatetimeIndex objects with different frequencies.
 
    Most DatetimeArray behavior is already tested in DatetimeIndex tests,
    so here we just test that the DatetimeArray behavior matches
    the DatetimeIndex behavior.
    rrr)r"Ú
date_ranger)rÚdtirrrÚdatetime_index7s
r(cCstdddgƒS)a
    A fixture to provide TimedeltaIndex objects with different frequencies.
     Most TimedeltaArray behavior is already tested in TimedeltaIndex tests,
    so here we just test that the TimedeltaArray behavior matches
    the TimedeltaIndex behavior.
    ú1 Dayú3 Hoursr)r    rrrrÚtimedelta_indexEs    r+c @seZdZUded<ejdd„ƒZdd„Zej     de
j dd    d
e
j dd    d d e
j d d    d
e
j dd    ddg¡dd„ƒZej     dddg¡ej     dddg¡dd„ƒƒZdd„Zej     dddedddd ƒjg¡d!d"„ƒZd#d$„Zd%d&„Zd'd(„Zd)d*„Zd+d,„Zd-d.„Zd/d0„Zej     d1d2d3g¡d4d5„ƒZd6d7„Zej     d8d9d:d;g¡d<d=„ƒZd>d?„Zd@dA„ZdBdC„Z dDdE„Z!dFdG„Z"ej     d8e
j#e
j$e%j&e'e(g¡dHdI„ƒZ)dJdK„Z*ej     dddg¡dLdM„ƒZ+dNdO„Z,ej     d8e'e%j&e
j#e
j$g¡dPdQ„ƒZ-dRdS„Z.dTdU„Z/dVdW„Z0dXdY„Z1d9S)ZÚ SharedTestsz2type[DatetimeIndex | PeriodIndex | TimedeltaIndex]Ú    index_clscCs,tjdddddd}|j|dd}|S)    z5Fixture returning DatetimeArray with daily frequency.é
Úi8©Údtypeéééʚ;r©r!)ÚnpÚarangeÚ    array_cls©ÚselfÚdataÚarrrrrÚarr1dTszSharedTests.arr1dc    Csd|}| |¡}tjtdd||dd…kW5QRXtjtdd||dgkW5QRXdS)NzLengths must match©Úmatchér)r-ÚpytestÚraisesÚ
ValueError)r:r=r<ÚidxrrrÚtest_compare_len1_raises[s 
z$SharedTests.test_compare_len1_raisesÚresultZ2020é©r ÚUTC)r Útzz0 daysÚ2020Q1r©r r!cCs.t |¡}t||kƒst‚t||kƒr*t‚dS©N)r"Ú CategoricalÚallÚAssertionErrorÚany)r:rFÚexpectedrrrÚtest_compare_with_Categoricalhs
 
z)SharedTests.test_compare_with_CategoricalÚreverseTFÚas_indexc CsÎtj||d}|rt |¡}||}}|r4||}}tj|jtd}|}    ||k}
t |
|¡||k}
t |
|    ¡|sÊ|sÊ||k}
t |
|    ¡||k}
t |
|¡||k}
t |
|    ¡||k}
t |
|¡dS)N)Úorderedr0)    r"rNÚCategoricalIndexr6ÚonesÚshapeÚboolÚtmÚassert_numpy_array_equal) r:r=rUrTrVÚotherÚleftÚrightrXÚzerosrFrrrÚtest_compare_categorical_dtypevs*
 
 
     z*SharedTests.test_compare_categorical_dtypecCs¼tjdddddd}tj |¡|jtk    r4dnd}|j||d}|j |¡}d    d
d g}| |¡}| |¡}t     
| |¡|¡t  d    d
d g¡}| |¡}| |¡}t     
| |¡|¡dS) Nrr/r0r2r3r4rr5r@éé^) r6r7ÚrandomÚshuffler8r r-Ú _simple_newÚtaker[Úassert_index_equalÚarray)r:r;r!r<rDZtakersrFrRrrrÚ    test_take™s  
 
 
 
 
zSharedTests.test_takeÚ
fill_valueég@iår@é c    Csjtjdddddd}|j|dd}d    |jj›d
}tjt|d |jd d gd|dW5QRXdS)Nr.r/r0r2r3r4rr5úvalue should be a 'ú' or 'NaT'. Gotr>rr@T©Z
allow_fillrk)    r6r7r8Ú _scalar_typeÚ__name__rArBÚ    TypeErrorrg)r:rkr;r<ÚmsgrrrÚtest_take_fill_raises®s
z!SharedTests.test_take_fill_raisescCsštjdddddd}|j|dd}|jd    d
gd dd }|d tksLt‚|jd    d
gd tjd }|d tksrt‚|jd    d
gd td }|d tks–t‚dS)Nr.r/r0r2r3r4rr5éÿÿÿÿr@Trpr)r6r7r8rgrrPÚnan©r:r;r<rFrrrÚtest_take_fill¸szSharedTests.test_take_fillc    Csv|jddgdt|dƒd}|ddg}t ||¡d|jj›d}tjt|d|jddgdddW5QRXdS)    Nrvr@Trprnror>Úfoo)    rgÚstrr[Ú assert_equalrqrrrArBrs)r:r=rFrRrtrrrÚtest_take_fill_strÆs   zSharedTests.test_take_fill_strcCsŒ|}| |¡}| dt¡}| |¡}| |dd…|dd…|g¡}| t¡}| t |dd…|dd…|g¡d¡}t     
| |¡|¡dS)Nrrvr@) r-Úinsertrr8Ú_concat_same_typeÚastypeÚobjectr6Z concatenater[rh)r:r=r<rDrFÚarr2rRrrrÚtest_concat_same_typeÐs
 
 
(z!SharedTests.test_concat_same_typec    Csžtjdddddd}|j|dd}| |d    ¡}|jjj}t||ƒsNt‚| t    ¡}t||ƒsft‚d
|j
j ›d }t j t|d | d ¡W5QRXdS)Nr.r/r0r2r3r4rr5rz'value' should be a Ú.r>rz)r6r7r8Z _unbox_scalarÚ_ndarrayr1ÚtypeÚ
isinstancerPrÚ scalar_typerrrArBrC)r:r;r<rFrRrtrrrÚtest_unbox_scalarÜs
 
zSharedTests.test_unbox_scalarcCsVtjdddddd}|j|dd}| |d    ¡| |dd
…¡| t¡dS) Nr.r/r0r2r3r4rr5rr@)r6r7r8Z_check_compatible_withrr9rrrÚtest_check_compatible_withês
z&SharedTests.test_check_compatible_withcCsNtjdddddd}|j|dd}| t|d    ƒ¡}||d    ksJt‚dS)
Nr.r/r0r2r3r4rr5r)r6r7r8Z_scalar_from_stringr{rPrxrrrÚtest_scalar_from_stringòsz#SharedTests.test_scalar_from_stringc    CsTtjdddddd}|j|dd}d    }tjt|d
| d ¡W5QRXdS) Nr.r/r0r2r3r4rr5z)does not support reduction 'not a method'r>z not a method)r6r7r8rArBrsZ_reduce)r:r;r<rtrrrÚtest_reduce_invalidøs
zSharedTests.test_reduce_invalidÚmethodÚpadZbackfillcCsxtjdddddd}|j|dd}t|d    <|d
kr@|d n|d }|j|d }|d    |ksdt‚|d    tkstt‚dS)Nr.r/r0r2r3r4rr5rbrŽrGé)r)r6r7r8rZfillnarP)r:rr;r<rkrFrrrÚ%test_fillna_method_doesnt_change_origs z1SharedTests.test_fillna_method_doesnt_change_origcCsâtjdddddd}|j|dd}| |d    ¡}|d    ksBt‚|j|d
d d }|d ks`t‚| |d    d …¡}tjd    d
gtjd}t ||¡|j|d    d …d d }tjd
d gtjd}t ||¡| t    ¡}|dksÞt‚dS)Nr.r/r0r2r3r4rr5r@rlr_©ZsiderG)
r6r7r8Ú searchsortedrPriÚintpr[r\r)r:r;r<rFrRrrrÚtest_searchsorteds    
zSharedTests.test_searchsortedÚboxNÚindexZseriesc
CsR|}|dkrn|dkr"| |¡}n
t |¡}| t|dƒ¡}|dksJt‚|jt|dƒdd}|dkslt‚| dd„|dd…Dƒ¡}tjddgtjd    }t     
||¡t j t t d
|jj›d ¡d | d ¡W5QRX|dkrêdnd}t d|¡Nt j t t d
|jj›d|›d¡d | t|dƒdg¡W5QRXW5QRXdS)Nr–r@rlr_r‘rGcSsg|] }t|ƒ‘qSr©r{©Ú.0ÚxrrrÚ
<listcomp>:szBSharedTests.test_searchsorted_castable_strings.<locals>.<listcomp>r0rnz/', 'NaT', or array of those. Got 'str' instead.r>rzÚpythonZ StringArrayZArrowStringArrayÚstring_storagez"', 'NaT', or array of those. Got 'z
' instead.Zbaz)r-r"ÚSeriesr’r{rPr6rir“r[r\rArBrsÚreÚescaperqrrZoption_context)r:r=r•rr<rFrRZarr_typerrrÚ"test_searchsorted_castable_strings's: 
   ÿþÿþz.SharedTests.test_searchsorted_castable_stringscCs\tjdd„tddƒDƒdd}|j|dd}|d    t |¡}|d    t |¡}|d    dS)
NcSsg|]}tj|‘qSr)rÚ_value)r™Únrrrr›VszGSharedTests.test_getitem_near_implementation_bounds.<locals>.<listcomp>r@rr/r0Únsr5r)r6ÚasarrayÚranger8r"ÚIndexrž)r:Zi8valsr<r–ZserrrrÚ'test_getitem_near_implementation_boundsSs
 
z3SharedTests.test_getitem_near_implementation_boundscCs t|ƒ|jdd…tjf|jd}|dd…tjf}t ||¡|}t|ƒ|jdd…df|jd}|dd…df}t ||¡|d}|d}||ksœt‚dS)Nr0rGr)rvrrv)r†r…r6Únewaxisr1r[r|rP)r:r=rRrFÚarr2drrrÚtest_getitem_2d`s"   zSharedTests.test_getitem_2dcCs~|jdd…tjf}t|ƒj||jd}t|ƒ}t|ƒdks@t‚|D]4}t    |t|ƒƒsZt‚|j
dksht‚|j|jksDt‚qDdS)NrGr0r@) r…r6r©r†rfr1ÚlistÚlenrPr‡Úndim)r:r=Údata2drªrFršrrrÚ test_iter_2dqszSharedTests.test_iter_2dc
CsÄ|jdd…tjf}t|ƒj||jd}t|ƒ}t|tƒr~dt|ƒj    ›d|d 
¡›d|d 
¡›d|d 
¡›d    |j›
}n6dt|ƒj    ›d|d›d|d›d|d›d    |j›
}||ksÀt ‚dS)
NrGr0ú<z>
[
['rz'],
['r@rlz']
]
Shape: (3, 1), dtype: ) r…r6r©r†rfr1Úreprr‡r rrZ
_repr_baserP)r:r=r¯rªrFrRrrrÚ test_repr_2d{s
@ÿ 4ÿ
zSharedTests.test_repr_2dcCs¢tjdddddd}|j|dd}|d    |d
<tjdddddd}|d    |d
<t |j|¡|d d…|dd …<|d d…|dd …<t |j|¡dS) Nr.r/r0r2r3r4rr5r@réþÿÿÿrl)r6r7r8r[r\Úasi8©r:r;r<rRrrrÚ test_setitem˜s  zSharedTests.test_setitemcCs | ¡ddd…}|jjdkr(| d¡}|}|tkr>t|ƒ}nF|tjkrZt | t¡¡}n*|t    krv|tj
|tdƒ}n||ƒ t¡}||dd…<t   ||¡dS)Nrv)Úmrr0) Úcopyr1ÚkindÚ
_with_freqr¬r6rir€rr r¥r[r|)r:r•r=rRÚvalsrrrÚtest_setitem_object_dtype¦s  
 
 
 z%SharedTests.test_setitem_object_dtypecCsŠ| ¡}|dd…|ddg<| ¡}dd„|dd…Dƒ|dd…<t ||¡| ¡}|d|d<| ¡}t|dƒ|d<t ||¡dS)Nr´rr@cSsg|] }t|ƒ‘qSrr—r˜rrrr›Ìsz1SharedTests.test_setitem_strs.<locals>.<listcomp>rlrv)r¹r[r|r{)r:r=rRrFrrrÚtest_setitem_strsÄs  zSharedTests.test_setitem_strscCsd| ¡ddd…}t|tƒs&| d¡}t |¡}|r>t |¡}|ddd…|dd…<t ||¡dS)Nrv)    r¹r‡r r»r"rNrWr[r|)r:r=rUrRÚcatrrrÚtest_setitem_categorical×s
 
 
 
z$SharedTests.test_setitem_categoricalc    CsØtjdddddd}|j|dd}|d    }tjtd
d ||d <W5QRXtjtd d tƒ|d    <W5QRXd}tjt|d |dg|g<W5QRXd}tjt|d |dd…|dd…<W5QRXdS)Nr.r/r0r2r3r4rr5rzindex 12 is out of boundsr>rmzvalue should be a.* 'object'z<cannot set using a list-like indexer with a different lengthr@z=cannot set using a slice indexer with a different length thanrG)    r6r7r8rArBÚ
IndexErrorrsrrC)r:r;r<ÚvalrtrrrÚtest_setitem_raisesåszSharedTests.test_setitem_raisesc    Cspd|jj›d}tjt|d|ddgƒ|dd…<W5QRXtjt|d|ddgƒ|dd…<W5QRXdS)    Nrnz ', 'NaT', or array of those. Gotr>rr@rlggð?)rqrrrArBrs)r:r=r•rtrrrÚtest_setitem_numeric_raisesús ÿz'SharedTests.test_setitem_numeric_raisescCs„tjdddddd}|j|dd}|tjd    d
}|tjd    d
7}t ||¡|tjd    d
}|tjd    d
8}t ||¡dS) Nr.r/r0r2r3r4rr5r@©Údays)r6r7r8r"Ú    Timedeltar[r|r¶rrrÚtest_inplace_arithmetics z#SharedTests.test_inplace_arithmeticc    CsTtjdddddd}|j|dd}tjtd    d
|jd d d W5QRXdS) Nr.r/r0r2r3r4rr5zvalue should be ar>r@)rk)r6r7r8rArBrsÚshiftr9rrrÚtest_shift_fill_int_deprecatedsz*SharedTests.test_shift_fill_int_deprecatedcCsô|}t|ƒddkr |dd…}|t|ƒd}| ¡}t|ƒt|ƒksLt‚||ksXt‚t|t|ƒd<t|tƒsš|t|ƒddt|ƒdd… ¡}|jddtks®t‚| ¡}t|ƒt|ƒksÊt‚||ksÖt‚|dd… ¡tksît‚|dd…jddtks t‚| dd¡}|jdd}t|ƒt|ƒks:t‚||ksHt‚|jdddtks`t‚|jdd}t|ƒj    |g|j
d    }t   ||¡|jddd}t|ƒj    tg|j
d    }t   ||¡|jdd}t   ||¡|jddd}t   ||¡dS)
Nrlrrvr@F)Úskipna)Úaxis)rÌrËr0) r­Zmedianr†rPrr‡rZmeanÚreshapeÚ_from_sequencer1r[r|)r:r=r<rRrFr‚Z    expected2rrrÚ test_medians>  
(        zSharedTests.test_mediancCsTtjdddgtjd}|j||jd}tj|dd}|j||jd}t ||¡dS)Nr@rlrGr0ZInt64)r6riÚint64r8Ú example_dtyper"r[Úassert_extension_array_equal)r:r<rRr;rFrrrÚtest_from_integer_arrayMs
z#SharedTests.test_from_integer_array)2rrÚ
__module__Ú __qualname__Ú__annotations__rAÚfixturer=rEÚmarkÚ parametrizer"r&Útimedelta_ranger#rSrarjrÚtimeruryr}rƒr‰rŠr‹rŒrr”r¡r¨r«r°r³r·r§ržr6rir¬r r½r¾rÀrÃrÄrÈrÊrÏrÓrrrrr,Qsp
 
   üþ    
 !
    
 
 
+ 
ûþ
 
 
 
 0r,c@sÒeZdZeZeZeZdZ    e
j dd„ƒZ dd„Z dd„Zdd    „Zd
d „Zd d „Zdd„Zdd„Zdd„Zdd„Zdd„Ze
j dej¡dd„ƒZe
j dej¡dd„ƒZdd„Zdd „Zd!d"„Zd#d$„Z d%d&„Z!d'S)(ÚTestDatetimeArrayúM8[ns]cCs |}tjdd||d}|j}|S)zc
        Fixture returning DatetimeArray with parametrized frequency and
        timezones
        z2016-01-01 01:01:00r©r r!rJ)r"r&Ú_data)r:Ztz_naive_fixturerrJr'Údtarrrr=]szTestDatetimeArray.arr1dcCsj| |¡}|jdd}|tjdd}| d¡}t ||¡|j}|jdd}|j d¡}t ||¡dS)NZ2Tr5r@)Úminutes)    r-Úroundr"rÇr»r[rhrßÚassert_datetime_array_equal)r:r=r'rFrRràrrrÚ
test_roundhs
 
   zTestDatetimeArray.test_roundcCs€t|ƒ}t |¡}|j}||ks$t‚t ||¡tj|dd}||ksJt‚t ||¡tj|dd}|j}||ksvt‚t ||¡tj|ddd}||ksžt‚t ||¡tj|dd}||k    sÄt‚t ||¡tj|td}tjt    |ƒtd}t ||¡tj|dd}||j
k    st‚t  ||¡r,t‚|j
  ¡}t ||¡dt fD]0}tj||d}t |¡ |¡}t ||¡qJdS)NF©r¹údatetime64[ns]r0©r1r¹rÐÚfloat64)r
r6r¥r…rPr[r\rirr¬rµÚmay_share_memoryr¹r{r€)r:r(r<rFrRr1rrrÚtest_array_interfacevs<
 
  z&TestDatetimeArray.test_array_interfacecCsT|}| |¡}t t|ƒ¡}tj|td}t ||¡tj|td}t ||¡dS©Nr0)r-r6rir¬rr[r\©r:r=r<r'rRrFrrrÚtest_array_object_dtype s
 z)TestDatetimeArray.test_array_object_dtypecCs®|}| |¡}|j d¡}tj|dd}t ||¡tj|dd}t ||¡tj|ddd}|j|jksnt‚|jdk    s|t‚tj|ddd}|j|jksœt‚|jdk    sªt‚dS)NrÝr0ræFrç)    r-rµÚviewr6rir[r\ÚbaserPrìrrrÚ test_array_tz®s
   zTestDatetimeArray.test_array_tzcCs||}| |¡}|j}tj|dd}t ||¡tj|tjd}t ||¡tj|ddd}|j|jk    sjt‚|jdksxt‚dS)Nr/r0Frç)    r-rµr6rir[r\rÐrïrPrìrrrÚtest_array_i8_dtypeÂs
  z%TestDatetimeArray.test_array_i8_dtypecCsLtjddgdd}t|ƒ}|j|ks(t‚t|dd…ƒ}|jj|ksHt‚dS)Nrz
2000-01-02rÝr0r)r6rir
r…rPrï)r:r<ràrrrÚtest_from_array_keeps_baseÒs
z,TestDatetimeArray.test_from_array_keeps_basecCsR|}| |¡}t|ƒt|ƒks"t‚t |¡}t|tƒs:t‚t|ƒt|ƒksNt‚dSrM)r-r¬rPr"r§r‡r)r:r=r<r'Zdti2rrrÚ test_from_dtiÛs 
 
zTestDatetimeArray.test_from_dticCsN|}| |¡}| d¡}t|tjƒs(t‚|jdks6t‚t|ƒt|ƒksJt‚dS©NÚO©r-r€r‡r6ÚndarrayrPr1r¬)r:r=r<r'ÚasobjrrrÚtest_astype_objectås 
 
z$TestDatetimeArray.test_astype_objectcCsN|}t|ƒ}|j|d}|j|d}t|tƒs2t‚t t |¡t |¡¡dS)Nr5)    r
Ú    to_periodr‡r rPr[rhr"r§)r:r(rr'r<rRrFrrrÚtest_to_periodîs   z TestDatetimeArray.test_to_periodc    Cs`| dd¡}|jdkrdnt}t |¡"| d¡}| d¡ dd¡}W5QRXt ||¡dS)Nr@rvr)rÍrJÚ UserWarningr[Zassert_produces_warningrúZassert_period_array_equal)r:r=rªÚwarnrFrRrrrÚtest_to_period_2dús   
z#TestDatetimeArray.test_to_period_2dÚpropnamecCsN| |¡}|}|j|jkst‚t||ƒ}tjt||ƒ|jd}t ||¡dSrë)    r-r!rPÚgetattrr6rir1r[r\©r:r=rÿr'r<rFrRrrrÚtest_bool_propertiess 
 
z&TestDatetimeArray.test_bool_propertiescCs>| |¡}|}t||ƒ}tjt||ƒ|jd}t ||¡dSrë)r-rr6rir1r[r\rrrrÚtest_int_propertiess
 
 
z%TestDatetimeArray.test_int_propertiesc     CsÖ|}| |¡}| |j¡}|jddgd|d}|d|ks>t‚d|jj›d}tjt    |d|jddgd||dW5QRXtjt    |d|jddgdt
d    ƒdW5QRX|jdk    rÀdnd
}| |¡}d }tjt    |d|jddgd|dW5QRXt j }    d|jj›d}tjt    |d|jddgd|    dW5QRXt  d d ¡}    tjt    |d|jddgd|    dW5QRX|jdk    rÒ| d¡}    |jddgd|    d}|jddgd|     |jj¡d}
t ||
¡dS)Nrvr@Trprrnror>Z2014Q1z
US/Easternz:Cannot compare tz-naive and tz-aware datetime-like objectsrr¤zAustralia/Melbourne)r-Ú tz_localizerJrgrPrqrrrArBrsrrr¢r6Ú timedelta64Z
tz_convertr1r[r|) r:r=Ú fixed_now_tsr<r'ÚnowrFrtrJÚvaluerRrrrÚtest_take_fill_valids>
 ""
 
 ýz&TestDatetimeArray.test_take_fill_validc    CsP|}|jdkr| d¡}n
| d¡}tjtdd| ||g¡W5QRXdS)NrIzto_concat must have the samer>)rJrrArBrCr)r:r=r<r]rrrÚtest_concat_same_type_invalidIs 
 
z/TestDatetimeArray.test_concat_same_type_invalidcCsfttjdddddƒ}ttjdddddƒ}t ||g¡}tt dddd    g¡ d¡ƒ}t ||¡dS)
NÚ2000rlrz
US/CentralrÞÚHz2000-01-01 00:00:00z2000-01-02 00:00:00z2000-01-01 01:00:00)r
r"r&rÚ to_datetimerr[rã)r:ÚaÚbrFrRrrrÚ$test_concat_same_type_different_freqUsüÿùÿ z6TestDatetimeArray.test_concat_same_type_different_freqcCs6|}| d¡}tjdd„|Dƒtd}t ||¡dS)Nú%Y %bcSsg|]}| d¡‘qS)r©Ústrftime)r™Útsrrrr›ksz3TestDatetimeArray.test_strftime.<locals>.<listcomp>r0©rr6rirr[r\©r:r=r<rFrRrrrÚ test_strftimegs
zTestDatetimeArray.test_strftimecCs>ttdtgƒƒ}| d¡}tjdtjgtd}t     ||¡dS)Nú
2019-01-01ú%Y-%m-%dr0)
r
rrrr6rirwrr[r\©r:r<rFrRrrrÚtest_strftime_natns
z#TestDatetimeArray.test_strftime_natN)"rrrÔrÕrr-r
r8rrˆrÑrAr×r=rärêrírðrñròrórùrûrþrØrÙÚ    _bool_opsrÚ
_field_opsrr    r
rrrrrrrrÜWs2
 
*    
         
 
    0 rÜc@sfeZdZeZeZejZ    dZ
dd„Z dd„Z dd„Z dd    „Zej d
ej¡d d „ƒZd d„Zdd„ZdS)ÚTestTimedeltaArrayúm8[ns]cCsXtddgƒ}t|ƒ}t|ƒt|ƒks(t‚t |¡}t|tƒs@t‚t|ƒt|ƒksTt‚dS)Nr)r*)r    r r¬rPr"r§r‡)r:Útdir<Ztdi2rrrÚ test_from_tdi}s  
z TestTimedeltaArray.test_from_tdicCsTtddgƒ}t|ƒ}| d¡}t|tjƒs.t‚|jdks<t‚t|ƒt|ƒksPt‚dS)Nr)r*rõ)    r    r r€r‡r6r÷rPr1r¬)r:r r<rørrrrù‡s  
z%TestTimedeltaArray.test_astype_objectcCs,|}t|ƒ}| ¡}| ¡}t ||¡dSrM)r Zto_pytimedeltar[r\©r:r+r r<rRrFrrrÚtest_to_pytimedeltas
z&TestTimedeltaArray.test_to_pytimedeltacCs.|}t|ƒ}| ¡}| ¡}t ||j¡dSrM)r Ú total_secondsr[r\Úvaluesr"rrrÚtest_total_seconds˜s
z%TestTimedeltaArray.test_total_secondsrÿcCs<|}t|ƒ}t||ƒ}tjt||ƒ|jd}t ||¡dSrë)r rr6rir1r[r\)r:r+rÿr r<rFrRrrrr¡s
 
z&TestTimedeltaArray.test_int_propertiescCs€t|ƒ}t |¡}|j}||ks$t‚t ||¡tj|dd}||ksJt‚t ||¡tj|dd}|j}||ksvt‚t ||¡tj|ddd}||ksžt‚t ||¡tj|dd}||k    sÄt‚t ||¡tj|td}tjt    |ƒtd}t ||¡tj|dd}||j
k    st‚t  ||¡r,t‚|j
  ¡}t ||¡dt fD]0}tj||d}t |¡ |¡}t ||¡qJdS)NFråztimedelta64[ns]r0rçrÐrè)r r6r¥r…rPr[r\rirr¬rµrér¹r{r€)r:r+r<rFrRr1rrrrê«s<
 
  z'TestTimedeltaArray.test_array_interfacec        Csô|}t|ƒ}tjdd}|jddgd|d}|d|ks<t‚|}d|jj›d}tjt    |d    |jddgd|dW5QRX| 
d
¡}tjt    |d    |jddgd|dW5QRXt   d d ¡}tjt    |d    |jddgd|dW5QRXdS) Nr@rÅrvTrprrnror>rrr¤) r r"rÇrgrPrqrrrArBrsrúr6Ú
datetime64)    r:r+rr r<Ztd1rFrrtrrrr    Õs 
 z'TestTimedeltaArray.test_take_fill_validN)rrrÔrÕr    r-r r8r"rÇrˆrÑr!rùr#r&rArØrÙrrrêr    rrrrrws
        
    *rc@s¾eZdZeZeZeZegddj    Z
e j dd„ƒZ dd„Zdd„Zd    d
„Ze j d d d g¡dd„ƒZdd„Zdd„Ze j dej¡dd„ƒZe j dej¡dd„ƒZdd„Zdd„Zdd„ZdS) ÚTestPeriodArrayrr5cCs|jS)zW
        Fixture returning DatetimeArray from parametrized PeriodIndex objects
        )rß)r:r%rrrr=ôszTestPeriodArray.arr1dcCsR| |¡}|}t|ƒt|ƒks"t‚t |¡}t|tƒs:t‚t|ƒt|ƒksNt‚dSrM)r-r¬rPr"r§r‡r)r:r=r$r<Zpi2rrrÚ test_from_piûs 
 
zTestPeriodArray.test_from_picCsN| |¡}|}| d¡}t|tjƒs(t‚|jdks6t‚t|ƒt|ƒksJt‚dSrôrö)r:r=r$r<rørrrrùs 
 
z"TestPeriodArray.test_astype_objectc    Cs†|}tj}d|jj›d}tjt|d|jddgd|dW5QRXt     dd    ¡}tjt|d|jddgd|dW5QRXdS)
Nrnror>rvr@Trprr¤)
rr¢rqrrrArBrsrgr6r)r:r=r<rrtrrrr     s z$TestPeriodArray.test_take_fill_validÚhowÚSÚEcCsT| |¡}|}t|j|dƒ}|j|d}t|tƒs8t‚t t |¡t |¡¡dS)N)r*)    r-r
Ú to_timestampr‡rPr[rhr"r§)r:r*r=r$r<rRrFrrrÚtest_to_timestamps 
 z!TestPeriodArray.test_to_timestampc    Cs¤tjddddj}| ¡}| ¡}|jdks0t‚t ||¡|ddd…}| ¡}| ¡}|jdksht‚t ||¡| d¡}| ¡}|jdks”t‚t ||¡dS)Nz
2021-10-18rGrrLrlZ2B)    r"r&rßrúr-r!rPr[rÒ)    r:ràZparrrFZdta2Zparr2Zresult2Zparr3Zresult3rrrÚ test_to_timestamp_roundtrip_bday(s  
z0TestPeriodArray.test_to_timestamp_roundtrip_bdayc    Cs^tjdddd}d}tjt|d| ¡W5QRXtjt|d|j ¡W5QRXdS)NZ1500rrG)r!r z7Out of bounds nanosecond timestamp: 1500-01-01 00:00:00r>)r"r#rArBrr-rß)r:r$rtrrrÚtest_to_timestamp_out_of_bounds;s z/TestPeriodArray.test_to_timestamp_out_of_boundsrÿcCs8| |¡}|}t||ƒ}t t||ƒ¡}t ||¡dSrM©r-rr6rir[r\©r:r=rÿr$r<rFrRrrrrEs
 
 
z$TestPeriodArray.test_bool_propertiescCs8| |¡}|}t||ƒ}t t||ƒ¡}t ||¡dSrMr1r2rrrrPs
 
 
z#TestPeriodArray.test_int_propertiesc    Cs¼|}t |¡}tjt|ƒtd}t ||¡tj|td}t ||¡tj|dd}t ||j¡d}tj    t
|dtj|ddW5QRXtj|dd}t |¡  d¡}t ||¡dS)Nr0rÐzEfloat\(\) argument must be a string or a( real)? number, not 'Period'r>rèZS20) r6r¥rir¬rr[r\rµrArBrsr€)r:r=r<rFrRrtrrrrêZs
  z$TestPeriodArray.test_array_interfacecCs6|}| d¡}tjdd„|Dƒtd}t ||¡dS)Nú%YcSsg|]}| d¡‘qS)r3r)r™Zperrrrr›vsz1TestPeriodArray.test_strftime.<locals>.<listcomp>r0rrrrrrrs
zTestPeriodArray.test_strftimecCsBttdtgddƒ}| d¡}tjdtjgtd}t     ||¡dS)Nrz    period[D]r0r)
r rrrr6rirwrr[r\rrrrrys
z!TestPeriodArray.test_strftime_natN)rrrÔrÕrr-r r8rrˆr1rÑrAr×r=r)rùr    rØrÙr.r/r0rrrrrêrrrrrrr(îs(
 
 
 
 
 
 
    r(zarr,casting_natsr)r*rr¤rrGrLcCs
t|ƒjSrM©r†rr©ršrrrÚ<lambda>ór6)ÚidscCsFt|ƒ t|d|dg¡}|D] }| ¡}||d<t ||¡q dS)Nr@rlr)r†rÎrr¹r[r|)r<Z casting_natsrRÚnatrrrÚtest_casting_nat_setitem_array‚s
r:zarr,non_casting_natscCs
t|ƒjSrMr4r5rrrr6ªr7c
Cs4d}|D]&}tjt|d||d<W5QRXqdS)Nzwvalue should be a '(Timestamp|Timedelta|Period)', 'NaT', or array of those. Got '(timedelta64|datetime64|int)' instead.r>r)rArBrs)r<Znon_casting_natsrtr9rrrÚtest_invalid_nat_setitem_arrayšs
ÿr;r<r rbrHcCsÈt|d<| ¡}| ¡}t |d¡s*t‚|jdd}|ddksFt‚|jddd}|ddksdt‚|j|d ¡d}|d|dksŒt‚|j|djdd    d}|d|dks¸t‚t ||¡dS)
NrrÐr0lûÿÿÿ)r1Úna_valuer@)r<Frå)rr¹Zto_numpyr6ÚisnanrPr[r|)r<ÚoriginalrFrrrÚtest_to_numpy_extra·s r?rUTFr%z
2020-01-01z
2020-02-01r@rl)Úunitr5ÚklasscCs<|s
|j}| ||ƒ¡}tjddg|jd}t ||¡dS)Nrr@r0)rßr’r6rir1r[r\)r%rArUrFrRrrrÚ,test_searchsorted_datetimelike_with_listlikeÔs
rBÚargrrz Europe/London)rJc    Cs,d}tjt|d| |¡W5QRXdS)Nz [Unexpected type|Cannot compare]r>)rArBrsr’)r%rCrtrrrÚ:test_searchsorted_datetimelike_with_listlike_invalid_dtypeôs rDcCsBddgd}||ƒ}t|dd}tdd„|Dƒƒ}t ||¡dS)NrKZ2020Q2rlrr5cSsg|] }t|ƒ‘qSr)r)r™Úsrrrr› sz?test_period_index_construction_from_strings.<locals>.<listcomp>)rr[rh)rAÚstringsr;rFrRrrrÚ+test_period_index_construction_from_stringss
  rGr1rÝrcCsøtjdddg|d}t|ƒ}ttdœ|}||ƒ}||ƒ}t ||¡| |¡}| |¡}t ||¡tt    dœ|}||ƒd}||ƒd}t 
||¡t j t j dœ|}||ƒj}||ƒj}t 
||¡ttdœ|}||ƒ}||ƒ}t ||¡dS)Nr@rlrGr0©rÝrr)r6rir r
r r[rÒrÎrrr|r"r Ú to_timedeltarr    rh)r1r;r<ÚclsrFrRÚfuncÚidx_clsrrrÚtest_from_pandas_arrays* 
 
 
 
 rMÚ
memoryviewriÚdaskz
dask.array)ZmarksÚxarraycCs„tjdddgtjd}|j}|dkr.t|ƒ}nN|dkrDt d|¡}n8|dkrbd    d
l}|j |¡}n|d kr|d    d
l}| |¡}||fS) z¢
    Fixture giving a numpy array and a parametrized 'data' object, which can
    be a memoryview, array, dask or xarray object created from the numpy array.
    r@rlrGr0rNriÚirOrNrP)r6rirÐrrNZ
dask.arrayrPZ    DataArray)rr<Únamer;rOZxrrrrÚ array_likes1s
 
rSc    CsÐ|\}}ttdœ|}||ƒ}| |¡}t ||¡ttdœ|}||ƒd}||ƒd}t ||¡t|t    ƒs¢t
j t
j dœ|}||ƒj }||ƒj }t ||¡ttdœ|}||ƒ}||ƒ}t ||¡dS)NrHr)r
r rÎr[rÒrrr|r‡rNr"r rIrirr    rh)    r1rSr<r;rJrRrFrKrLrrrÚtest_from_obscure_arrayRs$
 
 
 
 rT)EÚ
__future__rrirŸÚnumpyr6rAZ pandas._libsrrrZpandas.util._test_decoratorsÚutilZ_test_decoratorsÚtdZpandasr"rrrr    Zpandas._testingZ_testingr[Zpandas.core.arraysr
r r r Zpandas.core.arrays.datetimesrZpandas.core.arrays.timedeltasrr×rr%r(r+r,rÜrr(rØrÙrßrr&r'r#r:r¢r;rÚr?r r¬ržr§rNrWrBrDÚtuplerGrMrZ
skip_if_norSrTrrrrÚ<module>sà    
 
 
 

"wþþ÷ ó
    þþþ÷ð
þþ
 ýþùþ   ýþÿ 
    
 üÿ