
    bMh/                         d dl Zd dlZd dlmZmZmZmZmZm	Z	m
Z
mZ d dlmZ d dlmZ d dlmZ ej        d             Zej        d             Z G d d          Z G d	 d
          Z G d d          Zd Zd ZdS )    N)	DataFrameDatetimeIndexIndex
MultiIndexSeries	Timestamp
date_rangeto_datetime)BaseIndexer)get_groupbyc                  N    t          g dg dt          g d          d          S )z0Frame for testing times argument in EWM groupby.)
abcr   r   r   r   r   r   r   )
r   r   r      r   r      r   r      )

2020-01-01r   r   z
2020-01-02
2020-01-10z
2020-01-22z
2020-01-03
2020-01-23r   z
2020-01-04ABC)r   r
        `/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/window/test_groupby.pytimes_framer      sN     CCC///   	
 	
  r   c                  n    t          dgdz  dgdz  z   dgdz  z   t          j        d          d          S 	Nr      r      r      (   r   r   r   nparanger   r   r   
roll_framer)   ,   s<    A38qcBh.!q8ry}}MMNNNr   c                      e Zd Zd Zd Zd Zej                            dg d          d             Z	ej                            dddg          d	             Z
ej                            d
g d          d             Zej                            dddgddgg          d             Zej                            dddg          d             Zej                            dddg          d             Zej                            ddddgddggfdddgddggfg          d             Zd Zd Zej                            dddgddgg          d             Zd  Zd! Zej                            d"g d#          d$             Zd% Zd& Zd' Zd( Zej                            d)d*d+g          d,             Zd- Zd. Zd/ Zd0 Zej                            d1d2d3dd4fd5i fg          d6             Zej                            d7d8d9id9fd8d:id;fg          d<             Z ej                            d=ddg          d>             Z!d? Z"d@ Z#dA Z$dB Z%dC Z&ej                            dDd3dEdFg dGfd3d3dFg dHfdIdIdFg dJfdIdIdKg dLfg          dM             Z'ej                            dN e(j)        dOdPg          dQdRgg          dS             Z*dT Z+ej                            dUdVgdWg dXigdVd;g e,dY           e,dZ           e,dY           e,dZ          gg d[d\gg          d]             Z-d^ Z.d_ Z/d` Z0da Z1db Z2d:S )cTestRollingc                     d}t          j        t          |          5  |                    dd           d d d            d S # 1 swxY w Y   d S )Nz4groupby\(\) got an unexpected keyword argument 'foo'matchr   r   )foo)pytestraises	TypeErrorgroupby)selfr)   msgs      r   !test_groupby_unsupported_argumentz-TestRolling.test_groupby_unsupported_argument2   s    E]9C000 	+ 	+s***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+s   AA
Ac                    |                     d          }t          |d          }|j                            d           }|                    d                                          j        }t          j        ||           |                    d          j                                        }t          j        ||           |j                            d                                          }t          j        ||           |j                             |j                                      d                                          }t          j        ||           d S )Nr   byc                 P    |                      d                                          S )Nr   rollingmeanxs    r   <lambda>z*TestRolling.test_getitem.<locals>.<lambda>;   s    qyy||/@/@/B/B r   r   )	r3   r   r   applyr<   r=   tmassert_series_equalr   )r4   r)   g	g_mutatedexpectedresults         r   test_getitemzTestRolling.test_getitem7   s   s##
s333	;$$%B%BCC1""$$&
vx0001$$&&
vx000Q$$&&
vx000%%jl33;;A>>CCEE
vx00000r   c                 n   |                     d          }|                    dd          }t          |d          }|j                            d           }|j                                        }t          j        ||           |j                                        }t          j        ||           d S )Nr   r   r   min_periodsr8   c                 T    |                      dd                                          S )Nr   r   rJ   )r<   countr>   s    r   r@   z3TestRolling.test_getitem_multiple.<locals>.<lambda>N   s"    qyyy/J/J/P/P/R/R r   )r3   r<   r   r   rA   rM   rB   rC   )r4   r)   rD   rrE   rF   rG   s          r   test_getitem_multiplez!TestRolling.test_getitem_multipleI   s    s##IIaQI''
s333	;$$%R%RSS
vx000
vx00000r   fsumr=   minmaxrM   kurtskewc                    |                     dd          }|                    d          } t          |                      }d}t          j        t
          |          5  |                    fd          }d d d            n# 1 swxY w Y   |                    dd	
          }t          j	        |d         t          d          g          }||_        t          j        ||           d S )Nr   F
group_keys   window7DataFrameGroupBy.apply operated on the grouping columnsr-   c                 Z     t          |                     d                                S NrZ   getattrr<   r?   rP   s    r   r@   z*TestRolling.test_rolling.<locals>.<lambda>i   s$    )A1q)A)A)C)C r   r   axisr$   r3   r<   ra   rB   assert_produces_warningFutureWarningrA   dropr   from_arraysrangeindexassert_frame_equal	r4   rP   r)   rD   rN   rG   r5   rF   expected_indexs	    `       r   test_rollingzTestRolling.test_rollingV   s5    su55IIQIAG'SAAA 	E 	EwwCCCCDDH	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E ==1=--#/C%))0LMM'
fh/////   $B		BBstdvarc                    |                     dd          }|                    d          } t          |          d          }d}t          j        t
          |	          5  |                    fd
          }d d d            n# 1 swxY w Y   |                    dd          }t          j	        |d         t          d          g          }||_        t          j        ||           d S )Nr   FrX   rZ   r[   r   ddofr]   r-   c                 ^     t          |                     d                    d          S )NrZ   r   rt   r`   rb   s    r   r@   z/TestRolling.test_rolling_ddof.<locals>.<lambda>y   s)    )A1q)A)Aq)I)I)I r   rc   r$   re   rm   s	    `       r   test_rolling_ddofzTestRolling.test_rolling_ddofq   s:   su55IIQIAA&&&G'SAAA 	K 	KwwIIIIJJH	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K ==1=--#/C%))0LMM'
fh/////s   &BBBinterpolationlinearlowerhighermidpointnearestc                    |                     dd          }|                    d          }|                    d          }d}t          j        t
          |	          5  |                    fd
          }d d d            n# 1 swxY w Y   |                    dd          }t          j	        |d         t          d          g          }||_        t          j        ||           d S )Nr   FrX   rZ   r[   皙?rx   r]   r-   c                 X    |                      d                              d          S )NrZ   r   r   )r<   quantiler?   rx   s    r   r@   z3TestRolling.test_rolling_quantile.<locals>.<lambda>   s$    !))A,,//=/QQ r   r   rc   r$   )r3   r<   r   rB   rf   rg   rA   rh   r   ri   rj   rk   rl   )	r4   rx   r)   rD   rN   rG   r5   rF   rn   s	    `       r   test_rolling_quantilez!TestRolling.test_rolling_quantile   s*    su55IIQIC}==G'SAAA 	 	wwQQQQ H	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 ==1=--#/C%))0LMM'
