
    PiS                     4(   d dl m Z mZ d dlZd dlZd dlmZ d dlmZ d dl	m
Z
mZmZmZmZmZmZmZ d dlmZ d dlmZ d dlmZ d dlmZ d	 Zd
 Zej                            ddd ej        dg          g          d             Z ej                            d ed           ed          d e edd           ed                    g          d             Z!ej                            dddg          d             Z"ej                            d ed           ed          g          d             Z#ej                            d ed           ed          dg          d             Z$d  Z%ej                            d!d"g d#g d$g d%g d&g d'gfd(g d)g d#g d*g d+g d'gfd,g d#g d*g d+g d'g d-gfd.g d)g d/g d0g d1g d-gfg          d2             Z&ej                            d3d4d,g d5fd4d"g d5fd4d(g d5fd4d.g d5fd6d,g d7fd6d"g d5fd6d(g d8fd6d.g d9fg          d:             Z'ej                            d3d;d,g d<fd;d(g d=fd;d"g d>fd;d.g d?fg          d@             Z(ej                            dAd(ej)        ej)        ddddBdCdCdDdEg
fd.ej)        ej)        ddddFdddGdHg
fd,g dIfd"g dJfg          dK             Z*ej                            dAd(ej)        ej)        ddddBdLdLdDdEg
fd.ej)        ej)        ddddBdLdLdGdHg
fd,g dMfd"g dNfg          dO             Z+dP Z,dQ Z-ej                            dRd.d(g          dS             Z.ej                            dTdUdVg          dW             Z/ej                            dTdUdVg          dX             Z0ej                            dYdZd[g          ej                            d\dUd,g d]fdUd"g d^fdUd.ej)        d d dddd_dd`dag
fdUd(ej)        d d d dddd_dd`g
fdVd,g dbfdVd"g dbfdVd.ej)        d dddd_dd`dadHg
fdVd(ej)        d dddd_dd`dadHg
fg          dc                         Z1dd Z2ej                            d\dUd,ej)        d d dddd_dej)        ej)        g
fdUd"ej)        d d d dddd_dej)        g
fdUd.ej)        ej)        d dddd_dej)        ej)        g
fdUd(ej)        ej)        d d dddd_dej)        g
fdVd,ej)        dddd_dd`d`ej)        ej)        g
fdVd"ej)        dddd_dd`d`d`ej)        g
fdVd.ej)        ej)        dddd_dd`ej)        ej)        g
fdVd(ej)        ej)        dddd_dd`d`ej)        g
fg          de             Z3ej                            dAd,g dffd"g dgfd.ej)        d dhdidjdkdldmdndog
fd(ej)        d dhdddd_dd`dag
fg          dp             Z4ej                            dqdrdg          ds             Z5dt Z6du Z7dv Z8dw Z9dx Z:dy Z;dz Z<d{ Z=d| Z>d} Z?d~ Z@d ZAej                            dg dg dddgd_gdd gfddgd_dgdd dgfg dg ddg dfgddfg dg dddgd_gdd gfddgd_dgdd dgfddgdd`gdddgfgddfg dg dddgd_gdd gfddgd_dgdd dgfddgdd`gdddgfgddfg dg dddgd_gdd gfdgdgddgfdgd`gddgfgddfg dg dddgd_gdd gfdgdgddgfdgd`gddgfgdd fdgd_gdg ddfdgd_gdg ddfdi g fgddfdej)        dgej)        dd`gddgej)        gdd gfdej)        gej)        dgdd dgfdej)        dgej)        dd`gdg dfgddfg	          d             ZBej                            ddgd_gdd gfddgd_dgdd dgfddgdd`gdddgfgd;fdgd_gdd gfddgd_dgdd dgfg dg ddg dfgdfdgd_gdd gfdgdgddgfdgd`gddgfgdfg          d             ZCd ZDej                            d eg d          dgd gfddgd dgfg dg dfgddf eg d          dgd gfddgd dgfg dg dfgddf eg d          dgd gfddgd dgfddgddgfgddf eg d          dgd gfddgd dgfddgddgfgddf eg d          dgd gfdgdgfdgdgfgdd f eg d          dgd gfdgdgfdgdgfgddf eddg          dgd gfddgd dgfgdd f eg d          g ddfg          d             ZEej                            dd gdgdgdgd_gg eddd           eddd           eddd           eddd           eddd          gdfd gd dgddgddgdd_gg eddd           eddd           eddd           eddd           eddd          gd;fd gd dgg dg dg dg eddd           eddd           eddd           eddd           eddd          gdfg          d             ZFej                            ddd i ejG        g dddg          fddi ejG        g dddg          fg          d             ZHej                            dddg          d             ZId ZJd ZKd ZLd ZMej                            d edddU          df eddd          dfg          ej                            ddUej)        d d dddd_dd`g	fdVej)        d dddd_dd`dag	fdej)        d ddddadFddGg	fg          d                         ZNd ZOej                            ddg dddg dfdg dddg dfdg dddg dfdg dddg dfdg dddg dfdg dddg dfdg d¢d`dg dâfg          dĄ             ZPdń ZQej                            dg dǢ          dȄ             ZRej                            d3d6d,g dɢfd6d(g dʢfd6d"g dˢfd6d.g d̢fd4d,g dˢfd4d(g dˢfd4d"g dˢfd4d.g dˢfg          d̈́             ZSej                            ddg dТfdg dҢfg          dӄ             ZTej                            dd eUdզ          d eUdզ          dddddgfd eUdզ          do eUdզ          dddddgfd eUdզ          d eUdզ          dddddgfd eUdզ          d eUdզ          dddddgfd eUdզ          d eUdզ          dddddgfg          d             ZVej                            dg ddf eddd          d;fg          d             ZWej                            dg dd eUdզ           eUdզ          ddddddސd dg
fdej)        dej)        dej)        d ej)        dej)        g
d eUdզ          gdBz  fg dd eUdզ           eUdզ          ddddސd dddg
fdej)        dej)        dej)        d ej)        dej)        g
d eUdզ          gdBz  fg          d             ZXej                            dg ddg dfdej)        dej)        dej)        d ej)        dej)        g
dg dfg ddg dfdej)        dej)        dej)        d ej)        dej)        g
dg dfg          d	             ZYd
 ZZej                            dddg          d             Z[ej                            ddg dej)        gdz  g dz   fdg dej)        gdz  g dz   fdg dej)        gdz  g dz   fdg dej)        gdz  g dz   fg          d             Z\ej                            dddg          d             Z]d Z^d Z_d Z`d Zaej                            ddg dfdg dfg          d             Zbd Zcd Zdej                            dg d          ej                            dg d           ej                            d!d"d#g          ej                            d$g d%          d&                                                 Zeej                            dg d          ej                            d$g d'          d(                         Zfd) Zgej                            d*g d+          ej                            d,g d-          ej                            d.g d/g d0dej)        d1ej)        d2gej)        ej)        ej)        ej)        gej)        d3ej)        d4d2dhgdhgej)        d5d6gg          d7                                     Zhd8 Zid9 Zjd: Zkd; Zld< Zmd= Znej                            g d>d?dBdBejo        ddddgddej)        d@dAd dBd dCdggd?dBdBej)        dBdddgddej)        d@dAd d dBdDdggej)        dd`dadddgddej)        gdz  g dEz   gddadadaej)        ejo        d_dddg
