
    Pic                        d dl Zd dlZd dlmZ d dlmZmZmZm	Z	m
Z
mZmZmZ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)Pandas4Warning)		DataFrameDatetimeIndexIndex
MultiIndexNamedAgg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        t/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/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d) Zej                            d*d+d,g          d-             Zd. Zd/ Zd0 Zd1 Zej                            d2d3d4dd5e j!        de j!        ddgfd6i e j!        de j!        dd7gfg          d8             Z"ej                            d9d:d;id;fd:d<id=fg          d>             Z#ej                            d?ddg          d@             Z$dA Z%dB Z&dC Z'dD Z(dE Z)ej                            dFd4dGdHg dIfd4d4dHg dJfdKdKdHg dLfdKdKdMg dNfg          dO             Z*ej                            dP e+j,        dQdRg          dSdTgg          dU             Z-dV Z.ej                            dWdXgdYg dZigdXd=g e/d[           e/d\           e/d[           e/d\          gg d]d^gg          d_             Z0d` Z1da Z2db Z3dc Z4dd Z5d<S )e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_argument5   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   )	r5   r   r   applyr>   r?   tmassert_series_equalr   )r6   r+   g	g_mutatedexpectedresults         r   test_getitemzTestRolling.test_getitem:   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_periodsr:   c                 T    |                      dd                                          S )Nr   r   rL   )r>   countr@   s    r   rB   z3TestRolling.test_getitem_multiple.<locals>.<lambda>Q   s"    qyyy/J/J/P/P/R/R r   )r5   r>   r   r   rC   rO   rD   rE   )r6   r+   rF   rrG   rH   rI   s          r   test_getitem_multiplez!TestRolling.test_getitem_multipleL   s    s##IIaQI''
s333	;$$%R%RSS
vx000
vx00000r   f
sumr?   minmaxfirstlastrO   kurtskewnuniquec                 L   |                     dd          }|                    d          } t          |                      }|                    fd          }t	          j        |d         t          d          g          }||_        t          j	        ||           d S )Nr   F
group_keys   windowc                 Z     t          |                     d                                S Nr_   getattrr>   rA   rR   s    r   rB   z*TestRolling.test_rolling.<locals>.<lambda>m   s$    %=WQYYq\\1%=%=%?%? r   r&   
r5   r>   re   rC   r   from_arraysrangeindexrD   assert_frame_equalr6   rR   r+   rF   rP   rI   rH   expected_indexs    `      r   test_rollingzTestRolling.test_rollingY   s      su55IIQIA77????@@#/C%))0LMM'
fh/////r   stdvarc                 P   |                     dd          }|                    d          } t          |          d          }|                    fd          }t	          j        |d         t          d	          g          }||_        t          j	        ||           d S )
Nr   Fr]   r_   r`   r   ddofc                 ^     t          |                     d                    d          S )Nr_   r   rr   rd   rf   s    r   rB   z/TestRolling.test_rolling_ddof.<locals>.<lambda>y   s)    %=WQYYq\\1%=%=1%E%E%E r   r&   rg   rl   s    `      r   test_rolling_ddofzTestRolling.test_rolling_ddofs   s    su55IIQIAA&&&77EEEEFF#/C%))0LMM'
fh/////r   interpolationlinearlowerhighermidpointnearestc                 J   |                     dd          }|                    d          }|                    d          }|                    fd          }t	          j        |d         t          d	          g          }||_        t          j	        ||           d S )
Nr   Fr]   r_   r`   皙?rv   c                 X    |                      d                              d          S )Nr_   r~   r   )r>   quantilerA   rv   s    r   rB   z3TestRolling.test_rolling_quantile.<locals>.<lambda>   s$    aiill++C}+MM r   r&   )
r5   r>   r   rC   r   rh   ri   rj   rD   rk   )r6   rv   r+   rF   rP   rI   rH   rm   s    `      r   test_rolling_quantilez!TestRolling.test_rolling_quantile   s     su55IIQIC}==77MMMM
 
 $/C%))0LMM'
fh/////r   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   r_   r   )valueidx1idx2r   r   )r   r   r   levelr_   r      )r   r   r   namescolumnsrj   )r   ri   	set_indexre   r5   r>   r)   nanr   rh   listrD   rk   )r6   rR   expected_valdfotherrI   expected_datarH   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                                         d          }|                    d          } t          |                    }fd}|                    |          }t          j        |d<   t          j        ||           d S )Nr   r_   r`   c                 \     t          |                     d                              S rc   rd   )rA   rR   r+   s    r   funczITestRolling.test_rolling_corr_cov_other_diff_size_as_groups.<locals>.func   s'    +7199Q<<++J777r   )r5   r>   re   rC   r)   r   rD   rk   r6   rR   r+   rF   rP   rI   r   rH   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 774== 
fh/////r   c                     |                     d          }|                    d          } t          |j                  d          }fd}|                    |          }t          j        ||           d S )Nr   r_   r`   Tpairwisec                 h     t          | j                            d                    d          S )Nr_   Tr   )re   r   r>   rf   s    r   r   z8TestRolling.test_rolling_corr_cov_pairwise.<locals>.func   s,    -713;;q>>1--t<<<<r   )r5   r>   re   r   rC   rD   rE   r   s    `      r   test_rolling_corr_cov_pairwisez*TestRolling.test_rolling_corr_cov_pairwise   s    s##IIQI a$///	= 	= 	= 	= 	= 774==
vx00000r   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   r_   r   r   r   r   r   r_   r   r   r   )r   r   ))r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   NNr   rj   )
r   r5   r>   re   r)   r   r   from_tuplesrD   rk   )r6   r   expected_valuesr   rolrI   rH   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                 L   |                     dd          }|                    d          }|                    d           }|                    fd          }t          j        |d         t          d	          g          }||_        t          j        ||           d S )
Nr   Fr]   r_   r`   c                 *    |                                  S NrT   r@   s    r   rB   z0TestRolling.test_rolling_apply.<locals>.<lambda>       15577 r   rawc                 Z    |                      d                              d           S )Nr_   c                 *    |                                  S r   r   ys    r   rB   zBTestRolling.test_rolling_apply.<locals>.<lambda>.<locals>.<lambda>   s    !%%'' r   r   )r>   rC   rA   r   s    r   rB   z0TestRolling.test_rolling_apply.<locals>.<lambda>   s(    QYYq\\%7%78I8Is%7%S%S r   r&   )	r5   r>   rC   r   rh   ri   rj   rD   rk   )r6   r   r+   rF   rP   rI   rH   rm   s    `      r   test_rolling_applyzTestRolling.test_rolling_apply   s    su55IIQI **4477SSSSTT#/C%))0LMM'
fh/////r   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 )Nr1   r   barr   r   r'   r   ))r   r   )r   r_   )r   r   )r1   r   )r1   r   )r1   r          @r   r   r   r`   )r   r5   r   r   r   r)   r   r>   rT   rD   rk   )r6   r   rF   mirH   rI   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   rj   name)
r   r5   r   r>   rC   r	   r   r   rD   rE   )r6   expected_value	raw_valuer   r   rI   rH   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   )centerra   r   )r   r   r   r   r   r_   r   )r   r_   r   r_   )r   r   r   r   r   r      r   r   r      r%   	   )r   r   r   r   r   r   r   r   r   r_   r   r   r   r   r   r   r   r%   r   r   )r   r   r   )rj   r   r   )
r   r   r   r   r   r   r   r   r   r   )r	   ri   r5   r>   r?   r)   r   r   r   rD   rE   r   rk   )r6   seriesrI   rH   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_2r_   r   )Dategbr   )datar   r   Tr   )onr   rM   r   )
r         ?r   g      @      @g      @      @      @r   r   r   r   rj   )r   r   ri   r5   r>   r   r?   r   rh   r	   rD   rE   )r6   r   rI   r   rH   s        r   test_groupby_rolling_center_onz*TestRolling.test_groupby_rolling_center_on]  s    "<>> kAoa7r 
 
 
 JJtWQ6$AW>>4466 	
 #RXr&z$:4.QQQ>>>
 
 

 	vx00000r   rM   )r   r_   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   rM   r   )
