
    4iS                     J)   S SK J r Jr  S SKrS SKrS SKJr  S SKJr  S SK	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:                  R=                  SSS\R>                  " S/5      /5      S 5       r \R:                  R=                  S\" SS9\" SS9S\" \" SSS9\" S5      S9/5      S 5       r!\R:                  R=                  SSS/5      S 5       r"\R:                  R=                  S\" SS9\" SS9/5      S 5       r#\R:                  R=                  S\" SS9\" SS9S/5      S 5       r$S  r%\R:                  R=                  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/ S0Q/ S1Q/ S-Q/4/5      S2 5       r&\R:                  R=                  S3S4S,/ S5Q4S4S"/ S5Q4S4S(/ S5Q4S4S./ S5Q4S6S,/ S7Q4S6S"/ S5Q4S6S(/ S8Q4S6S./ S9Q4/5      S: 5       r'\R:                  R=                  S3S;S,/ S<Q4S;S(/ S=Q4S;S"/ S>Q4S;S./ S?Q4/5      S@ 5       r(\R:                  R=                  SAS(\RR                  \RR                  SSSSBSCSCSDSE/
4S.\RR                  \RR                  SSSSFSSSGSH/
4S,/ SIQ4S"/ SJQ4/5      SK 5       r*\R:                  R=                  SAS(\RR                  \RR                  SSSSBSLSLSDSE/
4S.\RR                  \RR                  SSSSBSLSLSGSH/
4S,/ SMQ4S"/ SNQ4/5      SO 5       r+SP r,SQ r-\R:                  R=                  SRS.S(/5      SS 5       r.\R:                  R=                  STSUSV/5      SW 5       r/\R:                  R=                  STSUSV/5      SX 5       r0\R:                  R=                  SYSZS[/5      \R:                  R=                  S\SUS,/ S]Q4SUS"/ S^Q4SUS.\RR                  S S SSSS_SS`Sa/
4SUS(\RR                  S S S SSSS_SS`/
4SVS,/ SbQ4SVS"/ SbQ4SVS.\RR                  S SSSS_SS`SaSH/
4SVS(\RR                  S SSSS_SS`SaSH/
4/5      Sc 5       5       r1Sd r2\R:                  R=                  S\SUS,\RR                  S S SSSS_S\RR                  \RR                  /
4SUS"\RR                  S S S SSSS_S\RR                  /
4SUS.\RR                  \RR                  S SSSS_S\RR                  \RR                  /
4SUS(\RR                  \RR                  S S SSSS_S\RR                  /
4SVS,\RR                  SSSS_SS`S`\RR                  \RR                  /
4SVS"\RR                  SSSS_SS`S`S`\RR                  /
4SVS.\RR                  \RR                  SSSS_SS`\RR                  \RR                  /
4SVS(\RR                  \RR                  SSSS_SS`S`\RR                  /
4/5      Se 5       r3\R:                  R=                  SAS,/ SfQ4S"/ SgQ4S.\RR                  S ShSiSjSkSlSmSnSo/
4S(\RR                  S ShSSSS_SS`Sa/
4/5      Sp 5       r4\R:                  R=                  SqSrS/5      Ss 5       r5St r6Su r7Sv r8Sw r9Sx r:Sy r;Sz r<S{ r=S| r>S} r?S~ r@S rA\R:                  R=                  S/ SQ/ SQS.S/S_/S.S /4SS/S_S/S.S S/4/ SQ/ SQS./ SQ4/SS4/ SQ/ SQS.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.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.S/S_/S.S /4S/S/S.S/4S/S`/S.S/4/SS4/ SQ/ SQS.S/S_/S.S /4S/S/S.S/4S/S`/S.S/4/SS 4S/S_/S./ SS4S/S_/S./ SS4S0 / 4/SS4S\RR                  S/\RR                  SS`/S.S/\RR                  /S.S /4S\RR                  /\RR                  S/S.S S/4S\RR                  S/\RR                  SS`/S./ SQ4/SS4/	5      S 5       rB\R:                  R=                  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       rCS rD\R:                  R=                  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       rE\R:                  R=                  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       rF\R:                  R=                  SSS 0\R                  " / SQSS/S94SS0\R                  " / SQSS/S94/5      S 5       rH\R:                  R=                  SSS/5      S 5       rIS rJS rKS rLS rM\R:                  R=                  S\" SSSUS9S4\" SSSS9S4/5      \R:                  R=                  SSU\RR                  S S SSSS_SS`/	4SV\RR                  S SSSS_SS`Sa/	4S\RR                  S SSSSaSFSSG/	4/5      S 5       5       rNS rO\R:                  R=                  SS/ SQSS/ SQ4S/ SQSS/ SQ4S/ SQSS/ SQ4S/ SQSS/ SQ4S/ SQSS/ SQ4S/ SQSS/ SQ4S/ SQS`S/ SQ4/5      S 5       rPS rQ\R:                  R=                  S/ SQ5      S 5       rR\R:                  R=                  S3S6S,/ SQ4S6S(/ SQ4S6S"/ SQ4S6S./ SQ4S4S,/ SQ4S4S(/ SQ4S4S"/ SQ4S4S./ SQ4/5      S 5       rS\R:                  R=                  SS/ SQ4S/ SQ4/5      S 5       rT\R:                  R=                  SS\U" S5      S\U" S5      SSSSS/4S\U" S5      So\U" S5      SSSSS/4S\U" S5      S\U" S5      SSSSS/4S\U" S5      S\U" S5      SSSSS/4S\U" S5      S\U" S5      SSSSS/4/5      S 5       rV\R:                  R=                  S/ SQS4\" SSSS9S;4/5      S 5       rW\R:                  R=                  S/ SQS\U" S5      \U" S5      SSSSSSGS GS/
4S\RR                  S\RR                  S\RR                  GS \RR                  GS\RR                  /
S\U" S5      /SB-  4/ SQGS\U" S5      \U" S5      SSSSGS GSGSGS/
4S\RR                  S\RR                  S\RR                  GS \RR                  GS\RR                  /
GS\U" S5      /SB-  4/5      GS 5       rX\R:                  R=                  S/ SQS/ GSQ4S\RR                  S\RR                  S\RR                  GS \RR                  GS\RR                  /
S/ GSQ4/ SQGS/ SQ4S\RR                  S\RR                  S\RR                  GS \RR                  GS\RR                  /
GS/ GSQ4/5      GS	 5       rYGS
 rZ\R:                  R=                  SSS/5      GS 5       r[\R:                  R=                  GSS/ GSQ\RR                  /S-  / GSQ-   4S/ GSQ\RR                  /S-  / GSQ-   4S/ GSQ\RR                  /S-  / GSQ-   4S/ GSQ\RR                  /S-  / GSQ-   4/5      GS 5       r\\R:                  R=                  SSS/5      GS 5       r]GS r^GS r_GS r`GS ra\R:                  R=                  GSS/ GSQ4S/ GSQ4/5      GS 5       rbGS rcGS rd\R:                  R=                  S/ GSQ5      \R:                  R=                  S/ GS Q5      \R:                  R=                  GS!GS"GS#/5      \R:                  R=                  GS$/ GS%Q5      GS& 5       5       5       5       re\R:                  R=                  S/ GSQ5      \R:                  R=                  GS$/ GS'Q5      GS( 5       5       rfGS) rg\R:                  R=                  GS*/ GS+Q5      \R:                  R=                  GS,/ GS-Q5      \R:                  R=                  GS./ GS/Q/ GS0QS\RR                  GS1\RR                  GS2/\RR                  \RR                  \RR                  \RR                  /\RR                  GS3\RR                  GS4GS2Sh/Sh/\RR                  GS5GS6//5      GS7 5       5       5       rhGS8 riGS9 rjGS: rkGS; rlGS< rmGS= rn\R:                  R=                  / GS>QGS?SBSB\R                  SSSS/SS\RR                  GS@GSAS GSBS GSCS//GS?SBSB\RR                  SBSSS/SS\RR                  GS@GSAS S GSBGSDS//\RR                  SS`SaSSS/SS\RR                  /S-  / GSEQ-   /SSaSaSa\RR                  \R                  S_SSS/
SS\RR                  /S-  GSFS /-   \RR                  /S_-  -   GSCS /-   /SSaSaSa\RR                  \R                  SaSSS/
SS\RR                  /S-  GSFS /-   \RR                  /S_-  -   GSGS /-   /SSa/S_-  SS\RR                  /S-  GSF/S`-  -   /SSaS\RR                  SaSSa/SS\RR                  SGSF/S/S-  -   GSF/-   //5      GSH 5       rpGSI rqGSJ rrGSK rs\R:                  R=                  GSLSS/5      \R:                  R=                  GSMGS"GS#/5      GSN 5       5       rt\R:                  R=                  GSO\u\v/5      GSP 5       rw\R:                  R=                  GSLSS/5      \R:                  R=                  GSMGS"GS#/5      \R:                  R=                  GSO\u\v/5      GSQ 5       5       5       rx\R:                  R=                  GSR/ GSSQ5      GST 5       ry " GSU GSV\5      rz " GSW GSX5      r{g(Y      )datetime	timedeltaN)IS64)Pandas4Warning)	DataFrameDatetimeIndex
MultiIndexSeries	Timedelta	Timestamp
date_rangeperiod_range)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    b/var/www/html/dynamic-report/venv/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_constructorr2   &   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,   r-   r.   )r/   r3   r0   r1   s       r   test_invalid_constructorr9   :   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r?   freqrA   z(^step (not implemented|is not supported)r(   r:   step)	r   r   aranger   r,   r-   NotImplementedErrorr   r   )r$   r   s     r    test_freq_window_not_implementedrN   R   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   rJ   zstep not implementedr(   )r   r+   r   r,   r-   rM   getattr)rO   rolls     r   &test_step_not_implemented_for_cov_corrrU   i   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 )NrD   valuerE   rF   rG   rI                 ?      @      ;@r:   r#   r=   )	r   r   rL   r   appendr   r   tmassert_frame_equal)r$   nr   expected_dataresultexpecteds         r   &test_constructor_with_timedelta_windowrc   q   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 )NrD   rW   z
2017-08-08rF   rG   rI   rY   rZ   r[   r:   r   r%   )raw)r   r   rL   r   r\   r   r   r   applyr]   r^   )r$   re   r_   r   rb   result_roll_sumresult_roll_generics          r   0test_constructor_timedelta_window_and_minperiodsri      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"   r>   rI   r   r   closedr   2DTdrop)r   r   rS   r   reset_indexr]   r^   )ro   arithmetic_win_operators	func_namedf_fixeddf_timera   rb   s          r   test_closed_fixedrx      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           
      2   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R	                  SU SS	S
9U5      " 5       n[
        R                  " XvSS9  g s  snf )Nrk   )rX   rY   r4   rZ         @rm   r"   r>   rI   rp   r   T)ro   r   r'   F)check_dtype)r   r   rS   ilocr   r]   r^   )ro   window_selectionsrt   ru   rw   srb   ra   s           r   %test_datetimelike_centered_selectionsr      s    b )I	'(
610MG 	CTUCTawws|((+Y79CTUV+H
 V4H F
 &> Vs   +B
zwindow,closed,expected3s)rZ   rZ   rZ   2s)rZ   r4   r4   )rY   rZ   rZ   rY   r4   r4   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   rI   Tro   r'   )r   r   r   r]   assert_equalr$   ro   rb   r/   rA   r   ra   s          r   ,test_datetimelike_centered_offset_covers_allr      se    & 	%&%&%&E
 
%	0BZZdZ;??AFx5HOOF%r    rp   )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      rA   dtypeT)r'   ro   )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,expectedrD            	      r   )
r   r   r:   r   rD   r      r   r      )
r   r   r:   r   rD                  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-06rD   r   rp   ro   )r   r+   r   r   r   r]   r   )ro   rb   r/   rA   r   ra   s         r   test_variable_window_nonuniquer   +  sZ     	
E 
r%u	=BxEBHZZVZ,002FOOF%r    r   )
r   r   r:   r   rD   r   r      r   r   )
r   r   r:   r   rD   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   rD   r   r   r@   r   rn   )	r   r+   r   r   r   r   r   r]   r   )ro   rb   r/   rA   r   rB   indexerra   s           r   %test_variable_offset_window_nonuniquer   M  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   rF   startrH   r?   rI   rp   r   Tr&   )      ?      ?r   )r
   r+   r   r   meanrA   r]   assert_series_equalr   ra   rb   s      r   !test_even_number_window_alignmentr   q  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   rI   )UUUUUU?r   皙?r   @m?r   g._x%I?r   r   r   r   r   r   )columnsrA   rz   r   )r$   ro   r   r'   rK   )	r   r   lenr   r   r   r   r]   r^   )r'   rK   datar   r`   rb   r   ra   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    ro   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"   2000rp   rG   r   rA   1Dr   rI   )
r
   r   rL   r   r   rS   r   rA   r]   r   )ro   rt   ru   serrT   ra   rb   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   r>   r   10Drz   r   rI   )	r
   r   rS   r   r]   r   r   r   rA   )r   r   ra   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   rk   r   r   r:   r>   r   rk   F)sortr   r   rz   r   )rk   N)arraysnames)r   rA   name)r   r   rS   groupbyr   r	   from_arraysrA   r
   r   r   r]   r   )r   r   ra   exp_idxrb   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)