fh/////s   #BBBzf, expected_valcorrr   cov      ?c                    t          t          d          dgdz  dgdz  z   g ddz  d                              ddg          }t          t          d          g dd	                              d          } t          |                    d
                              d          |          |          }t          j        g|gdz  z   dz  }t          |dgt          j	        dgdz  dgdz  z   dgdz  dgdz  z   t          t          dd                    dz  gg d                    }t          j        ||           d S )N
   r      r   )r   r   r   rZ   r   )valueidx1idx2r   r   )r   r   r   levelrZ   r      )r   r   r   namescolumnsrk   )r   rj   	set_indexra   r3   r<   r'   nanr   ri   listrB   rl   )r4   rP   expected_valdfotherrG   expected_datarF   s           r   /test_rolling_corr_cov_other_same_size_as_groupsz;TestRolling.test_rolling_corr_cov_other_same_size_as_groups   sw    Bii!qA37):OOOVWDWXX
 

)VV$
%
% 	 E!HHoooFFGGQQ
 
 <!,,44Q77;;EBB&\NQ$66!;I(C!GqcAg%C!GqcAg%q!%%)
 /..  
 
 
 	fh/////r   c                 z                        d          }|                    d          } t          |                    }fd}d}t          j        t
          |          5  |                    |          }d d d            n# 1 swxY w Y   t          j        |d<   t          j	        ||           d S )Nr   rZ   r[   c                 \     t          |                     d                              S r_   r`   )r?   rP   r)   s    r   funczITestRolling.test_rolling_corr_cov_other_diff_size_as_groups.<locals>.func   s'    +7199Q<<++J777r   r]   r-   )
r3   r<   ra   rB   rf   rg   rA   r'   r   rl   	r4   rP   r)   rD   rN   rG   r   r5   rF   s	    ``      r   /test_rolling_corr_cov_other_diff_size_as_groupsz;TestRolling.test_rolling_corr_cov_other_diff_size_as_groups   s   s##IIQIAz**	8 	8 	8 	8 	8 	8 H'SAAA 	% 	%wwt}}H	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 
fh/////s   *BBBc                 d   |                     d          }|                    d          } t          |j                  d          }fd}d}t	          j        t          |          5  |                    |          }d d d            n# 1 swxY w Y   t	          j        ||           d S )	Nr   rZ   r[   Tpairwisec                 h     t          | j                            d                    d          S )NrZ   Tr   )ra   r   r<   rb   s    r   r   z8TestRolling.test_rolling_corr_cov_pairwise.<locals>.func   s,    -713;;q>>1--t<<<<r   r]   r-   )	r3   r<   ra   r   rB   rf   rg   rA   rC   r   s	    `       r   test_rolling_corr_cov_pairwisez*TestRolling.test_rolling_corr_cov_pairwise   s    s##IIQI a$///	= 	= 	= 	= 	= H'SAAA 	% 	%wwt}}H	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%
vx00000s   .BBBzfunc, expected_values      ?      @c                    t          g dg dg dd          }|                    d                              d          } t          ||                      }t          dt          j        gz  |d         z   d	t          j        gz  z   dt          j        gz  |d
         z   d	t          j        gz  z   dt          j        g dg d                    }t          j	        ||           d S )N)g1g2r   r   )r   r   r   r   )r   r   r   rZ   r   r   r   r   r   rZ   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   NNr   rk   )