r   r   r   r   r         @      @r   r          @c                     g | ]}|d z   S )      $@r   ).0rA   s     r   
<listcomp>zGTestRolling.test_groupby_rolling_center_min_periods.<locals>.<listcomp>  s    3331a$h333r   r   r   )r   ri   r5   r>   r?   reset_indexrV   r)   r   rD   rk   )r6   rM   r   window_sizerI   
grp_A_mean
grp_B_meannum_nansnansgrp_A_expectedgrp_B_expectedrH   s               r   'test_groupby_rolling_center_min_periodsz3TestRolling.test_groupby_rolling_center_min_periodss  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   r5   r>   rV   r)   r   r   r   rD   rk   r	   rE   r6   r   rI   rH   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)r6   
num_valuesrM   r   closedstependstarts           r   get_window_boundszXTestRolling.test_groupby_rolling_custom_indexer.<locals>.SimpleIndexer.get_window_bounds  sV     3>2Ed..1i
"(;;;a?d..#.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  rL   ra   rM   )r   r   r5   rj   r>   rT   rD   rk   )r6   r  r   rI   rH   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   r_   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   ri   r5   r>   rT   r	   r)   r   r   
from_framerD   rE   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          g dg dg dd          }|                    d                              d                              t	          dt
                    t	          d	t                    
          }t          t          j        ddt          j        ddgt          j        ddt          j        ddgd
