
    d	                     L(   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                             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 d/g d0g d,gfg          d1             Z(ej                             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                             d2d:d+g d;fd:d'g d<fd:d!g d=fd:d-g d>fg          d?             Z*d@ Z+dA Z,ej                             dBd-d'g          dC             Z-ej                             dDdEdFg          dG             Z.ej                             dDdEdFg          dH             Z/ej                             dIdJdKg          ej                             dLdEd+g dMfdEd!g dNfdEd-ej0        d d ddddOddPdQg
fdEd'ej0        d d d ddddOddPg
fdFd+g dRfdFd!g dRfdFd-ej0        d ddddOddPdQdSg
fdFd'ej0        d ddddOddPdQdSg
fg          dT                         Z1dU Z2ej                             dLdEd+ej0        d d ddddOdej0        ej0        g
fdEd!ej0        d d d ddddOdej0        g
fdEd-ej0        ej0        d ddddOdej0        ej0        g
fdEd'ej0        ej0        d d ddddOdej0        g
fdFd+ej0        ddddOddPdPej0        ej0        g
fdFd!ej0        ddddOddPdPdPej0        g
fdFd-ej0        ej0        ddddOddPej0        ej0        g
fdFd'ej0        ej0        ddddOddPdPej0        g
fg          dV             Z3ej                             dWd+g dXfd!g dYfd-ej0        d dZd[d\d]d^d_d`dag
fd'ej0        d dZddddOddPdQg
fg          db             Z4ej                             dcdddg          de             Z5df Z6dg Z7dh Z8di Z9dj Z:dk Z;dl Z<dm Z=ej                             dndodpgdQz  dqgdrz  z   dsgz   dtgduz  z   dvgdwz  z   dxgdz  z   dygdz  z   dzgduz  z   d{gd|z  z   d}gd~z  z   dpgdz  z   d}gdrz  z   dzgduz  z   dvgdPz  z   dgz   dgdPz  z   dgduz  z   dgdz  z   dgdz  z   dgdz  z   dsgduz  z   dqgd|z  z   dxgdQz  z   dgdOz  z   dgdOz  z   dvgduz  z   dgd|z  z   dgdz  z   dgdz  z   dgdz  z   dsgduz  z   dvgd|z  z   dgdQz  z   dgz   dxgdz  z   dvgdz  z   dgdz  z   fdej0        gdz  dpgdwz  z   dqgdrz  z   dsgz   dtgduz  z   dvgdwz  z   dxgdz  z   dygdz  z   dzgduz  z   d{gd|z  z   d}gd~z  z   dpgdz  z   d}gdrz  z   dzgduz  z   dvgdPz  z   dgz   dgdPz  z   dgduz  z   dgdz  z   dgdz  z   dgdz  z   dsgduz  z   dqgd|z  z   dxgdQz  z   dgdOz  z   dgdOz  z   dvgduz  z   dgd|z  z   dgdz  z   dgdz  z   dgdz  z   dsgduz  z   dvgd|z  z   dgdQz  z   dgz   dxgdz  z   dvgdz  z   fg          d             Z>d Z?d Z@d ZAej                             d e
g dg dd          dgdOgdd gfddgdOd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dOgdd gfddgdOdgdd dgfddgddPgdddgfgddf e
g dg dd          dgdOgdd gfddgdOdgdd dgfddgddPgdddgfgddf e
g dg dd          dgdOgdd gfdgdgddgfdgdPgddgfgddf e
g dg dd          dgdOgdd gfdgdgddgfdgdPgddgfgdd f e
dgdOgd          g ddf e
dgdOgd          g ddf e
            i g fgddf e
dej0        dgej0        ddPgd          dgej0        gdd gfdej0        gej0        dgdd dgfdej0        dgej0        ddPgdg dfgddfg	          d             ZBej                             ddgdOgdd gfddgdOdgdd dgfddgddPgdddgfgd:fdgdOgdd gfddgdOdgdd dgfg dg ddg dfgdfdgdOgdd gfdgdgddgfdgdPg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dOg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dOg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                             dg d          d             ZNd ZOej                             dd ed           ed          g          d             ZPd ZQej                             d edddŬƦ          df edddɬƦ          dfg          ej                             ddEej0        d d ddddOddPg	fdFej0        d ddddOddPdQg	fdej0        d ddddQdrdd~g	fg          d΄                         ZRdτ ZSej        T                     e            r e             p	 e            dЬѦ          ej                             dddg dԢfddg d֢fddg dעfddg dآfg          dل                         ZUdڄ ZVej                             dg dܢ          d݄             ZWej                             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             ZXej                             ddg dfdg dfg          d             ZYej                             dd eZd          d eZd          dddddgfd eZd          da eZd          dddddgfd eZd          d eZd          dddddgfd eZd          d eZd          ddddd gfd eZd          d eZd          dddddgfg          d             Z[ej                             dg d	df ed
dd          d:fg          d             Z\d Z]ej                             dddg          d             Z^ej                             ddg dfdg dfg          d             Z_d Z`ej                             dddg          d             Zad Zbd Zcej                             ddg dfdg dfg          d             Zdd Zed Zfd Zgd Zhej                             dg d           ej                             dg d!          ej                             d"dodg          ej                             d#dodg          ej                             d$g d%          d&                                                             Zid' Zjej                             d(g d)          ej                             d*g d+          ej                             d,g d-g d.dej0        d/ej0        d0gej0        ej0        ej0        ej0        gej0        d1ej0        d2d0dZgdZgej0        d3d4gg          d5                                     Zkd6 Zld7 Zmd8 Znd9 Zod: Zpd; Zqej                             g d<dddejr        ddddgddej0        d=d>d d?d d@dggdddej0        ddddgddej0        d=d>d d d?dAdggej0        ddPdQdddgddej0        gdz  g dBz   gddQdQdQej0        ejr        dOdddg
ddej0        gdz  dCd gz   ej0        gdOz  z   d@d gz   gddQdQdQej0        ejr        dQdddg
ddej0        gdz  dCd gz   ej0        gdOz  z   dDd gz   gddQgdOz  ddej0        gdz  dCgdPz  z   gddQdej0        dQddQgddej0        ddCgdgdz  z   dCgz   gg          dE             ZsdF ZtdG ZudH Zvej                             dIddg          ej                             dJdodg          dK                         Zwej                             dLexeyg          dM             Zzej                             dIddg          ej                             dJdodg          ej                             dLexeyg          dN                                     Z{dS (O      )datetime	timedeltaN)is_platform_armis_platform_mac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          } |  |                     d                                           |                     dd                                           d S )NBr            min_periods)r   npnanrollingsum)dfs    \/var/www/html/t/fyr/venv311/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_constructorr5   )   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/   r0   r1   )r2   r6   r3   r4   s       r!   test_invalid_constructorr<   =   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            d S # 1 swxY w Y   d S )N
   