ddej)        gdz  dFd gz   ej)        gd_z  z   dCd gz   gddadadaej)        ejo        dadddg
ddej)        gdz  dFd gz   ej)        gd_z  z   dGd gz   gddagd_z  ddej)        gdz  dFgd`z  z   gddadej)        daddagddej)        ddFgdgdz  z   dFgz   gg          dH             ZpdI ZqdJ ZrdK Zsej                            dLddg          ej                            dMd"d#g          dN                         Ztej                            dOeuevg          dP             Zwej                            dLddg          ej                            dMd"d#g          ej                            dOeuevg          dQ                                     Zxej                            dRg dS          dT             Zy G dU dVe          Zz G dW dX          Z{dS (Y      )datetime	timedeltaN)IS64)Pandas4Warning)	DataFrameDatetimeIndex
MultiIndexSeries	Timedelta	Timestamp
date_rangeperiod_range)BaseIndexer)VariableOffsetWindowIndexer)BusinessDayc                      t          ddddt          j        dgi          } |  |                     d                                           |                     dd                                           d S )NBr            min_periods)r   npnanrollingsum)dfs    t/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/pandas/tests/window/test_rolling.pytest_doc_stringr      sj    	C!Q261-.	/	/BBJJqMMJJqaJ  $$&&&&&    c                 B    | t          d                    j        } |d            |d            |dd            |ddd            |ddd	           d
}t          j        t          |          5   |d           d d d            d S # 1 swxY w Y   d S )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   &   s
    	a!!)A AaDDDAQKKKKAQAAQAd++++AQAe,,,, 3C	z	-	-	-  	"                 s   ;BBBw       @foor   c                     | t          d                    j        }d                    ddg          }t          j        t
          |          5   ||           d d d            n# 1 swxY w Y   d}t          j        t
          |          5   |d|	           d d d            n# 1 swxY w Y   d
}t          j        t
          |          5   |dd|           d d d            d S # 1 swxY w Y   d S )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	-	-	- - -	!,,,,- - - - - - - - - - - - - - - - - -s6   A))A-0A-B++B/2B/C//C36C3r$      days3Dz
2015-12-25r"   periodsr   indexoffsetc                 &   t          t          j        d          t          ddd                    }t	          j        t          d          5  |                    | d	                                           d d d            d S # 1 swxY w Y   d S )
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   s     

	"r<<<
 
 
B 
#M
 
 
 ) ) 	

6
""&&((() ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )s   *BB
B
aggcovcorrc                     t          t          d                                        dd          }t          j        t
          d          5   t          ||                        d d d            d S # 1 swxY w Y   d S )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   s     U1XX&&qq&11D	*2H	I	I	I  c                 s   A33A7:A7c                    d}t          dt          j        |          it          d|d                    }t          j        ddgt          j        d	d
d                    }|                    |                                           }t          d|it          d|d                    }t          j        ||           |                    d                                          }t          j        ||           d S )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 IsCj")Cq*A*ABBMZZvZ&&**,,F	- qs;;;  H &(+++zz$##%%H&(+++++r    c                 (   d}t          dt          j        |          it          d|d                    }t          dt          j        t          j        dgt          j        dd	d
                    it          d|d                    }|                    | d                                          }|                    | d                              t          |          }t          j
        ||           t          j
        ||           d S )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 	")RVSM29S$+B+BCCDqs;;;  H jjAj>>BBDDO**F*BBHHRUHVV/8444-x88888r    c                    |}t          dg di          }t          dg dit          dd                    } t          |                    d| d	          |                      } t          |                    d
| d	          |                                          d          }t          j        ||           d S )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#/00Hooo.jQR6S6S6STTTGW6q99   FwV;;    	 
 &(+++++r    zclosed, window_selectionsboth)TTFFF)TTTFF)FTTTF)FFTTT)FFFTTleft)TFFFF)FTTFF)FFTTFright)FFFFTneither)FTFFF)FFTFF)FFFTFc           	      @   |t          dg dit          dd                    t          dfd|D             it          dd                    } t                              d| d	d
                                }t	          j        ||d           d S )Nrk   )rX   rY   r4   rZ         @rm   r"   r>   rI   c                 b    g | ]+} t          d          j        |                               ,S )rk   )rS   iloc).0srw   ru   s     r   
<listcomp>z9test_datetimelike_centered_selections.<locals>.<listcomp>   s8    UUUa7wws|(+Y7799UUUr    rp   r   T)ro   r   r'   F)check_dtype)r   r   rS   r   r]   r^   )ro   window_selectionsrt   rb   ra   rw   ru   s        @@r   %test_datetimelike_centered_selectionsr      s    b )I	'''(
610M0M0M  G 	UUUUUCTUUUV+++  H
WV4HH   F
 &(>>>>>>r    zwindow,closed,expected3s)rZ   rZ   rZ   2s)rZ   r4   r4   )rY   rZ   rZ   rY   r4   r4   c                    t          d          t          d          t          d          g} |g d|          }|                    | |d                                          } |||          }t          j        ||           d S )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      s    & 	%&&%&&%&&E
 
%	0	0	0BZZvdZ;;??AAFxu555HOFH%%%%%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                     t          g d          } |dgdz  |t                    } |||t                    }|                    | d|                                          }t	          j        ||           d S )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xuEBBBHZZtFZ;;??AAFOFH%%%%%r    zclosed,expectedrD            	      r   )
r   r   r:   r   rD   r      r   r      )
r   r   r:   r   rD                  c                 
   t          g d          } |t          d          |t                    } |||t                    }|                    d|                                           }t          j        ||           d S )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   +  s     	
 	
 	
 E 
r%u	=	=	=BxuEBBBHZZVZ,,0022FOFH%%%%%r    r   )
r   r   r:   r   rD   r   r      r   r   )
r   r   r:   r   rD   r   r   r   r   r   c                 L   t          g d          } |t          d          |t                    } |||t                    }t          d          }t	          ||          }|                    || d                                          }t          j        ||           d S )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  s     	
 	
 	
 E 
r%u	=	=	=BxuEBBBH^^F)fEEEGZZAZ>>BBDDFOFH%%%%%r    c                     t          t          d          t          ddd                    } |                     ddd	                                          }t          g d
| j                  }t          j        ||           d S )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  s    uQxxz3PQRRRSSSA
 YYd$Y??DDFFFmmm17333H68,,,,,r    c                    g d}t          d|it          ddt          |                              }| rg d}nt          j        dd	d
d	dd	dg}t          |dgt          ddt          |                              d d |         }|                    t          |          dd| |          }|                                }t          j        ||           d S )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KK
 
 
B
  ILLLCS#xH|%]ASASTTT   ff	H jj2wwv1V$   G \\^^F&(+++++r    ro   c                 @   |}t          t          j        d          t          ddd                    }|                    d|           } t          ||                      }t          t          j        gdz  |j                  }t          j	        ||           d S )	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     s     )I
bill*VQT*R*R*R
S
S
SC;;tF;++D%WT9%%''Frvhl#)444H68,,,,,r    funcr   maxc                 
   t          dgt          dd                    } t          |                    dd          |                       }t	          j        |t          t          j        g|j        	                     d S )
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     sx     qcFA!>!>!>
?
?
?C=WS[[v[66==??F6626(#)#D#D#DEEEEEr    c                    t          g dg ddt          dd                    } t          |                    dd	
          d                             dd          |                       }t          j        g d|j        gd          }t          t          j
        dt          j
        g|d          }t          j        ||           d S )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     99999--+++  CWCe$$S)11%1GG   F $YYY	,B+VVVGBFArv.gCHHHH68,,,,,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                 @   t          t          j        d                              |           t	          dd                    } t          |                    d|          |                      }t          ||j                  }t          j	        ||           d S )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     s      Yr]]!!+..,,,  C
 =WS[[f[55t<<>>Fhci000H68,,,,,r    c            
      |   t          t          j        d          t          dd                    } |                     | j        ddg                   } |                     dd	
                                          }t          t          j        dddddddg| j                  }t          j
        ||           d S )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    
bimm:fb+I+I+I
J
J
JC ((Aq6*(
+
+C[[f[--1133Frvq!Q1a339EEEH68,,,,,r    c                 ~   t          t          j        d          t          dd                    }|                    d          }t          j        ||j        dd          <    t          |                    dd|	          |                       }t          ||j        
          }t          j
        ||           d S )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     bimm:fb+I+I+I
J
J
JC
**W

C&C	"##KWS[[1V[DDdKKMMFhci000H68,,,,,r    )
r   r   r   r   r:   r   r"   r   r   r   )
r   r   r   r         @      @      @      @      @      @r   r   r   r   r   r   r   r   c                 j   t          t          j        d          t          dd                    }|                    d|           }t          ||j                  }|                                }t          j        ||           |	                    d          }t          j        ||           d S )	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     s     bimm:fb+I+I+I
J
J
JC;;tF;++Dhci000H[[]]F68,,,]]3F68,,,,,r    roller1sc                    t                      }t                                          |                                           }t          j        ||           t          t          g                     }t          t          g                                         |                                           }t          j        ||           d S )NrI   )r   r   r   r]   r^   r   )r   rb   ra   s      r   tests_empty_df_rollingr     s     {{H[[  ((,,..F&(+++ }R00111H]2..///77??CCEEF&(+++++r    c                  t   t          t          j        t          j        t          j        g          } t          t          j        d                                        d          }|                                }t          j        ||            |                    d          }t          j        ||            d S )Nr:   r   皙?)	r
   r   r   rL   r   r   r]   r   r   )rb   rT   ra   s      r   !test_empty_window_median_quantiler     s    rvrvrv.//H")A,,''**D[[]]F68,,,]]3F68,,,,,r    c                     t          t          j        g          } |                     dd                                          }t          dg          }t          j        ||           |                     dd                                          }t          t          j        g          }t          j        ||           d S )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68,,, YYqaY((,,..FrvhH68,,,,,r    c                  $   t          t          j        gdz  t          g d                    } |                     t          d          d                                          }t          d| j                  }t          j	        ||           d S )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  s    	1TTTUU	 	 	A YYyAY66::<<Fc)))H68,,,,,r    c                  <   t          j        ddgg dgddg          } t          t          j        d          |           }|                    d	                                          }t          j        |j	        |j	                   |j
        j        g d
k    sJ d S )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
SSSD	277##T	2	2	2BZZ]]  F&."*555<!1!1!1111111r    c                     t          t          j        d                    } t          d t          d          D                       }|                     d                                          }t          j        ||           d S )N)rD   r   c                 >    i | ]}|t           j        gd z  dgdz  z   S )r   rZ   r   )r   r   r   is     r   
<dictcomp>z)test_rolling_axis_sum.<locals>.<dictcomp>P  s-    III!!bfX\SEAI5IIIr    r   r:   )r   r   r  r+   r   r   r]   r^   r   rb   ra   s      r   test_rolling_axis_sumr  M  so    	278$$	%	%BIIuRyyIIIJJHZZ]]  F&(+++++r    c                     t          t          d          t          d          d          } t          g dg dd          }|                     dd                                          }t	          j        ||           d S )Nr:   )r   yr   r   r   r   )r   r+   r   countr]   r^   r  s      r   test_rolling_axis_countr  U  sz    	qa11	2	2B___EEFFHZZqZ))//11F&(+++++r    c                  n   t          j        ddt           j        ddg          } |                     d           t	          |                               d                                          }t	          t           j        dt           j        t           j        dg          }t          j        ||           d S )Nr   r:   r"   F)writer   r   )	r   arrayr   setflagsr
   r   r   r]   r   )arrra   rb   s      r   test_readonly_arrayr  ^  s    
(Aq"&!Q'
(
(CLLuLC[[  ##((**Frvq"&"&!455H68,,,,,r    c           
      |   | }t          d t          ddd|          D                       }|j                            d                                          j        }t          i d t          ddd|	          D             d
 t          ddd|          D                       }t          j        ||           d S )Nc                     i | ]	}|d gdz  
S )r   r    r	  s     r   r  z)test_rolling_datetime.<locals>.<dictcomp>k  s     TTTQC!GTTTr    z	2019-8-01z
2019-08-03rF   )rH   tzrp   c                     i | ]	}|d gdz  
S )rY   r   r  r	  s     r   r  z)test_rolling_datetime.<locals>.<dictcomp>q  0        C519  r    r   )r?   rH   r  c                     i | ]	}|d gdz  
S )r4   r   r  r	  s     r   r  z)test_rolling_datetime.<locals>.<dictcomp>u  r  r    z	2019-8-02z	2019-8-03)r   r   Tr   r   r]   r^   )tz_naive_fixturer  r   ra   rb   s        r   test_rolling_datetimer!  g  s    	B	TTZ\PRSSSTTT
 
B T\\$##%%'F		
 #KLLL  		

 #K32NNN  		
 H &(+++++r    c                    t          j                    }t          ||t          d          z   d          }t	          j        t          |                    }t          ||d          }|                    dd           |	                    dd	d
|           d         
                    d          }|                    d          }|                    d           }t	          j        t          |          t          j                  }| st          j        |d d	<   t          ||d          }t!          j        ||           d S )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j*y~~"=CHHHD73t99D	tt44	5	5BLLDL)))ZZu!F6ZRR	c%jj  KK	""ET""EGCIIRZ888M #Fbqbm5x@@@H68,,,,,r    c                      t          g ddg          } | d                             ddd                                          }t          g dd	          }t	          j        ||           d S )
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_periods1r3    ss    	???SE	2	2	2BW__Qt_;;??AAF///c:::H68,,,,,r    c                      | t          d                                        dd                                          } | t          j        t          j        dddg          }t          j        ||           d S )Nr"   r:   r   rZ   )r+   r   r  r   r   r]   r   )r/   ra   rb   s      r   #test_rolling_count_with_min_periodsr5    sl    _U1XX&&..qa.@@FFHHFS#>??HOFH%%%%%r    c                     dddt           j        dddg}g d} | |                              dd	                                          } | |          }t	          j        ||           d S )
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_valuesr9    sz    Arvq!Q'F999O _V$$,,QA,>>DDFFF//HOFH%%%%%r    zdf,expected,window,min_periodsr   r   r:   )r   r"   r   r   r   r   r   rY   c                     t          |           } d |D             }t          ||                     ||          d          D ]\  }}t          j        ||           d S )Nc                 6    g | ]\  }}t          ||           S rI   )r   r   r7  rA   s      r   r   z/test_iter_rolling_dataframe.<locals>.<listcomp>  s)    PPPOVU6///PPPr    r   Fstrict)r   zipr   r]   r^   )r   rb   r$   r   	expectedsactuals         r   test_iter_rolling_dataframerE    s    L 
2BPPxPPPI2::f+:>>u   0 0& 	fh////0 0r    zexpected,windowr   c           	          t          g dg dt          ddd          d          fd| D             }t          |                    |d	
          d          D ]\  } }t	          j        ||            d S )Nr   r   r:   r   r"   )r   r"   r   r   r   z
2016-01-01r"   rF   r   r?   rH   )rk   r   r   c                 R    g | ]#\  }}t          |j        |d f                   $S )r   rI   )r   loc)r   r7  rA   r   s      r   r   z2test_iter_rolling_on_dataframe.<locals>.<listcomp>$  sB       8G	&ucz 2333  r    r   )onFr@  )r   r   rB  r   r]   r^   )rb   r$   rC  rD  r   s       @r   test_iter_rolling_on_dataframerL    s    > 
  ,DDD	
 	

 
B   KS  I  	2::f:+E+EeTTT 0 0&
fh////0 0r    c                  "   t          g dg dd          t                              d                              d                    } fddgddgdgfD             }t	          | |d	
          D ]\  }}t          j        ||           d S )N)r   r  r   r;  r0  br0  r   c                 0    g | ]}j         |d gf         S )r   )r   )r   idxr   s     r   r   z<test_iter_rolling_on_dataframe_unordered.<locals>.<listcomp>/  s&    AAAsqc"AAAr    r   r   Tr@  )r   listr   r   rB  r]   r^   )resultsrC  ra   rb   r   s       @r   (test_iter_rolling_on_dataframe_unorderedrT  +  s    	yyy99	:	:B2::c??**1--..GAAAAsQFQC.@AAAI4@@@ 0 0
fh////0 0r    z ser,expected,window, min_periodsint64r'  c                     d |D             }t          ||                     ||          d          D ]\  }}t          j        ||           d S )Nc                 6    g | ]\  }}t          ||           S r>  r
   r?  s      r   r   z,test_iter_rolling_series.<locals>.<listcomp>W  s)    MMM&%e,,,MMMr    r   Tr@  )rB  r   r]   r   )r   rb   r$   r   rC  rD  s         r   test_iter_rolling_seriesrY  4  su    F NMHMMMI3;;v;;??   1 1& 	vx00001 1r    zexpected,expected_index,windowr   rF   rG   r   r   r   z
2020-01-05)r   r:   r   c                    t          t          d          t          ddd                    }d t          | |d          D             }t          ||                    |          d          D ]\  } }t          j        ||            d S )	Nr"   r   rF   rH  rI   c                 6    g | ]\  }}t          ||           S r>  rX  )r   r7  rQ  s      r   r   z.test_iter_rolling_datetime.<locals>.<listcomp>  s9       VS 	vS!!!  r    Tr@  )r
   r+   r   rB  r   r]   r   )rb   expected_indexr$   r   rC  rD  s         r   test_iter_rolling_datetimer]  _  s    P q,PS!T!T!T
U
U
UC  >$GGG  I
  	3;;v+>+>tLLL 1 1&
vx00001 1r    zgrouping,_indexlevel)r   r   r_  r   r   r`  r`  r   byX)r_  )r   r   )r   r   )r:   r   )r   r   c                 F   d }t          dt          d          ig d          }t          dg di|          }d| v r|                    dd	          } |j        di |                     d
                              ||d          }t          j        ||           d S )Nc                  ~    t          |           dk     rt          d          | \  }}|                                |z  S )Nr   z The function needs two arguments)r   r.   r   )argsr  scales      r   
scaled_sumz4test_rolling_positional_argument.<locals>.scaled_sum  s<    t99q==?@@@uyy{{U""r    rb  r"   )r   r   r   r   r   r   )rX   r   rY   r   r4   ra  ignore)r   errorsr   )r   )re   re  r  )r   r+   rr   r   r   rf   r]   r^   )grouping_indexre   rg  r   rb   ra   s          r    test_rolling_positional_argumentrl    s    (# # # 
eAhh	?	?	?Bs$=$=$=>fMMMHx==X=>>RZ##(##++A..44ZSt4TTF&(+++++r    addrX   c           
      .   t          t          d          t          d          t          d          g                              |          }t          dd| z   ddgi|          }|                    d                                                              d	d
d                                          }t          ddd|          }t          dt          j
        t          j
        t          j
        ddddgi|          }t          j        ||           d S )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^   )rm  rp  dtir   ra   datesrb   s          r   *test_rolling_numerical_accuracy_kahan_meanrv    s2    )**)**)**	
  gdmm  
	!C't45
 
 
B
 	D!!))$v1)MMRRTT  *ACdKKKE"#$
	
   H &(+++++r    c                     t          g ddg          } | d                             d                                          }t          t          j        t          j        ddddgd          }t          j        ||           d S )	N)grh|@'1ZrX   rX   rX   rX   r   r  r:   gsh|??rx  rX   r1  )r   r   r   r
   r   r   r]   r   r2  s      r   )test_rolling_numerical_accuracy_kahan_sumry    sz    	666	F	F	FBW__Q##%%Frvrvufc3?cJJJH68,,,,,r    c                     t          ddd                              t          dg                    } t          j                            d                              t          |                     }t          d|i|           }|                    d          	                                }t          j        ||dg                    d S )	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_jumpr    s    \|%HHHOO|n%% E 9  ##**3u::66D	FD>	/	/	/BZZ##%%F&"fX,/////r    c                      t          g dt          dd                    } |                     d                                          }t	          j        ||            d S )N)g(@S ?ga2U0*3?ro  ro  z
1999-02-03z
1999-02-06r   r   )r
   r   r   r   r]   r   )r   ra   s     r   ,test_rolling_numerical_accuracy_small_valuesr    sb    ---|44	 	 	A YYq\\  F61%%%%%r    c                     t          ddd          } t          t          d          | t          j                  }d|j        d<   |                    d                                          }t          t          j        t          j        t          j        t          j        d	d	d	d
ddg
|           }t          j
        ||           d S )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   )ru  dsra   rb   s       r   (test_rolling_numerical_too_large_numbersr    s    |Rc:::E	U2YYe2:	>	>	>BBGAJZZ]]!!FFFFF	
   H 68,,,,,r    )rA   r$   z2020-01-01 08:00z2020-01-01 08:08r|  2minz2020-01-01 12:0030min1h)r   r7  r   r   c                     t          g d|           } t          |                    |d          |                      }t          ||           }t          j        ||           d S )N)	r   r   r   r:   r   r"   r   r   r   rI   rz   r   r
   rS   r   r]   r   )rA   r$   r   r7  r  ra   rb   s          r   test_rolling_period_indexr    so    2 
+++5	9	9	9B=WRZZvZ66==??FfE***H68,,,,,r    c                 <    | g d          }|                     dd                                          }t          |t                    rt	          |d         j                  }t	          t          j        gdgdz  z             }t          j	        ||           d S )Nr;  r   r   r   r   r   )
r   sem
isinstancer   r
   r7  r   r   r]   r   )r/   objra   rb   s       r   test_rolling_semr  .  s    
/)))
$
$C[[[**..00F&)$$ *q	())rvh#*++H68,,,,,r    )r   r7  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                    t          |          } t          |                    |          |           |          }|                                rE||                                |                                dz                                d          }t          |          }t          j        ||d           t          j        |dk    |dk               d S )	Nr#   r  r   Trq   gvo4atolr   )r
   rS   r   last_valid_indexfirst_valid_indexrs   r]   r   )r   r7  r$   r  r  tsra   rb   s           r   test_rolling_var_correctnessr  8  s    X 
B5WRZZvZ..554@@@F   !$$&&)@)@)B)BQ)FF

+4+
 
  	 o&&H68%88886Q;A66666r    c                 P   t          t          d          t          d          t          d          t          d          t          d          g                              |           }t          j        |ddgg          }t          t          j        t          j        dd	d
ddd
dd
g
t          j        t          j        d	dddd
dd
dg
d|          }t          g dg dd|          }|                    d          	                                }t          j        ||           d S )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   rq  r	   r  r   r   r   r   rQ   r]   r^   )rp  rt  miexpr   ress         r   ,test_timeoffset_as_window_parameter_for_corrr    sX   
)**)**)**)**)**	
  gdmm  
	 #Sz!2	3	3B
 "#"" "#"""	
 	
4 7  C< 
ooOOO44
 
 
B
 **D*
!
!
&
&
(
(C#s#####r    method)r  r   r   skewkurtr   r   c                    t          dt          j        dd          dz  i          }t          d|d         ddd         i|j        ddd                   } t	          |                    d	          |                       } t	          |                    d	          |                       }t          j        |j        ddd         dd
         |j        dd         d           dS )zf
    Make sure that decreasing indices give the same results as increasing indices.

    GH 36933
    r7  irD   r   Nr*   rI   r"   r#   r   g-q=r  )	r   r   rL   rA   rS   r   r]   assert_almost_equalr7  )r  r   
df_reverse
increasing
decreasings        r   test_rolling_decreasing_indicesr    s     
HbiR00A56	7	7BHbl44R4&89$$B$PPPJ61--v6688J>++1+55v>>@@J$$B$$j&7&;%     r    )rY   rZ   r  rZ   )rX   rY   rZ   r  )rY   rZ   r  r  )rX   rY   r4   rZ   c                    t          ddd          } |t          d          |          } |t          d          |ddd                   } |||          } |||ddd                   }|                    | |d	                                          }	|                    | |d	                                          }
t	          j        |	|           t	          j        |
|           dS )
zV
    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444E_U1XXU333F_U1XXU44R4[999F"?85999L"?852;???LvdCCGGIIJvdCCGGIIJOJ---OJ-----r    zwindow,expected1ns)rY   rY   rY   rY   3ns)r4   rZ   rZ   r4   c                     t          ddd          } |g d|t                    } |||t                    }|                    | |d                                          }t	          j        ||           d S )	Nrm   r   r  rG   )r   r   r   r   r   Tr   )r   r   r   r   r]   r   r   s          r   )test_rolling_center_nanosecond_resolutionr    s     vqu555E	U%	@	@	@BxuEBBBHZZvdZ;;??AAFOFH%%%%%r    zmethod,expectedr   g     E@g
a@g     E@gCݽW@g     f@g     s@r   g     5@r  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                 V   g d}t          dt          j        t          |                    dz  i          } G d dt                    } |d|          } t          |                    |          |                       }t          d|i          }t          j        ||           dS )	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.
    )TFTFTTTTr7  r   c                       e Zd Zd ZdS )1test_rolling_non_monotonic.<locals>.CustomIndexerc                    t          j        |t           j                  }t          j        |t           j                  }t          |          D ]/}| j        |         rd||<   |dz   ||<   |||<   || j        z   ||<   0||fS )Nr'  r   r   )r   emptyrU  r+   use_expandingwindow_size)	self
num_valuesr   r'   ro   rK   r   r}  r
  s	            r   get_window_boundszCtest_rolling_non_monotonic.<locals>.CustomIndexer.get_window_boundsK  s    HZrx888E(:RX666C:&& 2 2%a( 2 E!HUCFF E!H!11CFF#:r    N)__name__
__module____qualname__r  r  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FFM	HbiM(:(:;;q@A	B	BB        mGGGG1WRZZ((&1133F(H-..H&(+++++r    rl   z
2001-01-01)rH   r?   c                 :   t          g d|           }|                                }d|j        dd<   |                    |                              |          }t          t
          j        t
          j        dddg|           }t          j        ||           d S )NrG  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  ^  s     	e,,,A	AAF1Q3KYYv##A&&Frvrvq!Q/u===H68,,,,,r    zvalues,method,expected)
rY   r4   rZ   r~   r  r  r         @      "@      $@firstrZ   r~   r  r  r  r  lastr  c                    t          |           } t          |                    d          |                      }t          |          }t          j        ||           t          d| i          } t          |                    d          |                      }t          d|i          }t          j        ||           d S )Nr:   rk   r
   rS   r   r]   r  r   r7  r  rb   r   ra   s        r   test_rolling_first_lastr  o  s    6 	vA*WQYYq\\6**,,FhH68,,,3-  A*WQYYq\\6**,,F#x))H68,,,,,r    )
rY   rY   rY   r4   rZ   r~   r  r  r  r  )
rY   rY   rY   rZ   rZ   r  r  r  r  r  )
rY   rY   rZ   rZ   r  r  r  r  r  r  c                    t          |           } t          |                    dd          |                      }t          |          }t          j        ||           t          d| i          } t          |                    dd          |                      }t          d|i          }t          j        ||           d S )Nr:   r   r   rk   r  r  s        r   test_rolling_first_last_no_minpr    s    6 	vA9WQYYqaY00&99;;FhH68,,,3-  A9WQYYqaY00&99;;F#x))H68,,,,,r    c            	         dt           j        ddt           j        gg dd} t          |           }|                    dd                              dd	                                          }t          d
g dit          ddt           j        gg dgg dg dgdd g                    }t          j        ||           d S )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    BFD$7oooNND	4BZZZ..66qa6HHMMOOF	'''( D"&!???3__ooo.D/
 
 
  H &(+++++r    c                    t          t          j                            d                              d                    }|                                } t          |                    d          |                       }t          j        ||           |dz   } t          |                    d          |                       }t          j        ||           d S )Nr   rD   r:   iP  )	r
   r   r~  r  r  rS   r   r]   r   )r  r   ser_copyrb   ra   s        r   *test_rolling_skew_kurt_numerical_stabilityr    s     &&q))0044
5
5CxxzzH.ws{{1~~v..00H3)))
+C,WS[[^^V,,..F68,,,,,r    )r  r   r7  )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                     t          |          } t          |                    d          |                       }t          |          }t          j        ||           d S )Nr   r  )r  r   r7  r   ra   rb   s         r   (test_rolling_skew_kurt_large_value_ranger    sT    6 	tA*WQYYq\\6**,,Ff~~H68,,,,,r    c                    d}d}d}t           j                            d          }|                    dd|          }t	          |d |                                       |          }t	          |                              |          } t          ||                       } t          ||                       }	|	d |         }
t          j        ||
d	           d S )
NrD      r   r   rX   g     @@)rJ  rf  sizeT)check_exact)	r   r~  r  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DDN4LL((55M4W^V4466N2GM62244M),;,7>+@dSSSSSSr    c                      t          j        t          d          5  t          t	          d                                        dd           d d d            d S # 1 swxY w Y   d S )Nz!method must be 'table' or 'singler(   r   r5   )r  )r,   r-   r.   r
   r+   r   r  r    r   test_invalid_methodr    s    	z)L	M	M	M 2 2uQxx  5 1112 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2   2AA"Ac                 j   d}t          j        t          |          5  t          ddd          } | t	          dd          |	          }|                    dd
                                          }d d d            n# 1 swxY w Y    | t          j        ddg|	          }t          j	        ||           |j
        d d d                             dd
                                          }t          ddd          } | t          j        ddg|	          }t          j	        ||           d S )Nz:'d' is deprecated and will be removed in a future version.r(   r   r   1dr|  r   r   rI   rz   r   r   r*   r   z-1Dr:   )r]   assert_produces_warningr   r   r+   r   r   r   r   r   r   )r/   r1   rQ  r  ra   rb   s         r   .test_rolling_descending_date_order_with_offsetr    sk   
FC		#N#	>	>	> 8 8|DIIIoeAqkk555T&1155778 8 8 8 8 8 8 8 8 8 8 8 8 8 8
 1~S999HOFH%%%Xddd^##D#88<<>>F
<\
F
F
FC1~S999HOFH%%%%%s   ABBBc                  .   t          g d          } |                     d                                          }t          t          j        t          j        ddg          }t          j        ||dd           t          j        |dk    |dk               d S )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  )  s    |||AYYq\\Frvrvua011H68'HHHH 6Q;A66666r    c                      t          g d          } |                     d                                          }t          t          j        ddg          }t          j        ||dd           d S )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  ss    	
 	
 	
	 	A YYq\\Frv{K899H68'HHHHHHr    zstart, exp_values)Q?X9v?r  gI+?gˡE?)MbP?r  g~jtX?<#	n?c                 *   t          dddt          j        ddt          j        t          j        t          j        t          j        t          j        t          j        ddg          }g |ddddt          j        t          j        dd}t          |t          t	          | t          |          | z                       	          }|j        | d                              d
d                                          }t          j
        ||           d S )Nr  r  Mb`?Mb?{Gzt?皙?r  g=
ףp=?rI   r"   r   r   )r   r   r   rR  r+   r   r   r   r   r]   r^   )r   
exp_valuesr   r7  rb   ra   s         r   3test_rolling_mean_all_nan_window_floating_artifactsr  B  s3    
FFFFFFF	

 
B&
	

 	
 		

 	
 	
 	
 	
 	
F 5Fe 34455  H WUVV_$$QA$66;;==F&(+++++r    c                  
   t          dddt          j        t          j        t          j        g          } |                     dd                                          }t          g d          }t          j        ||           d S )Nr  r  r  r:   r   r   )r  g{Gz?gQ?g9v?r  rX   )r   r   r   r   r   r]   r^   r2  s      r   2test_rolling_sum_all_nan_window_floating_artifactsr  q  sp    	E5%@	A	ABZZqZ))--//FAAABBH&(+++++r    c                      t          t          d                    } |                     d                                          }t          t          j        g          }t          j        ||           d S )Nr   r   )r
   r+   r   r   r   r   r]   r   r   s      r   test_rolling_zero_windowr  y  sZ    uQxxAYYq\\FrvhH68,,,,,r    )r   r:   rD   r   )r   r   averagepctTF	test_data)default