rX   r   r   r   r   r:   r   r"   r      )
rX   r   r   r   r   r   r:   r   r"   r   r   r   r   )
rX   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 )NrD   r   r>   r   r=   r   rI   )
r
   r   rL   astyper   rS   r   rA   r]   r   )r   r   ro   rb   r   ra   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 )NrD   r   r>   r   r   r"   rI   r=   rz   r   r   r   r:   r   r   )r
   r   rL   r   rr   rA   r   r   r   r]   r   )r   ra   rb   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 )NrD   r   r>   r   r   r=   r   )r   ro   rI   )r
   r   rL   r   r   r   rA   rS   r   r]   r   )r   ro   rb   r   ra   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 )	NrD   r   r>   r   r=   r   rI   r   )
r
   r   rL   r   r   rA   medianr]   r   quantile)ro   rb   r   rT   ra   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 )NrI   )r   r   r   r]   r^   r   )r   rb   ra   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   rL   r   r   r]   r   r   )rb   rT   ra   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   rX   )r
   r   r   r   r   r]   r   xra   rb   s      r   test_missing_minp_zeror   *  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-07rI   rp   r   r   rX   )
r
   r   r   r   r   r   r   rA   r]   r   r   s      r   test_missing_minp_zero_variabler   8  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 )Nrk   r   )CrF   E12r   )rD   r   r   r:   )Nr   r   )r	   from_productr   r   onesr   rP   r]   assert_index_equalr   rA   r   )colsr   ra   s      r   test_multi_index_namesr  C  s}    ""S#J#@c