2015-12-24DrA   freqrB   z,step is not supported with frequency windowsr+   r?   r=   step)r   r   aranger   r/   r0   NotImplementedErrorr   )r'   r    s     r!    test_freq_window_not_implementedrO   U   s     

	"r<<<
 
 
B 
#Q
 
 
 ! ! 	

4a
   ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !s   A44A8;A8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   rK   zstep not implementedr+   )r   r.   r   r/   r0   rN   getattr)rP   rolls     r!   &test_step_not_implemented_for_cov_corrrV   l   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 )NrE   valuerF   rG   rH   rJ                 ?      @      ;@r=   r&   r?   )	r   r   rM   r   appendr   r   tmassert_frame_equal)r'   nr    expected_dataresultexpecteds         r!   &test_constructor_with_timedelta_windowrd   t   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 )NrE   rX   z
2017-08-08rG   rH   rJ   rZ   r[   r\   r=   r   r(   )raw)r   r   rM   r   r]   NaNr   r   applyr^   r_   )r'   rf   r`   r    rc   result_roll_sumresult_roll_generics          r!   0test_constructor_timedelta_window_and_minperiodsrk      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@   rJ   r   r   closedr   2DTdrop)r   r   rT   r   reset_indexr^   r_   )rq   arithmetic_win_operators	func_namedf_fixeddf_timerb   rc   s          r!   test_closed_fixedrz      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           	      V   |t          dg dit          dd                    t          dfd|D             it          dd                    }dk    rd	d
i}ni } t                              d| dd                    di |}t	          j        ||d           d S )Nrm   )rY   rZ   r7   r[         @ro   r%   r@   rJ   c                 b    g | ]+} t          d          j        |                               ,S )rm   )rT   iloc).0sry   rw   s     r!   
<listcomp>z9test_datetimelike_centered_selections.<locals>.<listcomp>   s8    UUUa7wws|(+Y7799UUUr#   semddofr   rr   r   T)rq   r   r*   Fcheck_dtype )r   r   rT   r   r^   r_   )rq   window_selectionsrv   rc   kwargsrb   ry   rw   s         @@r!   %test_datetimelike_centered_selectionsr      s   b )I	'''(
610M0M0M  G 	UUUUUCTUUUV+++  H
 E!WV4HH    	 F
 &(>>>>>>r#   zwindow,closed,expected3s)r[   r[   r[   2s)r[   r7   r7   )rZ   r[   r[   rZ   r7   r7   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   rJ   Trq   r*   )r   r   r   r^   assert_equalr'   rq   rc   r2   rB   r    rb   s          r!   ,test_datetimelike_centered_offset_covers_allr      s    & 	%&&%&&%&&E
 
%	0	0	0BZZvdZ;;??AAFxu555HOFH%%%%%r#   rr   )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      rB   dtypeT)r*   rq   )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#   c                     t          t          d          t          ddd                    } |                     ddd	                                          }t          g d
| j                  }t          j        ||           d S )Nr=   r   rG   startrI   rA   rJ   rr   r   Tr)   )      ?      ?r   )r   r.   r   r   meanrB   r^   assert_series_equalr   rb   rc   s      r!   !test_even_number_window_alignmentr   3  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   rJ   )UUUUUU?r   皙?r   @m?r   g._x%I?r   r   r   r   r   r   )columnsrB   r|   r   )r'   rq   r   r*   rL   )	r   r   lenr   r   r   r   r^   r_   )r*   rL   datar    ra   rc   r   rb   s           r!   test_closed_fixed_binary_colr   A  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#   rq   c                 @   |}t          t          j        d          t          ddd                    }|                    d|           } t          ||                      }t          t          j        gdz  |j                  }t          j	        ||           d S )	Nr%   2000rr   rH   r   rB   1Drq   rJ   )
r   r   rM   r   r   rT   r   rB   r^   r   )rq   rv   rw   serrU   rb   rc   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   10Dr|   r   rJ   )	r   r   rT   r   r^   r   r   r   rB   )r   r   rb   s      r!   test_closed_one_entryr   g  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   rm   r   r   r=   r@   r   rm   F)sortr   r   r|   r   )rm   N)arraysnames)r   rB   name)r   r   rT   groupbyr   r
   from_arraysrB   r   r   r   r^   r   )r   r   rb   exp_idxrc   s        r!   test_closed_one_entry_groupbyr   o  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)