r   r3   r<   ra   r'   r   r   from_tuplesrB   rl   )r4   r   expected_valuesr   rolrG   rF   s          r   test_rolling_corr_cov_unorderedz+TestRolling.test_rolling_corr_cov_unordered   s    ---!\\!\\ 
 
 jjoo%%a((#d##%%"&\OA$66bfXE"&\OA$66bfXE  (	 	 	 (''  
 
 
& 	fh/////r   c                    |                     dd          }|                    d          }|                    d           }d}t          j        t
          |	          5  |                    fd
          }d d d            n# 1 swxY w Y   |                    dd          }t          j        |d         t          d          g          }||_
        t          j        ||           d S )Nr   FrX   rZ   r[   c                 *    |                                  S NrR   r>   s    r   r@   z0TestRolling.test_rolling_apply.<locals>.<lambda>       15577 r   rawr]   r-   c                 Z    |                      d                              d           S )NrZ   c                 *    |                                  S r   r   ys    r   r@   zBTestRolling.test_rolling_apply.<locals>.<lambda>.<locals>.<lambda>   s    aeegg r   r   )r<   rA   r?   r   s    r   r@   z0TestRolling.test_rolling_apply.<locals>.<lambda>   s)    1););<M<MSV);)W)W r   r   rc   r$   )r3   r<   rA   rB   rf   rg   rh   r   ri   rj   rk   rl   )	r4   r   r)   rD   rN   rG   r5   rF   rn   s	    `       r   test_rolling_applyzTestRolling.test_rolling_apply   s;   su55IIQI **44G'SAAA 	Y 	YwwWWWWXXH	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y ==1=--#/C%))0LMM'
fh/////rp   c                    t          dgdz  dgdz  z   dgdz  d          }|                    d          }t          j        g d          }dd g|_        t          t
          j        d	d	gd
z  dg|          }|                    d
                                          }t          j
        ||           |                                 |                    d
                                          }t          j
        ||           d S )Nr/   r   barr   r   r%   r   ))r   r   )r   rZ   )r   r   )r/   r   )r/   r   )r/   r          @r   r   r   r[   )r   r3   r   r   r   r'   r   r<   rR   rB   rl   )r4   r   rD   mirF   rG   s         r   test_rolling_apply_mutabilityz)TestRolling.test_rolling_apply_mutability  s   eWq[E7Q;6aS1WEEFFJJsOO#TTT
 
 ;bfc3/!3cU"MMM!$$((**
fh/// 	
 !$$((**
fh/////r   zexpected_value,raw_valueT        Fc                 >   d }t          g dg dd          }|                    d          j                            d                              ||          }t          |gdz  t          j        d	dd g
          d          }t          j	        ||           d S )Nc                 P    t          t          | t          j                            S r   )int
isinstancer'   ndarrayr>   s    r   isnumpyarrayz6TestRolling.test_groupby_rolling.<locals>.isnumpyarray  s    z!RZ00111r   r   r   r   r   r   r   )idr   r   r   r   r   )r   r   r   r   r   r   r   r   rk   name)
r   r3   r   r<   rA   r   r   r   rB   rC   )r4   expected_value	raw_valuer   r   rG   rF   s          r   test_groupby_rollingz TestRolling.test_groupby_rolling  s    	2 	2 	2 iii)))<<==D!!'//228898UUq ()A$PTVVV
 
 

 	vx00000r   c                    t          t          dd                    }|                    |                              dd                                          }t          t
          j        gdz  t          j        d                    }t          j
        ||           t          t          dd                    }|                    |                              dd                                          }t          t
          j        gd	z  t          j        d
                    }t          j
        ||           t          dgdz  dgdz  z   t          d          d          }|                    d                              dd                                          }t          t
          j        dddt
          j        t
          j        ddddt
          j        gt          j        ddd g          dg          }t          j        ||           t          dgdz  dgdz  z   t          d          d          }|                    d                              dd                                          }t          t
          j        dddt
          j        t
          j        dddt
          j        g
t          j        ddd g          dg          }t          j        ||           d S )Nr   r   Tr   )centerr\   r   )r   r   r   r   r   rZ   r   )r   rZ   r   rZ   )r   r   r   r   r   r      r   r   r      r#   	   )r   r   r   r   r   r   r   r   r   rZ   r   r   r   r   r   r   r   r#   r   r   )r   r   r   )rk   r   r   )
r   r   r   r   r   r   r   r   r   r   )r   rj   r3   r<   r=   r'   r   r   r   rB   rC   r   rl   )r4   seriesrG   rF   r   s        r   "test_groupby_rolling_center_centerz.TestRolling.test_groupby_rolling_center_center*  s   a$$''//tA/FFKKMMVHqL()QRR
 
 
 	vx000a$$''//tA/FFKKMMVHqL()IJJ
 
 
 	vx000cUQY#2rCCDDC((Q(??DDFFVQ1bfbfaAq"&A( Dk    E%
 
 
( 	fh///cUQY#2rCCDDC((Q(??DDFFVQ1bfbfaArv>( Dk   E#
 
 
& 	fh/////r   c                    t          t          dd          dgdz  dgdz  z   t          d          d	          }|                    d
                              dddd          j                                        }t          j        |d
         |d         gd
dg          }t          g dd|          }t          j        ||           d S )Nr   r   group_1r   group_2rZ   r   )Dategbr   )datar   r   Tr   )onr   rK   r   )
r         ?r   g      @      @g      @      @      @r   r   r   r   rk   )r   r	   rj   r3   r<   r   r=   r   ri   r   rB   rC   )r4   r   rG   r   rF   s        r   test_groupby_rolling_center_onz*TestRolling.test_groupby_rolling_center_onk  s    "<>> kAoa7r 
 
 
 JJtWQ6$AW>>4466 	
 #RXr&z$:4.QQQ>>>
 
 

 	vx00000r   rK   )r   rZ   r   c                 ,   t          dgdz  dgdz  z   t          d          d          }d}|                    d                              |d|	                                          }|                                dd
g         }g d}d |D             }t          d|dz
            }t          j        g|z  }|||d|z
           z   |z   }	|||d|z
           z   |z   }
t          dgdz  dgdz  z   |	|
z   d          }t          j
        ||           d S )Nr   r   r   r!   )groupr   r   r   T)r   rK   r   )
r   r   r   r   r         @g      @r   r          @c                     g | ]}|d z   S )g      $@r   ).0r?   s     r   
<listcomp>zGTestRolling.test_groupby_rolling_center_min_periods.<locals>.<listcomp>  s    3331a$h333r   r   r   )r   rj   r3   r<   r=   reset_indexrT   r'   r   rB   rl   )r4   rK   r   window_sizerG   
grp_A_mean
grp_B_meannum_nansnansgrp_A_expectedgrp_B_expectedrF   s               r   'test_groupby_rolling_center_min_periodsz3TestRolling.test_groupby_rolling_center_min_periods  sF    #sebj!8%))LLMMJJwW[;WGGTVV 	
 ##%%w&78GGG
33
333
q+/**x("
8b8m+C DDtK
8b8m+C DDtKebjC52:-~7VWW
 
 	fh/////r   c           	         t          g dg dg dd          }|                    d          dg                             d                                          }t          t          j        t          j        dt          j        gdgt          j        d	dd g
                    }t          j	        ||           |                    d          d                             d                                          }t          t          j        t          j        dt          j        gt          j        d	dd g
          d          }t          j        ||           d S )N)r   r   r   r   )r   r   r   r   )r   r!      r!   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r3   r<   rT   r'   r   r   r   rB   rl   r   rC   r4   r   rG   rF   s       r   test_groupby_subselect_rollingz*TestRolling.test_groupby_subselect_rolling  sR   ,,%9%9%9@P@P@PQQ
 
 C#'//226688VRVS"&)E(0d  
 
 
 	fh///C%--a004466VRVS"&)(0d   
 
 
 	vx00000r   c                     G d dt                     }t          dg ddz  idgdz  dgdz  z   d	gdz  z   
          }|                    |j                                       |d          d                                          }|                    |j                                      dd                                          }t          j        ||           d S )Nc                        e Zd Z	 	 	 	 	 ddZdS )FTestRolling.test_groupby_rolling_custom_indexer.<locals>.SimpleIndexerr   Nc                     || j         nd}t          j        |t          j                  dz   }|                                | j         z
  }|||dk     <   ||fS )Nr   dtyper   )r  r'   r(   int64copy)r4   
num_valuesrK   r   closedstependstarts           r   get_window_boundszXTestRolling.test_groupby_rolling_custom_indexer.<locals>.SimpleIndexer.get_window_bounds  s^     3>2Ed..1i
"(;;;a?

T%55#.eai cz!r   )r   NNNN)__name__
__module____qualname__r  r   r   r   SimpleIndexerr    s9          " " " " " "r   r  r   )r   r   r   r   r   r   r   r   r   r   r   )r  rJ   r\   rK   )r   r   r3   rk   r<   rR   rB   rl   )r4   r  r   rG   rF   s        r   #test_groupby_rolling_custom_indexerz/TestRolling.test_groupby_rolling_custom_indexer  s   	" 	" 	" 	" 	"K 	" 	" 	" +++a/0a1#'8IQCRSG8S
 
 
 JJrx  W]]q111qWAASUU 	
 ::bh''//qa/HHLLNN
fh/////r   c           
         t          t          d          t          d          dgdz  dgdz  z   d dD             dz  d          }|                    d	                              d
dd          d                                         }t          t          j        t          j        ddt          j        t          j        ddgt          j	        |d	dg         d	dg          d          }t          j        ||           d S )Nr#   r   rZ   r   c                 ,    g | ]}t          |          S r   r   r   dates     r   r   zGTestRolling.test_groupby_rolling_subset_with_closed.<locals>.<listcomp>  .        dOO  r   
2019-01-01r)  
2019-01-02r*  r   column1column2r   r&  r   1Dr&  leftr   r  r,  r         "@r   r   r   rj   r3   r<   rR   r   r'   r   r   
from_framerB   rC   r  s       r   'test_groupby_rolling_subset_with_closedz3TestRolling.test_groupby_rolling_subset_with_closed  s    88 88cUQY.  X   			 	
 
 JJw'''GG	RVVXX 	 VRVS#rvrvsC@'GV$%'   
 
 
 	vx00000r   c           
         t          t          d          t          d          dgdz  dgdz  z   d dD             dz  d          }|                    d	          d
dg                             ddd          d
                                         }t          t          j        t          j        ddt          j        t          j        ddgt          j	        |d	dg         d	dg          d
          }t          j        ||           d S )Nr#   r   rZ   r   c                 ,    g | ]}t          |          S r   r$  r%  s     r   r   zNTestRolling.test_groupby_subset_rolling_subset_with_closed.<locals>.<listcomp>  r'  r   r(  r   r+  r   r,  r&  r.  r/  r0  r   r1  r   r   r2  r  s       r   .test_groupby_subset_rolling_subset_with_closedz:TestRolling.test_groupby_subset_rolling_subset_with_closed  s'    88 88cUQY.  X   			 	
 
 JJwF 34WTfVW44Y@SUU 	
 VRVS#rvrvsC@'GV$%'   
 
 
 	vx00000r   r   rT   rS   c                    t          g dt          j        g dddg          d          } t          |                    |                              d          |                      }t          t          j        t          j        d	gt          j        g d
g d          d          }t          j	        ||           d S )N)r   r   r   ))r   r?   )r   r   )r   z12r   r   r   r   r   ))r   r   r?   )r   r   r   )r   r   r9  )r   r:  r;  )
r   r   r   ra   r3   r<   r'   r   rB   rC   )r4   r   dsrG   rF   s        r   "test_groupby_rolling_index_changedz.TestRolling.test_groupby_rolling_index_changed
  s     II(444S#J   
 
 
 :B//22D99;;VRVS!(===___   
 
 
 	vx00000r   c                     t          dg i          }|                    d                              d                                          }|                    d          }t          j        t          g d          t          g d          gdd g          |_        t          j
        ||           t          g g d	          }|                    dd
g                              d                                          }|                    dd
g          }t          j        t          g d          t          g d          t          g d          gg d          |_        t          j
        ||           d S )Ns1r   r[   r   float64r  r  r   )r?  s2rB  )r?  rB  N)r   r3   r<   rR   rh   r   from_productr   rk   rB   rl   )r4   rF   rG   s      r    test_groupby_rolling_empty_framez,TestRolling.test_groupby_rolling_empty_frame  s   dBZ((!!$''//q/99==??===.. $02Y'''r)A)A)AB4QU,
 
 
 	fh///Bb1122!!4,//77q7AAEEGG==$=66#0b	***b	***b(((
 %$$
 
 
 	fh/////r   c                    t          ddt          dddd          gddt          dddd          gdd	t          ddd
d          gddt          dddd          gdd	t          dddd          ggg d                              d          }|                    d          }|                                |d<   |                    dd          }|                    d           }t          ddt          dddd          dgddt          dddd          dgddt          dddd          dgdd	t          ddd
d          dgdd	t          dddd          dggg d                              ddg          }t          j        ||           d S )Nr   r     r   r   r   r   Zr   r   Hr   Er!   )rk   r   	eventTimer@  rk   r   count_to_date10drJ  r   c                     | j         d         S )Nr   )shape)r   s    r   r@   z?TestRolling.test_groupby_rolling_string_index.<locals>.<lambda>J  s    ! r   r   r   r   )rk   r   rJ  rK  )	r   r   r   r3   cumcountr<   rA   rB   rl   )r4   r   groupsrolling_groupsrG   rF   s         r   !test_groupby_rolling_string_indexz-TestRolling.test_groupby_rolling_string_index:  s   i4Aq!9!9:i4Aq!9!9:i4Aq!9!9:i4Aq!9!9:i4B!:!:; 433	
 	
 	
 )G

 	 G$$$oo//?+>>%%&<&<==i4Aq!9!93?i4Aq!9!93?i4Aq!9!93?i4Aq!9!93?i4B!:!:C@ EDD	
 	
 	
 )Wg&
'
' 	 	fh/////r   c           	         t          ddgddgd                              dd                              d                                          }t          t	          j        ddgddgg          dd	gt          j        d
dgdd g                    }|                    d          }t          j
        ||           d S )Nr   r   )r/   r   r/   F)sortr   r   r   )r   r   r   r   r   r@  )r   r3   r<   rS   r'   arrayr   r   rh   rB   rl   )r4   rG   rF   s      r   test_groupby_rolling_no_sortz(TestRolling.test_groupby_rolling_no_sortW  s     q!faV4455WUW''WQZZSUU	 	 HsCj3*-..EN(&&)9%OOO
 
 
 ===//
fh/////r   c           
         t          t          d          t          d          dddgz  t          dd|          d          }|                    d                              d	d
d          d                                         }t          g dd| d          }t          j        g d|gdd
g          }t          t          j        ddt          j        ddgd|          }t          j        ||           d S )Nr   r   r   r   20190101)r  periodsunitr+  r   3dr&  r/  r0  r,  )z
2018-12-27z
2018-12-29z
2018-12-31z
2018-12-28z
2018-12-30r)  M8[]r  )r   r   r   r   r   r   r   r   r   )r   rj   r	   r3   r<   rM   r   r   ri   r   r'   r   rB   rC   )r4   r[  r   rG   dtir   rF   s          r   $test_groupby_rolling_count_closed_onz0TestRolling.test_groupby_rolling_count_closed_onh  s5    88 88c3Z"z14HHH	 
 
 JJwWTfVW44Y@UWW 	
     ---

 

 

 #... F#
 
 
 VS#rvsC0
 
 

 	vx00000r   )r   kwargsr<   r   r   	expandingc                    t          ddgddgddgddgddggddg          } t          |                    d          |          di |                                }t          t          j        gdz  t          j        dt          j        ddgd	t          j        g d
dd g                    }|                    d          }t          j
        ||           d S )Nr   r   r   r   r   r@  r   g&?r   )r   r   )r   r   )r   r   r   rZ   r   r   r   )r   ra   r3   semr'   r   r   r   rh   rB   rl   )r4   r   ra  r   rG   rF   s         r   test_groupby_rolling_semz$TestRolling.test_groupby_rolling_sem  s     1XQx#qC8c1X>c

 
 
 0C$//99&99==??6(Q,bfgrvw%PQQ(BBB3PT+  
 
 
 ===--
fh/////r   )rollingskeyr   r   Nrk   c                 L   t          t          ddt          j        g          g dg dd          }|dk    r|                    d          }t          j        t          | d	          5   |                    d
          j	        di | d d d            d S # 1 swxY w Y   d S )Nz2020-06-01 12:00z2020-06-01 14:00r   r   r   rk   r   z values must not have NaTr-   r   60min)rj  )
r   r
   r'   r   r   r0   r1   
ValueErrorr3   r<   )r4   rg  rh  r   s       r   "test_groupby_rolling_nans_in_indexz.TestRolling.test_groupby_rolling_nans_in_index  s   
  "46H"&!QRRYYYY 
 
 '>>c""B]:-N-N-NOOO 	9 	9#BJJsOO#88x888	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9s   +!BB BrY   c                 d   g dg dg}t          j        |d          }t          g d|          }|                    ddg|                              d	                                          }t          g d
t          j        g dg d                    }t          j        ||           d S )Nval1ro  val2r   r   r   r   r   r   r   rX   r   )r   r   r   )ro  ro  ro  ro  rr  )rp  rp  rp  rp  )r   r   r   r   )	r   ri   r   r3   r<   r=   r   rB   rC   )r4   rY   arraysrk   srG   rF   s          r   test_groupby_rolling_group_keysz+TestRolling.test_groupby_rolling_group_keys  s    
 +**,D,D,DE&v5EFFF999E***FF+
CCKKANNSSUUOO(  
 766  

 

 

 	vx00000r   c                    g dg dg}t          j        |d          }t          g dt          d          d|          }|                    dd	g                              d
                                          }t          dg dit          j        g dg d                    }t          j	        ||           d S )Nrn  rq  r   )r   r   r   r   r%   r   r   r   r   r   )r   r   r   )ro  r   ro  ro  rw  )rp  r   rp  rp  )r   r   r   r   )
r   ri   r   rj   r3   r<   r=   r   rB   rl   r4   rs  rk   r   rG   rF   s         r   1test_groupby_rolling_index_level_and_column_labelz=TestRolling.test_groupby_rolling_index_level_and_column_label  s    ***,D,D,DE&v5EFFFYYYU1XX66eDDDVSM**22155::<<///"(  
 433  

 

 

 	fh/////r   c                 4   t          t          j        d          ddgdz  d          }|                    d                              d                                          }t          j        g ddd g	          }t          j	        |j
        |           d S )
Nr   r   r   rZ   r   r   r   )r   r   )r   rZ   )r   r   r   r  )r   r   )r   r   r   )r   r'   r(   r3   r<   r=   r   r   rB   assert_index_equalrk   r4   r   rG   rn   s       r   )test_groupby_rolling_resulting_multiindexz5TestRolling.test_groupby_rolling_resulting_multiindex  s    
 RYs^^1a&1*==>>C((++0022#/LLL+
 
 
 	flN;;;;;r   c                 D   t          t          j        d          ddgdz  g ddz  d          }|                    dd	g                              d                                          }t          j        g d
g d          }t          j	        |j
        |           d S )Ng      (@r   r   r   r   r   r   rZ   r   r   r   r   ))r   r   r   )r   r   rZ   )r   r   r#   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   rZ   r   )r   rZ   r   )r   rZ   r   )r   r   Nr   )r   r'   r(   r3   r<   rR   r   r   rB   r{  rk   r|  s       r   *test_groupby_rolling_resulting_multiindex2z6TestRolling.test_groupby_rolling_resulting_multiindex2  s    RYt__Aq6A:LLLSTDTUUVVS#J''//226688#/   #""
 
 
" 	flN;;;;;r   c                 r   t          t          j        d          ddgdz  g ddz  d          }|                    dd	          }|                    d
                              d                                          }t          j        g dg d          }t          j
        |j        |d           d S )Nr   r   r   rZ   r  r   r   T)appendr   r   ))r   r   r   r   )r   rZ   r   )r   r   r   )r   r   r   )r   r   rZ   )r   r   r   )r   r   rZ   )r   Nr   r   equiv)exact)r   r'   r(   r   r3   r<   r=   r   r   rB   r{  rk   r|  s       r   *test_groupby_rolling_resulting_multiindex3z6TestRolling.test_groupby_rolling_resulting_multiindex3  s    RYs^^1a&1*<<<RSCSTTUU\\#d\++C((++0022#/	 	 	 #""
 
 
 	flN'JJJJJJr   c                    |                     dd          }d}t          j        t          |          5  |                    d           j        }d d d            n# 1 swxY w Y   |                    d          }d}t          j        t          |          5  |                    d	           j        }d d d            n# 1 swxY w Y   t          j        ||           d S )
Nr   FrX   r]   r-   c                 P    |                      d                                          S r_   r<   rR   r>   s    r   r@   zUTestRolling.test_groupby_rolling_object_doesnt_affect_groupby_apply.<locals>.<lambda>  s    1)9)9);); r   rZ   r[   c                 P    |                      d                                          S r_   r  r>   s    r   r@   zUTestRolling.test_groupby_rolling_object_doesnt_affect_groupby_apply.<locals>.<lambda>!  s    qyy||'7'7'9'9 r   )r3   rB   rf   rg   rA   rk   r<   r{  )r4   r)   rD   r5   rF   _rG   s          r   7test_groupby_rolling_object_doesnt_affect_groupby_applyzCTestRolling.test_groupby_rolling_object_doesnt_affect_groupby_apply  sx   su55G'SAAA 	C 	Cww;;<<BH	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	CIIQIG'SAAA 	A 	AWW99::@F	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A
fh/////s#   AA!$A!CC
C)r\   rK   r  rF   r   r/  )Nr   r   r   Nr   r   r   )NNr   r   NNr   r   rZ   )NNNNNNNNright)NNNr   NNNr   c           	      v   t          g d          }|                    g d                              |||                              d          }t          t	          j        |d          t          t	          j        ddg          g d	gg d
g dg                    }t          j        ||           d S )N)r   r   r   rZ   r   r   r   r#   )r   r   r   r   r   r   r   r   )r\   rK   r  r   rA  r  r   r   )r   r   r   r   rZ   r   r   r   )r   r   r   r   r   r   r   r   )r   r   rZ   r   r   r   r   r   )levelscodesr   )	r   r3   r<   rr   r'   rV  r   rB   rl   )r4   r\   rK   r  rF   r   rG   expected_results           r   test_groupby_rolling_varz$TestRolling.test_groupby_rolling_var$  s     ///00JJ///00WFFWKKSVV 	
 $HXY///!Q((*B*B*BC///1I1I1IJ  
 
 
 	fo66666r   r   )r    )r   r   r   r   c                 T   t          ddggdz  ddggdz  z   ddggdz  z   |          }|                    d	          }|j                            d
          }|                    d          }|                                }d	|j        vsJ t          j        |j        |           d S )Nr   r   r!   r   r"   r   r#   r@  r   T)deeprZ   )	r   r3   objr  r<   rR   r   rB   rl   )r4   r   r   rD   original_objrN   rG   s          r   test_by_column_not_in_valuesz(TestRolling.test_by_column_not_in_values=  s    
 Ax"}Ax"}4Ax!|CWUUUJJsOOuzztz,,IIaLL&.((((
ae\22222r   c                    g dg dg}t          j        |d          }t          dg di|          }|                    d	          d                             d
                                          }t          t          j        dt          j        dgt          j	        g dg d          d          }t          j        ||           d S )N)Falconr  Parrotr  )CaptiveWildr  r  )AnimalTyper   z	Max Speed)g     `x@g     u@g      >@g      4@r   r   r   r   g      @g      I@))r  r  r  )r  r  r  )r  r  r  )r  r  r  )r  r  r  r   )r   ri   r   r3   r<   rR   r   r'   r   r   rB   rC   rx  s         r   test_groupby_levelzTestRolling.test_groupby_levelJ  s     544222
 &v5GHHH%?%?%?@NNN!$$[199!<<@@BBVUBFD)(   322   
 
 
 	vx00000r   zby, expected_datar   num)      Y@     b@r        i@