duplicatesnansc           
         d}|dk    rAt          t          j                            d                              |                    }n|dk    rBt          t          j                            d                              d|                    }nl|dk    rft          t          j                            d                              dd	d
t          j        t          j        t          j         g|                    }|                    |                               fd          }|                    |           	                              }t          j        ||           d S )Nr   r  r   r   r  r:   r  rY         ?      ?c                 J    |                                j        d         S )Nr  r  	ascendingr*   )rankr   )r   r&  r  r  s    r   <lambda>ztest_rank.<locals>.<lambda>  s!    !&&C9&EEJ2N r    r%  )r
   r   r~  r  choicer   infr   rf   r'  r]   r   )	r$   r  r  r&  r  lengthr   rb   ra   s	    ```     r   	test_rankr,    sV   
 FI")//2299&AABBB	l	"	"")//2299!VDDEEE	f		&&q))00dD"&"&26':F 
 
 
 {{6""((NNNNNN H [[  %%V	%RRF68,,,,,r    )r  r  r  	precisionc           
         d}|dk    rAt          t          j                            d                              |                    }n|dk    rBt          t          j                            d                              d|                    }n|dk    rgt          t          j                            d                              dd	d
t          j        t          j        t          j         g|                    }n#|dk    rt          g dt          j                  }|                    |           	                    d           }|                    |           
                                }t          j        ||           d S )Nr   r  r   r!  r  r:   r  rY   r"  r#  r-  )