rY   r   r   r   r   r=   r   r%   r      )
rY   r   r   r   r   r   r=   r   r%   r   r   r   r   )
rY   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 )NrE   r   r@   r   r?   r   rJ   )
r   r   rM   astyper   rT   r   rB   r^   r   )r   r   rq   rc   r   rb   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 )NrE   r   r@   r   r   r%   rJ   r?   r|   r   r   r   r=   r   r   )r   r   rM   r   rt   rB   r   r   r   r^   r   )r   rb   rc   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 )NrE   r   r@   r   r   r?   r   )r   rq   rJ   )r   r   rM   r   r   r   rB   rT   r   r^   r   )r   rq   rc   r   rb   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#   zclosed,expected)
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 )	NrE   r   r@   r   r?   r   rJ   r   )
r   r   rM   r   r   rB   medianr^   r   quantile)rq   rc   r   rU   rb   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 )NrJ   )r   r   r   r^   r_   r	   )r   rc   rb   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   rM   r   r   r^   r   r   )rc   rU   rb   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   rY   )r   r   r   r   r   r^   r   xrb   rc   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-07rJ   2dr   r   rY   )
r   r   r   r	   r   r   r   rB   r^   r   r   s      r!   test_missing_minp_zero_variabler     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 )Nrm   r   )CrG   E12r   )rE   r   r   r=   )Nr   r   )r
   from_productr   r   onesr   rQ   r^   assert_index_equalr   rB   r   )colsr    rb   s      r!   test_multi_index_namesr     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                    }|                    |           }|dk    r't          d t	          d          D                       }n(t          t          j        gdz  dgdz  z   gdz            }|                    d	| 
                                          }t          j	        ||           d S )N)rE      r   c                 >    i | ]}|t           j        gd z  dgdz  z   S )r   r[   r   )r   r   r   is     r!   
<dictcomp>z)test_rolling_axis_sum.<locals>.<dictcomp>  s-    MMMaa"&A	!9MMMr#   r   r   r[      rE   r=   axis)
r   r   r   _get_axis_numberr.   r   r   r   r^   r_   
axis_framer    r  rc   rb   s        r!   test_rolling_axis_sumr    s    	278$$	%	%Bz**DqyyMM599MMMNN rvhlcURZ782=>>ZZ
Z++//11F&(+++++r#   c                 h   t          t          d          t          d          d          }|                    |           }|dv rt          g dg dd          }nt          g dg dd          }|                    d| d	                                          }t          j        ||           d S )
Nr=   )r   yr   rB   r   )rZ   rZ   rZ   )r7   r7   r7   r   r   )r  r   )r   r.   r  r   countr^   r_   r  s        r!   test_rolling_axis_countr    s    	qa11	2	2Bz**D|???IIJJ???IIJJZZ
Z::@@BBF&(+++++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   )arrrb   rc   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                       }| dv r4|j                            d|                                           j        }n)|                    d|                                           }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   r   s     r!   r   z)test_rolling_datetime.<locals>.<dictcomp>:  s     TTTQC!GTTTr#   z	2019-8-01z
2019-08-03rG   )rI   tzr	  rr   r  c                     i | ]	}|d gdz  
S )rZ   r   r   r   s     r!   r   z)test_rolling_datetime.<locals>.<dictcomp>B  0        C519  r#   r   )rA   rI   r  c                     i | ]	}|d gdz  
S )r7   r   r   r   s     r!   r   z)test_rolling_datetime.<locals>.<dictcomp>F  r  r#   z	2019-8-02z	2019-8-03)r   r   Tr   r   r^   r_   )r  tz_naive_fixturer  r    rb   rc   s         r!   test_rolling_datetimer  6  s"   	B	TTZ\PRSSSTTT
 
