
    Owg                     &   d dl m Z mZ d dlZd dlZd dlmZmZmZ d dl	m
Z
mZ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>                  jA                  d
dd ejB                  dg      g      d        Z"ej>                  jA                  d ed       ed      d e edd       ed            g      d        Z#ej>                  jA                  dddg      d        Z$ej>                  jA                  d ed       ed      g      d        Z%ej>                  jA                  d ed       ed      dg      d        Z&d Z'ej>                  jA                  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 d/g d0g d,gfg      d1        Z(ej>                  jA                  d2d3d+g d4fd3d!g d4fd3d'g d4fd3d-g d4fd5d+g d6fd5d!g d4fd5d'g d7fd5d-g d8fg      d9        Z)ej>                  jA                  d2d:d+g d;fd:d'g d<fd:d!g d=fd:d-g d>fg      d?        Z*ej>                  jA                  d@d'ejV                  ejV                  ddddAdBdBdCdDg
fd-ejV                  ejV                  ddddEdddFdGg
fd+g dHfd!g dIfg      dJ        Z,ej>                  jA                  d@d'ejV                  ejV                  ddddAdKdKdCdDg
fd-ejV                  ejV                  ddddAdKdKdFdGg
fd+g dLfd!g dMfg      dN        Z-dO Z.dP Z/ej>                  jA                  dQd-d'g      dR        Z0ej>                  jA                  dSdTdUg      dV        Z1ej>                  jA                  dSdTdUg      dW        Z2ej>                  jA                  dXdYdZg      ej>                  jA                  d[dTd+g d\fdTd!g d]fdTd-ejV                  d d dddd^dd_d`g
fdTd'ejV                  d d d dddd^dd_g
fdUd+g dafdUd!g dafdUd-ejV                  d dddd^dd_d`dGg
fdUd'ejV                  d dddd^dd_d`dGg
fg      db               Z3dc Z4ej>                  jA                  d[dTd+ejV                  d d dddd^dejV                  ejV                  g
fdTd!ejV                  d d d dddd^dejV                  g
fdTd-ejV                  ejV                  d dddd^dejV                  ejV                  g
fdTd'ejV                  ejV                  d d dddd^dejV                  g
fdUd+ejV                  dddd^dd_d_ejV                  ejV                  g
fdUd!ejV                  dddd^dd_d_d_ejV                  g
fdUd-ejV                  ejV                  dddd^dd_ejV                  ejV                  g
fdUd'ejV                  ejV                  dddd^dd_d_ejV                  g
fg      dd        Z5ej>                  jA                  d@d+g defd!g dffd-ejV                  d dgdhdidjdkdldmdng
fd'ejV                  d dgdddd^dd_d`g
fg      do        Z6ej>                  jA                  dpdqdg      dr        Z7ds Z8dt Z9du Z:dv Z;dw Z<dx Z=dy Z>dz Z?ej>                  jA                  d{d|d}g      d~        Z@d ZAd ZBd ZCej>                  jA                  d e
g 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 e
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 e
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 e
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 e
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 e
dgd^gd      g ddf e
dgd^gd      g ddf e
       i g fgddf e
dejV                  dgejV                  dd_gd      dgejV                  gdd gfdejV                  gejV                  dgdd dgfdejV                  dgejV                  dd_gdg dfgddfg	      d        ZDej>                  jA                  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        ZEd ZFej>                  jA                  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        ZGej>                  jA                  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        ZHej>                  jA                  ddd i ej                  g dddg      fddi ej                  g dddg      fg      d        ZJej>                  jA                  dddg      d        ZKd ZLd ZMd ZNd ZOej>                  jA                  dg d      d        ZPd ZQej>                  jA                  dd ed       ed      g      d        ZRd ZSej>                  jA                  d edddT      df eddd      dfg      ej>                  jA                  ddTejV                  d d dddd^dd_g	fdUejV                  d dddd^dd_d`g	fdejV                  d dddd`dEddFg	fg      d               ZTd ZUej>                  j                   e       xs  e       d«      ej>                  jA                  dddg dŢfddg dǢfddg dȢfddg dɢfg      dʄ               ZWd˄ ZXej>                  jA                  dg d͢      d΄        ZYej>                  jA                  d2d5d+g dϢfd5d'g dТfd5d!g dѢfd5d-g dҢfd3d+g dѢfd3d'g dѢfd3d!g dѢfd3d-g dѢfg      dӄ        ZZej>                  jA                  ddg d֢fdg dآfg      dل        Z[ej>                  jA                  dd e\d۫      d e\d۫      dddddgfd e\d۫      dn e\d۫      dddddgfd e\d۫      d e\d۫      dddddgfd e\d۫      d e\d۫      dddddgfd e\d۫      d e\d۫      dddddgfg      d        Z]ej>                  jA                  dg ddf eddd      d:fg      d        Z^d  Z_ej>                  jA                  dddg      d        Z`ej>                  jA                  ddg dfdg dfg      d        Zad Zbej>                  jA                  dddg      d        Zcd	 Zdd
 Zeej>                  jA                  ddg dfdg dfg      d        Zfd Zgd Zhd Zid Zjej>                  jA                  dg d      ej>                  jA                  dg d      ej>                  jA                  dd|d}g      ej>                  jA                  dd|d}g      ej>                  jA                  dg d      d                                    Zkd Zlej>                  jA                  dg d      ej>                  jA                  dg d      ej>                  jA                  dg d g d!dejV                  d"ejV                  d#gejV                  ejV                  ejV                  ejV                  gejV                  d$ejV                  d%d#dggdggejV                  d&d'gg      d(                      Zmd) Znd* Zod+ Zpd, Zqd- Zrd. Zsej>                  jA                  g d/d0dAdAej                  ddddgddejV                  d1d2d d3d d4dggd0dAdAejV                  dAdddgddejV                  d1d2d d d3d5dggejV                  dd_d`dddgddejV                  gdz  g d6z   gdd`d`d`ejV                  ej                  d^dddg
ddejV                  gdz  d7d gz   ejV                  gd^z  z   d4d gz   gdd`d`d`ejV                  ej                  d`dddg
ddejV                  gdz  d7d gz   ejV                  gd^z  z   d8d gz   gdd`gd^z  ddejV                  gdz  d7gd_z  z   gdd`dejV                  d`dd`gddejV                  dd7gdgdz  z   d7gz   gg      d9        Zud: Zvd; Zwd< Zxej>                  jA                  d=ddg      ej>                  jA                  d>d|d}g      d?               Zyej>                  jA                  d@eze{g      dA        Z|ej>                  jA                  d=ddg      ej>                  jA                  d>d|d}g      ej>                  jA                  d@eze{g      dB                      Z}ej>                  jA                  dCg dD      ej>                  jA                  dEg dF      dG               Z~y(H      )datetime	timedeltaN)IS64is_platform_armis_platform_power)
	DataFrameDatetimeIndex
MultiIndexSeries	Timedelta	Timestamp
date_rangeperiod_rangeto_datetimeto_timedelta)BaseIndexer)VariableOffsetWindowIndexer)BusinessDayc                      t        ddddt        j                  dgi      } |  | j                  d      j	                          | j                  dd      j	                          y )NBr            min_periods)r   npnanrollingsum)dfs    W/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/window/test_rolling.pytest_doc_stringr"   "   sP    	C!Q2661-.	/BJJqMJJqaJ $$&    c                     | t        d            j                  } |d        |d        |dd        |ddd        |ddd	       d
}t        j                  t        |      5   |d       d d d        y # 1 sw Y   y xY w)N   r   r   windowr   r'   r   Tr'   r   centerFz&window must be an integer 0 or greatermatch)ranger   pytestraises
ValueError)frame_or_seriescmsgs      r!   test_constructorr5   )   s{     	a!))A aDQKQAQAd+QAe, 3C	z	- 	"  s   *	A<<Bw       @foor   c                     | t        d            j                  }dj                  ddg      }t        j                  t
        |      5   ||       d d d        d}t        j                  t
        |      5   |d|	       d d d        d
}t        j                  t
        |      5   |dd|       d d d        y # 1 sw Y   kxY w# 1 sw Y   GxY w# 1 sw Y   y xY w)Nr%   |zwindow must be an integerz=passed window foo is not compatible with a datetimelike indexr+   r&   zmin_periods must be an integerr   r(   zcenter must be a booleanr   r)   )r.   r   joinr/   r0   r1   )r2   r6   r3   r4   s       r!   test_invalid_constructorr<   =   s     	a!))A
(('K	
C 
z	- 	 +C	z	- #	"# %C	z	- -	!,- - # #- -s$   

B>9C
)C>C
CCr'      days3Dz
2015-12-25r%   periodsr   indexoffsetc                     t        t        j                  d      t        ddd            }t	        j
                  t        d      5  |j                  | d	      j                          d d d        y # 1 sw Y   y xY w)
N
   
2015-12-24DrB   freqrD   z(^step (not implemented|is not supported)r+   r=   step)	r   r   aranger   r/   r0   NotImplementedErrorr   r   )r'   r    s     r!    test_freq_window_not_implementedrQ   U   si     

		"r<
B 
#M
 ) 	

6
"&&() ) )s   "A33A<aggcovcorrc                     t        t        d            j                  dd      }t        j                  t
        d      5   t        ||               d d d        y # 1 sw Y   y xY w)Nr   r   rM   zstep not implementedr+   )r   r.   r   r/   r0   rP   getattr)rR   rolls     r!   &test_step_not_implemented_for_cov_corrrX   l   sV     U1X&&qq&1D	*2H	I c  s   AA%c                    d}t        dt        j                  |      it        d|d            }t        j                  ddgt        j                  d	d
d            }|j                  |       j                         }t        d|it        d|d            }t        j                  ||       |j                  d      j                         }t        j                  ||       y )NrG   valuerH   rI   rJ   rL                 ?      @      ;@r=   r&   r@   )	r   r   rO   r   appendr   r   tmassert_frame_equal)r'   nr    expected_dataresultexpecteds         r!   &test_constructor_with_timedelta_windowrf   t   s     	A		"))A,qs;
B IIsCj"))Cq*ABMZZvZ&**,F	- qs;H &(+zz$##%H&(+r#   c                    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            }|j                  | d      j                         }|j                  | d      j                  t        |      }t        j                  ||       t        j                  ||       y )NrG   rZ   z
2017-08-08rI   rJ   rL   r\   r]   r^   r=   r   r(   )raw)r   r   rO   r   r_   r   r   r   applyr`   ra   )r'   rh   rb   r    re   result_roll_sumresult_roll_generics          r!   0test_constructor_timedelta_window_and_minperiodsrl      s     	A		"))A,qs;
B 	"))RVVSM299S$+BCDqs;H jjAj>BBDO**F*BHHRUHV/84-x8r#   c                 6   |}t        dg di      }t        dg dit        dd            } t        |j                  d| d	      |             } t        |j                  d
| d	      |             j	                  d      }t        j                  ||       y )NAr   r   r   r=   r   2020r%   rA   rL   r   r   closedr   2DTdrop)r   r   rV   r   reset_indexr`   ra   )rr   arithmetic_win_operators	func_namedf_fixeddf_timerd   re   s          r!   test_closed_fixedr{      s    (I#/0Ho.jQR6STGW6q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                 j   |}t        dg dit        dd            }t        d|D cg c]#  } t        |d   j                  |   |             % c}it        dd            }|dk(  rdd	i}ni } t        |j	                  d
| dd      |      di |}t        j                  ||d       y c c}w )Nrn   )r[   r\   r7   r]         @rp   r%   rA   rL   semddofr   rs   r   T)rr   r   r*   Fcheck_dtype )r   r   rV   ilocr   r`   ra   )	rr   window_selectionsrw   rx   rz   sre   kwargsrd   s	            r!   %test_datetimelike_centered_selectionsr      s    b )I	'(
610MG 	CTUa7wws|((+Y79UV+H
 E!WV4H  	F
 &(> Vs   (B0
zwindow,closed,expected3s)r]   r]   r]   2s)r]   r7   r7   )r\   r]   r]   r\   r7   r7   c                     t        d      t        d      t        d      g} |g d|      }|j                  | |d      j                         } |||      }t        j                  ||       y )Nz20130101 09:00:01z20130101 09:00:02)r   r   r   rL   Trr   r*   )r   r   r   r`   assert_equalr'   rr   re   r2   rD   r    rd   s          r!   ,test_datetimelike_centered_offset_covers_allr      sk    & 	%&%&%&E
 
%	0BZZvdZ;??AFxu5HOOFH%r#   rs   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r      r   r   r   r   r   )r   r   r   r   r   r   r   r   c                     t        g d      } |dgdz  |t              } |||t              }|j                  | d|      j                         }t	        j
                  ||       y )N)
2020-01-01r   
2020-01-02r   
2020-01-03r   
2020-01-04r   r      rD   dtypeT)r*   rr   )r	   floatr   r   r`   r   r   s          r!   +test_datetimelike_nonunique_index_centeringr     sb     		
E 
!qU	;BxuEBHZZtFZ;??AFOOFH%r#   zclosed,expectedrG            	      r   )
r   r   r=   r   rG   r      r   r      )
r   r   r=   r   rG                  c                     t        g d      } |t        d      |t              } |||t              }|j                  d|       j	                         }t        j                  ||       y )N

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

    GH 36933
    r=  irG   r   Nr-   rL   r%   r&   r   g-q=)	r   r   rO   rD   rV   r   absr=  r   )r  r    