SD	2777#T	2BZZ] F&.."**5<<!1111r    c            	      2   [        [        R                  " S5      5      n [        [        S5       Vs0 s H  o[        R                  /S-  S/S-  -   _M      sn5      nU R                  S5      R                  5       n[        R                  " X25        g s  snf )N)rD   r   r   r   rZ   r   r:   )	r   r   r   r+   r   r   r   r]   r^   )r   irb   ra   s       r   test_rolling_axis_sumr  M  st    	2778$	%BuRyIy!bffX\SEAI55yIJHZZ] F&+ Js   %Bc                      [        [        S5      [        S5      S.5      n [        / SQ/ SQS.5      nU R                  SSS9R                  5       n[        R
                  " X!5        g )Nr:   )r   yr   r   r   r   )r   r+   r   countr]   r^   )r   rb   ra   s      r   test_rolling_axis_countr
  U  sQ    	qa1	2B_EFHZZqZ)//1F&+r    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   )arrra   rb   s      r   test_readonly_arrayr  ^  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	  o"S/S-  _M     sn5      nUR                  R                  S5      R	                  5       R                  n[        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                  " XE5        g s  snf s  snf s  snf )Nz	2019-8-01z
2019-08-03rF   )rH   tzr   r   rp   )r?   rH   r  rY   z	2019-8-02z	2019-8-03r4   )r   r   Tr   r   r]   r^   )tz_naive_fixturer  r  r   ra   rb   s         r   test_rolling_datetimer  g  s    	B	'\PRSTSQC!GST
B TT\\$##%''F		
 $KLLA C519L		
 $K32NNA C519N		