B \!!d4488::<Dz226688		
 #KLLL  		

 #K32NNN  		
 H &(+++++r#   zcenter, expected_dataTg      V@g     @X@r   g     X@g     X@   g     W@   g     @W@g     @V@g      X@g     W@   g     V@   g     V@g     U@g      W@g     T@g     U@rE   g     @U@g      S@g     @T@   g     @S@Fr   c                 R   t          j                    }t          ||t          d          z   d          }t          j                            d          }|                    ddt          |                    }t          ||d	          }|
                    d
d           |                    ddd|           d                             d          }|                    d
          }|                    d           }t          ||d          }	t!          j        ||	           d S )Nim  rG   )rI   i  )seedr   d   )highsize)DateColmetricr%  T)inplace21Dr   r|   )r'   r   rq   r*   r&  r   )rB   r   )r   nowr   r   r   randomRandomStaterandintr   r   	set_indexr   rP   rename
_with_freqr   r^   r   )
r*   ra   
date_todayr>   nprr   r    rb   rB   rc   s
             r!   test_rolling_window_as_stringr2  O  s   v Jj*y~~"=CHHHD
)

S

)
)C;;qsT;33D	tt44	5	5BLLDL)))ZZu!F6ZRR	c%jj  KK	""ET""E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   )rZ   r7   r7   r7   rZ   r   )r   r   r   r   r^   r   r    rb   rc   s      r!   test_min_periods1r7    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   r[   )r.   r   r
  r   r   r^   r   )r2   rb   rc   s      r!   #test_rolling_count_with_min_periodsr9    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   )rZ   r7   r[   r7   r7   r7   r[   r   r   )r   r   r   r
  r^   r   )r2   valuesexpected_countsrb   rc   s        r!   7test_rolling_count_default_min_periods_with_null_valuesr=    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   rZ   c                     d |D             }t          ||                     ||                    D ]\  }}t          j        ||           d S )Nc                 6    g | ]\  }}t          ||           S rJ   )r   r   r;  rB   s      r!   r   z/test_iter_rolling_dataframe.<locals>.<listcomp>  s)    OOO?FE	&...OOOr#   r   )zipr   r^   r_   )r    rc   r'   r   actuals        r!   test_iter_rolling_dataframerF    sg    L POhOOOH"**V**U*UVV 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 ]\  } }t	          j        ||            d S )Nr   r   r=   r   r%   )r   r%   r   r   r   z
2016-01-01r%   rG   r   rA   rI   rm   r   r   c                 R    g | ]#\  }}t          |j        |d f                   $S )r   rJ   )r   loc)r   r;  rB   r    s      r!   r   z2test_iter_rolling_on_dataframe.<locals>.<listcomp>J  sB       8G	&ucz 2333  r#   r   )on)r   r   rD  r   r^   r_   )rc   r'   rE  r    s      @r!   test_iter_rolling_on_dataframerN  #  s    > 
  ,DDD	
 	

 
B   KS  H  "**V**D*DEE 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 ]\  }}t          j        ||           d S )	N)r   r  r   r?  r4  br4  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>U  s&    AAAsqc"AAAr#   r   r   )r   listr   r   rD  r^   r_   )results	expectedsrb   rc   r    s       @r!   (test_iter_rolling_on_dataframe_unorderedrW  Q  s    	yyy99	:	:B2::c??**1--..GAAAAsQFQC.@AAAI33 0 0
fh////0 0r#   z ser,expected,window, min_periodsint64r   c                     d |D             }t          ||                     ||                    D ]\  }}t          j        ||           d S )Nc                 6    g | ]\  }}t          ||           S rB  r   rC  s      r!   r   z,test_iter_rolling_series.<locals>.<listcomp>}  s)    LLLvU+++LLLr#   r   )rD  r   r^   r   )r   rc   r'   r   rE  s        r!   test_iter_rolling_seriesr]  Z  sg    F ML8LLLH#++f++*V*VWW 1 1&
vx00001 1r#   zexpected,expected_index,windowr   rG   rH   r   r   r   z
2020-01-05)r   r=   r   c                    t          t          d          t          ddd                    }d t          | |          D             } t          | |                    |                    D ]\  } }t          j        ||            d S )Nr%   r   rG   rI  rJ   c                 6    g | ]\  }}t          ||           S rB  r\  )r   r;  rS  s      r!   r   z.test_iter_rolling_datetime.<locals>.<listcomp>  s6       &3vsvS!!!  r#   )r   r.   r   rD  r   r^   r   )rc   expected_indexr'   r   rE  s        r!   test_iter_rolling_datetimera    s    P q,PS!T!T!T
U
U
UC 7:8^7T7T  H  #++f*=*=>> 1 1&
vx00001 1r#   zgrouping,_indexlevel)r   r   rc  r   r   rd  rd  r   byX)rc  )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   r1   r   )argsr  scales      r!   
scaled_sumz4test_rolling_positional_argument.<locals>.scaled_sum  s<    t99q==?@@@uyy{{U""r#   rf  r%   )r   r   r   r   r   r   )rY   r   rZ   r   r7   re  ignore)r   errorsr   )r   )rf   ri  r   )r   r.   rt   r   r   rh   r^   r_   )grouping_indexrf   rk  r    rc   rb   s          r!    test_rolling_positional_argumentrp    s    (# # # 
eAhh	?	?	?Bs$=$=$=>fMMMHx==X=>>RZ##(##++A..44ZSt4TTF&(+++++r#   addrY   c           
         t          dd| z   ddgit          d          t          d          t          d          g          }|                    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 )Nrm   gVUUUUU%C       z19700101 09:00:00z19700101 09:00:03z19700101 09:00:06rJ   r   r   r|   r=   rp   r   SrH   gUUUUUU%CgqqCgqqCrY   )r   r   resampleffillr   r   r   r   r   r^   r_   )rq  r    rb   datesrc   s        r!   *test_rolling_numerical_accuracy_kahan_meanrx    s    
	!C't45)**)**)**

 
 