t          ddgg dgg dg dgdd g                    }t          j        ||           d S )Ncatdogr6  r7  r6  r7  333333"@r         #@g      A@      (@r   皙@r   g#@g     h@r   g      E@kindheightweightr?  r   rA  columnaggfuncr@  total_weight
min_height1@gfffff3@     i@g      n@r9  r:  r   r   r6  r7  r   r   r   r   r_   r   r   r   r   r   r   r   r   r   r_   r   r   r   r   r   )r   r5   r>   aggr   rT   rU   r)   r   r   rD   rk   r  s       r   !test_groupby_rolling_agg_namedaggz-TestRolling.test_groupby_rolling_agg_namedagg  s1   BBB:::<<< 
 
 JJvWQZZS%XsCCC#8SAAA    	 !#tRVUE J!vsCcB  !3!3!34###%7%7%78tn  

 

 

 	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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   r_   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.  r/  r   r0  r   r   r1  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   rV   rU   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   rA   )r   r   )r   z12r   r   r   r   r   ))r   r   rA   )r   r   r   )r   r   rS  )r   rT  rU  )
r	   r   r   re   r5   r>   r)   r   rD   rE   )r6   r   dsrI   rH   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   )rY  s2r\  )rY  r\  N)r   r5   r>   rT   dropr   from_productr   rj   rD   rk   )r6   rH   rI   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#   )rj   r   	eventTimerZ  rj   r   count_to_date10Dre  r   c                     | j         d         S )Nr   )shape)r   s    r   rB   z?TestRolling.test_groupby_rolling_string_index.<locals>.<lambda>Z  s    ! r   r   r   r   )rj   r   re  rf  )	r   r
   r   r5   cumcountr>   rC   rD   rk   )r6   r   groupsrolling_groupsrI   rH   s         r   !test_groupby_rolling_string_indexz-TestRolling.test_groupby_rolling_string_indexJ  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   )r1   r   r1   F)sortr   r   r   )r   r   r   r   r   rZ  )r   r5   r>   rU   r)   arrayr   r   r]  rD   rk   )r6   rI   rH   s      r   test_groupby_rolling_no_sortz(TestRolling.test_groupby_rolling_no_sortg  s     q!faV4455WUW''WQZZSUU	 	 HsCj3*-..EN(&&)9%OOO
 
 
 ===//
fh/////r   c           
      d   t          t          d          t          d          dddgz  t          dd|          d          }d}t          j        t
          |	          5  |                    d
                              ddd          d                                         }d d d            n# 1 swxY w Y   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*  z:'d' is deprecated and will be removed in a future version.r/   r   3dr%  r.  r/  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   ri   r   rD   assert_produces_warningr   r5   r>   rO   r   r   rh   r	   r)   r   rE   )r6   rv  r   r7   rI   dtir   rH   s           r   $test_groupby_rolling_count_closed_onz0TestRolling.test_groupby_rolling_count_closed_onx  s    88 88c3Z"z14HHH	 
 
 K'cBBB 	 	

