gL i5 ddlmZddlZddlZddlmZddlZddlmZm Z m Z m Z m Z m Z mZddlmZddlmZddlmZddlmZddlmZdd lmZdd lmZed ed d d ed d dfZeded d d ed d dfZedddfZ ejBjEdeee gZ#ejHdZ%ejBjEdddgejBjEdee gdZ&ejBjEdee gdZ'e#dZ(dZ)e#ejBjEdgddZ*ejBjEddd gdZ+e#ejBjEdejXd ejBj[d!"#d$d%gd&Z.e#ejBjEdgdejBjEd'd(d)gd*Z/e#ejBjEdgdd+Z0e#ejBjEdgdd,Z1e#ejBjEdgdd-Z2ejBjEd.e gd/d01e gd02egd02gejBjEd3e3e4e5d4gd5Z6e#ejBjEdgdd6Z7e#d7Z8e#d8Z9ejBjEd9d:d;gd<Z:y)=)datetimeN)is_extension_array_dtype) DataFrame DatetimeIndex MultiIndexNaT PeriodIndexSeriesTimedeltaIndex) DataError)Grouper) date_range) period_range)timedelta_range)_asfreq_compatdtii pitdiz1 dayz10 dayz3_index_factory,_series_name,_index_start,_index_endcfd}|S)Nc|i|S)z8return the _index_factory created using the args, kwargs)argskwargs_index_factorys e/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/pandas/tests/resample/test_base.py _create_indexz#create_index.._create_index,st.v..r)rrs` r create_indexr *s/ rfreq2D1hc|}|j|j}||jd|jd|}|j|}t j ||y)Nrr!)resampleasfreqindexreindextmassert_almost_equal)series_and_framer!r objresult new_indexexpecteds r test_asfreqr23s\ C \\$  & & (FSYYq\399R=tDI{{9%H68,rc|}|jdj}||jd|jdd}|j|}t j |||j djd}d|jd<|jdjd }||jd|jdd}|j|d }t j||y) Nr#rr%r&floatvaluer@) fill_value) r'r(r)r*r+assert_series_equalastypeto_frameilocassert_frame_equal)seriesr serr/r0r1frames rtest_asfreq_fill_valuer@@s C \\$  & & (FSYYq\399R=tDI{{9%H68, JJw  ( ( 1EEJJqM ^^D ! ( (C ( 8FU[[^U[[_4HI}}Y3}7H&(+rc|}|jdjj}|jdj}tj||y)N1min)r'r( interpolater+r<)r?dfr/r1s rtest_resample_interpolaterEVsP B [[ ' ' ) 5 5 7F{{6"..0H&(+rct}d}tjt|5|j ddddy#1swYyxYw)NzaOnly valid with DatetimeIndex, TimedeltaIndex or PeriodIndex, but got an instance of 'RangeIndex'matchYE)rpytestraises TypeErrorr')xpmsgs r%test_raises_on_non_datetimelike_indexrO_sD B . y , Ds AA )MEDhcT|}|dk(rRt|jtr8d}tjt |5|j |dddy|dk(rt|jtrd}|j |}t||}|dk(r_tg|jddjgd}t|j||_tj||d nC|j}t|j||_tj||d tj|j|j|jj |jj k(sJy#1swYyxYw) NrPaResampling on a TimedeltaIndex requires fixed-duration `freq`, e.g. '24h' or '3D', not rGMohlcropenhighlowcloser)columnsF check_dtype) isinstancer)r rJrK ValueErrorr'r getattrrcopyrr+r<r8assert_index_equalr!)r!empty_series_dtiresample_methodr>rNrsr/r1s rtest_resample_empty_seriesrhjsM C t| 399n= 1 ]]:S 1  LL   *SYY < d B )WR ) +F&  ciim((*4T ( 48 fhEB88:' 48 vxUC&,,7 <<   3 3 33 3+ s FF' min_countc.|}ttjtgd|}|j d}|j |}|dk(rdntj}t ddd }t|||}tj||y) N)z2000-01-01 00:00:00z2000-01-01 00:00:10z2000-01-01 00:00:20z2000-01-01 00:00:30r)dtype20s)rirz 2000-01-01)startr!periods) r pdNArr'sumrr+r8) string_dtype_no_objectrirlr>rgr/r5r)r1s rtest_resample_empty_sum_stringrvs #E     C e B VViV (Fq.BbeeE \q AEe56H68,rrPzDon't know why this fails)reason)marksrQrRcH|j}ttgt|z||_|j |}t ||}|dk(rDtg|jddjgd}tj||dn+|ddj}tj||dtj|j|j|jj|jjk(sJy)Nr&rVrrWr\Fr^) rcr rlenr)r'rbrr+r<r8rdr!)r!r=rfr>rgr/r1s rtest_resample_nat_index_seriesr{s ++-CSECH,48CI d B )WR ) +F&  ciim((*4T  fhEBr7<<> vxUC&,,7 <<   3 3 33 3rrfcountsizec|}|dk(rRt|jtr8d}tjt |5|j |dddy|dk(rt|jtrd}|j |}t||}t|j|}tgd||j}tj||y#1swYyxYw)NrPrTrGrUint64)rlr)name)r`r)r rJrKrar'r rbrr rr+r8) r!rerfr>rNrgr/r)r1s r test_resample_count_empty_seriesrs C t| 399n= 1 ]]:S 1  LL   *SYY < d B )WR ) +F 399d +Ebu388DH68, s C##C,c|}|dk(rTt|jtr:d}tjt |5|j |ddddy|dk(rt|jtrd}|j |d}t||}|dk(rwtj|jgdg}tg|jdd j|tj }t!|j||_n1|d k7r|j}nt#gtj$ }t!|j||_t'j(|j|j|jj*|jj*k(sJt'j,||y#1swYyxYw) NrPrTrGF group_keysrUrVrWr)r)r]rlr}rl)r`r)r rJrKrar'r rbr from_productr]rrcnpfloat64rr rr+rdr!r,) empty_frame_dtir!rfrDrNrgr/mir1s rtest_resample_empty_dataframersz B t| 288^< 1 ]]:S 1 0 KKK / 0 *RXX{; Te ,B )WR ) +F&  $ $bjj2R%S T bhhrl'')2RZZ ($7 F "779"BHH-#BHHd3HN&,,7 <<   3 3 33 368,5 0s GG"cg|d<|dk(rRt|jtr8d}tjt |5|j |dddy|dk(rt|jtrd}|j |j}t|j|}td|dg}tj||y#1swYyxYw)NarPrTrGrUr)rlr)r]) r`r)r rJrKrar'r r|rrr+r<r!rrNr/r)r1s r#test_resample_count_empty_dataframer s OC t| ?#8#8.I 1 ]]:S 1 +  $ $T * + *_%:%:KH  % %d + 1 1 3F ?00$ 7EwecUCH&(+ +s CC"cg|d<|dk(rRt|jtr8d}tjt |5|j |dddy|dk(rt|jtrd}|j |j}t|j|}tgd|}tj||y#1swYyxYw)NrrPrTrGrUr)rlr)) r`r)r rJrKrar'r r}rr r+r8rs r"test_resample_size_empty_dataframer%s OC t| ?#8#8.I 1 ]]:S 1 +  $ $T * + *_%:%:KH  % %d + 0 0 2F ?00$ 7Ebu5H68, +s CC!r)rUr)r!r)rrlzdatetime64[ns]ctg||}|jdd} t||y#t$rYywxYw)NdFr)r r'rbr )r)rlrfrergs rtest_resample_empty_dtypesr@sPb%/  " "35 " 9B $O$&    s4 AAc|}|dk(rRt|jtr8d}tjt |5|j |dddy|dk(rt|jtrd}|j |djd}|j |jd}tj||d y#1swYyxYw) NrPrTrGrUFrcy)Nrr)xs rz,test_apply_to_empty_series..isrrtr^) r`r)r rJrKrar'r applyr+r8)rer!r>rNr/r1s rtest_apply_to_empty_seriesrWs C t| #3#9#9>J 1 ]]:S 1 ,  % %d + , *%5%;%;[I \\$5\ 1 7 7 DF||D!''.H68? ,s CC cd}t|d}|j|}|j|}t||D](\\}}\}}||k(sJt j ||*y)NrRrp)r! convention)r groupbyr'zipr+r8) r=r!tggrouped resampledrkrvgkgvs rtest_resampler_is_iterableroso D dw /BnnR G%I!)W5'R(2rRxx r2&'rc|}dd}|j|j}|j|jfdj|j}t j ||y)Ng?rRc&|jS)N)quantile)rqs rrz(test_resample_quantile..s 1 r)r'raggrenamerr+r8)r=r>r!r/r1rs @rtest_resample_quantiler{sf C A D \\$  ( ( +F||D!%%&=>EEchhOH68,rhowfirstlastct|r!t|jj}ntj }t gd|d|dg|d|dgdtddd | }|jd }t||}|| }|j|jd tjdgz}t||| } d | j_t!j"|| y)Nr)rorrrog@r6)rbcz 2020-01-01rQ)rqr!rkrP)skipnarz 2020-01-31)rr rlna_valuernanrrr'rbrshaperr to_datetimer)r!r+r<) any_real_nullable_dtyperrrrDrgmethodr/gbr1s rtest_first_last_skipnars 78 78>>GG66 C3/C3/ qs;% B T B R F 6 "F BHHQK2>>,#?"@@ ABwr3v.HHNN&(+r);rnumpyrrJpandas.core.dtypes.commonrpandasrrrrrrr r r pandas._testing_testingr+pandas.core.groupby.groupbyr pandas.core.groupby.grouperr pandas.core.indexes.datetimesrpandas.core.indexes.periodrpandas.core.indexes.timedeltasrpandas.core.resampler DATE_RANGE PERIOD_RANGETIMEDELTA_RANGEmark parametrizeall_tsfixturer r2r@rErOrhrvparamxfailr{rrrrr4intobjectrrrrrrrrrs >1/43:/%$1!5xa7L M dHT1a$8(4B:OP "E7H=  9/  $.9J;X-/-9J;X,,&,,!12434Bq!f--.-0  T!2!2:U!2!VW  44*!12*Wf,=>-?3-2!12#-3#-P!12,3,2!12-3-2 BSs+bs#r$5#v7G"HI  J  !12@3@,''--& 12,3,r