gL i& ddlZddlZddlmZmZmZmZmZm Z m Z m Z m Z ddl mZddlmZej$j'dZdZej$j-dgddZd Zej$j-d d d gd ZdZdZdZdZdZdZej$j-ddddigddggdZ dZ!dZ"dZ#dZ$dZ%dZ&ej$j-dgd d!Z'd"Z(d#Z)d$Z*y)%N) DataFrameIndex MultiIndexSeries Timestampconcat date_rangeisnanotna)offsetsz3ignore:.*(empty slice|0 for slice).*:RuntimeWarningcN|tj|jSN)npisfinitemeanxs d/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/pandas/tests/window/test_apply.pyfrs R[[^  ! ! ##bad_raw)Nrctjtd5tt dj dj t|dddy#1swYyxYw)Nz'raw parameter must be `True` or `False`matchrraw)pytestraises ValueErrorrrangerollingapplylen)rs rtest_rolling_apply_invalid_rawr&sM z)R S<uQx  #))#7);<<< 9AA'c|\}}tgd}|jdjtj||}|j j sJ|jddjtj||}tgdt}tj||y)N)rr enginerr min_periods)rrr+dtype) rr#r$rsumr allfloattmassert_almost_equal)engine_and_rawr-rvalsresultexpecteds r test_rolling_apply_out_of_boundsr<$s KFC , D \\"  # #BFF6s # CF ;;=     \\"!\ , 2 2266&c 2 RFm51H68,rwindowr)2scJttjjdj dtjjdj ddddt ddd  fd }j|j|d }jddj}tj||tjt5j|j|d dddy#1swYyxYw)Nr)rr+)sizeAB20130101speriodsfreqindexc|jdjdk(rtjS|jdS)Nr)rKrnaniloc)rdfs rrz1test_rolling_apply_with_pandas_objects..f?s2 771:! $66MvvbzrFrT)rrrandom default_rngstandard_normalintegersr r#r$rO reindex_liker6assert_frame_equalexternal_error_raisedAttributeError)r=rr:r;rPs @r&test_rolling_apply_with_pandas_objectsrY2s &&q)99!<&&q)221bq2A QS9  B ZZ  % %aU % 3Fwwqr{''+H&(+ ! !. 1. 6   -...s -#DD"c|\}}tgd}|jd|jd||}tj||tgd}|jdd | jd ||}tgd dd|}tj|||jdd | jt ||}tj||y) Nfloat64r1r+)stepc"|jSr)rrs rz$test_rolling_apply..Qs !&&(rr,)NNNr)rr/r\ct|Sr)r%rs rr^z$test_rolling_apply..Xs #a&r)?@rb)rr#r$r6assert_series_equalr%)r8r\r-rr;r:rFs rtest_rolling_applyrdLs KFCb *H   bt  , 2 26s3F68, !"A YYqadY 3 9 9S:Fo&vv.H68, YYqadY 3 9 9#fRU 9 VF68,rc@|\}}ttdddtddjddz}|j d }|j d }|j d || }|j d || }t j||y)NrEr@rFrGrBrCr)r)r=1scyNrrs rr^z test_all_apply..mrr,cyrhrirs rr^z test_all_apply..nrjr)rr r" set_indexr#r$r6rV)r8r-rrPerrr:r;s rtest_all_applyroas KFC Z=E!H M )C.   1 B $ A WW[SW 9Fxx Fx.~rjrrfrr=r/r,rar>5s) rr"rrKr#r$copyr6rV)r8r-rrPrr:r;s rtest_ragged_applyrurs5 KFC Cq? #B%&%&%&%&%& BH A ZZtZ 3 9 9!FPS 9 TFwwyHHSM&(+ ZZtZ 3 9 9!FPS 9 TFwwyHHSM&(+ ZZtZ 3 9 9!FPS 9 TFwwyHHSM&(+rctjtd5tt dj dj dddddy#1swYyxYw)Nz)engine must be either 'numba' or 'cython'rrc|Srrirs rr^z%test_invalid_engine..Arfoo)r-rr r!rr"r#r$rirrtest_invalid_enginer{sQ z)T UEuQx  #))+e)DEEEs 6AA$ctjtd5tt dj dj ddddidddy#1swYyxYw) Nz+cython engine does not accept engine_kwargsrrc|Srrirs rr^z3test_invalid_engine_kwargs_cython..sarcythonnopythonF)r- engine_kwargsrzrirr!test_invalid_engine_kwargs_cythonrsY z)V W uQx  #)) U8K *    r'ctjtd5tt dj dj ddddddy#1swYyxYw)Nz.raw must be `True` when using the numba enginerrc|Srrirs rr^z(test_invalid_raw_numba..rxrFnumba)rr-rzrirrtest_invalid_raw_numbarsX J R uQx  #))+5)QRRRs 7AA% args_kwargsparr+)r+cd}tddgddgd}tddg}tddgddgg| }|jdj||d |d }t j ||t jd d gddg}tddg|d}|jddjd}|j||d |d }t j||y)Nc2tj||zSr)rr3)rrs rnumpysumz0test_rolling_apply_args_kwargs..numpysumsvva#grrr))grarrg&@g(@)columnsr)argskwargs)rr)rr)names)rKname) rrr#r$r6rVr from_tuplesrgroupbyrc)rrrPidxr;r:midx gb_rollings rtest_rolling_apply_args_kwargsrs 1a&1v. /B s C4,t 5sCH ZZ]  A{ST~ VF&(+  ! !66"24, GDtTl$S9HD!#&..q1J   h[^KPQN  SF68,rcttjjdj d}tj |ddtj |dd|j ddjt|}tj|jdtj|dd|j d d jt|}t|jd sJt|jd rJt|jd rJt|jdsJttjjdj d }|j ddjt|}t|jdsJt|jdsJ|j d djt|}|j d djt|}tj||y)Nr)2r+r.rrMir@rr*rr)rrrQrRrSrNr#r$rr6r7rOrr r )robjr:obj2result0result1s r test_nansrs &&q)99"= >CvvCHCI [[[ , 2 21# 2 >F6;;r?BGGC3K,@A[[[ , 2 21# 2 >F  B  FKKO$$ $FKKO$$ $  B  "))''*::2> ?D \\"!\ , 2 21# 2 >F  A   Q  kk"!k,221#2>Gkk"!k,221#2>G7G,rcttjjdj d}tj |ddtj |dd|j dddjt| }t|ttj gd zgj dd jt| jd djd }tj||y) Nr)rr+rrrT)r/centerr r.)drop)rrrQrRrSrNr#r$rrrO reset_indexr6rc)rrr:r;s r test_centerrs &&q)99"= >CvvCHCI [[D[ 9 ? ?s ? KFVRVVHqL)*+  $ qc  ab  $   68,rc|jdjt|}t|tsJt j |jdtj|ddy)NrrrM) r#r$r isinstancerr6r7rOrr)rseriesr:s r test_seriesrsW ^^B  % %aS % 1F ff %% %6;;r?BGGF34L,ABrc,|jdjt|}t|tsJt j |jdddf|jddddfjtjd|dy) NrrrMrr)axisrF check_names) r#r$rrrr6rcrOrr)rframer:s r test_framersy ]]2  $ $QC $ 0F fi (( ( BE 347!!"''s!;rcd}d}|dddjdj}|j||jt|}|j d}|dt jzz }|dddj||}tj|jdtj|y) Nr+r)rDrrrrMr) resamplerr#r$rrKr BDaytruncater6r7rOr) rrwinminpser series_result last_date prev_date trunc_seriess rtest_time_rule_seriesrs C D 1+  s # ( ( *CKKsK=CCA3COM##B'IB//I#A#;'' 9=L=--b1277<3HIrcd}d}|dddjdj}|j||jt|}|j d}|dt jzz }|dddj||}tj|j||jtj|d y) Nrr+r)rDrrrrMrFr) rrr#r$rrKr rrr6rcxsr) rrrrfrm frame_resultrr trunc_frames rtest_time_rule_framers C D !*  c " ' ' )C;;ct;<BB1#BNL""2&IB//I!*%%i;K ""''s+rr)rcdcd|jt|dz||jt|}|jt|||jt|}t |}t j |t ||}t j||||y)Nrr_r)r#r%r$rr r6rcr7)rrrr\r:r;nan_masks rtest_min_periodsrs ^^CK!OD^ I O O sPF~~c&kt$~GMM sNHF|H8T(^4yH6(+Xh-?@rctdDcgc]}d|d }}d}|jt|j|zj d|j t |jdj|j}|j d|d j t |}tj||ycc}w) N rdr+rrrrTr=r/r) r"reindexlistrKr#r$rshiftr6rc)rrrrFr series_xp series_rss rtest_center_reindex_seriesrs!"I&q1QqE&A& D tFLL)A-.  - qc  s   bd4HNN sOI9i0 's Ccttdtddd}tdDcgc]}d|d }}d }|jt |j |zj d | jt| jd j|j }|j d |djt| }tj||ycc}w)Nrz 2020-01-01D)rIrHrJrrrr+rrrrrTr) rr"r rrrKr#r$rrr6rV)rrrrFrframe_xpframe_rss rtest_center_reindex_framer0s eCj rsA    "[[ ' '9 $L1<2< -At9-...2-*,",:E  R$ )