H &+! 	Us   C4C
C
c                 *   [         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  rF   )rH   )DateColmetricr  T)inplace21Dr   rz   )r$   r   ro   r'   r  r   r   )rA   r   )r   nowr   r   r   r   r   r   	set_indexr   rO   rename
_with_freqfloat64r   r
   r]   r   )	r'   
date_todayr<   r   r   ra   rA   r`   rb   s	            r   test_rolling_window_as_stringr"  ~  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   )rY   r4   r4   r4   rY   r   )r   r   r   r
   r]   r   r   ra   rb   s      r   test_min_periods1r'    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   rZ   )r+   r   r	  r   r   r]   r   )r/   ra   rb   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   )rY   r4   rZ   r4   r4   r4   rZ   r   r   )r   r   r   r	  r]   r   )r/   valuesexpected_countsra   rb   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   rY   c           	          [        U 5      n U VVs/ s H  u  pE[        XES9PM     nnn[        X`R                  X#S9SS9 H  u  p[        R                  " Xq5        M     g s  snnf )NrI   r   Fstrict)r   zipr   r]   r^   )r   rb   r$   r   r+  rA   	expectedsactuals           r   test_iter_rolling_dataframer6    sa    L 
2BGOPxOV6/xIP::f:>u 	f/ Qs   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[        XRR	                  USS
9SS9 H  u  p[
        R                  " X`5        M     g s  snnf )Nr   r   r:   r   r"   )r   r"   r   r   r   z
2016-01-01r"   rF   r   r?   rH   )rk   r   r   r   rI   )onFr1  )r   r   locr3  r   r]   r^   )rb   r$   r   r+  rA   r4  r5  s          r   test_iter_rolling_on_dataframer<    s    > 
  ,D	

B LTKS	&ucz 238    	::f:+EeT
f/ U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SS	9 H  u  pE[        R                  " XE5        M     g s  snf )
N)r   r  r   r/  r$  br$  r   r   r   Tr1  )r   listr   r   r   r3  r]   r^   )r   resultsidxr4  ra   rb   s         r   (test_iter_rolling_on_dataframe_unorderedrC  +  s    	y9	:B2::c?**1-.G01sQFQC.@A.@sqc".@IA4@
f/ A 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SS9 H  u  p[        R                  " Xq5        M     g s  snnf )NrI   r   Tr1  )r
   r3  r   r]   r   )r   rb   r$   r   r+  rA   r4  r5  s           r   test_iter_rolling_seriesrF  4  sZ    F EMMH&,HIM;;v;? 	v0 Ns   Azexpected,expected_index,windowr   rF   rG   r   r   r   z
2020-01-05)r   r:   r   c           	         [        [        S5      [        SSSS9S9n[        XSS9 VVs/ s H  u  pE[        XES9PM     nnn[        XcR	                  U5      SS9 H  u  p[
        R                  " Xp5        M     g s  snnf )Nr"   r   rF   r9  rI   Tr1  )r
   r+   r   r3  r   r]   r   )rb   expected_indexr$   r   r+  rB  r4  r5  s           r   test_iter_rolling_datetimerI  _  s    P q,PS!T
UC !$GGMV 	v!G  
  	;;v+>tL
v0 Ms   A;zgrouping,_indexlevel)r   r   rK  r   r   rL  rL  r   byX)rK  )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   r.   r   )argsr  scales      r   
scaled_sum4test_rolling_positional_argument.<locals>.scaled_sum  s1    t9q=?@@yy{U""r    rN  r"   )r   r   r   r   r   r   )rX   r   rY   r   r4   rM  ignore)r   errorsr   )r   )re   rQ   )r   r+   rr   r   r   rf   r]   r^   )grouping_indexre   rS  r   rb   ra   s          r    test_rolling_positional_argumentrZ    s    (# 
eAh	?Bs$=>fMHx==X=>ZZ#(#++A.44Zt4TF&+r    addrX   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:06rk   gVUUUUU%C       rI   r   r   rz   r:   rn   r   r   )r?   rH   unitgUUUUUU%CgqqCgqqCrX   )r   r   as_unitr   resampleffillr   r   r   r   r   r]   r^   )r[  r^  dtir   ra   datesrb   s          r   *test_rolling_numerical_accuracy_kahan_meanrd    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ZrX   rX   rX   rX   r   r   r:   gsh|??rf  rX   r%  )r   r   r   r
   r   r   r]   r   r&  s      r   )test_rolling_numerical_accuracy_kahan_sumrg    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   endrH   r   r   r   rI   )r   r\   r   r   randomdefault_rngr   r   r   r   r]   r^   )rA   r   r   ra   s       r   $test_rolling_numerical_accuracy_jumprn    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?r]  r]  z