B 	D!!))$v1)MMRRTT  *AC@@@E"#$
	
   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ZrY   rY   rY   rY   r   r   r=   gsh|??rz  rY   r5  )r   r   r   r   r   r   r^   r   r6  s      r!   )test_rolling_numerical_accuracy_kahan_sumr{    sz    	666	F	F	FBW__Q##%%Frvrvufc3?cJJJH68,,,,,r#   c                  p   t          ddd                              t          dg                    } t          j                            t          |                     }t          d|i|           }|                    d          	                                }t          j        ||dg                    d S )Nr   r   60sr   endrI   r   r   rJ   )r   r]   r	   r   r*  randr   r   r   r   r^   r_   )rB   r   r    rb   s       r!   $test_rolling_numerical_accuracy_jumpr    s    \|%HHHOO|n%% E 9>>#e**%%D	FD>	/	/	/BZZ##%%F&"fX,/////r#   c                      t          g dt          dd                    } |                     d                                          }t	          j        ||            d S )N)g(@S ?ga2U0*3?rs  rs  z
1999-02-03z
1999-02-06r   r   )r   r   r   r   r^   r   )r   rb   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|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-01rE   rG   rH   )r   rB   r   gТr   r%   gk/      @      @      @rJ   )
r   r   r.   r   float64r   r   r   r^   r   )rw  dsrb   rc   s       r!   (test_rolling_numerical_too_large_numbersr    s    |Rc:::E	U2YYe2:	>	>	>BBqEZZ]]!!FFFFF	
   H 68,,,,,r#   )r   rX   ))r   r7   )r   rZ   )r   rZ   )r   rZ   )r   rZ   c                     t          dddgg d          }d|d<    t          |                    ddd          |                       }t          ddg||g||gdddg          }t          j        ||           d S )	Nr   r   r4  rQ  r3   )rB   r   rZ   r3   r'   r   r  rJ   )r   rT   r   r^   r_   )r   rX   r    rb   rc   s        r!    test_rolling_mixed_dtypes_axis_1r  /  s     
1QFOOO	<	<	<BBsGGWRZZqaaZ@@$GGIIFCju~UENCC!f  H &(+++++r#   c                     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dd                                          }t          g dg d	g d
g          }t          j        ||           d S )Nr   r   r   r   r   r   r  )rY   rZ   r[   r  r  r  r  )rY   rZ   r[   r[   r[   r[   r[   )rY   r7   r   r   r  r  r  )r   r   r   r   r   r^   r_   r6  s      r!   test_rolling_axis_one_with_nanr  ?  s    	1a01bfbfbfbf51bfa+	

 
B ZZqaiZ@@DDFFF/////////	
 H &(+++++r#   rX   testz
2019-12-31z1 days 06:05:01.00003c                     t          dddgi          }| |d<   |                    ddd                                          }t          dddgi          }t          j        ||           d S )Nr4  r   r   rQ  r  rZ   r7   )r   r   r   r^   r_   )rX   r    rb   rc   s       r!   &test_rolling_axis_1_non_numeric_dtypesr  S  st     
C!Q=	!	!BBsGZZqaaZ88<<>>F#Sz*++H&(+++++r#   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dd                                          }t          j        ||           | j                            dd                                          j        }t          j        ||           d S )Nr   r   r%   r   r   rJ  rZ   r  g      &@      *@r   )r   r'   r  )r   r'   )r   r   r   r   r   r^   r_   r  )r    rc   rb   s      r!   test_rolling_on_df_transposedr  `  s    	!T!Qq!f==	>	>BRV}C:T4LQQRRHZZAaaZ88<<>>F&(+++T\\a\226688:F&(+++++r#   )rB   r'   z2020-01-01 08:00z2020-01-01 08:08r  r~  2Tz2020-01-01 12:0030T1h)r   r;  r      c                     t          g d|           } t          |                    |d          |                      }t          ||           }t          j        ||           d S )N)	r   r   r   r=   r   r%   r   r   r   rJ   r|   r   )r   rT   r   r^   r   )rB   r'   r   r;  r  rb   rc   s          r!   test_rolling_period_indexr  k  so    . 
+++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   g;f?)
r   r   
isinstancer   r   r;  r   r   r^   r   )r2   objrb   rc   s       r!   test_rolling_semr    s    
/)))
$
$C[[[**..00F&)$$ *q	())rvh"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          |                    d          |                       }t          t          j        g|z             }t          j        ||           t          j        |dk    |dk               d S )Nl   ;r   r   r=   r   r   rT   r   r   r   r^   r   )r   r  r;  r  rb   rc   s         r!   !test_rolling_var_numerical_issuesr    s     
"A{Aq!Q?	@	@B)WRZZ]]D))++Frvh'((H68,,, 6Q;A66666r#   c                  @   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          j        t          d          d	ft          d          d
ft          d          d	ft          d          d
ft          d          d	ft          d          d
ft          d          d	ft          d          d
ft          d          d	ft          d          d
fg
                    } t          g dg ddt          d          t          d          t          d          t          d          t          d          g          }|                    d                                          }t          j	        | |           d S )Ng?g      rZ   g6<AԿg     ?g?)r   rm   z20130101 09:00:00r   rm   z20130102 09:00:02z20130103 09:00:03z20130105 09:00:05z20130106 09:00:06rJ   )r   r   r   r   r=   )r   r   r   r   r=   3dr&   )