df_reverse
increasing
decreasings        r!   test_rolling_decreasing_indicesr    s     
HbiiR0A56	7BHbl4R4&89$B$PJ61-v68J>++1+5v>@J66*##DbD)#2.1B1B121FFGKKMPUUUUr#   )r\   r]   r  r]   )r[   r\   r]   r  )r\   r]   r  r  )r[   r\   r7   r]   c                    t        ddd      } |t        d      |      } |t        d      |ddd         } |||      } |||ddd         }|j                  | |d	      j                         }	|j                  | |d	      j                         }
t	        j
                  |	|       t	        j
                  |
|       y)
zV
    Ensure that a symmetrical inverted index return same result as non-inverted.
    rp   r   r   rJ   rL   Nr-   Tr   )r   r.   r   r   r`   r   )r'   rr   re   r2   rD   df_incdf_decexpected_incexpected_dec
result_inc
result_decs              r!   (test_rolling_decreasing_indices_centeredr    s    & vqt4EU1XU3FU1XU4R4[9F"859L"852;?LvdCGGIJvdCGGIJOOJ-OOJ-r#   zwindow,expected1ns)r\   r\   r\   r\   3ns)r7   r]   r]   r7   c                     t        ddd      } |g d|t              } |||t              }|j                  | |d      j                         }t	        j
                  ||       y )	Nrp   r   r  rJ   )r   r   r   r   r   Tr   )r   r   r   r   r`   r   r   s          r!   )test_rolling_center_nanosecond_resolutionr    sY     vqu5E	U%	@BxuEBHZZvdZ;??AFOOFH%r#   zmethod,expectedr   g     E@g