1999-02-03z
1999-02-06r   r   )r
   r   r   r   r]   r   )r   ra   s     r   ,test_rolling_numerical_accuracy_small_valuesrp    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-01rD   rF   rG   )r   rA   r   gТr   r"   gk/      @      @      @rI   )r   r
   r+   r   r   r   r   r   r   r]   r   )rc  dsra   rb   s       r   (test_rolling_numerical_too_large_numbersrv    s    |Rc:E	U2Ye2::	>BBGGAJZZ]!FFFFFFFFF	
 H 6,r    )rA   r$   z2020-01-01 08:00z2020-01-01 08:08rj  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   rI   rz   r   r
   rS   r   r]   r   )rA   r$   r   r+  ru  ra   rb   s          r   test_rolling_period_indexr|    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 )Nr/  r   r   r   r   r   )
r   sem
isinstancer   r
   r+  r   r   r]   r   )r/   objra   rb   s       r   test_rolling_semr  .  sq    
)
$C[[[*..0F&)$$q	(()rvvh#*+H6,r    )r   r+  r$   ddofexpected_valuesvar)   ;r   r   r   r:   r   r   )|Fr   r   r   r   r   std) >gfoCr   Pp?r  绹۞?r   )r  r   r   r   r:   r   r   )r  r   r   r   r   r   )r  r  r   r  r  r   )g     @g |Cg xbACg     ,@g     @)g i\DitCg ,ICg p'wCg$+H@)
rX   rX   g,`)M<gkZ5P<gMpۢj5rX   rX   g0A6g8nA0rX   )gK8=A +b9r  g1mib9g*14,r  r  )r   r*   r   r   r:   r   l    d(	 r   r   r   r  r   r:   r   r   )g'e?g?  ڷjAr  r  r  r  r  gM?g?g.jJ?c                 Z   [        U5      n[        UR                  US9U 5      " US9nUR                  5       (       a1  UUR	                  5       UR                  5       S-    R                  SS9n[        U5      n[        R                  " XgSS9  [        R                  " US:H  US:H  5        g )	Nr#   r  r   Trq   gvo4atolr   )r
   rS   r   last_valid_indexfirst_valid_indexrs   r]   r   )r   r+  r$   r  r  tsra   rb   s           r   test_rolling_var_correctnessr  8  s    X 
BRZZvZ.54@F  $$&)@)@)BQ)F

+4+
  	 o&H6%8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   rk   g?g      rY   g6<AԿg     ?g?)r   rk   rI   )r   r   r   r   r:   )r   r   r   r   r:   r=   r#   )r   r   r_  r	   r   r   r   r   r   rQ   r]   r^   )r^  rb  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 SS9  g)zZ
Make sure that decreasing indices give the same results as increasing indices.

GH 36933
r+  irD   r   Nr*   rI   r"   r#   r   g-q=r  )	r   r   rL   rA   rS   r   r]   assert_almost_equalr+  )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$B$$j&7&7&;%r    )rY   rZ   rr  rZ   )rX   rY   rZ   rr  )rY   rZ   rs  rr  )rX   rY   r4   rZ   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.
rm   r   r   rG   rI   Nr*   Tr   )r   r+   r   r   r]   r   )r$   ro   rb   r/   rA   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)rY   rY   rY   rY   3ns)r4   rZ   rZ   r4   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 )	Nrm   r   r  rG   )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@rs  g`UU"@g      *@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   emptyrD  r+   use_expandingwindow_size)	self
num_valuesr   r'   ro   rK   r   rk  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    rW  N)__name__
__module____qualname____firstlineno__r  __static_attributes__rW  r    r   CustomIndexerr  J  s    
	r    r  r   )r  r  N)	r   r   rL   r   r   rS   r   r]   r^   )r  rb   r  r   r  r   ra   s          r   test_rolling_non_monotonicr  	  s|    | GM	HbiiM(:;q@A	BB  GGRZZ(&13F(H-.H&+r    rl   z
2001-01-01)rH   r?   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 )Nr8  rI   rX   r   r   r   )	r
   copyr   r   rQ   r   r   r]   r  )rA   r$   r   r  ra   rb   s         r   !test_rolling_corr_timedelta_indexr  ^  sp     	e,A	AAFF1QKYYv##A&Frvvrvvq!Q/u=H6,r    zvalues,method,expected)