r   r   r   r
   from_tuplesr   r   rR   r^   r_   )expr    ress      r!   ,test_timeoffset_as_window_parameter_for_corrr    s   
 "#"" "#"""	
 	
4 $.//5.//5.//5.//5.//5.//5.//5.//5.//5.//5
 
7) ) )CV 
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         z
                                            dk     sJ dS )zf
    Make sure that decreasing indices give the same results as increasing indices.

    GH 36933
    r;  irE   r   Nr-   rJ   r%   r&   r   g-q=)	r   r   rM   rB   rT   r   absr;  r   )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6*#DDbD)#2#.1B1221FFGGKKMMPUUUUUUUr#   )rZ   r[   r  r[   )rY   rZ   r[   r  )rZ   r[   r  r  )rY   rZ   r7   r[   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.
    ro   r   r   rH   rJ   Nr-   Tr   )r   r.   r   r   r^   r   )r'   rq   rc   r2   rB   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)rZ   rZ   rZ   rZ   3ns)r7   r[   r[   r7   c                     t          ddd          } |g d|t                    } |||t                    }|                    | |d                                          }t	          j        ||           d S )	Nro   r   r  rH   )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"@r  g     1@g      >@g     K@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.
    )TFTFTTTTr;  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 )NrY  r   r   )r   emptyrX  r.   use_expandingwindow_size)	self
num_valuesr   r*   rq   rL   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   rM   r   r   rT   r   r^   r_   )r  rc   r  r    r  indexerrb   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#   rn   z
2001-01-01)rI   rA   c                 :   t          g d|           }|                                }d|j        dd<   |                    |                              |          }t          t
          j        t
          j        dddg|           }t          j        ||           d S )NrH  rJ   rY   r   r   r   )	r   copyr   r   rR   r   r   r^   assert_almost_equal)rB   r'   r   r  rb   rc   s         r!   !test_rolling_corr_timedelta_indexr  ~  s     	e,,,A	AAF1Q3KYYv##A&&Frvrvq!Q/u===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g2rn   )groupr   r  F)dropnar   r   r   )rY   r7   r[   rZ   r   )r   r   r   r   r   )r   r   r=   r   r   r   rJ   )	r   r   r   r   r   r   r
   r^   r_   )r   r    rb   rc   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                    }|                                } t          |                    d          |                       }t          j        ||           |dz   } t          |                    d          |                       }t          j        ||           d S )NrE   r=   iP  )	r   r   r*  r  r  rT   r   r^   r   )r  r   ser_copyrc   rb   s        r!   *test_rolling_skew_kurt_numerical_stabilityr    s     ##