a@g     E@gCݽW@g     f@g     s@r   g     5@r  g`UU"@r  g     1@g      >@g     U@g     K@g     V@g     a@r  g/e?g8j{?gLM?g4`i?g
+TT?g?r  g %bgOq&g zCen@gk=Cпg~~׿gf`8gݿc                    g d}t        dt        j                  t        |            dz  i      } G d dt              } |d|      } t        |j                  |      |              }t        d|i      }t        j                  ||       y)	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                       e Zd Zd Zy)1test_rolling_non_monotonic.<locals>.CustomIndexerc                 &   t        j                  |t         j                        }t        j                  |t         j                        }t        |      D ]6  }| j                  |   rd||<   |dz   ||<    |||<   || j
                  z   ||<   8 ||fS )Nr-  r   r   )r   emptyrW  r.   use_expandingwindow_size)	self
num_valuesr   r*   rr   rN   r   r|  r  s	            r!   get_window_boundszCtest_rolling_non_monotonic.<locals>.CustomIndexer.get_window_boundsk  s    HHZrxx8E((:RXX6C:& 2%%a( E!HUCF E!H!1!11CF2 #:r#   N)__name__
__module____qualname__r  r   r#   r!   CustomIndexerr  j  s    
	r#   r  r   )r  r  N)	r   r   rO   r   r   rV   r   r`   ra   )r  re   r  r    r  r   rd   s          r!   test_rolling_non_monotonicr  )  s    | GM	HbiiM(:;q@A	BB  GG1WRZZ(&13F(H-.H&(+r#   ro   z
2001-01-01)rK   rB   c                 (   t        g d|       }|j                         }d|j                  dd |j                  |      j	                  |      }t        t
        j                  t
        j                  dddg|       }t        j                  ||       y )NrI  rL   r[   r   r   r   )	r   copyr   r   rT   r   r   r`   assert_almost_equal)rD   r'   r   r  rd   re   s         r!   !test_rolling_corr_timedelta_indexr  ~  sr     	e,A	AAFF1QKYYv##A&Frvvrvvq!Q/u=H68,r#   c            	      n   dt         j                  ddt         j                  gg dd} t        |       }|j                  dd      j	                  dd	      j                         }t        d
g dit        ddt         j                  gg dgg dg dgdd g            }t        j                  ||       y )Ng1g2ro   )groupr   r  F)dropnar   r   r   )r[   r7   r]   r\   r   )r   r   r   r   r   )r   r   r=   r   r   r  rL   )	r   r   r   r   r   r   r
   r`   ra   )r   r    rd   re   s       r!   !test_groupby_rolling_nan_includedr    s    BFFD$7oND	4BZZZ.66qa6HMMOF	'( D"&&!?3o.D/