rY   r4   rZ   r~   rr  rs  rt         @      "@      $@firstrZ   r~   rr  rt  r  r  lastr  c                 <   [        U 5      n[        UR                  S5      U5      " 5       n[        U5      n[        R                  " XB5        [        SU 05      n[        UR                  S5      U5      " 5       n[        SU05      n[        R                  " XB5        g )Nr:   rk   r
   rS   r   r]   r  r   r+  r  rb   r   ra   s        r   test_rolling_first_lastr  o  s}    6 	vAQYYq\6*,FhH6,3- AQYYq\6*,F#x)H6,r    )
rY   rY   rY   r4   rZ   r~   rr  rs  rt  r  )
rY   rY   rY   rZ   rZ   rr  rr  rt  rt  r  )
rY   rY   rZ   rZ   rr  rr  rt  rt  r  r  c                 8   [        U 5      n[        UR                  SSS9U5      " 5       n[        U5      n[        R                  " XB5        [        SU 05      n[        UR                  SSS9U5      " 5       n[        SU05      n[        R                  " XB5        g )Nr:   r   r   rk   r  r  s        r   test_rolling_first_last_no_minpr    s    6 	vAQYYqaY0&9;FhH6,3- AQYYqaY0&9;F#x)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g2rl   )groupr   r  F)dropnar   r   r   )rX   r4   rZ   rY   r~   )r   r   r   r   r   )r   r   r:   r   r   r   rI   )	r   r   r   r   r   r   r	   r]   r^   )r   r   ra   rb   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   rD   r:   iP  )	r
   r   rl  rm  r  rS   r   r]   r   )r  r   ser_copyrb   ra   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   r+  )i- r   r   r   r:   r   i  )r4   g+X?rX   gJ_9?)g    .Ag    .r   r   r:   r   r"   r   )gT׾g       rX   rX   rX   )r~   gBʠ333333g >@)r   r~   r  r  r  c                     [        U5      n[        UR                  S5      U 5      " 5       n[        U5      n[        R                  " XE5        g )Nr   r{  )r  r   r+  r   ra   rb   s         r   (test_rolling_skew_kurt_large_value_ranger    s;    6 	tAQYYq\6*,Ff~H6,r    c                 R   SnSnSn[         R                  R                  S5      nUR                  SSUS9n[	        US U 5      R                  U5      n[	        U5      R                  U5      n[        X`5      " 5       n[        Xp5      " 5       n	U	S U n
[        R                  " XSS	9  g )
NrD      r   r   rX   g     @@)r;  rR  sizeT)check_exact)	r   rl  rm  normalr
   r   rS   r]   r   )r  len_smaller
len_biggerr  rngr   window_smallerwindow_biggerresult_smallerresult_biggerresult_bigger_trimmeds              r   'test_same_result_with_different_lengthsr    s     KJK
))


"C::#Sz::DD+./77DN4L((5M^46NM24M),;7>dSr    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   r5   )r  )r,   r-   r.   r
   r+   r   rW  r    r   test_invalid_methodr    s:    	z)L	MuQx  5 1 
N	M	M   #A
Ac                    Sn[         R                  " [        US9   [        SSSS9nU " [	        SS5      US	9nUR                  SS
S9R                  5       nS S S 5        U " [        R                  SS/WS	9n[         R                  " WU5        W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 ! , (       d  f       N= f)Nz:'d' is deprecated and will be removed in a future version.r(   r   r   1drj  r   r   rI   rz   r   r   r*   r   z-1Dr:   )r]   assert_produces_warningr   r   r+   r   r   r   r   r   r   )r/   r1   rB  r  ra   rb   s         r   .test_rolling_descending_date_order_with_offsetr    s    
FC		#	#N#	>|DIeAqk5T&1557 
?
 1~S9HOOFH%XXdd^##D#8<<>F