2018-01-01
2018-01-02)r  r  r       @o@)r&  r  c                 *   g dg dg dg dg}t          |g d          d                             d| d	          d<                       dg          fd
|D             }                    |d                              dd                                          }dg di}|                    |           t          |j                  }d|v r"|d                             d| d	          |d<   t          j	        ||           d S )N)r   r  r  )r   r  r  )r   r  r  )r   r  r  )r   r&  r  r@  r&  r]  r^  c                 0    g | ]}t          |          S r   )ra   )r   attrr   s     r   r   z3TestRolling.test_as_index_false.<locals>.<listcomp>  s#    222tT""222r   F)as_indexr   r   r   r   )r   r   r   r   r   )
r   astyper   r3   r<   r=   updaterk   rB   rl   )	r4   r9   r   r[  r   gp_byrG   rF   r   s	           @r   test_as_index_falsezTestRolling.test_as_index_falseb  s]   * '&&&&&&&&&&&	
 t%:%:%:;;;Z&&}T}}}556
\\6(##2222r222JJuuJ--55QA5NNSSUU 	 .../&&&(
 
 
 ]""'/66}T}}}EEHV
fh/////r   c                 |   t          j        |          j        }d}t          j         |d          |          }d|d<   d}t          j        ||          }t           j        |d<   d|d<   t          ||d                              d          }|                    d          d                             d	d
          	                                }t          |dt          j        t          dgdz  dgz   |d          t          dgdz  dgz   |d          g                    }	t          j        ||	           d S )N  r   r   g52DE)rk   adl2rk   r  r   r   i  )r  r   r   )r'   r  typerepeatr   r   r   r3   r<   r=   r   r   ri   r   rB   rC   )