H &(+r#   c                 t   t        t        j                  j                  d      j                  d            }|j	                         } t        |j                  d      |              }t        j                  ||       |dz   } t        |j                  d      |              }t        j                  ||       y )Nr   rG   r=   iP  )	r   r   r}  r~  r  rV   r   r`   r   )r  r   ser_copyre   rd   s        r!   *test_rolling_skew_kurt_numerical_stabilityr    s     &&q)004
5CxxzH.ws{{1~v.0H3)
+C,WS[[^V,.F68,r#   )r  r=  )r7   g+X?r[   gJ_9?)r   gBʠg333333g >@c                     t        g d      } t        |j                  d      |              }t        t        j                  gdz  |z         }t        j                  ||       y )N)i- r   r   r   r=   r   i  r   r=   r  )r  r=  r   rd   re   s        r!   (test_rolling_skew_kurt_large_value_ranger    sQ     	,-A*WQYYq\6*,FrvvhlV+,H68,r#   c                      t        j                  t        d      5  t        t	        d            j                  dd       d d d        y # 1 sw Y   y xY w)Nz!method must be 'table' or 'singler+   r   r8   )r  )r/   r0   r1   r   r.   r   r   r#   r!   test_invalid_methodr    sB    	z)L	M 2uQx  5 12 2 2   &AA1dc                    t        ddd      } |t        dd      |      }|j                  dd	      j                         } |t        j
                  dd
g|      }t        j                  ||       |j                  d d d   j                  dd	      j                         }t        ddd      } |t        j
                  dd
g|      }t        j                  ||       y )Nr   r   r  r{  r   r   rL   r}   r   r   r-   z-1dr=   )	r   r.   r   r   r   r   r`   r   r   )r'   r2   rT  r  rd   re   s         r!   .test_rolling_descending_date_order_with_offsetr    s     <\
EC
%1+S
1C[[f[-113F1~S9HOOFH%XXdd^##D#8<<>F
<\
FC1~S9HOOFH%r#   c                     t        g d      } | j                  d      j                         }t        t        j                  t        j                  ddg      }t        j                  ||dd       t        j                  |dk(  |dk(         y )N)r   r%   r%   r%   r=   UUUUUU?r   V瞯<atolrtol)r   r   r  r   r   r`   r   r   s      r!   ,test_rolling_var_floating_artifact_precisionr    sk    |AYYq\Frvvrvvua01H68'H 6Q;A6r#   c                      t        g d      } | j                  d      j                         }t        t        j                  ddg      }t        j                  ||dd       y )N)Q؎>g 4PSȡ>r  r   g[^>>r  r  )r   r   r  r   r   r`   r   r   s      r!   test_rolling_std_small_valuesr    sR    	
	A YYq\Frvv{K89H68'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      }|ddddt        j                  t        j                  ddgz   }t        |t        t	        | t        |      | z               	      }|j                  | d  j                  d
d      j                         }t        j                  ||       y )Nr  r  Mb`?Mb?{Gzt?皙?r  g=
ףp=?rL   r%   r   r   )r   r   r   rR  r.   r   r   r   r   r`   ra   )r   
exp_valuesr    r=  re   rd   s         r!   3test_rolling_mean_all_nan_window_floating_artifactsr    s     
FFFFFFFFFFFFFF	