7##&88D 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	     ---

 

 

 #... F#
 
 
 VS#rvsC0
 
 

 	vx00000s   !AB11B58B5)r   kwargsr   r>   r   r  	expandingg3Ey?c                    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  |dt          j        g d	dd g
                    }|                    d          }t          j
        ||           d S )Nr   r   r   r   r   rZ  r   r   )r   r   )r   r   )r   r   r   r_   r   r   r   )r   re   r5   semr)   r   r   r   r]  rD   rk   )r6   r   r}  r   r   rI   rH   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,_55(BBB3PT+  
 
 
 ===--
fh/////r   )rollingskeyr   r   Nrj   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   rj   r   z values must not have NaTr/   r   60min)r  )
r   r   r)   r   r   r2   r3   
ValueErrorr5   r>   )r6   r  r  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r^   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val1r  val2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   rh   r	   r5   r>   r?   r   rD   rE   )r6   r^   arraysrj   srI   rH   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 )Nr  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   rh   r   ri   r5   r>   r?   r   rD   rk   r6   r  rj   r   rI   rH   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   r_   r   r   r   )r   r   )r   r_   )r   r   r   r  )r   r   )r   r   r   )r   r)   r*   r5   r>   r?   r   r   rD   assert_index_equalrj   r6   r   rI   rm   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 )Nr;  r   r   r   r   r   r   r_   r   r   r   r   ))r   r   r   )r   r   r_   )r   r   r%   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r_   r   )r   r_   r   )r   r_   r   )r   r   Nr   )r   r)   r*   r5   r>   rT   r   r   rD   r  rj   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   r_   r  r   r   T)appendr   r   ))r   r   r   r   )r   r_   r   )r   r   r   )r   r   r   )r   r   r_   )r   r   r   )r   r   r_   )r   Nr   r   equiv)exact)r   r)   r*   r   r5   r>   r?   r   r   rD   r  rj   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           j        }|                    d          }|                    d           j        }t	          j        ||           d S )Nr   Fr]   c                 P    |                      d                                          S rc   r>   rT   r@   s    r   rB   zUTestRolling.test_groupby_rolling_object_doesnt_affect_groupby_apply.<locals>.<lambda>5  s    QYYq\\%5%5%7%7 r   r_   r`   c                 P    |                      d                                          S rc   r  r@   s    r   rB   zUTestRolling.test_groupby_rolling_object_doesnt_affect_groupby_apply.<locals>.<lambda>7  s    199Q<<#3#3#5#5 r   )r5   rC   rj   r>   rD   r  )r6   r+   rF   rH   _rI   s         r   7test_groupby_rolling_object_doesnt_affect_groupby_applyzCTestRolling.test_groupby_rolling_object_doesnt_affect_groupby_apply2  sv    su55777788>IIQI5566<
fh/////r   )ra   rM   r  rH   r   r.  )Nr   r   r   Nr   r   r   )NNr   r   NNr   r   r_   )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   r_   r   r   r   r%   )r   r   r   r   r   r   r   r   )ra   rM   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   )levelscodesr   )	r   r5   r>   rp   r)   rq  r   rD   rk   )r6   ra   rM   r  rH   r   rI   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%   rZ  r   T)deepr_   )	r   r5   objcopyr>   rT   r   rD   rk   )r6   r   r   rF   original_objrP   rI   s          r   test_by_column_not_in_valuesz(TestRolling.test_by_column_not_in_valuesS  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   rh   r   r5   r>   rT   r	   r)   r   r   rD   rE   r  s         r   test_groupby_levelzTestRolling.test_groupby_level`  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  rZ  r%  rx  ry  c                 0    g | ]}t          |          S r   )re   )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   r5   r>   r?   updaterj   rD   rk   )	r6   r;   r   rv  r   gp_byrI   rH   r   s	           @r   test_as_index_falsezTestRolling.test_as_index_falsex  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)rj   adl2rj   r  r   r  i  )r  r   r   )r)   r  typerepeatr   r   r   r5   r>   r?   r	   r   rh   r   rD   rE   )
r6   any_int_numpy_dtypetypsizeidxvalarrr   rI   rH   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   *   )trA   r   r#  )r   rA   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   ra   )r   r2   r3   r  r5   r>   )r6   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                    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                              d                              d           }|                    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   c                 \    |                      d          d                                         S )N180Dr  r  r@   s    r   rB   z4TestRolling.test_groupby_monotonic.<locals>.<lambda>  s#    QYYv..x8<<>> r   r  rh  r  )
r   r   sort_valuesr   r5   rC   r>   rT   rD   rE   )r6   r   r   rH   rI   s        r   test_groupby_monotonicz"TestRolling.test_groupby_monotonic  s(    '&&&&&&&&&&&%%%&&&%%%$$$$$$%%%
 D*D*D*DEEE F,,6