r4   any_int_numpy_dtypetypsizeidxvalarrr   rG   rF   s
             r   test_nan_and_zero_endpointsz'TestRolling.test_nan_and_zero_endpoints  sT   h*++0iA%%BiT""AB 
 

 )G

 	 G$$V,44BA4NNSSUU(1#)qc/7CCC1#)qc/7CCC 	
 	
 	
 	vx00000r   c                    g d}dt          fd|D                       }t          j        t          d          5  |                    d                              dd	           d d d            d S # 1 swxY w Y   d S )
N)r   r   r   r   r  c                 H    g | ]}t          d |z  z            |dz   ddS )r   r   *   )tr?   r   r$  )r   r?   secs     r   r   zBTestRolling.test_groupby_rolling_non_monotonic.<locals>.<listcomp>  s7    RRRA9QUS[))AB??RRRr   z.* must be monotonicr-   r   r  3s)r   r\   )r   r0   r1   rk  r3   r<   )r4   shuffledr   r  s      @r   "test_groupby_rolling_non_monotonicz.TestRolling.test_groupby_rolling_non_monotonic  s      <<RRRRRRR
 
 ]:-DEEE 	9 	9JJsOO##s4#888	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9s   +A66A:=A:c                 V   g dg dg dg dg dg dg dg dg d	g d
