gL i/ddlZddlZddlmZmZmZmZmZm Z m Z m Z ddl m ZddlmZddlmZej&dZej&dZGddZGd d ZGd d Zd ZdZy)N) DataFrame DatetimeIndexIndex MultiIndexSeries Timestamp date_range to_datetime) BaseIndexer) get_groupbyc>tgdgdtgddS)z0Frame for testing times argument in EWM groupby.) abcrrrrrrr) rrrrrrr) 2020-01-01rrz 2020-01-02 2020-01-10z 2020-01-22z 2020-01-03 2020-01-23rz 2020-01-04ABC)rr f/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/pandas/tests/window/test_groupby.py times_framers) C/    rchtdgdzdgdzzdgdzztjddS Nrr r(rrrnparangerrr roll_framer),s6 A38qcBh.!q8ryy}M NNrc *eZdZdZdZdZejjdgddZ ejjdddgd Z ejjd gd d Z ejjd ddgddggdZ ejjdddgdZ ejjdddgdZejjddddgddggfdddgddggfgdZdZdZejjdddgddggdZd Zd!Zejjd"gd#d$Zd%Zd&Zd'Zd(Zejjd)d*d+gd,Zd-Zd.Zd/Zd0Zejjd1d2d3dd4fd5ifgd6Zejjd7d8d9id9fd8d:id;fgd<Z ejjd=ddgd>Z!d?Z"d@Z#dAZ$dBZ%dCZ&ejjdDd3dEdFgdGfd3d3dFgdHfdIdIdFgdJfdIdIdKgdLfgdMZ'ejjdNe(jRdOdPgdQdRggdSZ*dTZ+ejjdUdVgdWgdXigdVd;ge,dYe,dZe,dYe,dZggd[d\ggd]Z-d^Z.d_Z/d`Z0daZ1dbZ2y:)c TestRollingcd}tjt|5|jdddddy#1swYyxYw)Nz4groupby\(\) got an unexpected keyword argument 'foo'matchrr)foo)pytestraises TypeErrorgroupby)selfr)msgs r!test_groupby_unsupported_argumentz-TestRolling.test_groupby_unsupported_argument2s=E ]]9C 0 +   s  * + + +s ;Ac|jd}t|d}|jjd}|j dj j}t j|||j djj }t j|||jj dj }t j|||jj|jj dj }t j||y)Nrbyc@|jdjS)Nrrollingmeanxs rz*TestRolling.test_getitem..;sqyy|/@/@/Brr) r3r rapplyr<r=tmassert_series_equalr)r4r)g g_mutatedexpectedresults r test_getitemzTestRolling.test_getitem7s   s # s3 ;;$$%BC1""$&& vx01$$& vx0Q$$& vx0%%jll3;;A>CCE vx0rc^|jd}|jdd}t|d}|jj d}|jj }t j|||jj }t j||y)Nrrr min_periodsr8cD|jddjS)NrrrJ)r<countr>s rr@z3TestRolling.test_getitem_multiple..Nsqyyy/J/P/P/Rr)r3r<r rrArMrBrC)r4r)rDrrErFrGs rtest_getitem_multiplez!TestRolling.test_getitem_multipleIs   s # IIaQI ' s3 ;;$$%RS vx0 vx0rfsumr=minmaxrMkurtskewc|jdd}|jd}t|}d}tjt |5|j fd}dddjdd }tj|dtd g}||_ tj||y#1swY]xYw) NrF group_keyswindow7DataFrameGroupBy.apply operated on the grouping columnsr-cDt|jdSNrZgetattrr<r?rPs rr@z*TestRolling.test_rolling..is)A1q)A)Crraxisr$ r3r<rarBassert_produces_warning FutureWarningrAdropr from_arraysrangeindexassert_frame_equal r4rPr)rDrNrGr5rFexpected_indexs ` r test_rollingzTestRolling.test_rollingVs   su  5 IIQI AG  ' ' S A EwwCDH E==1=-#//C%)0LM' fh/ E E CCstdvarc|jdd}|jd}t|d}d}tjt | 5|j fd }dddjdd }tj|dtd g}||_ tj||y#1swY]xYw) NrFrXrZr[rddofr]r-cHt|jddS)NrZrrtr`rbs rr@z/TestRolling.test_rolling_ddof..ys)A1q)Aq)Irrcr$rerms ` rtest_rolling_ddofzTestRolling.test_rolling_ddofqs   su  5 IIQI AA&G  ' ' S A KwwIJH K==1=-#//C%)0LM' fh/ K K CC interpolationlinearlowerhighermidpointnearestc|jdd}|jd}|jd}d}tjt | 5|j fd }dddjdd }tj|dtd g}||_ tj||y#1swY]xYw)NrFrXrZr[皙?ryr]r-cH|jdjdS)NrZrr)r<quantiler?rys rr@z3TestRolling.test_rolling_quantile..s!))A,//=/Qrrrcr$) r3r<rrBrfrgrArhrrirjrkrl) r4ryr)rDrNrGr5rFrns ` rtest_rolling_quantilez!TestRolling.test_rolling_quantiles   su  5 IIQI C}=G  ' ' S A wwQH  ==1=-#//C%)0LM' fh/  rxzf, expected_valcorrrcov?c4ttddgdzdgdzzgddzdjddg}ttdgdd jd}t|j d j d||}t jg|gd zzdz}t|d gtjdgdzdgdzzdgdzdgdzzttdddzggd}tj||y)N rr)rrrrZr)valueidx1idx2rr)rrrlevelrZr)rrrnamescolumnsrk) rrj set_indexrar3r<r'nanrrilistrBrl)r4rP expected_valdfotherrG expected_datarFs r/test_rolling_corr_cov_other_same_size_as_groupsz;TestRolling.test_rolling_corr_cov_other_same_size_as_groupss&Bi!qA37):OVWDW X )VV$ % E!HoFGQQ  <!,44Q7;EB&&\NQ$66!;  I((C!GqcAg%C!GqcAg%q!%) /    fh/rcVjd}|jd}t|}fd}d}tjt |5|j |}dddtjd<tj||y#1swY3xYw)NrrZr[cFt|jdSr_r`)r?rPr)s rfunczITestRolling.test_rolling_corr_cov_other_diff_size_as_groups..funcs+7199Q<+J7 7rr]r-) r3r<rarBrfrgrAr'rrl r4rPr)rDrNrGrr5rFs `` r/test_rolling_corr_cov_other_diff_size_as_groupsz;TestRolling.test_rolling_corr_cov_other_diff_size_as_groupss   s # IIQI Az* 8H  ' ' S A %wwt}H %  fh/  % %s BB(cB|jd}|jd}t|jd}fd}d}t j t |5|j|}dddt j|y#1swY xYw) NrrZr[Tpairwisec\t|jjddS)NrZTr)rarr<rbs rrz8TestRolling.test_rolling_corr_cov_pairwise..funcs#-7133;;q>1-t< s rr@z0TestRolling.test_rolling_apply.. 1557rrawr]r-cJ|jdjdS)NrZc"|jSrrys rr@zBTestRolling.test_rolling_apply....s aeegrr)r<rAr?rs rr@z0TestRolling.test_rolling_apply..s!1););s r isnumpyarrayz6TestRolling.test_groupby_rolling..isnumpyarraysz!RZZ01 1rrrrrrr)idrrrrr)rrrrrrrrrkname) rr3rr<rArrrrBrC)r4expected_value raw_valuerrrGrFs rtest_groupby_rollingz TestRolling.test_groupby_rollings 2i)< =D!''//28898U  q (()A$PTV  vx0rc zttdd}|j|jddj }tt j gdztjd}tj||ttdd}|j|jddj }tt j gd ztjd }tj||td gdzd gdzztd d}|jd jddj }tt j dddt j t j ddddt j g tjdd dgd g}tj||td gdzd gdzztdd}|jd jddj }tt j dddt j t j dddt j g tjdd dgd g}tj||y)NrrTr)centerr\r)rrrrrrZr)rrZrrZ)rrrrrr rrrr# ) rrrrrrrrrrZrrrrrrrr#rr)rrr)rkrr) rrrrrrrrrr) rrjr3r<r=r'rrrrBrCrrl)r4seriesrGrFrs r"test_groupby_rolling_center_centerz.TestRolling.test_groupby_rolling_center_center*sDa $'//tA/FKKM VVHqL(()QR  vx0a $'//tA/FKKM VVHqL(()IJ  vx0 cUQY#2rC DC((Q(?DDF VVQ1bffbffaAq"&& A(( Dk E% ( fh/ cUQY#2rC DC((Q(?DDF VVQ1bffbffaArvv >(( DkE# & fh/rcfttdddgdzdgdzztdd }|jd j dd d d j j }tj|d |d gd d g}tgdd|}tj||y)Nrrgroup_1rgroup_2rZr)Dategbr)datarrTr)onrrKr) r?rg@@g @@@rrrrrk) rr rjr3r<rr=rrirrBrC)r4rrGrrFs rtest_groupby_rolling_center_onz*TestRolling.test_groupby_rolling_center_onks "<> kAo a7r  JJt  WQ6$AW > U446   # #RXr&z$:4. Q >  vx0rrK)rrZrctdgdzdgdzztdd}d}|jdj|d| j }|j dd g}gd }|Dcgc]}|d z }}t d |dz }tjg|z} | ||d|z z| z} | ||d|z z| z} tdgdzdgdzz| | zd} tj|| ycc}w)Nrrrr!)grouprrrT)rrKr) rrrrr@g@rr @g$@rr) rrjr3r<r= reset_indexrTr'rrBrl) r4rKr window_sizerG grp_A_meanr? grp_B_meannum_nansnansgrp_A_expectedgrp_B_expectedrFs r'test_groupby_rolling_center_min_periodsz3TestRolling.test_groupby_rolling_center_min_periodss#sebj!8%)L M JJw  W[;W G TV  ##%w&78G (231a$h3 3q+/*x(" 8b8m DDtK 8b8m DDtKebjC52:-~7V W  fh/4s3 C3c tgdgdgdd}|jddgjdj}ttj tj dtj gdgt jd ddg  }tj|||jddjdj}ttj tj dtj gt jd ddg d }tj||y) N)rrrr)rrrr)rr!r!rrrrr)rrrrrrrr) rr3r<rTr'rrrrBrlrrC)r4rrGrFs rtest_groupby_subselect_rollingz*TestRolling.test_groupby_subselect_rollings %9@P Q C#'//2668 VVRVVS"&& )E((0d   fh/C%--a0446 VVRVVS"&& )((0d    vx0rcGddt}tdgddzidgdzdgdzzd gdzz }|j|jj |d d j }|j|jj dd j }t j||y)NceZdZ ddZy)FTestRolling.test_groupby_rolling_custom_indexer..SimpleIndexerNc| |jnd}tj|tjdz}|j |jz }|||dk<||fS)Nrdtyper)rr'r(int64copy)r4 num_valuesrKrclosedstependstarts rget_window_boundszXTestRolling.test_groupby_rolling_custom_indexer..SimpleIndexer.get_window_boundss]3>2Ed..1 ii "((;a? T%5%55#.eai cz!r)rNNNN)__name__ __module__ __qualname__rrrr SimpleIndexerr s  "rrr)rrrrrrrrrrr)rrJr\rK)r rr3rkr<rRrBrl)r4rrrGrFs r#test_groupby_rolling_custom_indexerz/TestRolling.test_groupby_rolling_custom_indexers "K " +a/ 0a1#'8IQCRSG8S  JJrxx W]q1qW A SU  ::bhh'//qa/HLLN fh/rc ttdtddgdzdgdzzdDcgc] }t|c}dzd}|jdj d d d d j }t tjtjddtjtjddgtj|dd gdd gd }tj||ycc}w)Nr#rrZr 2019-01-01r! 2019-01-02r"rcolumn1column2rdater1Dr&leftrrr$r"@rr rrjrr3r<rRrr'rr from_framerBrCr4r&rrGrFs r'test_groupby_rolling_subset_with_closedz3TestRolling.test_groupby_rolling_subset_with_closeds  8 8cUQY.!YdO     JJw  ' ' ' G R V V X  VVRVVS#rvvrvvsC @''GV$%'   vx0%sC=c ttdtddgdzdgdzzdDcgc] }t|c}dzd}|jdd d gj d d d d j }t tjtjddtjtjddgtj|dd gdd gd }tj||ycc}w)Nr#rrZrr rr#rr$r&r'r(r)rr*rrr+r-s r.test_groupby_subset_rolling_subset_with_closedz:TestRolling.test_groupby_subset_rolling_subset_with_closeds  8 8cUQY.!YdO     JJw F 3 4 WTfVW 4Y @ SU   VVRVVS#rvvrvvsC @''GV$%'   vx0+sDrrTrScltgdtjgdddgd}t|j |j d|}tt jt jd gtjgd gd d}tj||y) N)rrr))rr?)rr)rz12rrrrr))rrr?)rrr)rrr2)rr3r4) rrrrar3r<r'rrBrC)r4rdsrGrFs r"test_groupby_rolling_index_changedz.TestRolling.test_groupby_rolling_index_changed s ((4S#J  :B//2D9; VVRVVS !((=_   vx0rctdgi}|jdjdj}|j d}t j tgdtgdgddg|_tj||tggd }|jdd gjdj}|j dd g}t j tgdtgdtgdggd |_tj||y) Ns1rr[rfloat64rrr)r8s2r;)r8r;N) rr3r<rRrhr from_productrrkrBrl)r4rFrGs r test_groupby_rolling_empty_framez,TestRolling.test_groupby_rolling_empty_frames$dBZ(!!$'//q/9==?===.$00 2Y 'r)A B4QU,  fh/Bb12!!4,/77q7AEEG==$=6#00b *b *b(  %   fh/rctddtddddgddtddddgdd tddd dgd dtddd dgd d tddddgggdjd}|jd}|j |d<|j dd}|j d}tddtdddddgddtdddddgd dtddd ddgdd tddd ddgd d tdddddgggdjddg}tj||y)NrrrrrrZrrHrEr!)rkr eventTimer9rkr count_to_date10drCrc |jdS)Nr)shape)rs rr@z?TestRolling.test_groupby_rolling_string_index..Js!rrrr)rkrrCrD) rrrr3cumcountr<rArBrl)r4rgroupsrolling_groupsrGrFs r!test_groupby_rolling_string_indexz-TestRolling.test_groupby_rolling_string_index:s i4Aq!9:i4Aq!9:i4Aq!9:i4Aq!9:i4B!:;  4   )G  G$$oo/?+>%%&<=i4Aq!93?i4Aq!93?i4Aq!93?i4Aq!93?i4B!:C@  E   )Wg& '  fh/rc Xtddgddgdjddjdj}tt j ddgddggdd gt jd d gddg  }|jd}tj||y)Nrr)r/rr/F)sortrrr)rrrrrr9) rr3r<rSr'arrayrrrhrBrl)r4rGrFs rtest_groupby_rolling_no_sortz(TestRolling.test_groupby_rolling_no_sortWs q!faV4 5 WUW ' WQZ SU   HHsCj3*- .EN((&&)9%O  ===/ fh/rc ttdtddddgztdd|d}|jdj d d d d j }t gdd|d}tjgd|gdd g}ttjddtjddgd |}tj||y)Nrrrr20190101)rperiodsunitr#r3dr&r(r)r$)z 2018-12-27z 2018-12-29z 2018-12-31z 2018-12-28z 2018-12-30r!M8[]r)rrrrrrrrr)rrjr r3r<rMrrrirr'rrBrC)r4rTrrGdtirrFs r$test_groupby_rolling_count_closed_onz0TestRolling.test_groupby_rolling_count_closed_onhs  8 8c3Z"z14H    JJw  WTfVW 4Y @ UW   vQ-   # #. F#   VVS#rvvsC 0  vx0r)rkwargsr<rr expandingctddgddgddgddgddggddg}t|jd|d i|j}ttj gdztj dtj ddgd t jgd ddg  }|jd}tj||y)Nrrrrrr9rg&?r)rr)rr)rrrrZrrr) rrar3semr'rrrrhrBrl)r4rrZrrGrFs rtest_groupby_rolling_semz$TestRolling.test_groupby_rolling_sems 1XQx#qC8c1X >c  0C$/9&9==?66(Q,bffgrvvw%P Q((B3PT+ ===- fh/r)rollingskeyrrNrkc2ttddtjggdgdd}|dk(r|j d}t j t|d 5|jd jd i|dddy#1swYyxYw) Nz2020-06-01 12:00z2020-06-01 14:00rrrrkrz values must not have NaTr-r)60min) rr r'rrr0r1 ValueErrorr3r<)r4r`rars r"test_groupby_rolling_nans_in_indexz.TestRolling.test_groupby_rolling_nans_in_indexs  "46H"&&!QR   '>c"B ]]:u4M-N O 9 #BJJsO # # 8x 8 9 9 9s ""B  BrYc@gdgdg}tj|d}tgd|}|jddg|j d j }tgd tj gd gd }tj||y) Nval1rhval2rrrrrrrrXr)rrr)rhrhrhrhrk)riririri)rrrr) rrirr3r<r=rrBrC)r4rYarraysrksrGrFs rtest_groupby_rolling_group_keysz+TestRolling.test_groupby_rolling_group_keyss +,DE&&v5EF 9E *FF+ CKKANSSU (( 7    vx0rcXgdgdg}tj|d}tgdtdd|}|j dd gj d j }td gd itjgd gd}tj||y)Nrgrjr)rrrrr%rrrrr)rrr)rhrrhrhrp)rirriri)rrrr) rrirrjr3r<r=rrBrlr4rlrkrrGrFs r1test_groupby_rolling_index_level_and_column_labelz=TestRolling.test_groupby_rolling_index_level_and_column_labels*,DE&&v5EF YU1X6e DVSM*2215::< / "(( 4    fh/rc"ttjdddgdzd}|jdj dj }t jgdddg }tj|j|y) NrrrrZrrr)rr)rrZ)rrrr )rr)rrr) rr'r(r3r<r=rrrBassert_index_equalrkr4rrGrns r)test_groupby_rolling_resulting_multiindexz5TestRolling.test_groupby_rolling_resulting_multiindexst RYYs^1a&1*= >C((+002#// L+  fllN;rc2ttjdddgdzgddzd}|jdd gj dj }t jgd gd  }tj|j|y) Ng(@rrrrrrrZrrrr) )rrr)rrrZ)rrr#)rrr)rrr)rrr)rrr)rrr)rrr)rrZr)rrZr)rrZr)rrNr) rr'r(r3r<rRrrrBrtrkrus r*test_groupby_rolling_resulting_multiindex2z6TestRolling.test_groupby_rolling_resulting_multiindex2s RYYt_Aq6A:LSTDTU VS#J'//2668#// # " fllN;rcXttjdddgdzgddzd}|jdd }|j d j d j }tjgd gd }tj|j|dy)NrrrrZrxrrT)appendrr))rrrr)rrZr)rrr)rrr)rrrZ)rrr)rrrZ)rNrrequiv)exact) rr'r(rr3r<r=rrrBrtrkrus r*test_groupby_rolling_resulting_multiindex3z6TestRolling.test_groupby_rolling_resulting_multiindex3s RYYs^1a&1*s rr@zUTestRolling.test_groupby_rolling_object_doesnt_affect_groupby_apply..s1)9)9);rrZr[c@|jdjSr_rr>s rr@zUTestRolling.test_groupby_rolling_object_doesnt_affect_groupby_apply..!sqyy|'7'7'9r)r3rBrfrgrArkr<rt)r4r)rDr5rF_rGs r7test_groupby_rolling_object_doesnt_affect_groupby_applyzCTestRolling.test_groupby_rolling_object_doesnt_affect_groupby_applys   su  5G  ' ' S A Cww;<BBH C IIQI G  ' ' S A AWW9:@@F A fh/  C C A AsCC C  C)r\rKrrFrr()NrrrNrrr)NNrrNNrrrZ)NNNNNNNNright)NNNrNNNrc Jtgd}|jgdj|||jd}tt j |dt t j ddggd ggd gd g  }tj||y)N)rrrrZrrrr#)rrrrrrrr)r\rKrrr:rrr)rrrrrZrrr)rrrrrrrr)rrrZrrrrr)levelscodesr) rr3r<rrr'rOrrBrl)r4r\rKrrFrrGexpected_results rtest_groupby_rolling_varz$TestRolling.test_groupby_rolling_var$s/ 0 JJ/ 0 WF FW K SV  $ HHXY /!Q(*BC/1IJ  fo6rr)r)rrrrcJtddggdzddggdzzddggdzz|}|jd }|jjd }|j d }|j }d |j vsJtj|j|y) Nrrr!rr"rr#r9rT)deeprZ) rr3objrr<rRrrBrl)r4rrrD original_objrNrGs rtest_by_column_not_in_valuesz(TestRolling.test_by_column_not_in_values=s Ax"}Ax"}4Ax!|CW U JJsOuuzztz, IIaL&..((( aee\2rcgdgdg}tj|d}tdgdi|}|jd dj d j }t tjd tjd gtjgd gdd}tj||y)N)FalconrParrotr)CaptiveWildrr)AnimalTyperz Max Speed)g`x@gu@g>@g4@rrrrg @gI@))rrr)rrr)rrr)rrr)rrrr) rrirr3r<rRrr'rrrBrCrqs rtest_groupby_levelzTestRolling.test_groupby_levelJs 5 2 &&v5GH  %?@ N!$[199!<@@B VVUBFFD )(( 3   vx0rzby, expected_datarnum)Y@b@ri@ 2018-01-01 2018-01-02)rrr@o@)r&rcgdgdgdgdg}t|gd}|djd|d |d<|jdg}|Dcgc]}t||}}|j |d j d d j }dgdi} | j|t| |j} d|vr| djd|d | d<tj|| ycc}w)N)rrr)rrr)rrr)rrr)rr&rr9r&rVrWF)as_indexrrrr)rrrrr) rastyperrar3r<r=updaterkrBrl) r4r9rrTrrattrgp_byrGrFs rtest_as_index_falsezTestRolling.test_as_index_falsebs * ' & & &   t%: ;Z&&TF!}56 \\6( #/12tT"22 JJuuJ - 5 5QA 5 N S S U ./ & ((  ] "'/66TF!}EHV  fh/3sC:c Jtj|j}d}tj|d|}d|d<d}tj||}tj|d<d|d<t ||dj d}|jddjd d j}t|dtjtdgd zdgz|d tdgd zdgz|d g } tj|| y)Nrrg52DE)rkadl2rkrrri)rrr)r'rtyperepeatrrrr3r<r=rrrirrBrC) r4any_int_numpy_dtypetypsizeidxvalarrrrGrFs rtest_nan_and_zero_endpointsz'TestRolling.test_nan_and_zero_endpointsshh*+00iiA%BiiT"AB   )G  G$V,44BA4NSSU ((1#)qc/7C1#)qc/7C   vx0rc gd}d}t|Dcgc]}td|z|z|dzddc}}tjtd5|j d j d d dddycc}w#1swYyxYw) N)rrrrrrr*)tr?rz.* must be monotonicr-rr3s)rr\)rrr0r1rdr3r<)r4shuffledsecr?rs r"test_groupby_rolling_non_monotonicz.TestRolling.test_groupby_rolling_non_monotonics  IQ RA9QUS[)AB ? R ]]:-D E 9 JJsO # #s4 # 8 9 9 S 9 9sA=#BB c gdgdgdgdgdgdgdgdgd gd g }t|gd  }t|d |d <|jd }d}tjt |5|j d jdjd}ddd|jdjdd dj}tj|y#1swYSxYw)N)Davidz1/1/2015d)rz1/5/2015)rz 5/30/20152)rz 7/25/2015r)Ryanz1/4/2014r)rz 1/19/2015r)rz 3/31/2016r)Joez7/1/2015r)rz9/9/2015r)rz 10/15/2015r)rr&amount)rrr&r]r-rcF|jddjS)N180Drrr>s rr@z4TestRolling.test_groupby_monotonic..s6!28!xHLLN vx0  s /1C22C;ctddd}tdgdzdgdzzdgd zztj||ftjd d }d }t j t| 5|jdjdjd}ddd|jdjddjj}t j|y#1swYZxYw)Nz2016-01-01 09:30:00r!rm)rrSfreqrrr"rr#r$rr]r-rrcF|jddjS)N4srr;r>s rr@zJTestRolling.test_datelike_on_monotonic_within_each_group..s4!5!:!:!<rrrF)r rr' concatenater(rBrfrgrr3rAr<rr=rC)r4datesrr5rFrGs r,test_datelike_on_monotonic_within_each_groupz8TestRolling.test_datelike_on_monotonic_within_each_groups !6M S2Xb(A372^^UEN3YYr]  H  ' ' S A  S!<=   C((#(688==? vx0  s 51C??Dc 0tdgdzdgdzzdDcgc]}t|ddc}dztdd}tjt d5|j d jd d dddycc}w#1swYyxYw) Nrrr)iir?rrz&Each group within B must be monotonic.r-r365DrrF)rrrjr0r1rdr3r<)r4yearrs r0test_datelike_on_not_monotonic_within_each_groupz 9 1D12 4rr+cVeZdZejdZej jdgddZej jdddgdZ ej jdgd d Z ej jdd d gd Z dZ y) TestExpandingchtdgdzdgdzzdgdzztjddSr r&)r4s rframezTestExpanding.frames6sRx1#(2aS1W<299R=QRRrrPrQc|jdd}|j}t|}d}tjt |5|j fd}dddjdd}tj|dtd g}||_ tj||y#1swY]xYw) NrFrXr]r-cBt|jSrrar[rbs rr@z.TestExpanding.test_expanding..s)B)B)Drrrcr$ r3r[rarBrfrgrArhrrirjrkrl r4rPrrDrNrGr5rFrns ` rtest_expandingzTestExpanding.test_expandings MM#%M 0 KKMAG  ' ' S A FwwDEH F==1=-#//sU2Y0GH' fh/ F Fs CC rqrrc|jdd}|j}t|d}d}tjt |5|j fd}dddjdd }tj|dtd g}||_ tj||y#1swY]xYw) NrFrXrrtr]r-cFt|jdS)Nrrtrrbs rr@z3TestExpanding.test_expanding_ddof.. s)B)B)Jrrrcr$rrs ` rtest_expanding_ddofz!TestExpanding.test_expanding_ddofs MM#%M 0 KKMAA&G  ' ' S A LwwJKH L==1=-#//sU2Y0GH' fh/ L Lrpryrzc|jdd}|j}|jd}d}tjt |5|j fd}dddjdd }tj|dtd g}||_ tj||y#1swY]xYw) NrFrXrrr]r-cF|jjdS)Nrr)r[rrs rr@z7TestExpanding.test_expanding_quantile..3s!++-00M0Rrrrcr$) r3r[rrBrfrgrArhrrirjrkrl) r4ryrrDrNrGr5rFrns ` rtest_expanding_quantilez%TestExpanding.test_expanding_quantile(s MM#%M 0 KKMC}=G  ' ' S A wwRH  ==1=-#//sU2Y0GH' fh/  rprrcjd}|j}t|}fd}d}tjt |5|j |}dddttddttddz} tjj| d f<tj|d<tj||t|jd }fd } d}tjt |5|j | }dddtj||y#1swYxYw#1swY,xYw) NrcDt|jSrr)r?rPrs rfunc_0z5TestExpanding.test_expanding_corr_cov..func_0Cs,71;;=!,U3 3rr]r-r!=HqrTrcZt|jjdS)NTr)rarr[rbs rfunc_1z5TestExpanding.test_expanding_corr_cov..func_1Ts!.7133==?A.= =r)r3r[rarBrfrgrArrjr'rilocrlrrC) r4rPrrDrNrGrr5rFnull_idxrs `` rtest_expanding_corr_covz%TestExpanding.test_expanding_corr_cov<s) MM#  KKMAu% 4H  ' ' S A 'wwvH 'b" &eBn)==%'VV hk"  fh/ a$/ >H  ' ' S A 'wwvH ' vx0' ' '" ' 'sE%E"E"E+c|jdd}|j}|jd}d}tjt |5|jfd}dddj dd }tj|dtd g}||_ tj||y#1swY]xYw) NrFrXc"|jSrrr>s rr@z4TestExpanding.test_expanding_apply..arrrr]r-cH|jjdS)Nc"|jSrrrs rr@zFTestExpanding.test_expanding_apply....es rr)r[rArs rr@z4TestExpanding.test_expanding_apply..es!++---.?S-Irrrcr$) r3r[rArBrfrgrhrrirjrkrl) r4rrrDrNrGr5rFrns ` rtest_expanding_applyz"TestExpanding.test_expanding_apply\s MM#%M 0 KKM*4G  ' ' S A wwIH  ==1=-#//sU2Y0GH' fh/  s CCN) rrrr0fixturerrrrrrrrrrrrrs ^^SS [[ C 0 0 [[S5%.1 02 0 [[M00" [[S65/2131>0rrc 8eZdZejj ddgdgdejdddggdejd d d gggd Zejj dd ejdddggdejd ddgggdZ dZ dZ dZ y)TestEWMzmethod, expected_datar=)rgUUUUUU?gm۶m?g""""""@rqg۞?g?gt ?rrrgn۶m۶?g++?ctdgdztdd}t|jdj d|}td|it j gdddg  }tj||y) NrrZr%rrcomr)rrrrrr) rrjrar3ewmrrrBrlr4methodrrrGrFs r test_methodszTestEWM.test_methodspscUQYU1X6 7>C,,,5v>@ - (( Dk   fh/rrrrrgrڶ?g߿yq+?ctdgdztdd}t|jdj d}td|it j gdgd   }tj|||jddgjfd }tj||y) NrrZr%rrrr))rrr)rrr)rrr)rrr)rNNrrcFt|jdS)Nrr)rar)r?rs rr@z/TestEWM.test_pairwise_methods..s5gaeeenf57r) rrjrar3rrrrBrlrArs ` rtest_pairwise_methodszTestEWM.test_pairwise_methodss cUQYU1X6 7>C,,,5v>@ - (( (   fh/::c?C5)// 7  fh/rc d}|jd}|jdj||j}t dgdit j gdddg }tj||y) N23 daysrrhalflifetimesr) rgCus=?g;pGR?gZkB?rg>(?g8Kr?rgҧU?gA9w?) rr)rr)rr)rrr]r)rr)rr)rr#rr) popr3rr=rrrrBrl)r4rrrrGrFs r test_timeszTestEWM.test_timess$$$S)--xu-MRRT  (( Dk > fh/rcd}|jd}|jd}|j||j}|j||jj}t j ||y)Nrrrr)rr3rr=valuesrBrl)r4rrrrrGrFs rtest_times_arrayzTestEWM.test_times_arrayso$   %7<<>6685<<6@EEG fh/rc tgdtdddtdd}|jdj dd }|j }ttdddd gdzd t jgdttdgddg }tj|||dj }td gdzt jgdtdddgdd g d}tj|||j }tj||y)N)rrrrrz2021-9-1rh)rSr)r timestamprr1hr rFr)r rrrrr) rr rjr3r<rMrrirrBrlrrC)r4rgrprG expected_dfexpected_seriess r"test_dont_mutate_obj_after_slicingz*TestEWM.test_dont_mutate_obj_after_slicings/ /' ACH1X  jj&&t &<' ACHUQY ((*DqN;D$<   fk2S! EAI((-z13?[)    v7 fk2rN) rrrr0rrr'rrrrr rrrrrros [[ V W RVVXx: ; RVVS"46HI J 00$ [[ 2663Q' (52663(2S*TU0 0.%0N0%3rrctgdgdd}|jdg}|jdj|}t j gdddg}tt jt jt jgt jd d gd| }tj||y) N)rrrrZrrrrrr))rr)rr)rrrrr rr3r<rrrr'rrBrlrrrGrkrFs r.test_rolling_corr_with_single_integer_in_indexrs +)< =B SE B ZZ]  b  )F  " "#DSRVK XEvvrvvrvv&bffc3-?@H&(+rctgdgdd}|jdg}|jdj|}t j gdddg}tt jt jt jgt jd d gd| }tj||y) N)rrrrrrrr))rr)rr)rrrrrrrs r&test_rolling_corr_with_tuples_in_indexr s    B& SE B ZZ]  b  )F  " "/T{ Evvrvvrvv&bffc3-?@H&(+r)numpyr'r0pandasrrrrrrr r pandas._testing_testingrBpandas.api.indexersr pandas.core.groupby.groupbyr rrr)r+rrrrrrrr"s    +30OOM4M4`k0k0\K3K3\ ,,r