B& 

	 	F 5Fe 345H WWUV_$$QA$6;;=F&(+r#   c                     t        dddt        j                  t        j                  t        j                  g      } | j                  dd      j	                         }t        g d      }t        j                  ||       y )Nr  r  r  r=   r   r   )r  g{Gz?gQ?g9v?r  r[   )r   r   r   r   r   r`   ra   r8  s      r!   2test_rolling_sum_all_nan_window_floating_artifactsr    s[    	E5%@	ABZZqZ)--/FABH&(+r#   c                      t        t        d            } | j                  d      j                         }t        t        j
                  g      }t        j                  ||       y )Nr   r   )r   r.   r   r   r   r   r`   r   r   s      r!   test_rolling_zero_windowr  #  sF    uQxAYYq\FrvvhH68,r#   c                 z   t        t        d      t        dd      d|       }t        t        j                  gdz  t        ddd      d|       }d}t	        j
                  t        |	      5  |j                  dd
      j                         }d d d        t	        j                  |d       y # 1 sw Y   "xY w)Nr%   rG   r   r   r-  r   r   r  r+   r   r  Fr   )
r   r.   r   r   r`   r  r  r   r   ra   )float_numpy_dtyper    re   r4   rd   s        r!   test_rolling_float_dtyper  +  s    	qb"6>O	PBvvhlr2q!12H BC		#	#M	= -AA&**,-&(>- -s   ."B11B:c                     t        t        j                  d      j                  dd      t	        d            j                  dddd	d
dddddd
      } d}t        j                  t        |      5  | j                  ddd      j                         }d d d        t        t        ddd      t        ddd      t        ddd      t        ddd      t        ddd      t        ddd      t        ddd      t        ddd      t        ddd      t        ddd      d