333333?g433333?333333?g433333??g?r   r   皙?r2  )r   r   c                 *    |                                  S N)nunique)r   s    r   r(  ztest_nunique.<locals>.<lambda>  s    199;; r    )r
   r   r~  r  r)  r   r*  r,  r   rf   r5  r]   r   )r$   r  r+  r   rb   ra   s         r   test_nuniquer6    sq    FI")//2299&AABBB	l	"	"")//2299!VDDEEE	f		&&q))00dD"&"&26':F 
 
 

 
k	!	!   *
 
 
  {{6""(()>)>??H[[  ((**F68,,,,,r    c                     d} d}t          d| d          }t          t          j                            d                              | |z                                | df          |          }|                    g d	d
          }t          j        |g dd
          }t          j	        |j
        t          j        |                     d S )NrD   r"   20100101r   rG   r   r*   rI   )r"  r   r#  r   )axis)   2   K   )r   r   r   r~  r  reshaper   
percentiler]   r  r7  r  )rowcolrQ  r   df_quantilenp_percentiles         r   #test_rolling_quantile_np_percentilerC    s     C
C
Z3
7
7
7C	
	a  ''c	22::C9EES
 
 
B ++///a+88KM"lll;;;M;-rx/F/FGGGGGr    r   )rX   r   g?r   r   interpolation)linearlowerhighernearestmidpointr   )rY   r4   rZ   r~   r  r  r  )r  rY   rZ   r~   r  r4   r  r  r  r   r   r/  gffffff?r0  c                 l   t          |          }|                    | |          }|                    d                              | |          j        d         }t	          j        |          rt	          j        |          sJ d S t          st	          j        |g|gdd          sJ d S ||k    sJ d S )Nr   r   r*   gHz>r   )r  r  )r
   r   	expandingr   r   isnanr   allclose)r   rD  r   r   q1q2s         r   +test_rolling_quantile_interpolation_optionsrP    s    & 	tA	