g
}t          |g d          }t          |d                   |d<   |                    d          }d}t          j        t
          |          5  |                    d                              d                              d           }d d d            n# 1 swxY w Y   |                    d          	                    dd          d         
                                }t          j        ||           d S )N)Davidz1/1/2015d   )r  z1/5/2015  )r  z	5/30/20152   )r  z	7/25/2015r  )Ryanz1/4/2014r  )r  z	1/19/2015r  )r  z	3/31/2016r  )Joez7/1/2015r  )r  z9/9/2015r  )r  z
10/15/2015r  )r   r&  amount)r   r   r&  r]   r-   r   c                 \    |                      d          d                                         S )N180Dr  r  r>   s    r   r@   z4TestRolling.test_groupby_monotonic.<locals>.<lambda>  s#    6!2!28!<!@!@!B!B r   r  rM  r  )r   r
   sort_valuesrB   rf   rg   r   r3   rA   r<   rR   rC   )r4   r   r   r5   rF   rG   s         r   test_groupby_monotonicz"TestRolling.test_groupby_monotonic  s    '&&&&&&&&&&&%%%&&&%%%$$$$$$%%%
 D*D*D*DEEE F,,6
^^F##G'SAAA 	 	V$$BBCC 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 F##++Fv+>>xHLLNN
vx00000s   >=CCCc                 N   t          ddd          }t          dgdz  dgdz  z   dgd	z  z   t          j        ||f          t          j        d
          d          }d}t          j        t          |          5  |                    d          	                    d          
                    d           }d d d            n# 1 swxY w Y   |	                    d                              dd          j                                        }t          j        ||           d S )Nz2016-01-01 09:30:00r!   rt  )r  rZ  freqr   r   r"   r   r#   r$   r   r]   r-   r   r   c                 \    |                      d          d                                         S )N4sr   r;   r>   s    r   r@   zJTestRolling.test_datelike_on_monotonic_within_each_group.<locals>.<lambda>  s!    4!5!:!:!<!< r   r  rM  )r	   r   r'   concatenater(   rB   rf   rg   r   r3   rA   r<   r   r=   rC   )r4   datesr   r5   rF   rG   s         r   ,test_datelike_on_monotonic_within_each_groupz8TestRolling.test_datelike_on_monotonic_within_each_group  s\    !6MMMS2Xb(A372^UEN33Yr]] 
 
 H'SAAA 	 	S!!<<== 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 C((#(668==??