^^F## LL  WV__U>>?? 	
 F##++Fv+>>xHLLNN
vx00000r   c                    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                              d                              d           }|                    d                              dd          j	        
                                }t          j        ||           d S )Nz2016-01-01 09:30:00r#   r  )r  ru  freqr   r   r$   r   r%   r&   r   r   r   c                 \    |                      d          d                                         S )N4sr   r=   r@   s    r   rB   zJTestRolling.test_datelike_on_monotonic_within_each_group.<locals>.<lambda>  s!    199T??3;O;T;T;V;V r   r  rh  )r   r   r)   concatenater*   r   r5   rC   r>   r   r?   rD   rE   )r6   datesr   rH   rI   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]] 
 
 LL%%c**001V1VWW 	 C((#(668==??
vx00000r   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  ra  r   r   z&Each group within B must be monotonic.r/   r   365Dr   rh  )r   ri   r2   r3   r  r5   r>   )r6   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)6r  r  r  r8   rJ   rQ   r2   markparametrizern   ru   r   r   r   r   r   r   r   r   r   r   r  r  r   r3  rN  rQ  rW  r_  rn  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-   4   sx       + + +
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0 0 0<1 1 1< [VeU^441 1 541(0 0 060 0 0:0 0 0")1 )1 )1V [- Q//bfc3/
 "rvsBFCH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 1@1 1 1*
4 
4 
4 
4 
4r   r-   c                   j   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 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(   )r6   s    r   framezTestExpanding.frame  s<    sRx1#(2aS1W<29R==QQRRRr   rR   rS   c                 H   |                     dd          }|                                } t          |                      }|                    fd          }t	          j        |d         t          d          g          }||_        t          j	        ||           d S )Nr   Fr]   c                 X     t          |                                                       S r   re   r~  rf   s    r   rB   z.TestExpanding.test_expanding.<locals>.<lambda>*  s"    %>WQ[[]]A%>%>%@%@ r   r&   
r5   r~  re   rC   r   rh   ri   rj   rD   rk   r6   rR   r  rF   rP   rI   rH   rm   s    `      r   test_expandingzTestExpanding.test_expanding  s      MM#%M00KKMMA77@@@@AA#/sU2YY0GHH'
fh/////r   ro   rp   c                 L   |                     dd          }|                                } t          |          d          }|                    fd          }t	          j        |d         t          d          g          }||_        t          j	        ||           d S )Nr   Fr]   r   rr   c                 \     t          |                                           d          S )Nr   rr   r  rf   s    r   rB   z3TestExpanding.test_expanding_ddof.<locals>.<lambda>6  s'    %>WQ[[]]A%>%>A%F%F%F r   r&   r  r  s    `      r   test_expanding_ddofz!TestExpanding.test_expanding_ddof0  s    MM#%M00KKMMAA&&&77FFFFGG#/sU2YY0GHH'
fh/////r   rv   rw   c                 F   |                     dd          }|                                }|                    d          }|                    fd          }t	          j        |d         t          d          g          }||_        t          j	        ||           d S )Nr   Fr]   r~   r   c                 V    |                                                      d          S )Nr~   r   )r~  r   r   s    r   rB   z7TestExpanding.test_expanding_quantile.<locals>.<lambda>E  s"    akkmm,,S,NN r   r&   )
r5   r~  r   rC   r   rh   ri   rj   rD   rk   )r6   rv   r  rF   rP   rI   rH   rm   s    `      r   test_expanding_quantilez%TestExpanding.test_expanding_quantile<  s     MM#%M00KKMMC}==77NNNN
 
 $/sU2YY0GHH'
fh/////r   r   r   c                 J                        d          }|                                } t          |                    }fd}|                    |          }t	          t          dd                    t	          t          dd                    z   }t          j        |j        |df<   t          j        |d<   t          j
        ||            t          |j                  d	          }fd
}	|                    |	          }t          j        ||           d S )Nr   c                 Z     t          |                                                     S r   r  )rA   rR   r  s    r   func_0z5TestExpanding.test_expanding_corr_cov.<locals>.func_0S  s%    ,71;;==!,,U333r   r#   =   H   q   r   Tr   c                 f     t          | j                                                  d          S )NTr   )re   r   r~  rf   s    r   func_1z5TestExpanding.test_expanding_corr_cov.<locals>.func_1b  s*    .713==??A..====r   )r5   r~  re   rC   r   ri   r)   r   ilocrD   rk   r   rE   )
r6   rR   r  rF   rP   rI   r  rH   null_idxr  s
    ``       r   test_expanding_corr_covz%TestExpanding.test_expanding_corr_covL  s%   MM#KKMMAu%%	4 	4 	4 	4 	4 	4 776?? b"&&eBnn)=)==%'Vhk" 
fh/// a$///	> 	> 	> 	> 	> 776??
vx00000r   c                 H   |                     dd          }|                                }|                    d           }|                    fd          }t          j        |d         t          d          g          }||_        t          j        ||           d S )Nr   Fr]   c                 *    |                                  S r   r   r@   s    r   rB   z4TestExpanding.test_expanding_apply.<locals>.<lambda>m  r   r   r   c                 X    |                                                      d           S )Nc                 *    |                                  S r   r   r   s    r   rB   zFTestExpanding.test_expanding_apply.<locals>.<lambda>.<locals>.<lambda>n  s    15577 r   r   )r~  rC   r   s    r   rB   z4TestExpanding.test_expanding_apply.<locals>.<lambda>n  s'    Q[[]]%8%89J9JPS%8%T%T r   r&   )	r5   r~  rC   r   rh   ri   rj   rD   rk   )r6   r   r  rF   rP   rI   rH   rm   s    `      r   test_expanding_applyz"TestExpanding.test_expanding_applyh  s    MM#%M00KKMM **4477TTTTUU#/sU2YY0GHH'
fh/////r   c           	         t          g dg dg dd          }|                    d                              d                              t	          dt
                    t	          d	t                    
          }t          g dg dd