d      }t        j                  |       y # 1 sw Y   xY w)N(   r   rG   
abcdefghijr  float16float32r2  int8int16int32uint8uint16uint32uint64)
r6  rQ  r3   defghr  jr  r+   r   r   r  r   r=   r%   r   r   r   r-  )r   r   rO   reshaperR  r   r`   r  r  r   r   r.   ra   r  s       r!   test_rolling_numeric_dtypesr  8  sB   	299R=((B/l9K	L	S	S	

B BC		#	#M	= C1!!<@@BCq"b!q"b!q"b!q"b!q"b!q"b!q"b!q"b!q"b!q"b!	
 H &(+#C Cs   1#D99E)r   r=   rG   r   )r   r   averagepct	ascending	test_data)default
duplicatesnansc           
         d}|dk(  r9t        t        j                  j                  d      j                  |            }n|dk(  r:t        t        j                  j                  d      j	                  d|            }no|dk(  rjt        t        j                  j                  d      j	                  dd	d
t        j
                  t        j                  t        j                   g|            }j                  |       j                  fd      }|j                  |       j                        }t        j                  ||       y )Nr   r  r   )r   r  r=   r  r\         ?      ?c                 F    | j                        j                  d   S )Nr  r  r  r-   )rankr   )r   r  r  r  s    r!   <lambda>ztest_rank.<locals>.<lambda>p  s!    !&&C9&EJJ2N r#   r$  )r   r   r}  r~  choicer   infr   ri   r%  r`   r   )	r'   r  r  r  r  lengthr   re   rd   s	    ```     r!   	test_rankr*  ]  s    FI"))//299&AB	l	""))//299!VDE	f	&&q)00dD"&&"&&266':F
 {{6"((NH [[ %%V	%RF68,r#   c                     d} d}t        d| d      }t        t        j                  j	                  d      j                  | |z        j                  | df      |      }|j                  g d	d
      }t        j                  |g dd
      }t        j                  |j                  t        j                  |             y )NrG   r%   20100101r   rJ   r   r-   rL   )r!  r   r"  r   r  )   2   K   )r   r   r   r}  r~  r  r   