vx00000s   ;=CCCc                 2   t          dgdz  dgdz  z   d dD             dz  t          d          d          }t          j        t          d	          5  |                    d
                              dd           d d d            d S # 1 swxY w Y   d S )Nr   r   r   c                 0    g | ]}t          |d d           S r   r$  )r   years     r   r   zPTestRolling.test_datelike_on_not_monotonic_within_each_group.<locals>.<listcomp>  s$    KKKia++KKKr   )i  i  rF  r   r   z&Each group within B must be monotonic.r-   r   365Dr   rM  )r   rj   r0   r1   rk  r3   r<   )r4   r   s     r   0test_datelike_on_not_monotonic_within_each_groupz<TestRolling.test_datelike_on_not_monotonic_within_each_group  s    S1WsQw&KK8JKKKaO1XX 
 
 ]:-UVVV 	4 	4JJsOO##Fs#333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4s   +BBB)3r  r  r  r6   rH   rO   r0   markparametrizero   rw   r   r   r   r   r   r   r   r   r   r   r  r  r!  r4  r7  r=  rD  rS  rW  r`  rf  rl  ru  ry  r}  r  r  r  r  r   r   r  r  r   r  r  r  r  r  r  r   r   r   r+   r+   1   s<       + + +
1 1 1$1 1 1 [	
 	
 	
 0 0 0 [S5%.110 0 210 [MMM 0 0 0" [.&!ucl0KLL0 0 ML00 [S65/220 0 320" [S65/221 1 321 [
3*sCj)	*VsCj3*5M,NO 0 0	 0@0 0 0 0 0 0. [73+U|9TUU1 1 VU1?0 ?0 ?0B1 1 1, []III660 0 76041 1 120 0 081 1 161 1 1< [VeU^441 1 541(0 0 060 0 0:0 0 0"&1 &1 &1P [
!44	5R7HI 0 0	 0  [c{C0D$<2IJ 9 9 9 [\D%=991 1 :91,0 0 0(< < << < <.K K K(
0 
0 
0 [76EEEF6GGGH6KKKL7JJJK		
 7 7 7  [*J*Iz+BCCc3ZP 3 3 31 1 10 [Ve999:;w "	,//!	,//!	,//!	,//	 877 	
 $0 0% $061 1 1>	9 	9 	9 1  1  1D1 1 12
4 
4 
4 
4 
4r   r+   c                   d   e Zd Zej        d             Zej                            dg d          d             Zej                            dddg          d             Z	ej                            dg d	          d
             Z
ej                            dddg          d             Zd ZdS )TestExpandingc                 n    t          dgdz  dgdz  z   dgdz  z   t          j        d          d          S r    r&   )r4   s    r   framezTestExpanding.frame  s<    sRx1#(2aS1W<29R==QQRRRr   rP   rQ   c                    |                     dd          }|                                } t          |                      }d}t          j        t
          |          5  |                    fd          }d d d            n# 1 swxY w Y   |                    dd          }t          j	        |d         t          d	          g          }||_        t          j        ||           d S )
Nr   FrX   r]   r-   c                 X     t          |                                                       S r   ra   rb  rb   s    r   r@   z.TestExpanding.test_expanding.<locals>.<lambda>  s"    )B)B)B)D)D r   r   rc   r$   r3   rb  ra   rB   rf   rg   rA   rh   r   ri   rj   rk   rl   	r4   rP   r  rD   rN   rG   r5   rF   rn   s	    `       r   test_expandingzTestExpanding.test_expanding  s,    MM#%M00KKMMAG'SAAA 	F 	FwwDDDDEEH	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F ==1=--#/sU2YY0GHH'
fh/////   "BBBrq   rr   c                    |                     dd          }|                                } t          |          d          }d}t          j        t
          |          5  |                    fd          }d d d            n# 1 swxY w Y   |                    dd	
          }t          j	        |d         t          d          g          }||_        t          j        ||           d S )Nr   FrX   r   rt   r]   r-   c                 \     t          |                                           d          S )Nr   rt   r  rb   s    r   r@   z3TestExpanding.test_expanding_ddof.<locals>.<lambda>   s'    )B)B)B)J)J)J r   r   rc   r$   r  r  s	    `       r   test_expanding_ddofz!TestExpanding.test_expanding_ddof  s1   MM#%M00KKMMAA&&&G'SAAA 	L 	LwwJJJJKKH	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L ==1=--#/sU2YY0GHH'
fh/////rp   rx   ry   c                    |                     dd          }|                                }|                    d          }d}t          j        t
          |          5  |                    fd          }d d d            n# 1 swxY w Y   |                    dd	
          }t          j	        |d         t          d          g          }||_        t          j        ||           d S )Nr   FrX   r   r   r]   r-   c                 V    |                                                      d          S )Nr   r   )rb  r   r   s    r   r@   z7TestExpanding.test_expanding_quantile.<locals>.<lambda>3  s"    !++--00M0RR r   r   rc   r$   )r3   rb  r   rB   rf   rg   rA   rh   r   ri   rj   rk   rl   )	r4   rx   r  rD   rN   rG   r5   rF   rn   s	    `       r   test_expanding_quantilez%TestExpanding.test_expanding_quantile(  s!    MM#%M00KKMMC}==G'SAAA 	 	wwRRRR H	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 ==1=--#/sU2YY0GHH'
fh/////s   !BB
B
r   r   c                                         d          }|                                } t          |                    }fd}d}t          j        t
          |          5  |                    |          }d d d            n# 1 swxY w Y   t          t          dd                    t          t          dd                    z   }	t          j
        |j        |	d	f<   t          j
        |d<   t          j        ||            t          |j                  d
          }fd}
d}t          j        t
          |          5  |                    |
          }d d d            n# 1 swxY w Y   t          j        ||           d S )Nr   c                 Z     t          |                                                     S r   r  )r?   rP   r  s    r   func_0z5TestExpanding.test_expanding_corr_cov.<locals>.func_0C  s%    ,71;;==!,,U333r   r]   r-   r!   =   H   q   r   Tr   c                 f     t          | j                                                  d          S )NTr   )ra   r   rb  rb   s    r   func_1z5TestExpanding.test_expanding_corr_cov.<locals>.func_1T  s*    .713==??A..====r   )r3   rb  ra   rB   rf   rg   rA   r   rj   r'   r   ilocrl   r   rC   )r4   rP   r  rD   rN   rG   r  r5   rF   null_idxr  s    ``        r   test_expanding_corr_covz%TestExpanding.test_expanding_corr_cov<  s   MM#KKMMAu%%	4 	4 	4 	4 	4 	4 H'SAAA 	' 	'wwvH	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' b"&&eBnn)=)==%'Vhk" 
