gL iA`ddlZddlZddlZddlmZmZmZmZm Z m Z m Z m Z m Z mZmZmZmZmZmZmZddlmZddlmZddlmcmcmZdZej@jCde"ejFgdZ$dZ%dZ&d Z'd Z(d Z)d Z*ej@jCd edde jVe de jXge jZe jVe dfe de jXfgfgdejFej\ej^jVdej\ej^jXgde jZej\ej^jVdfdej\ej^jXfgfej`ddej`ddej`ddgejFej`ej\ej^jX dej`ddej`ej\ej^jXdge jZej`ej\ej^jX dej`ddfej`ddej`ej\ej^jXdfgfgdZ1dZ2ej@jCdgddfgdddfgd Z3ej@jCd!dejhdeejhdgej@jCd"eegd#Z5ej@jCd$ddddd%ejlgejl ddddd%gejl ddddd%ejlggd&Z7d'Z8ej@jCd(d)gd*d+fd,gd-d.fgd/Z9d0Z:d1Z;ej@jCd2dd,gd3Zej@jCd6d7d8fd9d:fgd;Z?d<Z@ej@jCd=ejd>ejd>d?z gd@ZBej@jCdAgdBdCZCdDZDdEZEej@jCdFdGdHidfidIfdGdJidIfdGdKidLfgdMZFej@jCd$gdNej@jCdOddgdPZGej@jCdQgdRdSZHej@jCdTdUdVdWdXgdYZIej@jCdZe eejFe"gd[ZJej@jCdZe"ejFee gd\ZKej@jCd]de d^d_`jdae dbd_`jdae dcd_`jdae ddd_`jdaggej@jCdZe"ejFee gdeZMdfZNdgZOej@jCdhgdidjZPdkZQej@jCd]dldmgej@jCdne ejfejFejfe"ejfgdoZUej@jCd2gdpdqZVej@jCd]dgdrgej@jCd+d)d,gej@jCdsd)d,gdtZWej@jCdugdvgdwgdxgdydzd{gfgd|gd}gd~gdgdfgdZXej@jCdugdvgdwgdgdgdfgd|gd}gdgdgdfgdZYdZZdZ[dZ\dZ]ej@jddZ_dZ`dZadZby)N) Categorical DataFrame DatetimeIndexIndexInterval IntervalIndexSeriesTimedeltaIndex Timestampcut date_rangeinterval_rangeisnaqcuttimedelta_range to_datetime)CategoricalDtypectjdd}t|dd}tjgd}t j ||dy) Nint64dtypeFlabels)rrrr) check_dtype)nponesr arraytmassert_numpy_array_equal)dataresultexpecteds c/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/pandas/tests/reshape/test_cut.py test_simpler's@ 771G $D q 'Fxx(HeDfunccD|gd}t|dd\}}tj|jd}|j gd}t |d}t j||t j|tjgdy)N皙?ffffff?@@ffffff#@@Tretbins)rrrrrordered)Mb?g>wa @g!""@r0) r r from_breaksroundtakerr!assert_categorical_equalassert_almost_equalrr )r)r#r$bins intervalsr%s r& test_binsr@$s| . /DtQ-LFD))$**Q-8I12I9d3H14*O!PQr(c`tjgd}t|ddd\}}tj|j d}t |d}|jgd}tj||tj|tjgdy) Nr,r-r.r/r0r1皙@rTrightr4r2r6)rrrr5r2rr)r8rC@L@r0) rr r rr9r:rr;r!r<r=r#r$r>r?r%s r& test_rightrI1s 889 :DtQdD9LFD))$**Q-8I9d3H}}23H14*K!LMr(cdtjgd}t|ddd\}}tj|j dd}|j gd }t|d }tj||tj|tjgd y) NrBrFTrDr2leftclosed)rrrr5r2rrr6)r,rCrFrGg%Ck#@) rr r rr9r:r;rr!r<r=rHs r& test_no_rightrN=s 889 :DtQeT:LFD))$**Q-GI45I9d3H14*K!LMr(cttdd}|}ttd|j}tj||t j tj|jd|jd}ttd|j}tj||y)Nrr2r>T categoriesr7) r rangerSr!r<r from_codesrappendcodes)cr%r$s r&test_bins_from_interval_indexrZIs E!HaAH q 3 3 4F1%% !''21<<Hq 3 3 4F1r(ctjgd}t|gd}tjgd}t j |j|tgd|j}t j |j|t j|jtjgddy) N)  ;<)r#FrP))rre)rerf)rfrg)ra2)rrr5int8r) rr r r from_tuplesr!assert_index_equalrSr"rX)agesrYr%r$s r&)test_bins_from_interval_index_doc_examplernVs 888 9D D'A(()FGH!,,1 ALL 1F&++X6 bhhy.OPr(cd}tjgd}tjt|5t ddg|dddy#1swYyxYw)Nz)Overlapping IntervalIndex is not accepted))rr\)r5r_)rmatchrrTrP)rrkpytestraises ValueErrorr )msgiis r&-test_bins_not_overlapping_from_interval_indexrxbsI 5C  " "#> ?B z - QFs AAcd}gd}tjt|5t|gddddy#1swYyxYw)Nz bins must increase monotonicallyr+rq)皙??rr\rsrtrur rvr#s r&test_bins_not_monotonicr~ks: ,C )D z -% D#$%%%s :Azx, bins, expectedz 2017-12-31r2periodsz 2018-01-01rQrrrrrQnsrc\t||}tj|j|yN)r r!rlrS)xr>r%r$s r&#test_bins_monotonic_not_overflowingrss&hD\F&++X6r(cd}gd}tjt|5t|gdgddddy#1swYyxYw)Nz9Bin labels must be one fewer than the number of bin edgesr+rq)rrr\)foobarbazrr|r}s r&test_wrong_num_labelsrs< EC )D z -< D*%:;<<Az x,bins,msgr5zCannot cut empty array)rr5r2?z#`bins` should be a positive integerc|tjt|5t||dddy#1swYyxYw)Nrqr|)rr>rvs r&test_cut_cornerrs0 z - At s 2;argcut_funcczd}tjt|5||ddddy#1swYyxYw)Nz!Input array must be 1 dimensionalrqr5)rsrtru)rrrvs r&test_cut_not_1d_argrs6 .C z -as 1:r#rcd}tjt|5t|ddddy#1swYyxYw)Nz?cannot specify integer `bins` when input data contains infinityrqr2rPr|)r#rvs r&test_int_bins_with_infrs7 LC z - Dqs5>cd}tgd|}t|ddgd}ttjtjtjdtjg|}t j ||y)Nr)rrQrrnamerrFr)r r rnanr!assert_series_equal)rserindexps r&test_cut_out_of_range_morers] D " .C cAq6% (C "&&"&&"&&!RVV44 @C3$r(zright,breaks,closedT)MbP?r?rrEF)rrrrgjt?rKctjtjdddd}t|dd|\}}t j ||}t j|j|y)Nrg)\(?rzrT)r4rErL) rtilearanger rr9r!rlrS)rEbreaksrMarrr$r> ex_levelss r& test_labelsrs] ''"))AtS)1 -CsAt59LFD))&@I&++Y7r(cd}ttjjdj d|}t |d}|j |k(sJy)Nrr5drr)r rrandom default_rngstandard_normalr r)rrfactors r&#test_cut_pass_series_name_to_factorrsJ D &&q)99#>T JC a[F ;;$  r(ctjddd}t|dd}tjgd}t j |j|y)Nrg\(\?{Gz?rr5 precision)g9̗Gg ףp= ?g ףp= ?gHzG?g ףp= ?)rrr rr9r!rlrS)rr$rs r&test_label_precisionrsI ))AtT "C a1 %F))*LMI&++Y7r(rc,tjddd}tj|ddd<t|d|}tj|}tj t |tj|}tj||y)Nrrrr2rr) rrrr asarraywhererr!r=)rrr$r%s r&test_na_handlingrsk ))AtT "CvvC!H a 'F ZZ FxxS 26662H68,r(c<tjd}t|d}tj ddtjg}t ||}t ||}t j |}tj|j||dtdtjk(sJ|dttj dk(sJ|dtdtjk(sJ|dttj dk(sJy)NrTrrr5rrr) rrr infr rr9r!rlrSr)r#data_serr>r$ result_ser ex_uniquess r&test_inf_handlingr s 99Qr*s6r(c8tdgddgzzddgz|dS)NMediumrSmallLargeTrR)rrs r&rr+s+; Q']*h-@@!r(c2tjgd|S)Nrrr5rrVrs r&rr2s;11)VDr(cHtjdgddgzzddgz|S)Nrrrr5rrs r&rr3s(;111#QC-1a&2H&Qr(c|gd}gd}gd}t||||}tj|||y)N)rrarirrirr\r]rhrg)rrrr)r r!r<) get_labels get_expectedr>rrr$s r&test_cut_pass_labelsr&s;$ D %C )F d:f#5 6F V(<=r(c gd}gd}t|d|}t|dt||d}tj||y)Nr)GoodrBadr2rTrR)r rr!r<)rrr$rs r&test_cut_pass_labels_compatr@sA %C &F a 'F c1[FDQ RC,r(rg&@g _Bct|dy)Nr5r )rs r&test_round_frac_just_worksrJs 1Ir(zval,precision,expected))g#]r2i)眢#]@r2v)rr5r)gݔ ~. ?r5giUMu?c@tj||}||k(sJy)Nr)tmod _round_frac)valrr%r$s r&test_round_fracrPs$  cY 7F X  r(c^tgd}t|d}tjdddj d}|dxxdzcc<tt j |d jgd jtd }tj||y) N) rrr5r2rrrTr2rrr)numgMb?rErL) rrrrrrr5r5r5Tr6) r r rlinspacer:rr9r;astyperr!r)rr$exp_binsr%s r&test_cut_return_intervalsr_s , -C a[F{{1aQ'--a0H QK5K!!(7;@@ '  f d +,  68,r(c"ttjd}t|dd\}}tt j gddj djtd}tj||y) Nrr5Tr3)g~jthr{r2rErLr6) r rrr rr9repeatrrr!r)rr$r>r%s r&test_series_ret_binsrnsq 1 CsAt,LFD!!"27CJJ1M f d +, 68,r(z kwargs,msg duplicatesdropzBin edges must be uniqueraiserz(invalid value for 'duplicates' parameterc~gd}ttjgdgd}|2tjt |5t ||fi|dddyt ||fi|}t |tjtj|}tj||y#1swYyxYw)N)rr5rrTr\r\)rr2rr )abrYdeindexrq) r rr rsrtrur pduniquerr!r)kwargsrvr>valuesr$r%s r&test_cut_duplicates_binrys D BHH_-5N OF  ]]:S 1 (  ' ' ( (VT,V,vryyD)9:; vx0  ( (s B33B<)g"@g"glengthct|g|z}t|dd}tdg|ztj}t j ||y)NrFrrr)r r rintpr!r)r#rrr$r%s r&test_single_binrsH $& !C a &FqcFl"''2H68,r(z#array_1_writeable,array_2_writeable))TT)TF)FFc"tjddd}||j_tjddd}||j_tjd}t j t ||t ||y)Nrrr\)rrflags writeabler!r<r )array_1_writeablearray_2_writeablearray_1array_2hundred_elementss r&test_cut_read_onlyr sq ii3#G/GMMii3#G/GMMyy~ g&,r$s r&test_datetime_binrs MM, '|)D ED9H8A;/8A;1GH8A;/8A;1GH   f d +, & &DG &D & C4( )F68, 's&C$boxctgdjd|d}||}t|dd\}}|turd}|dk(rt gd d|d }nt gd d|d }t gd d|d }t j ||}t|jtd }tjt||y)N)z 2013-01-01z 2013-01-02z 2013-01-03M8[]r2Tr3rs)z2012-12-31 23:57:082013-01-01 16:00:002013-01-02 08:00:00r)2012-12-31 23:57:07.200000rr)rr2013-01-03 00:00:00r6) rrr listrr from_arraysr rr!r) unitrr#r$_rKrE exp_intervalsr%s r&test_datetime_cutr$s A B I ICPTvUV- XD t9DD!T*IFA d{ s{ QvQ-    vQ-   MD6m E "--dE:Mm$++,84r(c|tdtdtdtdg}ttddd}d }tjt | 5t ||dddy#1swYyxYw) N2013-01-01 04:57:07.2000002013-01-01 21:00:002013-01-02 13:00:002013-01-03 05:00:0020130101r2 US/Easternrtzz9Cannot use timezone-naive bins with timezone-aware valuesrq)r r r rsrtrur )rr>rrvs r&+test_datetime_tz_cut_mismatched_tzawarenessr.s}  2 3 + , + , + ,   D JlC DC EC z - Cs % A;;Br>r&UTCr-r+r'r(r)c d}ttdd|}t|ts||}t ||}tt t td|td|t td|td|t td|td |gjtd }tj||y) Nr+r*r2r,rr0rrrTr6) r r isinstanceintr rrr rrr!r)r>rr-rr$r%s r&test_datetime_tz_cutr4s B Jb9 :C dC 4y d^F:rB3;3;3;3;3;  " f d +,# $68,r(cd}tjt|5tt ddgddddy#1swYyxYw)Nz bins must be of datetime64 dtyperqr*r2rrr5rrP)rsrtrur r rvs r&test_datetime_nan_errorr8+s; ,C z -? Jz1 -I>???s AA cHttddtdd}|jj}t j |t jdg|j}t j |t jgdy) N20130102rrr*r5rPF)FTTTT)r r rSrr!r"rr )r$rs r&test_datetime_nan_maskr;2su :q) :q0QF    ! ! #Dbhhw&78 ;;=Dbhh/N&OPr(r-)Nr/z US/Pacificc@ttdd||}t|dd\}}t||}tj|||dk(rt gdd |d  }nt gd d |d  }|j |}tj||y) N20180101r2)rr-r!r5Tr3r)z2017-12-31 23:57:082018-01-02 00:00:002018-01-03 00:00:00rrr)z2017-12-31 23:57:07.200000r>r?)r r r r!rr tz_localizerl)r-r!rr$ result_binsr% expected_binss r&test_datetime_cut_roundtriprC>s JbtD ECc1d3FK3 $H68, s{ & QvQ- &  vQ-  "--b1M+}5r(cttdd}t|dd\}}t||}tj||t gd}tj ||y)N1dayr2rr5Tr3)z0 days 23:57:07.200000z2 days 00:00:00z3 days 00:00:00)r rr r!rr rl)rr$rAr%rBs r&test_timedelta_cut_roundtriprF^sa 3 4Cc1d3FK3 $H68,"HM+}5r(rTrz box, comparec|gddz}|gddz}t||d}t||d}|||y)N)rrrrrr\)FTTFTr)rr)r>rcompare data_expected data_resultr%r$s r&test_cut_bool_coercion_to_intrKlsI",-M6;rErNrr$r%s r&test_cut_nullable_integerrTs a ))!Rb)9@@GA VVAccF  '"DnF1d%GH1r(z3data, bins, labels, expected_codes, expected_labels)r])rprerh)ABrX)rrrrXrY)rr2rrr5rrTr)r5rrr5)r5rrrc~t|||d}tj||d}tj||yNFr>rr7rRr rrVr!r<r#r>rexpected_codesexpected_labelsr$r%s r&test_cut_non_unique_labelsrb=D ?F%%?EH1r()CrYrX)r2rrr5c~t|||d}tj||d}tj||yr\r^r_s r&test_cut_unordered_labelsrfrcr(cd}tjt|5tddggdddddy#1swYyxYw)Nz.'labels' must be provided if 'ordered = False'rqrr2rF)r>r7r|r7s r&3test_cut_unordered_with_missing_labels_raises_errorrhs: :C z -5 S!H9e4555s :Actgd}tgd}tgd}t|||d}tgdd}tj||y) N)rr5r2rr)rr5rrT)rrrYFr])rrrrrYcategoryr)r r r!r)rr>rr$r%s r&%test_cut_unordered_with_series_labelsrksM  !C , D O $F 4 >F/zBH68,r(c jtdtjjdj dddi}t dddDcgc] }|d|dz}}t jd 5t|jt dd dd | |d <dddycc}w#1swYyxYw) Nvaluer5rrrhr\z - rFi)rErgroup) rrrrrRrUr!assert_produces_warningr rm)dfirs r&test_cut_no_warningsrss GRYY2215>>q#rJK LB(-ab(9 :13q1ug :F : # #E *S"((E!S"$5U6R7 SS;SSs B$3(B))B2c ttdddgdztdddtdddgzgdd jj}tgdgd }t |gd d }t j ||y)Nrr5rErLr2r)rrr5r2rrj)rrrr6T)r>rN)r rcat as_orderedr r!r)r%rr$s r&.test_cut_with_duplicated_index_lowest_includedrws &!G ,-1 Aq )8FAg+N O P   c**,    8C 9T :F68,r(z7ignore:invalid value encountered in cast:RuntimeWarningcttd}t|djj d}t|djj d}t ||d}tjtdddtdd dtd d dtd d dtd d dtd d dtd ddtdddtdddtdddg d}t dgdztjgdzztjgdzdgdzzd|}tj||y)Nrr\r)12gMbXg#@rErLg3@g33333=@gC@gH@g33333M@g33333SQ@gS@gfffffFV@cTr6r)r rUr value_countsheadtailrrCategoricalIndexrrrr!assert_frame_equal)rser1ser2r$rr%s r&*test_cut_with_nonexact_categorical_indicesrsC s C sB< $ $ & + +A .D sB< $ $ & + +A .D T- .F    VS 1 S$w / T4 0 T4 0 T4 0 T4 0 T4 0 T4 0 T4 0 T2g .  E dQh"&&A%RVVHqLB4!8,CDEH(F+r(ctdftdftdfg}tgdgd|}tjgd|d }t j ||y) Nr\rhr)r5rrT)rr2rr)r>rrTr6)r r rrVr!r<)rr$r%s r&$test_cut_with_timestamp_tuple_labelsrsU}2 09R=2B CF f =F%%iFH1r(cttdtdd}tttdgj d|}t j dg|d }tj|j|y) Nz 2022-02-25z 2022-02-271D)freqz 2022-02-26zM8[ns]rPrTr6) rr r r rrrVr!r<r )r>r$r%s r&$test_cut_bins_datetime_intervalindexrsi )L19\3JQU VD <01299(C$ OF%%qc4>H h7r(c tdddddtjddgd }gd }tj|}tt j gd |d }t||}tj||y)Nrrr5r2rrTrrQrrZ)rQrrrrrQr5r2Tr6rP) r rNArr9rrVr r!r)seriesr>r?r%r$s r&test_cut_with_nullable_int64r ss Q1aBEE1a0 @F D))$/I99dSHd #F68,r()cnumpyrrspandasrrrrrrrr r r r r rrrrrpandas._testing_testingr!pandas.api.typesrpandas.core.reshape.tilecorereshaperrr'mark parametrizerr r@rIrNrZrnrxr~minmaxrkiinfor timedelta64rrreyerrrrrrrrrrrrrrrrrrrr rr$r. tz_convertr4r8r;rCrFrr< assert_equalrKrMrTrbrfrhrkrsrwfilterwarningsrrrrrr(r&rs  $-''E$!12 R3 R N N 2 Q% |Q / ]]Il3Y]] C %M % %]]Il$;<|,imm<    BHH"((#''HBHHRXX,>,B,BC7  &M % %"((288$((!,q("((2882D2H2H.IJ   r4(q$'q$'  BHH"BNNHBHHRXX$6$:$:#:DA"BNN1d+"BNN8288BHH#5#9#94@  &M % %'(:(>(>'>E&q$/ 'q$/&xrxx'9'='=tD   ).1d7e1d7 < Q() C>? FBFF1Iy/C DEc4[12F  Aq!Q &&!Q1a &&!Q1a(% *G4 .7888D%=1-2-1"/ "   E Q  ">#">-yryy  $$0FGHI  --  & '(  "<=   JK  1 1!12Aq6*-+3-)+X    ". --$$ ?@#5A#5Lrxx ?@A"  2u = H H V + 6 A A, O + 6 A A, O + 6 A A, O   rxx ?@-A -<? Q:;6<6> 6!Q( ''( 2../ r)#34&5&!Z14-0)D%=92:1229 ')c3ZP O\9iH229 ')_U O\9lK225-S -UV,W,>28 -r(