
    Mh                     B&   S SK J r Jr  S SKrS SKrS SKJrJrJr  S SK	J
r
JrJrJrJrJrJrJrJrJr  S SKJr  S SKJr  S SKJr  S SKJr  S rS	 r\R>                  RA                  S
SS\RB                  " S/5      /5      S 5       r"\R>                  RA                  S\" SS9\" SS9S\" \" SSS9\" S5      S9/5      S 5       r#\R>                  RA                  SSS/5      S 5       r$\R>                  RA                  S\" SS9\" SS9/5      S 5       r%\R>                  RA                  S\" SS9\" SS9S/5      S 5       r&S r'\R>                  RA                  S S!/ S"Q/ S#Q/ S$Q/ S%Q/ S&Q/4S'/ S(Q/ S"Q/ S)Q/ S*Q/ S&Q/4S+/ S"Q/ S)Q/ S*Q/ S&Q/ S,Q/4S-/ S(Q/ S.Q/ S/Q/ S0Q/ S,Q/4/5      S1 5       r(\R>                  RA                  S2S3S+/ S4Q4S3S!/ S4Q4S3S'/ S4Q4S3S-/ S4Q4S5S+/ S6Q4S5S!/ S4Q4S5S'/ S7Q4S5S-/ S8Q4/5      S9 5       r)\R>                  RA                  S2S:S+/ S;Q4S:S'/ S<Q4S:S!/ S=Q4S:S-/ S>Q4/5      S? 5       r*\R>                  RA                  S@S'\RV                  \RV                  SSSSASBSBSCSD/
4S-\RV                  \RV                  SSSSESSSFSG/
4S+/ SHQ4S!/ SIQ4/5      SJ 5       r,\R>                  RA                  S@S'\RV                  \RV                  SSSSASKSKSCSD/
4S-\RV                  \RV                  SSSSASKSKSFSG/
4S+/ SLQ4S!/ SMQ4/5      SN 5       r-SO r.SP r/\R>                  RA                  SQS-S'/5      SR 5       r0\R>                  RA                  SSSTSU/5      SV 5       r1\R>                  RA                  SSSTSU/5      SW 5       r2\R>                  RA                  SXSYSZ/5      \R>                  RA                  S[STS+/ S\Q4STS!/ S]Q4STS-\RV                  S S SSSS^SS_S`/
4STS'\RV                  S S S SSSS^SS_/
4SUS+/ SaQ4SUS!/ SaQ4SUS-\RV                  S SSSS^SS_S`SG/
4SUS'\RV                  S SSSS^SS_S`SG/
4/5      Sb 5       5       r3Sc r4\R>                  RA                  S[STS+\RV                  S S SSSS^S\RV                  \RV                  /
4STS!\RV                  S S S SSSS^S\RV                  /
4STS-\RV                  \RV                  S SSSS^S\RV                  \RV                  /
4STS'\RV                  \RV                  S S SSSS^S\RV                  /
4SUS+\RV                  SSSS^SS_S_\RV                  \RV                  /
4SUS!\RV                  SSSS^SS_S_S_\RV                  /
4SUS-\RV                  \RV                  SSSS^SS_\RV                  \RV                  /
4SUS'\RV                  \RV                  SSSS^SS_S_\RV                  /
4/5      Sd 5       r5\R>                  RA                  S@S+/ SeQ4S!/ SfQ4S-\RV                  S SgShSiSjSkSlSmSn/
4S'\RV                  S SgSSSS^SS_S`/
4/5      So 5       r6\R>                  RA                  SpSqS/5      Sr 5       r7Ss r8St r9Su r:Sv r;Sw r<Sx r=Sy r>Sz r?\R>                  RA                  S{S|S}/5      S~ 5       r@S rAS rBS rC\R>                  RA                  S\
" / SQ/ SQS.5      S/S^/S.S /4SS/S^S/S.S S/4/ SQ/ SQS./ SQ4/SS4\
" / SQ/ SQS.5      S/S^/S.S /4SS/S^S/S.S S/4SS/SS_/S.SS/4/SS4\
" / SQ/ SQS.5      S/S^/S.S /4SS/S^S/S.S S/4SS/SS_/S.SS/4/SS4\
" / SQ/ SQS.5      S/S^/S.S /4S/S/S.S/4S/S_/S.S/4/SS4\
" / SQ/ SQS.5      S/S^/S.S /4S/S/S.S/4S/S_/S.S/4/SS 4\
" S/S^/S.5      / SS4\
" S/S^/S.5      / SS4\
" 5       0 / 4/SS4\
" S\RV                  S/\RV                  SS_/S.5      S/\RV                  /S.S /4S\RV                  /\RV                  S/S.S S/4S\RV                  S/\RV                  SS_/S./ SQ4/SS4/	5      S 5       rD\R>                  RA                  SS/S^/S.S /4SS/S^S/S.S S/4SS/SS_/S.SS/4/S:4S/S^/S.S /4SS/S^S/S.S S/4/ SQ/ SQS./ SQ4/S4S/S^/S.S /4S/S/S.S/4S/S_/S.S/4/S4/5      S 5       rES rF\R>                  RA                  S\" / SQ5      S/S /4SS/S S/4/ SQ/ SQ4/SS4\" / SQ5      S/S /4SS/S S/4/ SQ/ SQ4/SS4\" / SQ5      S/S /4SS/S S/4SS/SS/4/SS4\" / SQ5      S/S /4SS/S S/4SS/SS/4/SS4\" / SQ5      S/S /4S/S/4S/S/4/SS 4\" / SQ5      S/S /4S/S/4S/S/4/SS4\" SS/5      S/S /4SS/S S/4/SS 4\" / SS9/ SS4/5      S 5       rG\R>                  RA                  SS /S/S/S/S^//\" SSSS9\" SSSS9\" SSSS9\" SSSS9\" SSSS9/S4S /S S/SS/SS/SS^//\" SSSS9\" SSSS9\" SSSS9\" SSSS9\" SSSS9/S:4S /S S// SQ/ SQ/ SQ/\" SSSS9\" SSSS9\" SSSS9\" SSSS9\" SSSS9/S4/5      S 5       rH\R>                  RA                  SSS 0\R                  " / SQSS/S94SS0\R                  " / SQSS/S94/5      S 5       rJ\R>                  RA                  SSS/5      S 5       rKS rLS rMS rNS rO\R>                  RA                  S/ SQ5      S 5       rPS rQ\R>                  RA                  SS\" S5      \" S5      /5      S 5       rRS rS\R>                  RA                  S\" SSSTS9S4\" SSSS9S4/5      \R>                  RA                  SST\RV                  S S SSSS^SS_/	4SU\RV                  S SSSS^SS_S`/	4S\RV                  S SSSS`SESSF/	4/5      S 5       5       rTS rU\R>                  R                  \" 5       =(       d    \" 5       SS9\R>                  RA                  SSS/ SQ4SS/ SQ4SS/ SQ4SS/ SQ4/5      S 5       5       rWS rX\R>                  RA                  S/ SQ5      S 5       rY\R>                  RA                  S2S5S+/ SQ4S5S'/ SQ4S5S!/ SQ4S5S-/ SQ4S3S+/ SQ4S3S'/ SQ4S3S!/ SQ4S3S-/ SQ4/5      S 5       rZ\R>                  RA                  SS/ SQ4S/ SQ4/5      S 5       r[\R>                  RA                  SS\\" S5      S\\" S5      SSSSS/4S\\" S5      Sn\\" S5      SSSSS/4S\\" S5      S\\" S5      SSSSS/4S\\" S5      S\\" S5      SSSSS/4S\\" S5      S\\" S5      SSSSS/4/5      S 5       r]\R>                  RA                  S/ SQS4\" SSSS9S:4/5      S 5       r^GS  r_\R>                  RA                  SSS/5      GS 5       r`\R>                  RA                  GSS/ GSQ4S/ GSQ4/5      GS 5       raGS rb\R>                  RA                  SSGS/5      GS 5       rcGS	 rdGS
 re\R>                  RA                  GSS/ GSQ4S/ GSQ4/5      GS 5       rfGS rgGS rhGS riGS rj\R>                  RA                  S/ GSQ5      \R>                  RA                  S/ GSQ5      \R>                  RA                  GSS|S}/5      \R>                  RA                  GSS|S}/5      \R>                  RA                  GS/ GSQ5      GS 5       5       5       5       5       rkGS rl\R>                  RA                  GS/ GSQ5      \R>                  RA                  GS/ GSQ5      \R>                  RA                  GS/ GS Q/ GS!QS\RV                  GS"\RV                  GS#/\RV                  \RV                  \RV                  \RV                  /\RV                  GS$\RV                  GS%GS#Sg/Sg/\RV                  GS&GS'//5      GS( 5       5       5       rmGS) rnGS* roGS+ rpGS, rqGS- rrGS. rs\R>                  RA                  / GS/QGS0SASA\R                  SSSS/SS\RV                  GS1GS2S GS3S GS4S//GS0SASA\RV                  SASSS/SS\RV                  GS1GS2S S GS3GS5S//\RV                  SS_S`SSS/SS\RV                  /S-  / GS6Q-   /SS`S`S`\RV                  \R                  S^SSS/