<\
FC1~S9HOOF% 
?	>s   ;C66
D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瞯<r  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  4  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QSPSPSPSP[        R                  P[        R                  PSPSP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=?rI   r"   r   r   )r   r   r   r@  r+   r   r   r   r   r]   r^   )r   
exp_valuesr   r+  rb   ra   s         r   3test_rolling_mean_all_nan_window_floating_artifactsr  B  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  rX   )r   r   r   r   r   r]   r^   r&  s      r   2test_rolling_sum_all_nan_window_floating_artifactsr  q  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
  y  sD    uQxAYYq\FrvvhH6,r    )r   r:   rD   r   )r   r   averagepctTF	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  rY         ?      ?c                 @   > U R                  TTTS9R                  S   $ )Nr  r  	ascendingr*   )rankr   )r   r  r  r  s    r   <lambda>test_rank.<locals>.<lambda>  s    !&&C9&EJJ2Nr    r  )r
   r   rl  rm  choicer   infr   rf   r  r]   r   )	r$   r  r  r  r  lengthr   rb   ra   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    )r  r  r  	precisionc           
         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OUS:X  ah  [        [        R                  R                  S5      R	                  SS	S
[        R
                  [        R                  [        R                  * /U5      S9nO US:X  a  [        / SQ[        R                  S9nWR                  U 5      R                  S 5      nUR                  U 5      R                  5       n[        R                  " XT5        g )Nr   r  r   r  r  r:   r  rY   r  r  r  )
333333?g433333?333333?g433333??g?r   r   皙?r$  )r   r   c                 "    U R                  5       $ N)nunique)r   s    r   r  test_nunique.<locals>.<lambda>  s
    199;r    )r
   r   rl  rm  r  r   r  r   r   rf   r'  r]   r   )r$   r  r  r   rb   ra   s         r   test_nuniquer)    s    FI"))//299&AB	l	""))//299!VDE	f	&&q)00dD"&&"&&266':F

 
k	! **
  {{6"(()>?H[[ ((*F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 )NrD   r"   20100101r   rG   r   r*   rI   )r  r   r  r   )axis)   2   K   )r   r   r   rl  rm  reshaper   
percentiler]   r  r+  r  )rowcolrB  r   df_quantilenp_percentiles         r   #test_rolling_quantile_np_percentiler6    s     C
C
Z3
7C	
		a ''	2::C9ES
B ++/a+8KMM"l;M;--rxx/FGr    r   )rX   r   g?r   r   interpolation)linearlowerhighernearestmidpointr   )rY   r4   rZ   r~   rr  rs  rt  )r  rY   rZ   r~   rr  r4   rs  rt  r  r   r   r!  gffffff?r"  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   r7  r   r   q1q2s         r   +test_rolling_quantile_interpolation_optionsrC    s    & 	tA	
H	,B	
	#	,	,X	E	J	J2	NB	xx||xx|||T{{B4"E:::xxr    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)r7  )	r   rL   r
   r,   r-   r.   r   r   r   )r   r   r1   s      r   test_invalid_quantile_valuerF    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)rX   r   r   r#  rY   z#quantile value -0.1 not in \[0, 1\]r(   r:   gz#quantile value 10.0 not in \[0, 1\]r  zmust be real number, not strr5   )r
   r,   r-   r.   r   r   	TypeError)r   r1   s     r   test_rolling_quantile_paramrI    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)rY   r4   rZ   r~   rr  r   r   r"   r   r  rX   r:   r   r   )r
   r   r  r   r   r]   r   r?  )valsra   rb   s      r   test_rolling_std_1obsrL    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?rN  rN  rN  r:   r#   r   )span)r
   r   r  r   isfiniteallewmr>  s     r   test_rolling_std_neg_sqrtrS    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   r5   rJ   r,   r-   r.   r   r+   r   rW  r    r   test_step_not_integer_raisesrV  ,  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*   rJ   rU  rW  r    r   test_step_not_positive_raisesrX  1  s9    	z)<	=%(##AB#/ 
>	=	=r  )r+  r$   r   rb   r   r.  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   rb   sr
result_var
result_stds          r   'test_rolling_var_same_value_count_logicr_  6  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rY  r   r   r   r   r   r   r:   r   r   )r
   r   r   rQ  r   )r\  rra   s      r   (test_rolling_mean_sum_floating_artifactsrc    sr     
)	*B


1AVVXF23K1!!####UUWF23K1!!####r    c            	         [        / SQ5      n U R                  S5      nUR                  5       n[        [        R                  [        R                  [        R                  SSSS/5      n[
        R                  " X#5        UR                  5       n[        [        R                  [        R                  [        R                  SSSS/5      n[
        R                  " X#5        g )	Nra  r   g87c?r4   rX   gt﬩@r~   g      )r
   r   r  r   r   r]   r   r  )r\  rb  ra   rb   s       r   )test_rolling_skew_kurt_floating_artifactsre    s     
)	*B


1AVVXFrvvrvvrvv/A3SQRH6,VVXFrvvrvvrvv/A3dSTH6,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$  r?  r0   r0   r   numeric_onlyr$  r?  Trq   )r   r   objectr   rS   rO   rs   r   r@  r   r]   r^   )	rt   ri  kernelr   r   opra   r   rb   s	            r   test_numeric_only_framerm    s    %F	!11-	.BgnnV$BsGjjj*G		!B\*F(sCjoG{x(44$4?FFuMH  !W,,,&+r    rk  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:   rg  r0   rW  r   r   ri  r$  r?  )r   r   rj  r   rS   r   r]   r^   )rk  ri  rn  r   argr   rl  ra   r   df2arg2rolling2op2rb   s                 r    test_numeric_only_corr_cov_frameru    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(   rh  Trq   )r
   r   rS   rj  r,   r-   rM   rO   rs   r   r   r]   r   )
rt   ri  r   rk  r   r   rl  r1   ra   rb   s
             r   test_numeric_only_seriesry    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  rW  r   r   r   rw  rx  r(   ri  )r
   r   rS   rj  r,   r-   rM   r   r   r]   r   )rk  rn  ri  r   r   rp  r   rl  r1   ra   ser2rr  rs  rt  rb   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&r  )NUTCzEurope/Praguec                 .   [        S[        S5      0[        SSSUS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 )Nrk   r"   z
2013-01-01r   ns)rH   r?   r  r^  rI   z
2023-01-01z
2023-01-10)r^  r  r   r   r   r;   )r   r+   r   r   r   rA   r_  r]   r^   r
   r   r   r   )r^  r  rw   sum_in_nanosecssum_in_microsecs	ref_dates