Hm	,	,B	
	#	#	,	,X}	E	E	J2	NB	x|| x||| {B4"E::::::::Rxxxxxxr    c                  *   t          j        d          } t          |           }d}t          j        t
          |          5  |                    t          |           d                              dd           d d d            d S # 1 swxY w Y   d S )	Nr"   z(Interpolation 'invalid' is not supportedr(   r   r   r   invalid)rD  )	r   rL   r
   r,   r-   r.   r   r   r   )r   r   r1   s      r   test_invalid_quantile_valuerS    s    9Q<<DtA
4C	z	-	-	- S S			#d))	++44S	4RRRS S S S S S S S S S S S S S S S S Ss   :BBBc                  X   t          g d          } d}t          j        t          |          5  |                     d                              d           d d d            n# 1 swxY w Y   d}t          j        t          |          5  |                     d                              d           d d d            n# 1 swxY w Y   d}t          j        t          |          5  |                     d                              d	           d d d            d S # 1 swxY w Y   d S )
N)rX   r   r   r1  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_paramrV    s   
***
+
+C
1C	z	-	-	- & &A%%%& & & & & & & & & & & & & & & 2C	z	-	-	- & &A%%%& & & & & & & & & & & & & & & )C	y	,	,	, ' 'A&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 's5   )A$$A(+A()CCC))DD#&D#c                  Z   t          g d          } |                     dd                                          }t          t          j        gdz            }t          j        ||           |                     dd                              d          }t          dgdz            }t          j        ||           t          t          j        t          j        dd	dg                              dd
                                          }t          j        |d
                   sJ d S )N)rY   r4   rZ   r~   r  r   r   r"   r   r  rX   r:   r   r   )r
   r   r  r   r   r]   r   rL  )valsra   rb   s      r   test_rolling_std_1obsrY    s   +++,,D\\!\++//11Frvhl##H68,,,\\!\++//Q/77Fseai  H68,,,RVRVQ1-..66qa6HHLLNNF8F1Ir    c                     t          g d          } |                     d                                          }t          j        |dd                                                    sJ |                     d                                          }t          j        |dd                                                    sJ d S )N)ge>R?Rz12?r[  r[  r[  r:   r#   r   )span)r
   r   r  r   isfiniteallewmrN  s     r   test_rolling_std_neg_sqrtr`    s    
 		
 	
 	
	 	A 	
			!!A;qu!!#####	1A;qu!!#######r    c                      t          j        t          d          5  t          t	          d                                        dd           d d d            d S # 1 swxY w Y   d S )Nzstep must be an integerr(   r   r   r5   rJ   r,   r-   r.   r   r+   r   r  r    r   test_step_not_integer_raisesrc  ,  s    	z)B	C	C	C 3 3%((##AE#2223 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3r  c                      t          j        t          d          5  t          t	          d                                        dd           d d d            d S # 1 swxY w Y   d S )Nzstep must be >= 0r(   r   r   r*   rJ   rb  r  r    r   test_step_not_positive_raisesre  1  s    	z)<	=	=	= 0 0%((##AB#///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0r  )r7  r$   r   rb   r   r;  g@@g     @D@UUUUUU?gUUUUUU8@)r   r   r  r   r  gUUUUUU@c                    t          |          }t          |           }|                    ||                                          }t          j        ||           t          j        |dk    |dk               |                    ||                                          }t          j        |t          j        |                     t          j        |dk    |dk               d S )Nr   r   )r
   r   r  r]   r   r  r   sqrt)r7  r$   r   rb   sr
result_var
result_stds          r   'test_rolling_var_same_value_count_logicrl  6  s    d hH	B F<<@@BBJ :x0008q=*/::: F<<@@BBJ:rwx'8'89998q=*/:::::r    c                  *   t          g d          } |                     d          }|                                }|dd          dk                                    sJ |                                }|dd          dk                                    sJ d S )Nrf  r   r   r   r   r   r   r:   r   r   )r
   r   r   r^  r   )ri  rra   s      r   (test_rolling_mean_sum_floating_artifactsrp    s     
)))	*	*B


1AVVXXF233K1!!#####UUWWF233K1!!#######r    c            	         t          g d          } |                     d          }|                                }t          t          j        t          j        t          j        ddddg          }t          j        ||           |                                }t          t          j        t          j        t          j        ddddg          }t          j        ||           d S )	Nrn  r   g87c?r4   rX   gt﬩@r~   g      )r
   r   r  r   r   r]   r   r  )ri  ro  ra   rb   s       r   )test_rolling_skew_kurt_floating_artifactsrr    s     
)))	*	*B


1AVVXXFrvrvrv/A3SQRRH68,,,VVXXFrvrvrv/A3dSTTH68,,,,,r    c                    | }t          dgddd          }|d                             t                    |d<   |                    dd          }t	          ||          } ||          }|rdd	gng d}||                             |g                              d
                              t                    }t          |j	                  |k    sJ t          j        ||           d S )Nr   r   r:   r0  rO  r0   r0   r   numeric_onlyr0  rO  Trq   )r   r   objectr   rS   rO   rs   r   rR  r   r]   r^   )	rt   rv  kernelr   r   opra   r   rb   s	            r   test_numeric_only_framerz    s    %F	!11--	.	.BgnnV$$BsGjjj**G	&	!	!BR\***F(=sCjjoooG'{x((44$4??FFuMMH !!W,,,,&(+++++r    rx  use_argc                    t          g dddd          }|d                             t                    |d<   |r|fnd}|                    dd          }t	          ||           } ||d	|i}|rd
dgng d}||                             t
                    }	|r|	fnd}
|	                    dd          }t	          ||           } ||
d	|i}t          j        ||           d S )Nr:  r   r:   rt  r0   r  r   r   rv  r0  rO  )r   r   rw  r   rS   r   r]   r^   )rx  rv  r{  r   argr   ry  ra   r   df2arg2rolling2op2rb   s                 r    test_numeric_only_corr_cov_framer    s    
33	4	4BgnnV$$BsG
"2%%Cjjj**G	&	!	!BR0<00F )=sCjjoooG
W+

U
#
#C$C66"D{{1!{,,H
(F
#
#CsD4|44H&(+++++r    r   c                    | }t          dg|          }|                    dd          }t          ||          }|rQ|t          u rHd| d}t	          j        t          |          5   ||           d d d            d S # 1 swxY w Y   d S  ||          }|                    |g                              d	
          	                    t                    }	t          j        ||	           d S )Nr   r'  r   r   Rolling.  does not implement numeric_onlyr(   ru  Trq   )r
   r   rS   rw  r,   r-   rM   rO   rs   r   r   r]   r   )
rt   rv  r   rx  r   r   ry  r1   ra   rb   s
             r   test_numeric_only_seriesr    sM    &F
!E
"
"
"Ckk!k++G	&	!	!B 1AAAA].c::: 	* 	*BL))))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* ...77F8$$00d0;;BB5II
vx00000s   (BB	Bc                     t          g d|          }|r|fnd}|                    dd          }t          ||           }|rM|t          u rDd|  d}t	          j        t          |	          5   ||d
|i d d d            d S # 1 swxY w Y   d S  ||d
|i}	|                    t                    }
|r|
fnd}|
                    dd          }t          ||           } ||d
|i}t          j
        |	|           d S )Nr:  r'  r  r   r   r   r  r  r(   rv  )r
   r   rS   rw  r,   r-   rM   r   r   r]   r   )rx  r{  rv  r   r   r}  r   ry  r1   ra   ser2r  r  r  rb   s                  r   !test_numeric_only_corr_cov_seriesr    s   
 %
(
(
(C
#3&&Ckk!k++G	&	!	!B 1AAAA].c::: 	0 	0B/,///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 S4|44zz%  !)wwr<<q<11h''38<88
vx00000s   .	BBBr  )NUTCzEurope/Praguec           
         t          dt          d          it          ddd|d                    }|                    d                                          }|j                            |           |_        |                    d                                          }|j                            d          |_        t          j        ||           t          dd	d|
          }t          d|          }d|j
        d<   |                    t          d                                                    }t          dd	| |
          }t          d|          }	d|	j
        d<   |	                    t          d                                                    }
t          |          }t          |
          }|j                            d          |_        t          j        ||           d S )Nrk   r"   z
2013-01-01r   ns)rH   r?   r  rp  rI   z
2023-01-01z
2023-01-10)rp  r  r   r   r   r;   )r   r+   r   r   r   rA   rq  r]   r^   r
   r   r   r   )rp  r  rw   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    	eAhhD!NNN  G ood++//11OM))$//GMt,,0022-3;;DAA/+;<<< <DRHHHI+++JJOA''	q(9(9(9::>>@@N|\DDDEAU###FFKN	q 1 1 1226688J~&&F	:		Bx%%BH&"%%%%%r    c                   (     e Zd Z fdZ	 ddZ xZS )PrescribedWindowIndexerc                 d    || _         || _        t                                                       d S r4  )_start_endsuper__init__)r  r   r}  	__class__s      r   r  z PrescribedWindowIndexer.__init__  s-    	r    Nc                     |t          | j                  }t          j        | j        d|          }t          j        | j        d|          }||fS )Nr   )r   r  r   clipr  )r  r  r   r'   ro   rK   r   r}  s           r   r  z)PrescribedWindowIndexer.get_window_bounds  sM     T[))JQ
33gdiJ//czr    )NNNNN)r  r  r  r  r  __classcell__)r  s   @r   r  r    sS             QU       r    r  c            
           e Zd Zej                            dddg dfddg dfddg dfddg dfg          d             Zd	 Zd
S )
TestMinMaxzis_max, has_nan, exp_listTF)
rZ   r  r4   r  rY   r  r  r  r  r  )
rZ   r~   r4   r~   rY   r~   r  r  r  r  )
rZ   r4   r4   rY   rY   rX   rX   rX   r  rX   )
rZ   r4   r4   rY   rY   rY   r  r  r  rY   c                    g d}t          g dg dg dd          }|rt          j        |j        |df<   t	          |d          }|j                            t          |j        	                                |j
        	                                                    }|r|                                }n|                                }t          j        ||           d S )N)r   r"   r   )
r  r~   rZ   r4   rY   rX   r  r  r  r  )
r   r   r:   r   r   r   r"   r"   r   r:   )
r:   r   r   r"   r"   r   r   r   r   rD   r   r   r}  r   r1  )r   r   r   rJ  r
   r   r   r  r   to_numpyr}  r   r   r]   r   )	r  is_maxhas_nanexp_listnan_idxr   rb   ro  ra   s	            r   test_minmaxzTestMinMax.test_minmax  s     ))JJJ777666 
 
  	-&(fBF7F?#(000GOO#BH$5$5$7$79J9JKK
 
  	UUWWFFUUWWF
vx00000r    c                    t          j        t          d          t           j                  }|dz   }|d         |d<   |d         dz
  |d<   t	          |dz  ||d          }|j                            t          ||                    }t          j	        t          d	          5  |                                 d d d            d S # 1 swxY w Y   d S )
Nr"   r'  r   r   r:   rY   r  z5Start/End ordering requirement is violated at index 3r(   )r   r  r+   rU  r   r   r   r  r,   r-   r.   r   )r  r   r}  r   ro  s        r   test_wrong_orderzTestMinMax.test_wrong_order7  s   q222aiQA8a<aeCHHIIGOO3E3??@@]U
 
 
 	 	 EEGGG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   %CCCN)r  r  r  r,   markparametrizer  r  r  r    r   r  r    s        [#5LLLM4KKKLEMMMNDLLLM		
 1 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.  r3  r5  r9  rE  rL  rT  rY  r]  from_tuplesrl  rv  ry  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  rC  rP  rS  rV  rY  r`  rc  re  r*  rl  rp  rr  rz  r  r   rw  r  r  r  r  r  r  r    r   <module>r     s;$         
           ) ( ( ( ( (	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	       + + + + + + D D D D D D . . . . . .' ' '  ( sE828QC==9::- - ;:-. 	q	q##*\1555kk!nn	
 	
 	
	
 
	) 	)
 
	) 00  10 II1$5$5$5yya7H7H7H#IJJ, , KJ,& II1$5$5$5yya7H7H7H$#OPP9 9 QP9", , ,$  111000000000111		
 222111111111111		
 111111111111222		
 222222222222222		
?), ,Z? ?[, ,Z?, 	w(	v'	v'	y///*	w(	v'	v'	y///*	 & & &" 	w0001	v///0	v///0	y2223	 & & &0 	"&"&!Q2r2r2>?	RVRVQ1aAr1=>	6667	5556	 & & &2 	"&"&!Q2r2r2>?	RVRVQ1b"b"a@A	6667	5556	 & & &6- - -, , ,4 Iv#677- - 87- %00F F 10F %00- - 10- (899	999:	8889		BFAq!Q1aA>?	Aq!Q1a;<	999:	8889		BFAq!Q1aA>?	Aq!Q1a;<	 	- 	-  :9	-- - - 	"&!Q1aArvrvFG	Aq!Q1a@A		BFBFAq!Q1bfbfMN	Aq!Q1bfEF	"&!Q1aArvrvFG	Aq!Q1a@A		BFBFAq!Q1bfbfMN	Aq!Q1bfEF	 - - - 	2223	???@	RVQS#sCc3GH	"&!S!Q1aA67	 
- 
- 
- D!9--, , .-,	- 	- 	-- - -- - -2 2 2, , ,, , ,- - -, , ,.- - -,- - -& & && & & $ ))))),,s!%%s+1vQF++aV4 yyyyy11999=
 		
 ))))),,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#bfa.1~66uBF8,,qc226{"&!551v>261~RVQN;;YYYG
 		
