gL iqdZddlmZddlmZddlZ ddlmZddl Z ddl Z ddl m Z ddlmZddlZddlmZddlmZmZGd d ZGd d ZGd dZdZy#e$rdZYQwxYw)z Tests for DatetimeArray ) annotations) timedeltaN)ZoneInfo) tz_compare)DatetimeTZDtype) DatetimeArrayTimedeltaArrayc  eZdZejgddZejdZejdZejdZdZ ejjde je jzd Zd Zd Zd Zejj'd dZdZdZdZejjdgddZdZdZdZdZejjdedej>de jBdde jBddejDjGdejDjIdgd Z%d!Z&d"Z'y#)$ TestNonNano)smsus)paramsc|jS)z)Fixture returning parametrized time units)param)selfrequests h/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/pandas/tests/arrays/test_datetimes.pyunitzTestNonNano.units}}cV|}|tjd|dSt||S)Nz datetime64[])rtz)npdtyper)rrtz_naive_fixturers rrzTestNonNano.dtype$s1  :88k$q12 2"4 4rcft|dd}tjddd|}|)tj|j d|d}nFtj|j djdj d|d}tj|| }||fS) Nr 2016-01-017DperiodsfreqrM8[rUTCr) getattrpd date_rangerasarrayastype tz_convert tz_localizer _simple_new)rrrrdtiarrdtas rdta_dtizTestNonNano.dta_dti,s UD$ 'mmL"32F :**S/((3tfA7C**S^^E2>>tDELLdV1 C''59Cxrc|\}}|SN)rr2r1r/s rr1zTestNonNano.dta;sS rcltjdtjjd|d}t j ||}|j |k(sJ|dj|k(sJt|j|djsJ|d|ddk(jsJy)Nr&r$rr) rarangeint64viewrr.rrrrall)rrrr0r1s r test_non_nanozTestNonNano.test_non_nano@sii*//#dV1 >''59yyE!!!1v{{d"""#&&#a&)),,,A#bq'!&&(((rfieldc|\}}||k(jsJt||}t|j|}tj||yr4)r<r'_datatmassert_numpy_array_equal) rrr>rr2r1r/resexpecteds r test_fieldszTestNonNano.test_fieldsIsOSs !!!c5!399e, ##C2rctjddd}tj|j d|d}t j ||j}|jrJtj|jj d|d}t j ||j}|j}tj||y)Nz2016-01-01 06:00:00rr r"r#r$rr&) r(r)rr*r+rr.r is_normalized normalizerAassert_extension_array_equal)rrr/r0r1exprDrCs rtest_normalizezTestNonNano.test_normalizeUsmm12CHjjo$$s4&]3''399=$$$$jj)003tfA? ,,S Bmmo ''X6rctjdtjjd|d}t |d}t j ||}|j|k(sJt dd}tjtd5t j ||dddy#1swYyxYw) Nr7r&r$rr%nsmatch) rr9r:r;rrr.rpytestraisesAssertionError)rrr0rr1wrongs rtest_simple_new_requires_matchz*TestNonNano.test_simple_new_requires_matchdsii*//#dV1 >e,''59yyE!!!e, ]]> 4 8  % %c 7 8 8 8s B55B>cdtjddd}tj|j d|d}t j ||j}|j}|j|jk(sJ||jj|k(sJy)Nrrr rGr$rr&) r(r)rr*r+rr.rstd_cresofloor)rrr/r0r1rCs rtest_std_non_nanozTestNonNano.test_std_non_nanoosmmL"3?jjo$$s4&]3''399=ggizzSZZ'''cggiood++++rz.ignore:Converting to PeriodArray.*:UserWarningc|\}}|jd}|jjd}tj||y)Nr ) to_periodr@rArJrr2r1r/resultrDs rtest_to_periodzTestNonNano.test_to_periodzs=Ss#99&&s+ ''9rctt|}|d}t|tjusJ|j |j k(sJ|j |j k(sJ||k(sJy)Nr)nextitertyper( Timestamp_valuerY)rr1rCrDs r test_iterzTestNonNano.test_itersf49oq6CyBLL(((zzX__,,,zzX__,,,hrcjt}tfd|DsJtdt|DsJy)Nc3PK|]}|jjk(ywr4)rY).0xr1s r z1TestNonNano.test_astype_object..s:a188szz):s#&c3,K|] \}}||k(ywr4r5)rjrkys rrlz1TestNonNano.test_astype_object..s7da167s)r+objectr<zip)rr1r_s ` rtest_astype_objectzTestNonNano.test_astype_objects@F#:6::::7c&#&67777rcz|\}}|j}|j}tj||yr4) to_pydatetimerArBr^s rtest_to_pydatetimezTestNonNano.test_to_pydatetimes7S""$$$& ##FH5rmeth)timetimetzdatecj|\}}t||}t||}tj||yr4)r'rArB)rr2rur1r/r_rDs rtest_time_datezTestNonNano.test_time_dates3Sd#3% ##FH5rc|\}}|j}|jj}tj||yr4)_format_native_typesr@rArB)rrrr2r1r/rCrKs rtest_format_native_typesz$TestNonNano.test_format_native_typess=S&&(ii,,. ##C-rcz|\}}t|t|jjdd|k(sJy)Nz[ns[)reprr@replace)rr2rr1r/s r test_reprzTestNonNano.test_reprs8SCyDO33EQtf:FFFFrcT|}tjtj}tj|j|jdz|j gtj}tj|j d}|j d}tj||j}tj||j}|tjurtjgd} n{|tjurtjgd} nQ|tjtjfvrtjgd} ntjgd} |||} tj | | ||d|} tj | | |tjtjfvr;||j"|j"} tj | dd| ddyy) Nr8r&M8[ns]M8[s])FFF)TTT)FFT)FTF)riinfor:arrayminmaxr;rr.roperatoreqneltlerArB_ndarray) r comparison_opoprvalsr0arr2leftrightrDr_np_ress r#test_compare_mismatched_resolutionsz/TestNonNano.test_compare_mismatched_resolutionss "xxEIIM599=RXXNhhtn!!(+xx ((CII>))$djjA HKK 'xx 56H hkk )xx 23H x{{HKK8 8xx 45Hxx 45HD% ##FH5DGU# ##FH5 hkk8;;/ / u~~6F  ' 'qr Xab\M B 0rctjd}tjdd|z }|jj d}||j dz}|j dk(sJy)Nr8) microsecondsrr"r)r( Timedeltar)r@as_unitr)rtdr/r1rCs r(test_add_mismatched_reso_doesnt_downcastz4TestNonNano.test_add_mismatched_reso_doesnt_downcasts` \\q )mmL!4r9ii%BJJt$$xx4rscalar)hourshimr xc|\}}tj|}tj|j|j}||zj j |}||z}tj||||z}tj||||z j j |}||z }tj||yr4)r(rrAget_finest_unitrr@rrJ) rr2rr1r/rexp_unitrDr_s r-test_add_timedeltalike_scalar_mismatched_resoz9TestNonNano.test_add_timedeltalike_scalar_mismatched_resosS \\& !%%chh8"H##++H5v ''9# ''9"H##++H5v ''9rc*tjdd}|jjd}|djd}||z }||dz jjd}|jdk(sJt j ||y)Nrrrrrr zm8[us])r(r)r@rrrArJ)rr/r1tsr_rDs r%test_sub_datetimelike_scalar_mismatchz1TestNonNano.test_sub_datetimelike_scalar_mismatchsmmL!4ii% V^^C r#a&L''//5||x''' ''9rcjtjdd}|jjd}|jd}||z }t j gdd}t j||j}tj||||z }tj||y) Nrrrr r )rrrzm8[ms]r&) r(r)r@rrrr r.rrArJ)rr/rrr_ exp_valuesrDresult2s r!test_sub_datetime64_reso_mismatchz-TestNonNano.test_sub_datetime64_reso_mismatchsmmL!4yy  % T"XXix8 !-- ""  ''9$, '':rN)(__name__ __module__ __qualname__rRfixturerrr2r1r=mark parametrizer _field_ops _bool_opsrErLrVr[filterwarningsr`rgrqrtrzr}rrrrr(rr timedelta64offsetsMinuteHourrrrr5rrr r sV^^,-. ^^55 ^^   ^^) [[))M,C,CC33 7 8 , [[ PQ:R:8 6 [[V%?@6A6.G !CF   [[ A  BLLq ! BNN1c " BNN?D 1 JJ  c " JJOOA    : :" : ;rr ceZdZdZy)TestDatetimeArrayComparisonscn|}tjdddd}|j}|j|jk(sJ|j|jk(sJ|}t j t|t}|jdvr|}|||}tj|||t j|t|t||jt fD]@}|||}tj|||||}tj||By)Nz 2016-01-1MS )r#r"rr&)rgtr)r(r)r@r#rroneslenboolrrArBrlisttupler+ro) rrrr/r0rrDr_others rtest_cmp_dt64_arraylike_tznaivezZ2ejjd?gd@dAZ3ejjd?gdBdCZ4y9#e0$rYwxYw)DTestDatetimeArrayctjd}|jd}tj|gd}|j d|jdj k(jsJ|jd}|d|k(sJtj|gd}|j d|jk(jsJtj||y) Nz1677-09-21 00:12:43.145225r rr&i8rNzM8[ms]r) r(rerr_from_sequencer;valuer<r+rfrAassert_datetime_array_equal)rrtargetr1r_rDs r test_astype_ns_to_ms_near_boundsz2TestDatetimeArray.test_astype_ns_to_ms_near_bounds8s \\6 7D!**B4x@"**T"2"8"88==???H%ayF""" //HE d#v}}499;;; &&vx8rc2tjdd}|jd}|jdk(sJ|j}|jd}|jdk(sJt |tj jjsJy)Nrrrr) r(r)r+rr@ isinstancecorearraysr)rr/rCr1s rtest_astype_non_nano_tznaivez.TestDatetimeArray.test_astype_non_nano_tznaiveHsymmL!4jj!yyG###iijj!yyG####rww~~;;<<jj,-yy////iijj,-yy////zz,'zz\)))##D#...zz,Uz3zz\)))c***rctjdgtd}|jtdd}||usJy)N2000 US/Centralrr&Fr)rrrr+)rr0r_s rtest_astype_to_samez%TestDatetimeArray.test_astype_to_samefsC** HO|< O|<5I}}rrdatetime64[ns]datetime64[ns, UTC]r)rrzdatetime64[ns, CET]ctjddg|}|j}d}|dk(|dk(z rd}|r@|dk(rd}nd}tjt | 5|j |dddy|j |}tj|ddtj||y#1swYyxYw) Nr8rr&FrTz ? CF   s AAc|}tjgdd}| |jn t|}t j ||}|j }tjdj|}t|jd}||d<||d<tj||||d<||g|ddtj||y) Nr8rrrr&rz2020-09-08 16:50rr8r) rrrrrrrr(rer-strrA assert_equal) rrrdatarr0rDrsetters rtest_setitem_str_impute_tzz,TestDatetimeArray.test_setitem_str_impute_tzsxx 2 j o.D**4u=88: \\, - 9 9" =R^^D)* A X& 6"BQ X&rcttjgdd}tj|dt d}t j td 5tjd |d <dddtjd d }||d <|d |jdk(sJy#1swY?xYw) Nrrr&Frr)rrz$Cannot compare tz-naive and tz-awarerPrr US/Eastern) rrrrrrRrSrr(rer,)rrr0rs r test_setitem_different_tz_raisesz2TestDatetimeArray.test_setitem_different_tz_raisessxx 2** uO|$D ]]9,R S *\\&)CF *\\&\ 2A1v|4444  * *s B..B7ctjddddj}tjdd|d<|jJy)Nrrr rr!rr)r(r)r@rer#)ras rtest_setitem_clears_freqz*TestDatetimeArray.test_setitem_clears_freqs> MM&!#, G M M||F|4!vv~~robjz 2021-01-01cjtjddd}|j}||d<|d|k(sJy)Nrrr rGr)r(r)r@)rr r/r0s rtest_setitem_objectsz&TestDatetimeArray.test_setitem_objectss8mmFAC8iiA1v}}rctjdddd}|j}|jddg}t j |j |j}tj||y)Nrrr rr!r8r&) r(r)r@repeatrrasi8rrAr)rr/r0repeatedrDs rtest_repeat_preserves_tzz*TestDatetimeArray.test_repeat_preserves_tzs[mmFACLIii::q!f%!// J (+rctjdddd}|jjddg}|j }|j j |sJtj|d<|j d }tjgd |d |d tjgd}tj||y)Nrrr rr!rrF)dropna)rrr8rr8count)indexname) r(r)r@r value_countsrequalsrrrAr)rr/r0r_rDs rtest_value_counts_preserves_tzz0TestDatetimeArray.test_value_counts_preserves_tzsmmFACLIii1v&!!#||""3'''&&B!!!/99Ys1vs1vrvv.FWU vx0rmethodpadbackfillctjdddd}tj|d}tj|d<|d k(r|d n|d }tj|d |d ||d |d gt d}|j |}tj|||dtjusJ|dtjddk(sJy)Nz 2000-01-01r7r rr!Trrrr8rrrrr&rz 2000-01-03) r(r)rrrr_pad_or_backfillrArJre)rrr/r0fill_valrDr_s rtest_fillna_preserves_tzz*TestDatetimeArray.test_fillna_preserves_tzsmmL!#,O**3T:A#u_3q6#a& // VSVXs1vs1v 6!\2  %%V%4 ''91v1vl|DDDDrctjddd}|jjddj }tj |d<tj |d<|j d }|j }|d |d<tj|||j d }|j }|j }|d |d<|d|d<tj|||j|jj d}|jjdsJ|jjdrJtj|||j d }tj|||j d } tj| |tj|} | j} tj|} tj| | | j} tj|} tj| | y)Nr US/Pacificrrr)rr8)r8rrr)rrr)rr)r8r8F)order F_CONTIGUOUS C_CONTIGUOUS)r(r)r@reshaperrr rArJ_from_backing_datarflags DataFrameffillassert_frame_equalbfill) rr/r1res1 expected1r expected2dta2rres4dfrCrDs rtest_fillna_2dz TestDatetimeArray.test_fillna_2d smmL! Eii1%**,FFD FFD ##5#1HHJ d) $ ''i8##:#6HHJ HHJ d) $d) $ ''i8%%cll&7&7c&7&BC}}"">222==&&~666 ''T2$$E$2 ''i8$$J$7 ''i8\\# hhj<< * c8,hhj<< * c8,rcd}tjdd|j}tj|}tj tj d|tj d|gt}tj||tj|t}tj||tj|d }tj d d gd }tj||y) Nr2017rr2017-01-01T00:00:00r2017-01-02T00:00:00r&rz2017-01-01T06:00:00z2017-01-02T06:00:00) r(r)r@rr*rrerorArB)rrrr_rDs rtest_array_interface_tzz)TestDatetimeArray.test_array_interface_tz4s }}VQ26<<D!88 2r: 2r:    ##FH5D/ ##FH5D188 "$9 :(  ##FH5rctjddj}tjddgd}tj |}t j||tj |t}tjtjdtjdgt}t j||y)Nr9rrr:r;rr&) r(r)r@rrr*rArBrore)rrrDr_s rtest_array_interfacez&TestDatetimeArray.test_array_interfaceLs}}VQ/5588 "$9 :BR D! ##FH5D/88 \\/ 0",,?T2U V  ##FH5rrTFctjdddzdzdz}tj|djj d }|rtj |}|j|d }|j|d jd }||k(sJ|j|d d }|j|d d jd }tj||y) N rr&ʚ;r r# Asia/Tokyorr%r$) rr9r( DatetimeIndexr@r-Index searchsortedr,rAr)rrrr0rDr_s rtest_searchsorted_different_tzz0TestDatetimeArray.test_searchsorted_different_tz\syy4(2-4u<t#.44@@N ((3-C##CF+!!#a&"3"3E":;!!!##C!H-!!#a("5"5e"<= )rctjdddzdzdz}tj|dj}|rtj |}|j d }d }tjt| 5|j|d dddtjt| 5|j|dddtjt| 5|j|d dddtjt| 5|j|dddy#1swYxYw#1swYxYw#1swYWxYw#1swYyxYw) Nr@rr&rArBrCr rDrEz:Cannot compare tz-naive and tz-aware datetime-like objectsrPr) rr9r(rFr@rGr-rRrSrrH)rrrr0mismatchrs r$test_searchsorted_tzawareness_compatz6TestDatetimeArray.test_searchsorted_tzawareness_compatks/yy4(2-4u<t#.44 ((3-C??<0J ]]9C 0 *   Xa[ ) * ]]9C 0 '   X & ']]9C 0 *  ! !#a& ) * ]]9C 0 '  ! !# & ' ' * * ' ' * * ' 's0E?E4E,E+EEE(+E4r8g?rr)daysinvalidr@rr&rArBrCztimedelta64[ns]r c\tjdddzdzdz}tj|dj}|rtj |}d j d d g}tjt| 5|j|dddy#1swYyxYw) Nr@rr&rArBrCr rD|z0searchsorted requires compatible dtype or scalarzii\\"4F 1499Q:+@+@+G9H )rcxtjddd}|jjdd}|j d}|j j dj|j }tj|||j d}tj||y)Nz 1994-05-12 r%rrr) r(r)r@r*r-ravelshaperAr)rr/r1r_rD roundtrips rtest_tz_localize_t2dz&TestDatetimeArray.test_tz_localize_t2dsmmL"Fii1%&99;**4088C &&vx8((6  &&y#6rrzdateutil/US/EasternNrctjgdtj}|dz}tj|j dj |}|d}t|d}t|t|k(sJ|j|jk(sJ|jtd}t|t|k(sJ|j|jk(sJy)N)i@NiPNi`"Nip0Nr&rCr%r) rrr:rrr-r,rr utcoffsetr+ro)rrutc_valsr1rrright2s rtest_iter_zoneinfo_foldz)TestDatetimeArray.test_iter_zoneinfo_folds88 TestDatetimeArray.test_date_range_frequency_M_Q_Y_A_deprecateds(y}o%IJ +DH:Z@==QTB  ' ' X F J]]:qyIF J fh/ J Js A>>Br)2H2CBH2MIN2S2mS2UscLd|ddd}d|jdddtjdd|j}tjt | 5tjdd|}dddtj |y#1swY xYw) Nr{r8)' is deprecated and will be removed in a zfuture version. Please use 'r|r}rrGrP)lowerr(r)rAr~rrrrrrDr_s r.test_date_range_uppercase_frequency_deprecatedz@TestDatetimeArray.test_date_range_uppercase_frequency_deprecatedsy}o%NO &y'8'<&=ZH==QY__=NO  ' ' X F J]]:qyIF J fh/ J J "BB#) z2ye-mar2ys2qez2qs-feb2bqs2sms2bms2cbme2me2wcLd|ddd}d|jdddtjdd|j}tjt | 5tjdd|}dddtj |y#1swY xYw) Nr{r8rzfuture version, please use 'r|r}rrGrP)upperr(r)rAr~rrrs r.test_date_range_lowercase_frequency_deprecatedz@TestDatetimeArray.test_date_range_lowercase_frequency_deprecated$s"y}o%NO &y'8'<&=ZH==QY__=NO  ' ' X F J]]:qyIF J fh/ J Jr)5rrrrrrrrRrrrintrint32r:rrrrrr r(rerXrsr rrr"r7r<r>rIrLrrr9r;r]rRr[r]r_reeastsrrappendKeyErrorrjrrrr5rrrr7s9 =+& [[W'79N&OP [[Q.Q., [[WsBHHbhh(&ST 6U 6%'. 5  [[ BLL & BLL & 4 4 6 BLL & 4 4 6 , 1 [[Xz':;E<E$'-R606  [[WtUm4 *5 * [[WtUm4'5'& [[ BHHQK  BNN5 ! BLLa  BIIb % *T 1E 9 BIIbM  0 1B 6 = E BLL & 0 0 5   [[WtUm4 $5  $=$1 * 70 1E ,'B LL  [[T5)6*64 [[ $0%$0 [[[*TU0V0 [[ 00s   s>L&&L.-L.rcRtjgdd}d}tjt|5|j dddd||dz }tjt|5|j ddddy#1swYHxYw#1swYyxYw) N)rrr8rr&z+call pd.factorize\(obj, sort=True\) insteadrPT)sortr)rrrRrSNotImplementedError factorize)r1rtdas r test_factorize_sort_without_freqr>s  & &y AC 8C *# 6! 4  ! A,C *# 6! 4  !! !! !!sB5BBB&)__doc__ __future__rdatetimerrzoneinfor ImportErrornumpyrrRpandas._libs.tslibsrpandas.core.dtypes.dtypesrpandasr(pandas._testing_testingrApandas.core.arraysrr r rrrr5rrrsw#!  *5 r;r;j!:!:HD0D0N !gHsA""A,+A,