ref_seriesref_max_seriesrc  series
max_seriesref_dfr   s                r   -test_rolling_timedelta_window_non_nanosecondsr    s]    	eAhD!N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    c                   4   ^  \ rS rSrU 4S jr SS jrSrU =r$ )PrescribedWindowIndexeri  c                 :   > Xl         X l        [        TU ]  5         g r&  )_start_endsuper__init__)r  r   rk  	__class__s      r   r   PrescribedWindowIndexer.__init__  s    	r    c                     Uc  [        U R                  5      n[        R                  " U R                  SU5      n[        R                  " U R                  SU5      nXg4$ )Nr   )r   r  r   clipr  )r  r  r   r'   ro   rK   r   rk  s           r   r  )PrescribedWindowIndexer.get_window_bounds  sL     T[[)JQ
3ggdiiJ/zr    )r  r  )NNNNN)r  r  r  r  r  r  r  __classcell__)r  s   @r   r  r    s     QU r    r  c            
           \ rS rSr\R
                  R                  SSS/ SQ4SS/ SQ4SS/ SQ4SS/ SQ4/5      S	 5       rS
 rSr	g)
TestMinMaxi  zis_max, has_nan, exp_listTF)
rZ   rr  r4   rr  rY   rr  rs  rt  r  r  )
rZ   r~   r4   r~   rY   r~   rs  rt  rt  r  )
rZ   r4   r4   rY   rY   rX   rX   rX   rt  rX   )
rZ   r4   r4   rY   rY   rY   rs  rs  rt  rY   c                    / SQn[        / SQ/ SQ/ SQS.5      nU(       a  [        R                  UR                  US4'   [	        USS9nUR
                  R                  [        UR                  R                  5       UR                  R                  5       5      5      nU(       a  UR                  5       nOUR                  5       n[        R                  " X5        g )N)r   r"   r   )
rr  r~   rZ   r4   rY   rX   rs  rt  r  r  )
r   r   r:   r   r   r   r"   r"   r   r:   )
r:   r   r   r"   r"   r   r   r   r   rD   r   r   rk  r   r%  )r   r   r   r;  r
   r   r   r  r   to_numpyrk  r   r   r]   r   )	r  is_maxhas_nanexp_listnan_idxr   rb   rb  ra   s	            r   test_minmaxTestMinMax.test_minmax  s     J76
 &(ffBFF7F?#(0GGOO#BHH$5$5$79JK
 UUWFUUWF
v0r    c                 |   [         R                  " [        S5      [         R                  S9nUS-   nUS   US'   US   S-
  US'   [	        US-  XS.5      nUR
                  R                  [        X5      5      n[        R                  " [        SS	9   UR                  5         S S S 5        g ! , (       d  f       g = f)
Nr"   r  r   r   r:   rY   r  z5Start/End ordering requirement is violated at index 3r(   )r   r  r+   rD  r   r   r   r  r,   r-   r.   r   )r  r   rk  r   rb  s        r   test_wrong_orderTestMinMax.test_wrong_order7  s    q2aiQA8a<aeHIGGOO3E?@]]U
 EEG
 
 
s   B--
B;rW  N)
r  r  r  r  r,   markparametrizer  r  r  rW  r    r   r  r    s\    [[#5LM4KLEMNDLM		
11,r    r  )|r   r   numpyr   r,   pandas.compatr   pandas.errorsr   pandasr   r   r	   r
   r   r   r   r   pandas._testing_testingr]   pandas.api.indexersr   pandas.core.indexers.objectsr   pandas.tseries.offsetsr   r   r2   r  r  r  r9   rN   rU   rc   ri   rx   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-  r6  r<  rC  rF  rI  from_tuplesrZ  rd  rg  rn  rp  rv  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)  r6  rC  rF  rI  rL  rS  rV  rX  r  r_  rc  re  rm  ru  r   rj  ry  r|  r  r  r  rW  r    r   <module>r     sl  
   )	 	 	  + 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?, 	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,,-,.-,-&& $ ),s!%s+1vQF+aV4 y19=
 		
 ),s!%s+1vQF+aV41vQF+aV4
 		
 ),s!%s+1vQF+aV41vQF+aV4
 		
 ),s!%s+s!%s+s!%s+
 		
 ),s!%s+s!%s+s!%s+
 		
 s!	r1d+s!	r1a(	Rz1d#bffa.1~6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  17IPUV	

 (.@w 		
 	Aq!Q1a01	Aq!Q1a01	Aq!Q2r23-.-- ;	5q!=VW1?	
 
5q!=VW1?	
 8@	
  	!	
8 I	
gFIT7UIT72$j #WX Y" 	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=--  @5\5<c3S#sCP	
 "&&#rvvsBFFCbffM5\NR	
 @5\5<c3S#sDQ	
 "&&#rvvsBFFCbffM5\NR	
!2
-32
-  @>	
 "&&#rvvsBFFCbffM>	
 @?	
 "&&#rvvsBFFCbffM>	
!2
-32
-,, FF#34- 5-   )VVHqL99	
 )VVHqLAA	
 )VVHqL;;	
 )VVHqL77	
!2-32- FF#34T 5T&2
&$7I 	
23	
./%,%,P,- >2#<=u.&GH- I / > 3-* >2&TU - V 3 -F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* =>& ?&>k  , ,r    