$
$CxxzzH.ws{{1~~v..00H3)))
+C,WS[[^^V,,..F68,,,,,r#   )r  r;  )r7   g+X?rY   gJ_9?)r   gBʠg333333g >@c                     t          g d          } t          |                    d          |                       }t          t          j        gdz  |z             }t          j        ||           d S )N)i- r   r   r   r=   r   i  r   r=   r  )r  r;  r   rb   rc   s        r!   (test_rolling_skew_kurt_large_value_ranger    sl     	,,,--A*WQYYq\\6**,,FrvhlV+,,H68,,,,,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!method must be 'table' or 'singler+   r   r8   )r  )r/   r0   r1   r   r.   r   r   r#   r!   test_invalid_methodr    s    	z)L	M	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1dc                     t          ddd          } |t          dd          |          }|                    dd	                                          } |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 )Nr   r   r  r~  r   r   rJ   r|   r   r   r-   z-1dr=   )	r   r.   r   r   r   r   r^   r   r   )r'   r2   rS  r  rb   rc   s         r!   .test_rolling_descending_date_order_with_offsetr    s     <\
E
E
EC
/%1++S
1
1
1C[[f[--1133F1~S999HOFH%%%Xddd^##D#88<<>>F
<\
F
F
FC1~S999HOFH%%%%%r#   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瞯<atol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    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          }|ddddt          j        t          j        ddgz   }t          |t          t	          | t          |          | z                       	          }|j        | d                              d
d                                          }t          j
        ||           d S )Nr  r  Mb`?Mb?{Gzt?皙?r  g=
ףp=?rJ   r%   r   r   )r   r   rg   rT  r.   r   r   r   r   r^   r_   )r   
exp_valuesr    r;  rc   rb   s         r!   3test_rolling_mean_all_nan_window_floating_artifactsr    s     
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  rY   )r   r   rg   r   r   r^   r_   r6  s      r!   2test_rolling_sum_all_nan_window_floating_artifactsr    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  #  sZ    uQxxAYYq\\FrvhH68,,,,,r#   c                 F   t          t          d          t          dd          d|           }t          t          j        gdz  t          ddd          d|           }|                    dd	                                          }t          j        ||d
           d S )Nr%   rE      r   rY  r   r   r   r  Fr   )r   r.   r   r   r   r   r^   r_   )float_numpy_dtyper    rc   rb   s       r!   test_rolling_float_dtyper	  +  s    	qb"66>O	P	P	PBvhlr2q!1!122  H ZZZ""&&((F&(>>>>>>r#   c                     t          t          j        d                              dd          t	          d                                        dddd	d
dddddd
          } |                     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
        ||           d S )N(   r   rE   
abcdefghijr   float16float32r  int8int16int32uint8uint16uint32uint64)
r4  rQ  r3   defghr   jr   r   r  r   r=   r%   r   r   r   rY  )r   r   rM   reshaperT  r   r   r   r.   r^   r_   r6  s      r!   test_rolling_numeric_dtypesr  6  se   	29R==((B//l9K9K	L	L	L	S	S	
 	

 
B ZZqaaZ88<<>>Fq"b!!q"b!!q"b!!q"b!!q"b!!q"b!!q"b!!q"b!!q"b!!q"b!!	
 	
   H &(+++++r#   )r   r=   rE   r   )r   r   averagepct	ascending	test_data)default
duplicatesnansc           
      n   d}|dk    r.t          t          j                            |                    }n|dk    r/t          t          j                            d|                    }nY|dk    rSt          t          j                            ddd	t          j        t          j        t          j         g|                    }|                    |                               fd
          }|                    |           	                              }t          j        ||           d S )Nr   r"  )r   r#  r=   r$  rZ         ?      ?c                 J    |                                j        d         S )Nr  r  r   r-   )rankr   )r   r   r  r  s    r!   <lambda>ztest_rank.<locals>.<lambda>j  s!    !&&C9&EEJ2N r#   r)  )r   r   r*  r  choicer   infr   rh   r*  r^   r   )	r'   r  r  r   r!  lengthr   rc   rb   s	    ```     r!   	test_rankr/  Y  s%    FI")..00111	l	"	"")**1f55666	f		!!3dBFBFRVG"LfUU
 
 
 {{6""((NNNNNN H [[  %%V	%RRF68,,,,,r#   c                  z   d} d}t          d| d          }t          t          j                            | |z                                | df          |          }|                    g dd	
          }t          j        |g dd	
          }t          j	        |j
        t          j        |                     d S )NrE   r%   20100101r   rH   r-   rJ   )r&  r   r'  r   r  )   2   K   )r   r   r   r*  r  r  r   
percentiler^   r  r;  r  )rowcolrS  r    df_quantilenp_percentiles         r!   #test_rolling_quantile_np_percentiler:  q  s     C
C
Z3
7
7
7C	29>>#),,44c2Y??s	K	K	KB++///a+88KM"lll;;;M;-rx/F/FGGGGGr#   r   )rY   r   g?r   r   interpolation)linearlowerhighernearestmidpointr   )rZ   r7   r[   r   r  r  r  )g       @rZ   r[   r   r  r7   r  r  r  r   r   g333333?gffffff?g333333?c                 "   t          |          }|                    | |          }|                    d                              | |          j        d         }t	          j        |          rt	          j        |          sJ d S ||k    sJ d S )Nr   r   r-   )r   r   	expandingr   r   isnan)r   r;  r   r   q1q2s         r!   +test_rolling_quantile_interpolation_optionsrF    s    & 	tA	
Hm	,	,B	
	#	#	,	,X}	E	E	J2	NB	x|| x||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)r;  )	r   rM   r   r/   r0   r1   r   r   r   )r   r   r4   s      r!   test_invalid_quantile_valuerI    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)rY   r   r   g?rZ   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_paramrL    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)rZ   r7   r[   r   r  r   r   r%   r   )r   rY   r=   r   r   )r   r   r  r   r   r^   r   rC  )valsrb   rc   s      r!   test_rolling_std_1obsrO    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?rQ  rQ  rQ  r=   r&   r   )span)r   r   r  r   isfiniteallewmrP  s     r!   test_rolling_std_neg_sqrtrV    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   r8   rK   r/   r0   r1   r   r.   r   r   r#   r!   test_step_not_integer_raisesrY    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-   rK   rX  r   r#   r!   test_step_not_positive_raisesr[    s    	z)<	=	=	= 0 0%((##AB#///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0r  )r;  r'   r   rc   r3  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)r;  r'   r   rc   sr
result_var
result_stds          r!   'test_rolling_var_same_value_count_logicrb    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r\  r   r   r   r   r   r   r=   r   r   )r   r   r   rT  r   r_  rrb   s      r!   (test_rolling_mean_sum_floating_artifactsrg  -  s     
)))	*	*B