m@C CH0 0IC CH0  s!%%s+1vQF++aV41vQF++aV4
 	
 s!%%s+1vQF++aV4 yyyyy11999=
 	
 s!%%s+s!%%s+s!%%s+
 	
# :0 0; :0"0 0 0 & F999cA3Z1a&1a&)IIIyyy+AB		
 F999cA3Z1a&1a&)IIIyyy+AB		
 F999cA3Z1a&1a&)QFQF+;<		
 F999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1 1C   B1 $ S1#sQC!%
<===
<===
<===
<===
<=== 
	
 S1a&1a&1a&1a&1
<===
<===
<===
<===
<=== 
	
 S1a&)))YYY			:
<===
<===
<===
<===
<=== 
	
/"% %L
1 
1M% %L
1  aL"J"888t  	
 3K"J"888d  	
 ", ,# ",& c
++, , ,+,D- - -	0 	0 	0& & &- - -0  L17IPUVVV	

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

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

 ee		
 e#e#$"$$		
G03 3h, ,i3 3h,B 	!	LsA	6	6	6= - - -  @??U5\\55<<c3S#sCP	
 "&#rvsBFCbfMU5\\NR	
 @??U5\\55<<c3S#sDQ	
 "&#rvsBFCbfMU5\\NR	
! 2
- 
-3 2
-  @??>>>	
 "&#rvsBFCbfM>>>	
 @?????	
 "&#rvsBFCbfM>>>	
! 2
- 
-3 2
-, , ,, FF#344- - 54-   )))VHqL9999	
 )))VHqLAAAA	
 )))VHqL;;;;	
 )))VHqL7777	
! 2- -3 2- FF#344T T 54T&2 2 2
& & &$7 7 7I I I 	
2223	
.../ %, %, %,P, , ,- - - >>>22#<#<#<==u..&G&G&GHH- - IH /. >= 32-* >>>22&T&T&TUU -  - VU 32 -FH H H  %=%=%=>>III  
+++000	bfc263'	(	bfc3,		c     ?> "S S S' ' '  $ $ $*3 3 3
0 0 0
 333 RAq!,VR!T1eQ7		
 RQ1-VR!Qfa8		
 VQ1aA&VHqL++++		
 1aAq!4VHqLE1:%14qzA		
 1aAq!4VHqLE1:%14{B		
 FQJVHqLE7Q;&		
 1bfaA&VQ!q(E72		
K+. .^; ;_. .^;6$ $ $
- 
- 
-, , ,  FE?33T5M22, , 32 43,( 3-001 1 101  FE?33T5M223-001 1 10 32 431* ===>>& & ?>&>    k    , , , , , , , , , ,r    