t          ddgg dgg dg dgdd g                    }t          j	        ||           d S )Nr5  r8  r<  r>  r?  r   rA  rB  r@  rE  )r=  rH  g;@r   rI  g     n@)r9  r9  r9  r   r   r   r6  r7  rJ  rK  rL  r   r   )
r   r5   r~  rM  r   rT   rU   r   rD   rk   r  s       r   #test_groupby_expanding_agg_namedaggz1TestExpanding.test_groupby_expanding_agg_namedaggt  s   BBB:::<<< 
 
 JJvYq\\S%XsCCC#8SAAA    	  D D D<<<  !3!3!34###%7%7%78tn  

 

 

 	fh/////r   N)r  r  r  r2   fixturer  r  r  r  r  r  r  r  r  r   r   r   r  r    s2       ^S S ^S [	
 	
 	
 	0 	0 	0 [S5%.11	0 	0 21	0 [MMM 0 0 0 [S65/221 1 3216
0 
0 
0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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""""""@ro   绹۞?禀?t ?rp   r   n۶m۶?++?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   r_   r'   r   r   comr   r   r   r   r   r   r   )	r   ri   re   r5   ewmr   r   rD   rk   r6   methodr   r   rI   rH   s         r   test_methodszTestEWM.test_methods  s     cUQYU1XX6677>C,,,55v>>@@- (   Dk  
 
 
 	fh/////r   c                    t          dgdz  t          d          d          }|                    d                              d                              t          dd	          t          dd
	          t          dd	                    }t          g dt          j        dddgt          j        dddgdt          j	        g ddd g                    }t          j        ||           d S )Nr   r_   r'   r   r   r(  r   r?   rB  ro   rp   )B_meanB_stdB_varr!  r"  r#  r$  r   r%  r&  r*  r   r   )r   ri   r5   r+  rM  r   r)   r   r   r   rD   rk   r  s       r   test_groupby_ewm_agg_namedaggz%TestEWM.test_groupby_ewm_agg_namedagg  s   cUQYU1XX6677JJsOOSSS\\SsF;;;c5999c5999    	    &(Hh?&#'9;MN	 	 (   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   r_   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(  )re   r+  )rA   r-  s    r   rB   z/TestEWM.test_pairwise_methods.<locals>.<lambda>  s&    5gaeeennf5577 r   )