1AVVXXF233K1!!#####UUWWF233K1!!#######r#   c                  *   t          g d          } |                     d          }|                                }|dd          dk                                    sJ |                                }|dd          dk                                    sJ d S )Nrd  r   r   r   )r   r   r  rT  r  re  s      r!   )test_rolling_skew_kurt_floating_artifactsrj  8  s     
)))	*	*B


1AVVXXF233K1!!#####VVXXF233K2""$$$$$$$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=   r  r3   r   numeric_onlyr4  rQ  Trs   )r   r   objectr   rT   rP   ru   r   rT  r   r^   r_   )	rv   rm  kernelr    r   oprb   r   rc   s	            r!   test_numeric_only_framerq  C  s    %F	!11--	.	.BgnnV$$BsGjjj**G	&	!	!BR\***F(=sCjjoooG'{x((44$4??FFuMMH !!W,,,,&(+++++r#   ro  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=   r  r3   r   r   r   rm  r4  rQ  )r   r   rn  r   rT   r   r^   r_   )ro  rm  rr  r    argr   rp  rb   r   df2arg2rolling2op2rc   s                 r!    test_numeric_only_corr_cov_framery  S  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   rY  r   r   Rolling.  does not implement numeric_onlyr+   rl  Trs   )r   r   rT   rn  r/   r0   rN   rP   ru   r   r   r^   r   )
rv   rm  r   ro  r   r   rp  r4   rb   rc   s
             r!   test_numeric_only_seriesr}  i  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>  rY  r   r   r   r   r{  r|  r+   rm  )r   r   rT   rn  r/   r0   rN   r   r   r^   r   )ro  rr  rm  r   r   rt  r   rp  r4   rb   ser2rv  rw  rx  rc   s                  r!   !test_numeric_only_corr_cov_seriesr  z  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   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<   rO   rV   rd   rk   rz   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r2  r7  r9  r=  rF  rN  rW  r]  ra  r  rp  rx  r{  r  r  r  r  r  r  r  r  r  xfailr  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r  r	  r  r/  r:  rF  rI  rL  rO  rV  rY  r[  r-  rb  rg  rj  rq  ry  r   rn  r}  r  r   r#   r!   <module>r     sA%         
                                            + + + + + + 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?6 	w(	v'	v'	y///*	w(	v'	v'	y///*	 & & &" 	w0001	v///0	v///0	y2223	 & & &0- - -, , ,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, , ,, , ,- - -, , ,2  
&1*& &2+ &2+	
 &1* &1* &2+ &2+ &2+	 &1*
 &1* &2+ &1* & &1*  &2+!" &1*#$ &2+%& &1*'( &2+)* &2++, &1*-. &1*/0 &1*12 &2+34 &2+56 &1*78 &1*9: &1*;< &2+=> &2+?@ &1*A B &C!D &1*E"F &2+G#H &1*I$)	
V 1&2+&1* & &2+	
 &2+ &1* &1* &2+ &2+	 &2+
 &1* &1* &2+ &1* &  &1*!" &2+#$ &1*%& &2+'( &1*)* &2++, &2+-. &1*/0 &1*12 &1*34 &2+56 &2+78 &1*9: &1*;< &1*=> &2+?@ &2+A B &1*C!D &E"F &1*G#H &2+I$)	
WUX Xr- -sX Xr-*- - -& & && & & $ IIIIIII6677s!%%s+1vQF++aV4 yyyyy11999=
 		
 IIIIIII6677s!%%s+1vQF++aV41vQF++aV4
 		
 IIIIIII6677s!%%s+1vQF++aV41vQF++aV4
 		
 IIIIIII6677s!%%s+s!%%s+s!%%s+
 		
 IIIIIII6677s!%%s+s!%%s+s!%%s+
 		
 
!A3''	(	("a6	!A3''	(	("a3	Bxj!T*IQN"&!Q@@AA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
++, , ,+,>- - -	0 	0 	0& & &- - -0 NNN 	, 	,	 	,, , ,( [[&&5L(M(MN , ,	 ,, , ,  L17IPSTTT	

 L17IPUVVV	
	  	Aq!Q1a01	Aq!Q1a01	Aq!Q2r23 - -  *-- - - _0000H5F5F5H5H    %	,,,-	FFFG	,,,-	FFFG	 7 7 	 7:$ :$ :$z #W#W#WXXV V YXV 	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= - - -, , ,, FF#344- - 54- 	///0	1112 - - -2 2 2
 At9--& & .-&7 7 7I I I 	
2223	
.../ $, $, $,N, , ,- - -? ? ? ,  ,  ,F >>>22#<#<#<==u..tUm44&G&G&GHH- - IH 54 /. >= 32
-&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 1 1r#   