SS\RV                  /S-  GS7S /-   \RV                  /S^-  -   GS4S /-   /SS`S`S`\RV                  \R                  S`SSS/
SS\RV                  /S-  GS7S /-   \RV                  /S^-  -   GS8S /-   /SS`/S^-  SS\RV                  /S-  GS7/S_-  -   /SS`S\RV                  S`SS`/SS\RV                  SGS7/S/S-  -   GS7/-   //5      GS9 5       ruGS: rvGS; rwGS< rx\R>                  RA                  GS=SS/5      \R>                  RA                  GS>S|S}/5      GS? 5       5       ry\R>                  RA                  GS@\z\{/5      GSA 5       r|\R>                  RA                  GS=SS/5      \R>                  RA                  GS>S|S}/5      \R>                  RA                  GS@\z\{/5      GSB 5       5       5       r}\R>                  RA                  GSC/ GSDQ5      \R>                  RA                  GSE/ GSFQ5      GSG 5       5       r~g(H      )datetime	timedeltaN)IS64is_platform_armis_platform_power)
	DataFrameDatetimeIndex
MultiIndexSeries	Timedelta	Timestamp
date_rangeperiod_rangeto_datetimeto_timedelta)BaseIndexer)VariableOffsetWindowIndexer)BusinessDayc                      [        SSSS[        R                  S/05      n U   U R                  S5      R	                  5         U R                  SSS9R	                  5         g )NBr            min_periods)r   npnanrollingsum)dfs    R/var/www/html/env/lib/python3.13/site-packages/pandas/tests/window/test_rolling.pytest_doc_stringr"   "   sP    	C!Q2661-.	/BJJqMJJqaJ $$&    c                     U " [        S5      5      R                  nU" S5        U" SS9  U" SSS9  U" SSSS9  U" SSS	S9  S
n[        R                  " [        US9   U" S5        S S S 5        g ! , (       d  f       g = f)N   r   r   windowr   r'   r   Tr'   r   centerFz&window must be an integer 0 or greatermatch)ranger   pytestraises
ValueError)frame_or_seriescmsgs      r!   test_constructorr5   )   sr     	a!))A aDQKQAQAd+QAe, 3C	z	-	" 
.	-	-s   	A..
A<w       @foor   c                    U " [        S5      5      R                  nSR                  SS/5      n[        R                  " [
        US9   U" US9  S S S 5        Sn[        R                  " [
        US9   U" SUS	9  S S S 5        S
n[        R                  " [
        US9   U" SSUS9  S S S 5        g ! , (       d  f       Nf= f! , (       d  f       NL= f! , (       d  f       g = f)Nr%   |zwindow must be an integerz=passed window foo is not compatible with a datetimelike indexr+   r&   zmin_periods must be an integerr   r(   zcenter must be a booleanr   r)   )r.   r   joinr/   r0   r1   )r2   r6   r3   r4   s       r!   test_invalid_constructorr<   =   s     	a!))A
(('K	
C 
z	-	 
. +C	z	-	" 
. %C	z	-	!, 
.	- 
.	- 
.	- 
.	-s$   B/2C 	C/
B= 
C
Cr'      days3Dz
2015-12-25r%   periodsr   indexoffsetc           	          [        [        R                  " S5      [        SSSS9S9n[        R
                  " [        SS9   UR                  U SS	9R                  5         S S S 5        g ! , (       d  f       g = f)
N
   
2015-12-24DrB   freqrD   z(^step (not implemented|is not supported)r+   r=   step)	r   r   aranger   r/   r0   NotImplementedErrorr   r   )r'   r    s     r!    test_freq_window_not_implementedrQ   U   sd     

		"r<
B 
#M
 	

6
"&&(
 
 
s   A))
A7aggcovcorrc                     [        [        S5      5      R                  SSS9n[        R                  " [
        SS9   [        X5      " 5         S S S 5        g ! , (       d  f       g = f)Nr   r   rM   zstep not implementedr+   )r   r.   r   r/   r0   rP   getattr)rR   rolls     r!   &test_step_not_implemented_for_cov_corrrX   l   sJ     U1X&&qq&1D	*2H	I 
J	I	Is   A
A$c           	         Sn[        S[        R                  " U5      0[        SUSS9S9n[        R                  " SS/[        R                  " S	S
S5      5      nUR                  U S9R                  5       n[        SU0[        SUSS9S9n[        R                  " XE5        UR                  S5      R                  5       n[        R                  " XE5        g )NrG   valuerH   rI   rJ   rL                 ?      @      ;@r=   r&   r@   )	r   r   rO   r   appendr   r   tmassert_frame_equal)r'   nr    expected_dataresultexpecteds         r!   &test_constructor_with_timedelta_windowrf   t   s     	A		"))A,qs;
B IIsCj"))Cq*ABMZZvZ&**,F	- qs;H &+zz$##%H&+r#   c                    Sn[        S[        R                  " U5      0[        SUSS9S9n[        S[        R                  " [        R
                  S/[        R                  " SS	S
5      5      0[        SUSS9S9nUR                  U SS9R                  5       nUR                  U SS9R                  [        US9n[        R                  " XT5        [        R                  " Xd5        g )NrG   rZ   z
2017-08-08rI   rJ   rL   r\   r]   r^   r=   r   r(   )raw)r   r   rO   r   r_   r   r   r   applyr`   ra   )r'   rh   rb   r    re   result_roll_sumresult_roll_generics          r!   0test_constructor_timedelta_window_and_minperiodsrl      s     	A		"))A,qs;
B 	"))RVVSM299S$+BCDqs;H jjAj>BBDO**F*BHHRUHV/4-8r#   c                    Un[        S/ SQ05      n[        S/ SQ0[        SSS9S9n[        UR                  SU SS	9U5      " 5       n[        UR                  S
U SS	9U5      " 5       R	                  SS9n[
        R                  " XV5        g )NAr   r   r   r=   r   2020r%   rA   rL   r   r   closedr   2DTdrop)r   r   rV   r   reset_indexr`   ra   )rr   arithmetic_win_operators	func_namedf_fixeddf_timerd   re   s          r!   test_closed_fixedr{      s    (I#/0Ho.jQR6STG6q9 F V;  	 
 &+r#   zclosed, window_selectionsboth)TTFFF)TTTFF)FTTTF)FFTTT)FFFTTleft)TFFFF)FTTFF)FFTTFright)FFFFTneither)FTFFF)FFTFF)FFFTFc           
      N   Un[        S/ SQ0[        SSS9S9n[        SU Vs/ s H$  n[        US   R                  U   U5      " 5       PM&     sn0[        SSS9S9nUS:X  a  SS	0nO0 n[        UR	                  S
U SSS9U5      " S0 UD6n[
        R                  " XSS9  g s  snf )Nrn   )r[   r\   r7   r]         @rp   r%   rA   rL   semddofr   rs   r   T)rr   r   r*   Fcheck_dtype )r   r   rV   ilocr   r`   ra   )	rr   window_selectionsrw   rx   rz   sre   kwargsrd   s	            r!   %test_datetimelike_centered_selectionsr      s    b )I	'(
610MG 	CTUCTawws|((+Y79CTUV+H
 E!V4H  	F
 &> Vs   +B"
zwindow,closed,expected3s)r]   r]   r]   2s)r]   r7   r7   )r\   r]   r]   r\   r7   r7   c                     [        S5      [        S5      [        S5      /nU" / SQUS9nUR                  XSS9R                  5       nU" X$S9n[        R                  " Xb5        g )Nz20130101 09:00:01z20130101 09:00:02)r   r   r   rL   Trr   r*   )r   r   r   r`   assert_equalr'   rr   re   r2   rD   r    rd   s          r!   ,test_datetimelike_centered_offset_covers_allr      se    & 	%&%&%&E
 
%	0BZZdZ;??AFx5HOOF%r#   rs   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r      r   r   r   r   r   )r   r   r   r   r   r   r   r   c                     [        / SQ5      nU" S/S-  U[        S9nU" X$[        S9nUR                  U SUS9R                  5       n[        R
                  " Xb5        g )N)
2020-01-01r   
2020-01-02r   
2020-01-03r   
2020-01-04r   r      rD   dtypeT)r*   rr   )r	   floatr   r   r`   r   r   s          r!   +test_datetimelike_nonunique_index_centeringr     s^     		
E 
!qU	;BxEBHZZtFZ;??AFOOF%r#   zclosed,expectedrG            	      r   )
r   r   r=   r   rG   r      r   r      )
r   r   r=   r   rG                  c                     [        / SQ5      nU" [        S5      U[        S9nU" X[        S9nUR                  SU S9R	                  5       n[
        R                  " XQ5        g )N

2011-01-01r   
2011-01-02r   r   z
2011-01-03
2011-01-04r   z
2011-01-05z
2011-01-06rG   r   rs   rr   )r	   r.   r   r   r   r`   r   )rr   re   r2   rD   r    rd   s         r!   test_variable_window_nonuniquer   3  sZ     	
E 
r%u	=BxEBHZZVZ,002FOOF%r#   r   )
r   r   r=   r   rG   r   r      r   r   )
r   r   r=   r   rG   r   r   r   r   r   c                     [        / SQ5      nU" [        S5      U[        S9nU" X[        S9n[        S5      n[	        X5S9nUR                  X`SS9R                  5       n[        R                  " Xq5        g )Nr   rG   r   r   rC   r   rq   )	r	   r.   r   r   r   r   r   r`   r   )rr   re   r2   rD   r    rE   indexerrd   s           r!   %test_variable_offset_window_nonuniquer   U  sm     	
E 
r%u	=BxEBH^F)EGZZAZ>BBDFOOF%r#   c            	          [        [        S5      [        SSSS9S9n U R                  SSSS	9R	                  5       n[        / S
QU R
                  S9n[        R                  " X5        g )Nr=   r   rI   startrK   rB   rL   rs   r   Tr)   )      ?      ?r   )r   r.   r   r   meanrD   r`   assert_series_equalr   rd   re   s      r!   !test_even_number_window_alignmentr   y  sY    uQxz3PQRSA
 YYd$Y?DDFFm1773H6,r#   c                 Z   / SQn[        SU0[        SS[        U5      S9S9nU (       a  / SQnO[        R                  SS	S
S	SS	S/n[        US/[        SS[        U5      S9S9S S U2   nUR                  [        U5      SSXS9nUR                  5       n[        R                  " Xu5        g )N)r   r   r   r   r   r   r   r   
binary_colr   minr   rL   )UUUUUU?r   皙?r   @m?r   g._x%I?r   r   r   r   r   r   )columnsrD   r}   r   )r'   rr   r   r*   rN   )	r   r   lenr   r   r   r   r`   ra   )r*   rN   datar    rc   re   r   rd   s           r!   test_closed_fixed_binary_colr     s    #D		t|%TK
B
 LCS#xH|%]AST f	H jj2wv1V  G \\^F&+r#   rr   c           	         Un[        [        R                  " S5      [        SSSS9S9nUR	                  SU S9n[        XB5      " 5       n[        [        R                  /S-  UR                  S9n[        R                  " XV5        g )	Nr%   2000rs   rJ   r   rD   1Dr   rL   )
r   r   rO   r   r   rV   r   rD   r`   r   )rr   rw   rx   serrW   rd   re   s          r!   test_closed_emptyr     sm     )I
biil*VQT*R
SC;;tF;+DT%'Frvvhl#))4H6,r#   funcr   maxc                     [        S/[        SSS9S9n[        UR                  SSS9U 5      " 5       n[        R
                  " U[        [        R                  /UR                  S	95        g )
Nr   r   r   rA   r   10Dr}   r   rL   )	r   r   rV   r   r`   r   r   r   rD   )r   r   rd   s      r!   test_closed_one_entryr     sV     qcFA!>
?CS[[v[6=?F66266(#))#DEr#   c                 \   [        / SQ/ SQS.[        SSS9S9n[        UR                  SS	S
9S   R	                  SSS9U 5      " 5       n[
        R                  " / SQUR                  /SS9n[        [        R                  S[        R                  /USS9n[        R                  " X$5        g )N)r   r   r   )r=   r   r   rn   r   r   r=   rA   r   rn   F)sortr   r   r}   r   )rn   N)arraysnames)r   rD   name)r   r   rV   groupbyr   r
   from_arraysrD   r   r   r   r`   r   )r   r   rd   exp_idxre   s        r!   test_closed_one_entry_groupbyr     s     9-+C Ce$S)11%1G F $$Y		,B+VGBFFArvv.gCHH6,r#   input_dtypeintr   zfunc,closed,expected)
r[   r   r   r   r   r=   r   r%   r      )
r[   r   r   r   r   r   r=   r   r%   r   r   r   r   )
r[   r   r   r=   r   r%   r   r   r   r   c                     [        [        R                  " S5      R                  U 5      [	        SSS9S9n[        UR                  SUS9U5      " 5       n[        X4R                  S9n[        R                  " XS5        g )NrG   r   rA   r   r@   r   rL   )
r   r   rO   astyper   rV   r   rD   r`   r   )r   r   rr   re   r   rd   s         r!   test_closed_min_max_datetimer     sh      YYr]!!+.,C
 S[[f[5t<>Fhii0H6,r#   c            
      H   [        [        R                  " S5      [        SSS9S9n U R	                  U R
                  SS/   S9n U R                  SS	S
9R                  5       n[        [        R                  SSSSSSS/U R
                  S9n[        R                  " X5        g )NrG   r   rA   r   r   r%   rL   r@   r}   r   r   r   r=   r   r   )r   r   rO   r   ru   rD   r   r   r   r`   r   )r   rd   re   s      r!   test_closed_unevenr     s    
biim:fb+I
JC ((Aq6*(
+C[[f[-113Frvvq!Q1a3399EH6,r#   c                 B   [        [        R                  " S5      [        SSS9S9nUR	                  S5      n[        R
                  X3R                  SS  '   [        UR                  SSUS	9U 5      " 5       n[        X#R                  S
9n[        R                  " XB5        g )NrG   r   rA   r   r   r@   r   )r   rr   rL   )r   r   rO   r   r   r   rD   rV   r   r`   r   )r   rr   re   r   rd   s        r!   test_closed_min_max_minpr     s}     biim:fb+I
JC
**W
C&&C		"#S[[1V[DdKMFhii0H6,r#   )
r   r   r   r   r=   r   r%   r   r   r   )
r   r   r   r         @      @      @      @      @      @r   r   r   r   r   r   r   r   c                 0   [        [        R                  " S5      [        SSS9S9nUR	                  SU S9n[        XR
                  S9nUR                  5       n[        R                  " XA5        UR                  S5      n[        R                  " XA5        g )	NrG   r   rA   r   r@   r   rL   r   )
r   r   rO   r   r   rD   medianr`   r   quantile)rr   re   r   rW   rd   s        r!   test_closed_median_quantiler     st     biim:fb+I
JC;;tF;+Dhii0H[[]F6,]]3F6,r#   roller1sc                 @   [        5       n[        5       R                  U 5      R                  5       n[        R                  " X!5        [        [        / 5      S9n[        [        / 5      S9R                  U 5      R                  5       n[        R                  " X!5        g )NrL   )r   r   r   r`   ra   r	   )r   re   rd   s      r!   tests_empty_df_rollingr     sv     {H[  (,,.F&+ }R01H]2./77?CCEF&+r#   c                  j   [        [        R                  [        R                  [        R                  /5      n [        [        R                  " S5      5      R	                  S5      nUR                  5       n[        R                  " X 5        UR                  S5      n[        R                  " X 5        g )Nr=   r   皙?)	r   r   r   rO   r   r   r`   r   r   )re   rW   rd   s      r!   !test_empty_window_median_quantiler   &  sq    rvvrvvrvv./H"))A,''*D[[]F6,]]3F6,r#   c                  T   [        [        R                  /5      n U R                  SSS9R	                  5       n[        S/5      n[
        R                  " X5        U R                  SSS9R	                  5       n[        [        R                  /5      n[
        R                  " X5        g )Nr   r   r   r[   )r   r   r   r   r   r`   r   xrd   re   s      r!   test_missing_minp_zeror   2  s     	xAYYqaY(,,.Fse}H6, YYqaY(,,.FrvvhH6,r#   c                      [        [        R                  /S-  [        / SQ5      S9n U R	                  [        S5      SS9R                  5       n[        SU R                  S9n[        R                  " X5        g )Nr   )z
2017-01-01z
2017-01-04z
2017-01-06z
2017-01-07rL   2dr   r   r[   )
r   r   r   r	   r   r   r   rD   r`   r   r   s      r!   test_missing_minp_zero_variabler   @  sa    	1TU	A YYyAY6::<Fc)H6,r#   c                  J   [         R                  " SS// SQ/SS/S9n [        [        R                  " S5      U S9nUR                  S	5      R                  5       n[        R                  " UR                  UR                  5        UR                  R                  / S
Q:X  d   eg )Nrn   r   )CrI   E12r   )rG   r   r   r=   )Nr  r  )r
   from_productr   r   onesr   rS   r`   assert_index_equalr   rD   r   )colsr    rd   s      r!   test_multi_index_namesr  K  s}    ""S#J#@c
SD	2777#T	2BZZ] F&.."**5<<!1111r#   c           	          [        [        R                  " S5      5      nUR                  U 5      nUS:X  aA  Sn[        [	        S5       Vs0 s H  oD[        R
                  /S-  S/S-  -   _M      sn5      nO*Sn[        [        R
                  /S-  S/S	-  -   /S
-  5      n[        R                  " [        US9   UR                  SU S9R                  5       nS S S 5        [        R                  " WU5        g s  snf ! , (       d  f       N+= f)N)rG   r   r   'The 'axis' keyword in DataFrame.rollingr   r   r]   r   5Support for axis=1 in DataFrame.rolling is deprecatedr   rG   r+   r=   axis)r   r   r	  _get_axis_numberr.   r   r`   assert_produces_warningFutureWarningr   r   ra   )
axis_framer    r  r4   ire   rd   s          r!   test_rolling_axis_sumr  U  s    	2778$	%Bz*Dqy759M9a"&&A	!999MN FrvvhlcURZ782=>		#	#M	=AJ/335 
>&(+ N 
>	=s   %C:;C??
Dc                    [        [        S5      [        S5      S.5      nUR                  U 5      nUS;   a  Sn[        / SQ/ SQS.5      nOSn[        / SQ/ SQS.5      n[        R                  " [
        US	9   UR                  S
U SS9R                  5       nS S S 5        [        R                  " WU5        g ! , (       d  f       N&= f)Nr=   )r   yr   rD   r  r   r  )r\   r\   r\   )r7   r7   r7   r+   r   r   )r  r   )	r   r.   r  r`   r  r  r   countra   )r  r    r  r4   re   rd   s         r!   test_rolling_axis_countr  g  s    	qa1	2Bz*D|7?IJE?IJ		#	#M	=AJA>DDF 
>&(+ 
>	=s   : B::
Cc                  d   [         R                  " SS[         R                  SS/5      n U R                  SS9  [	        U 5      R                  S5      R                  5       n[	        [         R                  S[         R                  [         R                  S/5      n[        R                  " X5        g )Nr   r=   r%   F)writer   r   )	r   arrayr   setflagsr   r   r   r`   r   )arrrd   re   s      r!   test_readonly_arrayr"  y  sy    
((Aq"&&!Q'
(CLLuLC[  #((*Frvvq"&&"&&!45H6,r#   c           
         Un[        [        SSSUS9 Vs0 s H	  o3S/S-  _M     sn5      nU S;   aW  Sn[        R                  " [        US	9   UR
                  R                  S
U S9R                  5       R
                  nS S S 5        OBSn[        R                  " [        US	9   UR                  S
U S9R                  5       nS S S 5        [        0 [        SSSUS9 Vs0 s H
  nUS/S-  _M     snE[        SSSUS9 Vs0 s H
  nUS/S-  _M     snE5      n[        R                  " WU5        g s  snf ! , (       d  f       Nz= f! , (       d  f       N= fs  snf s  snf )Nz	2019-8-01z
2019-08-03rI   )rK   tzr   r   r  r  r+   rs   r  z'Support for axis=1 in DataFrame.rolling)rB   rK   r$  r\   z	2019-8-02z	2019-8-03r7   )	r   r   r`   r  r  Tr   r   ra   )r  tz_naive_fixturer$  r  r    r4   rd   re   s           r!   test_rolling_datetimer'    sp   	B	'\PRSTSQC!GST
B \!7''SATT\\$Z\8<<>@@F BA 8''SAZZ:Z6::<F B		
 $KLLA C519L		
 $K32NNA C519N		
H &(+/ 	U
 BA BAs)   D33D8%E	 E
E
8
E	
Er*   TFc                 *   [         R                  " 5       n[        X[        S5      -   SS9n[        R
                  " [        U5      5      n[        X#S.5      nUR                  SSS9  UR                  SS	S
U S9S   R                  S5      nUR                  S5      nUR                  S 5      n[        R
                  " [        U5      [        R                  S9nU (       d  [        R                  US S	& [        XvSS9n[         R"                  " XX5        g )Nim  rI   )rK   )DateColmetricr)  T)inplace21Dr   r}   )r'   r   rr   r*   r*  r   r   )rD   r   )r   nowr   r   r   r	  r   r   	set_indexr   rR   rename
_with_freqfloat64r   r   r`   r   )	r*   
date_todayr?   r   r    rd   rD   rc   re   s	            r!   test_rolling_window_as_stringr4    s     Jjy~"=CHD773t9D	t4	5BLLDL)ZZu!F6ZR	c%j  KK	"ET"EGGCIRZZ8MFFbqmx@H6,r#   c                      [        / SQS/S9n U S   R                  SSSS9R                  5       n[        / SQSS	9n[        R
                  " X5        g )
N)r   r   r   r   r   ar  r=   Tr   )r*   r   )r\   r7   r7   r7   r\   r   )r   r   r   r   r`   r   r    rd   re   s      r!   test_min_periods1r9    sL    	?SE	2BW__Qt_;??AF/c:H6,r#   c                     U " [        S5      5      R                  SSS9R                  5       nU " [        R                  [        R                  SSS/5      n[
        R                  " X5        g )Nr%   r=   r   r]   )r.   r   r  r   r   r`   r   )r2   rd   re   s      r!   #test_rolling_count_with_min_periodsr;    sR    U1X&..qa.@FFHFS#>?HOOF%r#   c                     SSS[         R                  SSS/n/ SQnU " U5      R                  SSS	9R                  5       nU " U5      n[        R
                  " X45        g )
Nr   r   r=   r   r%   r   )r\   r7   r]   r7   r7   r7   r]   r   r   )r   r   r   r  r`   r   )r2   valuesexpected_countsrd   re   s        r!   7test_rolling_count_default_min_periods_with_null_valuesr?    sZ    Arvvq!Q'F9O V$,,QA,>DDFF/HOOF%r#   zdf,expected,window,min_periodsr   r   r=   )r   r%   r   r   r   r   r   r\   c           	          U VVs/ s H  u  pE[        XES9PM     nnn[        XR                  X#S95       H  u  p[        R                  " Xa5        M     g s  snnf NrL   r   )r   zipr   r`   ra   )r    re   r'   r   r=  rD   actuals          r!   test_iter_rolling_dataframerF    sT    L GOOh?F	&.hHO**V**UV
f/ W P   Azexpected,windowr   c           
         [        / SQ/ SQ[        SSSS9S.5      nU  VVs/ s H  u  p4[        X2R                  US4   S	9PM     n nn[        XR	                  USS
95       H  u  p[
        R                  " XP5        M     g s  snnf )Nr   r   r=   r   r%   )r   r%   r   r   r   z
2016-01-01r%   rI   r   rB   rK   rn   r   r  r  rL   )on)r   r   locrD  r   r`   ra   )re   r'   r    r=  rD   rE  s         r!   test_iter_rolling_on_dataframerN    s    > 
  ,D	

B LTKS	&ucz 238    **V**DE
f/ Fs   $Bc                  (   [        / SQ/ SQS.5      n [        U R                  S5      R                  S5      5      nS/SS/S/4 Vs/ s H  o R                  US/4   PM     nn[        X5       H  u  pE[        R                  " XE5        M     g s  snf )N)r   r  r   rA  r6  br6  r   r   r   )r   listr   r   r   rD  r`   ra   )r    resultsidx	expectedsrd   re   s         r!   (test_iter_rolling_on_dataframe_unorderedrV  K  s    	y9	:B2::c?**1-.G01sQFQC.@A.@sqc".@IA3
f/ 4 Bs   Bz ser,expected,window, min_periodsint64r-  c           	          U VVs/ s H  u  pE[        XES9PM     nnn[        XR                  X#S95       H  u  p[        R                  " Xa5        M     g s  snnf rC  )r   rD  r   r`   r   )r   re   r'   r   r=  rD   rE  s          r!   test_iter_rolling_seriesrY  T  sT    F DLL8v+8HL++f+*VW
v0 X MrG  zexpected,expected_index,windowr   rI   rJ   r   r   r   z
2020-01-05)r   r=   r   c           	         [        [        S5      [        SSSS9S9n[        X5       VVs/ s H  u  pE[        XES9PM     n nn[        XR	                  U5      5       H  u  p[
        R                  " X`5        M     g s  snnf )Nr%   r   rI   rJ  rL   )r   r.   r   rD  r   r`   r   )re   expected_indexr'   r   r=  rT  rE  s          r!   test_iter_rolling_datetimer\  }  sz    P q,PS!T
UC 8;87T7Tmvv!7T    ++f*=>
v0 ?	s   A=zgrouping,_indexlevel)r   r   r^  r   r   r_  r_  r  byX)r^  )r   r   )r   r   )r=   r   )r   r   c                 
   S n[        S[        S5      0/ SQS9n[        S/ SQ0US9nSU ;   a  UR                  SSS	9nUR                  " S0 U D6R	                  S
5      R                  X2SS9n[        R                  " Xe5        g )Nc                  d    [        U 5      S:  a  [        S5      eU u  pUR                  5       U-  $ )Nr   z The function needs two arguments)r   r1   r   )argsr  scales      r!   
scaled_sum4test_rolling_positional_argument.<locals>.scaled_sum  s1    t9q=?@@yy{U""r#   ra  r%   )r   r   r   r   r   r   )r[   r   r\   r   r7   r`  ignore)r   errorsr   )r   )rh   rd  r   )r   r.   ru   r   r   ri   r`   ra   )grouping_indexrh   rf  r    re   rd   s          r!    test_rolling_positional_argumentrl    s    (# 
eAh	?Bs$=>fMHx==X=>ZZ#(#++A.44Zt4TF&+r#   addr[   c           
         [        [        S5      [        S5      [        S5      /5      R                  U5      n[        SSU -   SS/0US9nUR	                  S5      R                  5       R                  S	S
SS9R                  5       n[        SSSUS9n[        S[        R                  [        R                  [        R                  SSSS/0US9n[        R                  " XF5        g )Nz19700101 09:00:00z19700101 09:00:03z19700101 09:00:06rn   gVUUUUU%C       rL   r   r   r}   r=   rq   r   r   )rB   rK   unitgUUUUUU%CgqqCgqqCr[   )r	   r   as_unitr   resampleffillr   r   r   r   r   r`   ra   )rm  rp  dtir    rd   datesre   s          r!   *test_rolling_numerical_accuracy_kahan_meanrv    s     )*)*)*	
 gdm  
	!C't45
B
 	D!))$v1)MRRT  *ACdKE"#$
	
 H &+r#   c                      [        / SQS/S9n U S   R                  S5      R                  5       n[        [        R
                  [        R
                  SSSS/SS9n[        R                  " X5        g )	N)grh|@'1Zr[   r[   r[   r[   r   r  r=   gsh|??rx  r[   r7  )r   r   r   r   r   r   r`   r   r8  s      r!   )test_rolling_numerical_accuracy_kahan_sumry    s[    	6	FBW__Q##%Frvvrvvufc3?cJH6,r#   c                  D   [        SSSS9R                  [        S/5      5      n [        R                  R                  S5      R	                  [        U 5      5      n[        SU0U S9nUR                  S5      R                  5       n[        R                  " X2S/   5        g )	Nr   r   60sr   endrK   r   r   r   rL   )r   r_   r	   r   randomdefault_rngr   r   r   r   r`   ra   )rD   r   r    rd   s       r!   $test_rolling_numerical_accuracy_jumpr    s    \|%HOO|n%E 99  #**3u:6D	FD>	/BZZ##%F&fX,/r#   c                      [        / SQ[        SS5      S9n U R                  S5      R                  5       n[        R
                  " X5        g )N)g(@S ?ga2U0*3?ro  ro  z
1999-02-03z
1999-02-06r   r   )r   r   r   r   r`   r   )r   rd   s     r!   ,test_rolling_numerical_accuracy_small_valuesr  
  s?    -|4	A YYq\ F6%r#   c                  ~   [        SSSS9n [        [        S5      U [        R                  S9nSUR
                  S'   UR                  S5      R                  5       n[        [        R                  [        R                  [        R                  [        R                  S	S	S	S
SS/
U S9n[        R                  " X#5        g )Nz
2015-01-01rG   rI   rJ   )r   rD   r   gТr   r%   gk/      @      @      @rL   )r   r   r.   r   r2  r   r   r   r   r`   r   )ru  dsrd   re   s       r!   (test_rolling_numerical_too_large_numbersr    s    |Rc:E	U2Ye2::	>BBGGAJZZ]!FFFFFFFFF	
 H 6,r#   )r   rZ   ))r   r7   )r   r\   )r   r\   )r   r\   )r   r\   c                 .   [        SSS// SQS9nSUS'   Sn[        R                  " [        US9   UR	                  SSSS	9nS S S 5        [        WU 5      " 5       n[        SS/X/X/S.SS/S
9n[        R                  " XV5        g ! , (       d  f       NJ= f)Nr   r   r6  rQ  r3   )rD   r   r\   r3   r  r+   r'   r   r  rL   )r   r`   r  r  r   rV   ra   )r   rZ   r    r4   rW   rd   re   s          r!    test_rolling_mixed_dtypes_axis_1r  ,  s     
1QFO	<BBsG
AC		#	#M	=zzz: 
>T4 "FCj~UNC!fH &+ 
>	=s   B
Bc                  D   [        SSSS[        R                  [        R                  [        R                  /SSS[        R                  [        R                  [        R                  [        R                  /SSS[        R                  S[        R                  S//5      n Sn[        R                  " [
        US9   U R                  SSSS	9R                  5       nS S S 5        [        / S
Q/ SQ/ SQ/5      n[        R                  " WU5        g ! , (       d  f       N:= f)Nr   r   r   r   r  r+   r   r   r  )r[   r\   r]   r  r  r  r  )r[   r\   r]   r]   r]   r]   r]   )r[   r7   r   r   r  r  r  )	r   r   r   r`   r  r  r   r   ra   r    r4   rd   re   s       r!   test_rolling_axis_one_with_nanr  ?  s    	1a01bffbffbffbff51bffa+	

B BC		#	#M	=1!)DHHJ 
>///	
H &(+ 
>	=s   = D
DrZ   testz
2019-12-31z1 days 06:05:01.00003c                    [        SSS/05      nXS'   Sn[        R                  " [        US9   UR	                  SSSS9R                  5       nS S S 5        [        SSS	/05      n[        R                  " WU5        g ! , (       d  f       N5= f)
Nr6  r   r   rQ  r  r+   r  r\   r7   )r   r`   r  r  r   r   ra   )rZ   r    r4   rd   re   s        r!   &test_rolling_axis_1_non_numeric_dtypesr  U  s     
C!Q=	!BsG
AC		#	#M	=1!!<@@B 
>#Sz*+H&(+ 
>	=s    A>>
Bc                     [        SS /SS/SS/S.5      n [        S[        R                  /SS/S	S
/S.5      nSn[        R                  " [
        US9   U R                  SSSS9R                  5       nS S S 5        [        R                  " WU5        U R                  R                  SSS9R                  5       R                  n[        R                  " X15        g ! , (       d  f       Nn= f)Nr   r   r%   r   r   rK  r\   r  g      &@      *@r  r+   r   )r   r'   r  )r   r'   )
r   r   r   r`   r  r  r   r   ra   r%  )r    re   r4   rd   s       r!   test_rolling_on_df_transposedr  d  s    	!T!Qq!f=	>BRVV}C:T4LQRH
AC		#	#M	=!!<@@B 
>&(+TT\\a\2668::F&+ 
>	=s    C
C*)rD   r'   z2020-01-01 08:00z2020-01-01 08:08r|  2minz2020-01-01 12:0030min1h)r   r=  r   r   c                     [        / SQU S9n[        UR                  USS9U5      " 5       n[        X0S9n[        R                  " XV5        g )N)	r   r   r   r=   r   r%   r   r   r   rL   r}   r   )r   rV   r   r`   r   )rD   r'   r   r=  r  rd   re   s          r!   test_rolling_period_indexr  q  sE    2 
+5	9BRZZvZ6=?Ff*H6,r#   c                    U " / SQ5      nUR                  SSS9R                  5       n[        U[        5      (       a  [	        US   R
                  5      n[	        [        R                  /S/S-  -   5      n[        R                  " X#5        g )NrA  r   r   r   r   g;f?)
r   r   
isinstancer   r   r=  r   r   r`   r   )r2   objrd   re   s       r!   test_rolling_semr    st    
)
$C[[[*..0F&)$$q	(()rvvh"4!5!99:H6,r#   zGH 38921)reason)r   third_valuer=  var)|Fr   r   r   r   r   std) >gfoCr   Pp?r  绹۞?r   )r  r   r   r   r   r   )r  r  r   r  r  r   c           	         [        SSUSSSS/5      n[        UR                  S5      U 5      " 5       n[        [        R                  /U-   5      n[
        R                  " XE5        [
        R                  " US:H  US:H  5        g )Nl   ;r   r   r=   r   r   rV   r   r   r   r`   r   )r   r  r=  r  rd   re   s         r!   !test_rolling_var_numerical_issuesr    sr     
"A{Aq!Q?	@BRZZ]D)+Frvvh'(H6, 6Q;A6r#   c                 
   [        [        S5      [        S5      [        S5      [        S5      [        S5      /5      R                  U 5      n[        R                  " USS//5      n[        [        R                  [        R                  SS	S
SSS
SS
/
[        R                  [        R                  S	SSSS
SS
S/
S.US9n[        / SQ/ SQS.US9nUR                  SS9R                  5       n[        R                  " X55        g )Nz20130101 09:00:00z20130102 09:00:02z20130103 09:00:03z20130105 09:00:05z20130106 09:00:06r   rn   g?g      r\   g6<AԿg     ?g?)r   rn   rL   )r   r   r   r   r=   )r   r   r   r   r=   3dr&   )r	   r   rq  r
   r  r   r   r   r   rT   r`   ra   )rp  rt  miexpr    ress         r!   ,test_timeoffset_as_window_parameter_for_corrr    s   
)*)*)*)*)*	
 gdm  
	 	 #Sz!2	3B
 "#"" "#"""	
4 7C< 
O4
B
 **D*
!
&
&
(C##r#   method)r  r   r   skewkurtr   r   c                    [        S[        R                  " SS5      S-  05      n[        SUS   SSS2   0UR                  SSS2   S9n[	        UR                  SS	9U 5      " 5       n[	        UR                  SS	9U 5      " 5       n[        R                  " UR                  SSS2   SS
 UR                  SS -
  5      R                  5       S:  d   eg)zZ
Make sure that decreasing indices give the same results as increasing indices.

GH 36933
r=  irG   r   Nr-   rL   r%   r&   r   g-q=)	r   r   rO   rD   rV   r   absr=  r   )r  r    
df_reverse
increasing
decreasings        r!   test_rolling_decreasing_indicesr    s     
HbiiR0A56	7BHbl4R4&89$B$PJ1-v68J++1+5v>@J66*##DbD)#2.1B1B121FFGKKMPUUUUr#   )r\   r]   r  r]   )r[   r\   r]   r  )r\   r]   r  r  )r[   r\   r7   r]   c                 Z   [        SSSS9nU" [        S5      US9nU" [        S5      USSS2   S9nU" X$S9nU" X$SSS2   S9nUR                  XSS	9R                  5       n	UR                  XSS	9R                  5       n
[        R
                  " X5        [        R
                  " X5        g)
zN
Ensure that a symmetrical inverted index return same result as non-inverted.
rp   r   r   rJ   rL   Nr-   Tr   )r   r.   r   r   r`   r   )r'   rr   re   r2   rD   df_incdf_decexpected_incexpected_dec
result_inc
result_decs              r!   (test_rolling_decreasing_indices_centeredr    s    & vqt4EU1XU3FU1XU4R4[9F"89L"82;?LdCGGIJdCGGIJOOJ-OOJ-r#   zwindow,expected1ns)r\   r\   r\   r\   3ns)r7   r]   r]   r7   c                     [        SSSS9nU" / SQU[        S9nU" X$[        S9nUR                  XSS9R                  5       n[        R
                  " Xb5        g )	Nrp   r   r  rJ   )r   r   r   r   r   Tr   )r   r   r   r   r`   r   r   s          r!   )test_rolling_center_nanosecond_resolutionr    sS     vqu5E	U%	@BxEBHZZdZ;??AFOOF%r#   zmethod,expectedr   g     E@g
a@g     E@gCݽW@g     f@g     s@r   g     5@r  g`UU"@r  g     1@g      >@g     U@g     K@g     V@g     a@r  g/e?g8j{?gLM?g4`i?g
+TT?g?r  g %bgOq&g zCen@gk=Cпg~~׿gf`8gݿc                    / SQn[        S[        R                  " [        U5      5      S-  05      n " S S[        5      nU" SUS9n[        UR                  U5      U 5      " 5       n[        SU05      n[        R                  " Xa5        g)	z
Make sure the (rare) branch of non-monotonic indices is covered by a test.

output from 1.1.3 is assumed to be the expected output. Output of sum/mean has
manually been verified.

GH 36933.
)TFTFTTTTr=  r   c                       \ rS rSrS rSrg)1test_rolling_non_monotonic.<locals>.CustomIndexerij  c                 "   [         R                  " U[         R                  S9n[         R                  " U[         R                  S9n[        U5       H8  nU R                  U   (       a  SXh'   US-   Xx'   M$  XU'   XR
                  -   Xx'   M:     Xg4$ )Nr-  r   r   )r   emptyrW  r.   use_expandingwindow_size)	self
num_valuesr   r*   rr   rN   r   r}  r  s	            r!   get_window_boundsCtest_rolling_non_monotonic.<locals>.CustomIndexer.get_window_boundsk  sz    HHZrxx8E((:RXX6C:&%%a( EHUCF !H!1!11CF ' :r#   r   N)__name__
__module____qualname____firstlineno__r  __static_attributes__r   r#   r!   CustomIndexerr  j  s    
	r#   r  r   )r  r  N)	r   r   rO   r   r   rV   r   r`   ra   )r  re   r  r    r  r   rd   s          r!   test_rolling_non_monotonicr  )  s|    | GM	HbiiM(:;q@A	BB  GGRZZ(&13F(H-.H&+r#   ro   z
2001-01-01)rK   rB   c                    [        / SQU S9nUR                  5       nSUR                  SS& UR                  U5      R	                  U5      n[        [
        R                  [
        R                  SSS/U S9n[        R                  " XE5        g )NrI  rL   r[   r   r   r   )	r   copyr   r   rT   r   r   r`   assert_almost_equal)rD   r'   r   r  rd   re   s         r!   !test_rolling_corr_timedelta_indexr  ~  sp     	e,A	AAFF1QKYYv##A&Frvvrvvq!Q/u=H6,r#   c            	      V   S[         R                  SS[         R                  // SQS.n [        U 5      nUR                  SSS9R	                  SSS	9R                  5       n[        S
/ SQ0[        SS[         R                  // SQ// SQ/ SQ/SS /S9S9n[        R                  " X#5        g )Ng1g2ro   )groupr   r  F)dropnar   r   r   )r[   r7   r]   r\   r   )r   r   r   r   r   )r   r   r=   r   r   r  rL   )	r   r   r   r   r   r   r
   r`   ra   )r   r    rd   re   s       r!   !test_groupby_rolling_nan_includedr    s    BFFD$7oND	4BZZZ.66qa6HMMOF	'( D"&&!?3o.D/
H &+r#   c                 t   [        [        R                  R                  S5      R                  S5      5      nUR	                  5       n[        UR                  S5      U 5      " 5       n[        R                  " X5        US-   n[        UR                  S5      U 5      " 5       n[        R                  " XC5        g )Nr   rG   r=   iP  )	r   r   r~  r  r  rV   r   r`   r   )r  r   ser_copyre   rd   s        r!   *test_rolling_skew_kurt_numerical_stabilityr    s     &&q)004
5CxxzHs{{1~v.0H3)
+CS[[^V,.F6,r#   )r  r=  )r7   g+X?r[   gJ_9?)r   gBʠg333333g >@c                     [        / SQ5      n[        UR                  S5      U 5      " 5       n[        [        R                  /S-  U-   5      n[
        R                  " X45        g )N)i- r   r   r   r=   r   i  r   r=   r  )r  r=  r   rd   re   s        r!   (test_rolling_skew_kurt_large_value_ranger    sM     	,-AQYYq\6*,FrvvhlV+,H6,r#   c                      [         R                  " [        SS9   [        [	        S5      5      R                  SSS9  S S S 5        g ! , (       d  f       g = f)Nz!method must be 'table' or 'singler+   r   r8   )r  )r/   r0   r1   r   r.   r   r   r#   r!   test_invalid_methodr    s:    	z)L	MuQx  5 1 
N	M	M   #A
A1dc                    [        SSSS9nU" [        SS5      US9nUR                  SSS	9R                  5       nU" [        R
                  SS
/US9n[        R                  " XE5        UR                  S S S2   R                  SSS	9R                  5       n[        SSSS9nU" [        R
                  SS
/US9n[        R                  " XE5        g )Nr   r   r  r|  r   r   rL   r}   r   r   r-   z-1dr=   )	r   r.   r   r   r   r   r`   r   r   )r'   r2   rT  r  rd   re   s         r!   .test_rolling_descending_date_order_with_offsetr    s     <\
EC
%1+S
1C[[f[-113F1~S9HOOF%XXdd^##D#8<<>F
<\
FC1~S9HOOF%r#   c                     [        / SQ5      n U R                  S5      R                  5       n[        [        R                  [        R                  SS/5      n[
        R                  " XSSS9  [
        R                  " US:H  US:H  5        g )N)r   r%   r%   r%   r=   UUUUUU?r   V瞯<atolrtol)r   r   r  r   r   r`   r   r   s      r!   ,test_rolling_var_floating_artifact_precisionr    si    |AYYq\Frvvrvvua01H6'H 6Q;A6r#   c                      [        / SQ5      n U R                  S5      R                  5       n[        [        R                  SS/5      n[
        R                  " XSSS9  g )N)Q؎>g 4PSȡ>r  r   g[^>>r  r  )r   r   r  r   r   r`   r   r   s      r!   test_rolling_std_small_valuesr    sP    	
	A YYq\Frvv{K89H6'Hr#   zstart, exp_values)Q?X9v?r  gI+?gˡE?)MbP?r  g~jtX?<#	n?c                     [        SSS[        R                  SS[        R                  [        R                  [        R                  [        R                  [        R                  [        R                  SS/5      nUSSSS[        R                  [        R                  SS/-   n[        U[        [	        U [        U5      U -   5      5      S	9nUR                  U S  R                  S
SS9R                  5       n[        R                  " XT5        g )Nr  r  Mb`?Mb?{Gzt?皙?r  g=
ףp=?rL   r%   r   r   )r   r   r   rR  r.   r   r   r   r   r`   ra   )r   
exp_valuesr    r=  re   rd   s         r!   3test_rolling_mean_all_nan_window_floating_artifactsr    s     
FFFFFFFFFFFFFF	

B& 

	 	F 5Fe 345H WWUV_$$QA$6;;=F&+r#   c                      [        SSS[        R                  [        R                  [        R                  /5      n U R                  SSS9R	                  5       n[        / SQ5      n[
        R                  " X5        g )Nr  r  r  r=   r   r   )r  g{Gz?gQ?g9v?r  r[   )r   r   r   r   r   r`   ra   r8  s      r!   2test_rolling_sum_all_nan_window_floating_artifactsr    sY    	E5%@	ABZZqZ)--/FABH&+r#   c                      [        [        S5      5      n U R                  S5      R                  5       n[        [        R
                  /5      n[        R                  " X5        g )Nr   r   )r   r.   r   r   r   r   r`   r   r   s      r!   test_rolling_zero_windowr  #  sD    uQxAYYq\FrvvhH6,r#   c                 j   [        [        S5      [        SS5      S.U S9n[        [        R                  /S-  [        SSS5      S.U S9nSn[        R
                  " [        US	9   UR                  SS
S9R                  5       nS S S 5        [        R                  " WUSS9  g ! , (       d  f       N%= f)Nr%   rG   r   r   r-  r   r   r  r+   r   r  Fr   )
r   r.   r   r   r`   r  r  r   r   ra   )float_numpy_dtyper    re   r4   rd   s        r!   test_rolling_float_dtyper  +  s    	qb"6>O	PBvvhlr2q!12H BC		#	#M	=AA&**, 
>&(> 
>	=s   &B$$
B2c                     [        [        R                  " S5      R                  SS5      [	        S5      S9R                  SSSS	S
SSSSSS.
5      n Sn[        R                  " [        US9   U R                  SSSS9R                  5       nS S S 5        [        [        SSS5      [        SSS5      [        SSS5      [        SSS5      [        SSS5      [        SSS5      [        SSS5      [        SSS5      [        SSS5      [        SSS5      S.
SS9n[        R                  " WU5        g ! , (       d  f       N= f)N(   r   rG   
abcdefghijr  float16float32r2  int8int16int32uint8uint16uint32uint64)
r6  rQ  r3   defghr  jr  r+   r   r   r  r   r=   r%   r   r   r   r-  )r   r   rO   reshaperR  r   r`   r  r  r   r   r.   ra   r  s       r!   test_rolling_numeric_dtypesr  8  s7   	299R=((B/l9K	L	S	S	

B BC		#	#M	=1!!<@@B 
>q"b!q"b!q"b!q"b!q"b!q"b!q"b!q"b!q"b!q"b!	
 H &(+# 
>	=s   - D00
D>)r   r=   rG   r   )r   r   averagepct	ascending	test_data)default
duplicatesnansc           
        ^^^ SnUS:X  a6  [        [        R                  R                  S5      R                  U5      S9nOUS:X  a7  [        [        R                  R                  S5      R	                  SU5      S9nOmUS:X  ag  [        [        R                  R                  S5      R	                  SS	S
[        R
                  [        R                  [        R                  * /U5      S9nWR                  U 5      R                  UUU4S j5      nUR                  U 5      R                  TTTS9n[        R                  " X5        g )Nr   r!  r   )r   r"  r=   r#  r\         ?      ?c                 @   > U R                  TTTS9R                  S   $ )Nr  r  r  r-   )rankr   )r   r  r  r  s    r!   <lambda>test_rank.<locals>.<lambda>p  s    !&&C9&EJJ2Nr#   r(  )r   r   r~  r  choicer   infr   ri   r)  r`   r   )	r'   r  r  r  r   lengthr   re   rd   s	    ```     r!   	test_rankr/  ]  s    FI"))//299&AB	l	""))//299!VDE	f	&&q)00dD"&&"&&266':F
 {{6"((NH [[ %%V	%RF6,r#   c                  r   Sn Sn[        SU SS9n[        [        R                  R	                  S5      R                  X-  5      R                  U S45      US9nUR                  / S	QS
S9n[        R                  " U/ SQS
S9n[        R                  " UR                  [        R                  " U5      5        g )NrG   r%   20100101r   rJ   r   r-   rL   )r%  r   r&  r   r  )   2   K   )r   r   r   r~  r  r  r   
percentiler`   r  r=  r  )rowcolrT  r    df_quantilenp_percentiles         r!   #test_rolling_quantile_np_percentiler:  w  s     C
C
Z3
7C	
		a ''	2::C9ES
B ++/a+8KMM"l;M;--rxx/FGr#   r   )r[   r   g?r   r   interpolation)linearlowerhighernearestmidpointr   )r\   r7   r]   r   r  r  r  )g       @r\   r]   r   r  r7   r  r  r  r   r   g333333?gffffff?g333333?c                 j   [        U5      nUR                  X5      nUR                  SS9R                  X5      R                  S   n[        R
                  " U5      (       a  [        R
                  " U5      (       d   eg [        (       d!  [        R                  " U/U/SSS9(       d   eg XE:X  d   eg )Nr   r   r-   gHz>r   )r  r  )r   r   	expandingr   r   isnanr   allclose)r   r;  r   r   q1q2s         r!   +test_rolling_quantile_interpolation_optionsrG    s    & 	tA	
H	,B	
	#	,	,X	E	J	J2	NB	xx||xx|||t;;tbTA>>>8O8r#   c                      [         R                  " S5      n [        U 5      nSn[        R                  " [
        US9   UR                  [        U 5      SS9R                  SSS9  S S S 5        g ! , (       d  f       g = f)	Nr%   z(Interpolation 'invalid' is not supportedr+   r   r   r   invalid)r;  )	r   rO   r   r/   r0   r1   r   r   r   )r   r   r4   s      r!   test_invalid_quantile_valuerJ    s[    99Q<DtA
4C	z	-			#d)	+44S	4R 
.	-	-s   (A..
A<c                     [        / SQ5      n Sn[        R                  " [        US9   U R	                  S5      R                  S5        S S S 5        Sn[        R                  " [        US9   U R	                  S5      R                  S5        S S S 5        Sn[        R                  " [        US9   U R	                  S5      R                  S	5        S S S 5        g ! , (       d  f       N= f! , (       d  f       Nd= f! , (       d  f       g = f)
N)r[   r   r   g?r\   z#quantile value -0.1 not in \[0, 1\]r+   r=   gz#quantile value 10.0 not in \[0, 1\]g      $@zmust be real number, not strr8   )r   r/   r0   r1   r   r   	TypeError)r   r4   s     r!   test_rolling_quantile_paramrM    s    
*
+C
1C	z	-A% 
. 2C	z	-A% 
. )C	y	,A& 
-	, 
.	- 
.	- 
-	,s#   !C-!C,1!C=
C),
C:=
Dc                     [        / SQ5      n U R                  SSS9R                  5       n[        [        R                  /S-  5      n[
        R                  " X5        U R                  SSS9R                  SS9n[        S/S-  5      n[
        R                  " X5        [        [        R                  [        R                  SS	S/5      R                  SS
S9R                  5       n[        R                  " US
   5      (       d   eg )N)r\   r7   r]   r   r  r   r   r%   r   )r   r[   r=   r   r   )r   r   r  r   r   r`   r   rC  )valsrd   re   s      r!   test_rolling_std_1obsrP    s    +,D\\!\+//1Frvvhl#H6,\\!\+//Q/7Fseai H6,RVVRVVQ1-.66qa6HLLNF88F1Ir#   c                  J   [        / SQ5      n U R                  SS9R                  5       n[        R                  " USS  5      R                  5       (       d   eU R                  SS9R                  5       n[        R                  " USS  5      R                  5       (       d   eg )N)ge>R?Rz12?rR  rR  rR  r=   r&   r   )span)r   r   r  r   isfiniteallewmrP  s     r!   test_rolling_std_neg_sqrtrW    s    
 		
	A 	
			!A;;qu!!####	1A;;qu!!####r#   c                      [         R                  " [        SS9   [        [	        S5      5      R                  SSS9  S S S 5        g ! , (       d  f       g = f)Nzstep must be an integerr+   r   r   r8   rM   r/   r0   r1   r   r.   r   r   r#   r!   test_step_not_integer_raisesrZ    s:    	z)B	C%(##AE#2 
D	C	Cr  c                      [         R                  " [        SS9   [        [	        S5      5      R                  SSS9  S S S 5        g ! , (       d  f       g = f)Nzstep must be >= 0r+   r   r   r-   rM   rY  r   r#   r!   test_step_not_positive_raisesr\    s9    	z)<	=%(##AB#/ 
>	=	=r  )r=  r'   r   re   r   r3  g@@g     @D@UUUUUU?gUUUUUU8@)r   r   r  r   r  gUUUUUU@c                    [        U5      n[        U 5      nUR                  XS9R                  5       n[        R                  " XS5        [        R                  " US:H  US:H  5        UR                  XS9R                  5       n[        R                  " U[        R                  " U5      5        [        R                  " US:H  US:H  5        g )Nr   r   )r   r   r  r`   r   r  r   sqrt)r=  r'   r   re   sr
result_var
result_stds          r!   'test_rolling_var_same_value_count_logicrc    s    d hH	B F<@@BJ :08q=*/: F<@@BJ:rwwx'898q=*/:r#   c                      [        / SQ5      n U R                  S5      nUR                  5       nUSS  S:H  R                  5       (       d   eUR	                  5       nUSS  S:H  R                  5       (       d   eg )Nr]  r   r   r   r   r   r   r=   r   r   )r   r   r   rU  r   r`  rrd   s      r!   (test_rolling_mean_sum_floating_artifactsrh  9  sr     
)	*B


1AVVXF23K1!!####UUWF23K1!!####r#   c                      [        / SQ5      n U R                  S5      nUR                  5       nUSS  S:H  R                  5       (       d   eUR	                  5       nUSS  S:H  R                  5       (       d   eg )Nre  r   r   r   )r   r   r  rU  r  rf  s      r!   )test_rolling_skew_kurt_floating_artifactsrk  D  sr     
)	*B


1AVVXF23K1!!####VVXF23K2""$$$$r#   c                    U n[        S/SSS.5      nUS   R                  [        5      US'   UR                  SSS9n[	        XB5      nU" US9nU(       a  SS	/O/ SQnX7   R                  U/5      R                  S
S9R                  [        5      n[        UR                  5      U:X  d   e[        R                  " Xh5        g )Nr   r   r=   r  r3   r   numeric_onlyr6  rQ  Trt   )r   r   objectr   rV   rR   rv   r   rR  r   r`   ra   )	rw   rn  kernelr    r   oprd   r   re   s	            r!   test_numeric_only_framerr  O  s    %F	!11-	.BgnnV$BsGjjj*G		!B\*F(sCjoG{x(44$4?FFuMH  !W,,,&+r#   rp  use_argc                    [        / SQSSS.5      nUS   R                  [        5      US'   U(       a  U4OSnUR                  SSS9n[	        XP5      nU" US	U06nU(       a  S
S/O/ SQnX8   R                  [
        5      n	U(       a  U	4OSn
U	R                  SSS9n[	        X5      nU" U
S	U06n[        R                  " X}5        g )Nr@  r   r=   r  r3   r   r   r   rn  r6  rQ  )r   r   ro  r   rV   r   r`   ra   )rp  rn  rs  r    argr   rq  rd   r   df2arg2rolling2op2re   s                 r!    test_numeric_only_corr_cov_framerz  _  s     
3	4BgnnV$BsG2%Cjjj*G		!B0<0F )sCjoG
+

U
#CC6"D{{1!{,H
(
#CD4|4H&+r#   r   c                    U n[        S/US9nUR                  SSS9n[        XS5      nU(       a8  U[        L a/  SU S3n[        R
                  " [        US9   U" US9  S S S 5        g U" US9nUR                  U/5      R                  S	S
9R                  [        5      n	[        R                  " X5        g ! , (       d  f       g = f)Nr   r-  r   r   Rolling.  does not implement numeric_onlyr+   rm  Trt   )r   r   rV   ro  r/   r0   rP   rR   rv   r   r   r`   r   )
rw   rn  r   rp  r   r   rq  r4   rd   re   s
             r!   test_numeric_only_seriesr~  u  s     &F
!E
"Ckk!k+G		!B @A]].c:L) ;: .77F8$00d0;BB5I
v0 ;:s   B77
Cc                    [        / SQUS9nU(       a  U4OSnUR                  SSS9n[        X`5      nU(       a:  U[        L a1  SU  S3n[        R
                  " [        US	9   U" US
U06  S S S 5        g U" US
U06n	UR                  [        5      n
U(       a  U
4OSnU
R                  SSS9n[        X5      nU" US
U06n[        R                  " X5        g ! , (       d  f       g = f)Nr@  r-  r   r   r   r   r|  r}  r+   rn  )r   r   rV   ro  r/   r0   rP   r   r   r`   r   )rp  rs  rn  r   r   ru  r   rq  r4   rd   ser2rw  rx  ry  re   s                  r!   !test_numeric_only_corr_cov_seriesr    s    
 %
(C3&Ckk!k+G		!B @A]].c:/,/ ;: S4|4zz% !wr<<q<1h'8<8
v0 ;:s   #	C
C&rp  )r   msusnsr$  )NUTCzEurope/Praguec           
      ,   [        S[        S5      0[        SSSUS9S9nUR                  S5      R	                  5       nUR
                  R                  U 5      Ul        UR                  S5      R	                  5       nUR
                  R                  S5      Ul        [        R                  " X45        [        SS	SUS
9n[        SUS9nSUR                  S'   UR                  [        SS95      R                  5       n[        SS	XS
9n[        SUS9n	SU	R                  S'   U	R                  [        SS95      R                  5       n
[        U5      n[        U
5      nUR
                  R                  S5      Ul        [        R                  " X5        g )Nrn   r%   z
2013-01-01r   )rK   rB   r$  rL   r  z
2023-01-01z
2023-01-10)rp  r$  r   r   r   r>   )r   r.   r   r   r   rD   rq  r`   ra   r   r   r   r   )rp  r$  rz   sum_in_nanosecssum_in_microsecs	ref_dates
ref_seriesref_max_seriesru  series
max_seriesref_dfr    s                r!   -test_rolling_timedelta_window_non_nanosecondsr    s[    	eAhz,T1QSTG ood+//1OMM))$/GMt,002-33;;DA/< <DRHI+JJOOA''	q(9:>>@N|\DEAU#FFKKN	q 12668J~&F	:	Bxx%BH&%r#   )r   r   numpyr   r/   pandas.compatr   r   r   pandasr   r	   r
   r   r   r   r   r   r   r   pandas._testing_testingr`   pandas.api.indexersr   pandas.core.indexers.objectsr   pandas.tseries.offsetsr   r"   r5   markparametrizer  r<   rQ   rX   rf   rl   r{   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r"  r'  r4  r9  r;  r?  rF  rN  rV  rY  r\  from_tuplesrl  rv  ry  r  r  r  r  r  r  r  r  r  xfailr  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r/  r:  rG  rJ  rM  rP  rW  rZ  r\  r-  rc  rh  rk  rr  rz  r   ro  r~  r  r  r   r#   r!   <module>r     s  
       + D .'( sE288QC=9:- ;-. qq#\15k!n	
	
	)
	) 0 1 I1$5ya7H#IJ, K,& I1$5ya7H$#OP9 Q9",$  10001		
 21111		
 11112		
 22222		
?),Z?[,Z?6 	w(	v'	v'	y/*	w(	v'	v'	y/*	&&" 	w01	v/0	v/0	y23	&&0 	"&&"&&!Q2r2r2>?	RVVRVVQ1aAr1=>	67	56	&&2 	"&&"&&!Q2r2r2>?	RVVRVVQ1b"b"a@A	67	56	&&6-,4 Iv#67- 8- %0F 1F %0- 1- (89	9:	89		BFFAq!Q1aA>?	Aq!Q1a;<	9:	89		BFFAq!Q1aA>?	Aq!Q1a;<		- :	-- 	"&&!Q1aArvvrvvFG	Aq!Q1a@A		BFFBFFAq!Q1bffbffMN	Aq!Q1bffEF	"&&!Q1aArvvrvvFG	Aq!Q1a@A		BFFBFFAq!Q1bffbffMN	Aq!Q1bffEF	-- 	23	?@	RVVQS#sCc3GH	"&&!S!Q1aA67	
-
- D!9-, .,	---2,$,$-,< D%=1- 2-,-&& $ II67s!%s+1vQF+aV4 y19=
 		
 II67s!%s+1vQF+aV41vQF+aV4
 		
 II67s!%s+1vQF+aV41vQF+aV4
 		
 II67s!%s+s!%s+s!%s+
 		
 II67s!%s+s!%s+s!%s+
 		
 
!A3'	("a6	!A3'	("a3	Bxj!T*QN"&&!Q@AuBFF8,qc2266{"&&!51v>2661~RVVQN;YG
 		
m@CH0ICH0  s!%s+1vQF+aV41vQF+aV4
 	
 s!%s+1vQF+aV4 y19=
 	
 s!%s+s!%s+s!%s+
 	
#:0;:0"0 & 9cA3Z1a&1a&)Iy+AB		
 9cA3Z1a&1a&)Iy+AB		
 9cA3Z1a&1a&)QFQF+;<		
 9cA3Z1a&1a&)QFQF+;<		
 
		qcA3Z1#sqcA3Z@!QG			qcA3Z1#sqcA3Z@!QG	AA3*1v1v&67A>	'	"B1-9 B1C B1 $ S1#sQC!%<=<=<=<=<= 
	
 S1a&1a&1a&1a&1<=<=<=<=<= 
	
 S1a&)Y	:<=<=<=<=<= 
	
/"%L	1M%L	1  aL""8t	
 3K""8d	
",#",& c
+, ,,D-	0&-0 N,	,,, [&5L(MN,	,
,  17IPUV	

 (.@w 		
 	Aq!Q1a01	Aq!Q1a01	Aq!Q2r23-.-- ,*,   %	,-	FG	,-	FG	7	72$j #WXV YV 	w,-	v+,	v+,	y./	w,-	v+,	v+,	y./	..( 	$%	$%&&  ee		
 5\3edC4N	

 5\4utT4uM	

 ee		
 e#e#$"$$		
G03h,i3h,B 	!	LsA	6=--,, FF#34- 5- 	/0	12--2
 At9-& .&7I 	
23	
./$,$,N,-
?",J >2#<=u.tUm4&GH- I 5 / > 3
-*H  %=>I 
+0	bffc2663'	(	bffc3,		c ? $S'$*3
0
 3 RAq!,VVR!T1eQ7		
 RQ1-VVR!Qfa8		
 VVQ1aA&VVHqL++		
 1aAq!4VVHqLE1:%14qzA		
 1aAq!4VVHqLE1:%14{B		
 FQJVVHqLE7Q;&		
 1bffaA&VVQ!q(E72		
K+.^;_.^;6$%,  FE?3T5M2, 3 4,( 3-01 11  FE?3T5M23-01 1 3 41* !89=>& ? :&r#   