fh/// a$///	> 	> 	> 	> 	> H'SAAA 	' 	'wwvH	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	'
vx00000s$   (B

BBE--E14E1c                    |                     dd          }|                                }|                    d           }d}t          j        t
          |          5  |                    fd          }d d d            n# 1 swxY w Y   |                    dd	
          }t          j        |d         t          d          g          }||_
        t          j        ||           d S )Nr   FrX   c                 *    |                                  S r   r   r>   s    r   r@   z4TestExpanding.test_expanding_apply.<locals>.<lambda>a  r   r   r   r]   r-   c                 X    |                                                      d           S )Nc                 *    |                                  S r   r   r   s    r   r@   zFTestExpanding.test_expanding_apply.<locals>.<lambda>.<locals>.<lambda>e  s     r   r   )rb  rA   r   s    r   r@   z4TestExpanding.test_expanding_apply.<locals>.<lambda>e  s&    !++----.?.?S-II r   r   rc   r$   )r3   rb  rA   rB   rf   rg   rh   r   ri   rj   rk   rl   )	r4   r   r  rD   rN   rG   r5   rF   rn   s	    `       r   test_expanding_applyz"TestExpanding.test_expanding_apply\  s%   MM#%M00KKMM **44G'SAAA 	 	wwIIII H	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 ==1=--#/sU2YY0GHH'
fh/////r  N)r  r  r  r0   fixturer  r  r  r  r  r  r  r  r   r   r   r  r    s       ^S S ^S [CCC 0 0 0 [S5%.110 0 210 [MMM 0 0 0" [S65/221 1 321>0 0 0 0 0r   r  c            
          e Zd Zej                            ddg dgdej        dddggdej        d	d
dggg          d             Zej                            ddej        dddggdej        d	ddggg          d             Z	d Z
d Zd ZdS )TestEWMzmethod, expected_datar=   )r   gUUUUUU?gm۶m?g""""""@rq   g۞?g?gt ?rr   r   gn۶m۶?g++?c                 J   t          dgdz  t          d          d          } t          |                    d                              d          |                      }t          d|it          j        g ddd g	          
          }t          j        ||           d S )Nr   rZ   r%   r   r   comr   )r   r   r   r   r   r   )	r   rj   ra   r3   ewmr   r   rB   rl   r4   methodr   r   rG   rF   s         r   test_methodszTestEWM.test_methodsp  s     cUQYU1XX6677>C,,,55v>>@@- (   Dk  
 
 
 	fh/////r   r   r   r   r   grڶ?g߿yq+?c                    t          dgdz  t          d          d          } t          |                    d                              d                                }t          d|it          j        g dg d	
                    }t          j        ||           |                    d          dg         	                    fd          }t          j        ||           d S )Nr   rZ   r%   r   r   r  r   ))r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   NNr   r   c                 \     t          |                     d                                S )Nr   r  )ra   r  )r?   r  s    r   r@   z/TestEWM.test_pairwise_methods.<locals>.<lambda>  s&    5gaeeennf5577 r   )
r   rj   ra   r3   r  r   r   rB   rl   rA   r  s    `    r   test_pairwise_methodszTestEWM.test_pairwise_methods  s    cUQYU1XX6677>C,,,55v>>@@- (   (''  
 
 
 	fh///::c??C5)//7777
 
 	fh/////r   c                 0   d}|                     d          }|                    d                              ||                                          }t	          dg dit          j        g ddd g          	          }t          j        ||           d S )
N23 daysr   r   halflifetimesr   )
r   gCus=?g;pGR?gZkB?r   g>(?g8Kr?r   gҧU?gA9w?)
r   r   )r   r   )r   r   )r   r   rd  r   )r   r   )r   r   )r   r#   r   r   )	popr3   r  r=   r   r   r   rB   rl   )r4   r   r  r  rG   rF   s         r   
test_timeszTestEWM.test_times  s    $$$$S))--xu-MMRRTT    (   Dk  
 
 
> 	fh/////r   c                 6   d}|                     d          }|                    d          }|                    ||                                          }|                    ||j                                                  }t          j        ||           d S )Nr  r   r   r  )r  r3   r  r=   valuesrB   rl   )r4   r   r  r  r   rG   rF   s          r   test_times_arrayzTestEWM.test_times_array  s    $$  %%77<<>>6685<6@@EEGG
fh/////r   c                    t          g dt          ddd          t          d          d          }|                    d                              dd	
          }|                                }t          t          ddd          dgdz  dt          j        g dt          t          d                    gdd g                    }t          j
        ||           |d                                         }t          dgdz  t          j        g dt          ddd          gdd	g          d          }t          j        ||           |                                }t          j
        ||           d S )N)r   r   r   r   r   z2021-9-1r   h)rZ  r  )r   	timestampr   r   1hr  rM  r   )r  r   r   r   r   r   )r   r	   rj   r3   r<   rM   r   ri   r   rB   rl   r   rC   )r4   r   grprG   expected_dfexpected_seriess         r   "test_dont_mutate_obj_after_slicingz*TestEWM.test_dont_mutate_obj_after_slicing  s   ///'
ACHHH1XX 
 
 jj&&t&<<'
ACHHHUQY  (***DqNN;D$<  
 
 
 	fk222S!! EAI(---z13??? [)   

 

 

 	v777
fk22222r   N)r  r  r  r0   r  r  r'   r   r	  r  r  r  r  r   r   r   r  r  o  s
       [VVVWRVXx:;RVS"46HIJ	
 0 0 0$ [
263Q'	(5263(2S*TU 0 0	 0.%0 %0 %0N0 0 0%3 %3 %3 %3 %3r   r  c                     t          g dg dd          } |                     dg          }|                    d                              |           }t	          j        g ddd g          }t          t          j        t          j        t          j        gt          j        d	d	gd|
          }t          j	        ||           d S )N)r  r  r  rZ   r   r   r   r   r   r   ))r  r   )r  r   )r  r   r   r   r   
r   r3   r<   r   r   r   r'   r   rB   rl   r   r   rG   rk   rF   s        r   .test_rolling_corr_with_single_integer_in_indexr$    s    	+++)))<<	=	=B	SE		BZZ]]b))F"#D#D#DSRVKXXXEvrvrv&bfc3-?@@  H &(+++++r   c                     t          g dg dd          } |                     dg          }|                    d                              |           }t	          j        g ddd g          }t          t          j        t          j        t          j        gt          j        d	d	gd|
          }t          j	        ||           d S )N)r   r   r   r   r   r   r   r!  ))r   r   )r   r   )r   r   r   r   r   r"  r#  s        r   &test_rolling_corr_with_tuples_in_indexr&  	  s    	   	
 	

 
B& 
SE		BZZ]]b))F"///T{  E vrvrv&bfc3-?@@  H &(+++++r   )numpyr'   r0   pandasr   r   r   r   r   r   r	   r
   pandas._testing_testingrB   pandas.api.indexersr   pandas.core.groupby.groupbyr   r   r   r)   r+   r  r  r$  r&  r   r   r   <module>r-     s       	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	       + + + + + + 3 3 3 3 3 3   0 O O OM4 M4 M4 M4 M4 M4 M4 M4`k0 k0 k0 k0 k0 k0 k0 k0\K3 K3 K3 K3 K3 K3 K3 K3\	, 	, 	,, , , , ,r   