percentiler`   r  r=  r  )rowcolrT  r    df_quantilenp_percentiles         r!   #test_rolling_quantile_np_percentiler5  w  s     C
C
Z3
7C	
		a ''c	2::C9ES
B ++/a+8KMM"l;M;--rxx/FGr#   r   )r[   r   g?r   r   interpolation)linearlowerhighernearestmidpointr   )r\   r7   r]   r   r  r  r  )g       @r\   r]   r   r  r7   r  r  r  r   r   g333333?gffffff?g333333?c                 L   t        |      }|j                  | |      }|j                  d      j                  | |      j                  d   }t	        j
                  |      rt	        j
                  |      sJ y t        st	        j                  |g|gdd      sJ y ||k(  sJ y )Nr   r   r-   gHz>r   )r  r  )r   r   	expandingr   r   isnanr   allclose)r   r6  r   r   q1q2s         r!   +test_rolling_quantile_interpolation_optionsrB    s    & 	tA	
Hm	,B	
	#	,	,X}	E	J	J2	NB	xx|xx||;;tbTA>>>8O8r#   c                     t        j                  d      } t        |       }d}t        j                  t
        |      5  |j                  t        |       d      j                  dd       d d d        y # 1 sw Y   y xY w)	Nr%   z(Interpolation 'invalid' is not supportedr+   r   r   r   invalid)r6  )	r   rO   r   r/   r0   r1   r   r   r   )r   r   r4   s      r!   test_invalid_quantile_valuerE    sh    99Q<DtA
4C	z	- S			#d)	+44S	4RS S Ss   .A55A>c                  
   t        g d      } d}t        j                  t        |      5  | j	                  d      j                  d       d d d        d}t        j                  t        |      5  | j	                  d      j                  d       d d d        d}t        j                  t        |      5  | j	                  d      j                  d	       d d d        y # 1 sw Y   xY w# 1 sw Y   \xY w# 1 sw Y   y xY w)
N)r[   r   r   g?r\   z#quantile value -0.1 not in \[0, 1\]r+   r=   gz#quantile value 10.0 not in \[0, 1\]g      $@zmust be real number, not strr8   )r   r/   r0   r1   r   r   	TypeError)r   r4   s     r!   test_rolling_quantile_paramrH    s    
*
+C
1C	z	- &A%& 2C	z	- &A%& )C	y	, 'A&' '& && &' 's#   !C!1!C-7!C9!C*-C69Dc                      t        g d      } | j                  dd      j                         }t        t        j                  gdz        }t        j                  ||       | j                  dd      j                  d      }t        dgdz        }t        j                  ||       t        t        j                  t        j                  dd	dg      j                  dd
      j                         }t        j                  |d
         sJ y )N)r\   r7   r]   r   r  r   r   r%   r   )r   r[   r=   r   r   )r   r   r  r   r   r`   r   r>  )valsrd   re   s      r!   test_rolling_std_1obsrK    s    +,D\\!\+//1Frvvhl#H68,\\!\+//Q/7Fseai H68,RVVRVVQ1-.66qa6HLLNF88F1Ir#   c                  >   t        g d      } | j                  d      j                         }t        j                  |dd        j                         sJ | j                  d      j                         }t        j                  |dd        j                         sJ y )N)ge>R?Rz12?rM  rM  rM  r=   r&   r   )span)r   r   r  r   isfiniteallewmrP  s     r!   test_rolling_std_neg_sqrtrR    s    
 		
	A 	
			!A;;qu!!###	1A;;qu!!###r#   c                      t        j                  t        d      5  t        t	        d            j                  dd       d d d        y # 1 sw Y   y xY w)Nzstep must be an integerr+   r   r   r8   rM   r/   r0   r1   r   r.   r   r   r#   r!   test_step_not_integer_raisesrU    sB    	z)B	C 3%(##AE#23 3 3r  c                      t        j                  t        d      5  t        t	        d            j                  dd       d d d        y # 1 sw Y   y xY w)Nzstep must be >= 0r+   r   r   r-   rM   rT  r   r#   r!   test_step_not_positive_raisesrW    sB    	z)<	= 0%(##AB#/0 0 0r  )r=  r'   r   re   r   r.  g@@g     @D@UUUUUU?gUUUUUU8@)r   r   r  r   r  gUUUUUU@c                    t        |      }t        |       }|j                  ||      j                         }t        j                  ||       t        j                  |dk(  |dk(         |j                  ||      j                         }t        j                  |t        j                  |             t        j                  |dk(  |dk(         y )Nr   r   )r   r   r  r`   r   r  r   sqrt)r=  r'   r   re   sr
result_var
result_stds          r!   'test_rolling_var_same_value_count_logicr^    s    d hH	B F<@@BJ :x08q=*/: F<@@BJ:rwwx'898q=*/:r#   c                      t        g d      } | j                  d      }|j                         }|dd  dk(  j                         sJ |j	                         }|dd  dk(  j                         sJ y )NrX  r   r   r   r   r   r   r=   r   r   )r   r   r   rP  r   r[  rrd   s      r!   (test_rolling_mean_sum_floating_artifactsrc  9  sl     
)	*B


1AVVXF23K1!!###UUWF23K1!!###r#   c                      t        g d      } | j                  d      }|j                         }|dd  dk(  j                         sJ |j	                         }|dd  dk(  j                         sJ y )Nr`  r   r   r   )r   r   r  rP  r  ra  s      r!   )test_rolling_skew_kurt_floating_artifactsrf  D  sl     
)	*B


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

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

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

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