r   ri   re   r5   r+  r   r   rD   rk   rC   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   r  r   )r   r   )r   r   )r   r%   r   r   )	popr5   r+  r?   r   r   r   rD   rk   )r6   r    r:  r;  rI   rH   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 )Nr8  r   r   r9  )r<  r5   r+  r?   valuesrD   rk   )r6   r    r:  r;  r   rI   rH   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)ru  r  )r   	timestampr   r   1hrC  rh  r   )rC  r   r   r   r   r   )r   r   ri   r5   r>   rO   r   rh   r   rD   rk   r	   rE   )r6   r   grprI   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  r2   r  r  r)   r   r.  r3  r6  r=  r@  rH  r   r   r   r   r     s       [VVVWRVXx:;RVS"46HIJ	
 0 0 0$!0 !0 !0F [
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  r_   r   r   r   r   r   r   ))r  r   )r  r   )r  r   r   r   r   
r   r5   r>   r   r   r   r)   r   rD   rk   r   r   rI   rj   rH   s        r   .test_rolling_corr_with_single_integer_in_indexrN  D  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   rJ  r   r   r   rK  ))r   r   )r   r   )r   r   r   r   r   rL  rM  s        r   &test_rolling_corr_with_tuples_in_indexrP  P  s    	   	
 	

 
B& 
SE		BZZ]]b))F"///T{  E vrvrv&bfc3-?@@  H &(+++++r   )numpyr)   r2   pandas.errorsr   pandasr   r   r   r   r   r	   r
   r   r   pandas._testing_testingrD   pandas.api.indexersr   pandas.core.groupby.groupbyr   r  r    r+   r-   r  r   rN  rP  r   r   r   <module>rX     s        ( ( ( ( ( (
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
       + + + + + + 3 3 3 3 3 3   0 O O OZ4 Z4 Z4 Z4 Z4 Z4 Z4 Z4z0 0 0 0 0 0 0 0Dn3 n3 n3 n3 n3 n3 n3 n3b	, 	, 	,, , , , ,r   