
    Owg                         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y)    N)	DataFrameDatetimeIndexIndex
MultiIndexSeries	Timestamp
date_rangeto_datetime)BaseIndexer)get_groupbyc                  >    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
        W/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/window/test_groupby.pytimes_framer      s)     C/	
 r   c                  h    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)   ,   s6    A38qcBh.!q8ryy}MNNr   c                   *   e Zd Zd Zd Zd Zej                  j                  dg d      d        Z	ej                  j                  dddg      d	        Z
ej                  j                  d
g d      d        Zej                  j                  dddgddgg      d        Zej                  j                  dddg      d        Zej                  j                  dddg      d        Zej                  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                  j                  dddgddgg      d        Zd  Zd! Zej                  j                  d"g d#      d$        Zd% Zd& Zd' Zd( Zej                  j                  d)d*d+g      d,        Zd- Zd. Zd/ Zd0 Zej                  j                  d1d2d3dd4fd5i fg      d6        Zej                  j                  d7d8d9id9fd8d:id;fg      d<        Z ej                  j                  d=ddg      d>        Z!d? Z"d@ Z#dA Z$dB Z%dC Z&ej                  j                  dDd3dEdFg dGfd3d3dFg dHfdIdIdFg dJfdIdIdKg dLfg      dM        Z'ej                  j                  dN e(jR                  dOdPg      dQdRgg      dS        Z*dT Z+ej                  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 Z2y:)cTestRollingc                     d}t        j                  t        |      5  |j                  dd       d d d        y # 1 sw Y   y xY w)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 	+s*	+ 	+ 	+s	   ;Ac                    |j                  d      }t        |d      }|j                  j                  d       }|j	                  d      j                         j                  }t        j                  ||       |j	                  d      j                  j                         }t        j                  ||       |j                  j	                  d      j                         }t        j                  ||       |j                  j                  |j                        j	                  d      j                         }t        j                  ||       y )Nr   byc                 @    | j                  d      j                         S )Nr   rollingmeanxs    r   <lambda>z*TestRolling.test_getitem.<locals>.<lambda>;   s    qyy|/@/@/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	;;$$%BC1""$&&
vx01$$&
vx0Q$$&
vx0%%jll3;;A>CCE
vx0r   c                 ^   |j                  d      }|j                  dd      }t        |d      }|j                  j	                  d       }|j                  j                         }t        j                  ||       |j                  j                         }t        j                  ||       y )Nr   r   r   min_periodsr8   c                 D    | j                  dd      j                         S )Nr   r   rJ   )r<   countr>   s    r   r@   z3TestRolling.test_getitem_multiple.<locals>.<lambda>N   s    qyyy/J/P/P/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	;;$$%RS
vx0
vx0r   fsumr=   minmaxrM   kurtskewc                    |j                  dd      }|j                  d      } t        |             }d}t        j                  t
        |      5  |j                  fd      }d d d        j                  dd	
      }t        j                  |d   t        d      g      }||_        t        j                  ||       y # 1 sw Y   ]xY w)Nr   F
group_keys   window7DataFrameGroupBy.apply operated on the grouping columnsr-   c                 D     t        | j                  d                   S NrZ   getattrr<   r?   rP   s    r   r@   z*TestRolling.test_rolling.<locals>.<lambda>i   s    )A1q)A)C r   r   axisr$   r3   r<   ra   rB   assert_produces_warningDeprecationWarningrA   dropr   from_arraysrangeindexassert_frame_equal	r4   rP   r)   rD   rN   rG   r5   rF   expected_indexs	    `       r   test_rollingzTestRolling.test_rollingV   s     su5IIQIAG''(:#F 	EwwCDH	E ==1=-#//C%)0LM'
fh/	E 	E   CCstdvarc                    |j                  dd      }|j                  d      } t        |      d      }d}t        j                  t
        |	      5  |j                  fd
      }d d d        j                  dd      }t        j                  |d   t        d      g      }||_        t        j                  ||       y # 1 sw Y   ]xY w)Nr   FrX   rZ   r[   r   ddofr]   r-   c                 H     t        | j                  d            d      S )NrZ   r   rt   r`   rb   s    r   r@   z/TestRolling.test_rolling_ddof.<locals>.<lambda>y   s    )A1q)Aq)I r   rc   r$   re   rm   s	    `       r   test_rolling_ddofzTestRolling.test_rolling_ddofq   s    su5IIQIAA&G''(:#F 	KwwIJH	K ==1=-#//C%)0LM'
fh/	K 	K   CCinterpolationlinearlowerhighermidpointnearestc                    |j                  dd      }|j                  d      }|j                  d      }d}t        j                  t
        |	      5  |j                  fd
      }d d d        j                  dd      }t        j                  |d   t        d      g      }||_        t        j                  ||       y # 1 sw Y   ]xY w)Nr   FrX   rZ   r[   皙?ry   r]   r-   c                 H    | j                  d      j                  d      S )NrZ   r   r   )r<   quantiler?   ry   s    r   r@   z3TestRolling.test_rolling_quantile.<locals>.<lambda>   s    !))A,//=/Q r   r   rc   r$   )r3   r<   r   rB   rf   rg   rA   rh   r   ri   rj   rk   rl   )	r4   ry   r)   rD   rN   rG   r5   rF   rn   s	    `       r   test_rolling_quantilez!TestRolling.test_rolling_quantile   s     su5IIQIC}=G''(:#F 	wwQH	
 ==1=-#//C%)0LM'
fh/	 	rx   zf, expected_valcorrr   cov      ?c                 4   t        t        d      dgdz  dgdz  z   g ddz  d      j                  ddg      }t        t        d      g dd	      j                  d      } t        |j	                  d
      j                  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                  ||       y )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   s&    Bi!qA37):OVWDWX

)VV$
% 	 E!HoFGQQ
 <!,44Q7;EB&&\NQ$66!;I((C!GqcAg%C!GqcAg%q!%)
 /
 	fh/r   c                 V   j                  d      }|j                  d      } t        |            }fd}d}t        j                  t
        |      5  |j                  |      }d d d        t        j                  d<   t        j                  ||       y # 1 sw Y   3xY w)Nr   rZ   r[   c                 F     t        | j                  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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 H''(:#F 	%wwt}H	% 
fh/	% 	%s   BB(c                 B   |j                  d      }|j                  d      } t        |j                        d      }fd}d}t	        j
                  t        |      5  |j                  |      }d d d        t	        j                  |       y # 1 sw Y    xY w)	Nr   rZ   r[   Tpairwisec                 \     t        | j                  j                  d            d      S )NrZ   Tr   )ra   r   r<   rb   s    r   r   z8TestRolling.test_rolling_corr_cov_pairwise.<locals>.func   s#    -7133;;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''(:#F 	%wwt}H	%
vx0	% 	%s   $BBzfunc, expected_values      ?      @c                    t        g dg dg dd      }|j                  d      j                  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                  ||       y )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o%%a(#d#%"&&\OA$66bffXE"&&\OA$66bffXE ((	 (
& 	fh/r   c                    |j                  dd      }|j                  d      }|j                  d       }d}t        j                  t
        |	      5  |j                  fd
      }d d d        j                  dd      }t        j                  |d   t        d      g      }||_
        t        j                  ||       y # 1 sw Y   ]xY w)Nr   FrX   rZ   r[   c                 "    | j                         S NrR   r>   s    r   r@   z0TestRolling.test_rolling_apply.<locals>.<lambda>       1557 r   rawr]   r-   c                 J    | j                  d      j                  d       S )NrZ   c                 "    | j                         S r   r   ys    r   r@   zBTestRolling.test_rolling_apply.<locals>.<lambda>.<locals>.<lambda>   s    aeeg r   r   )r<   rA   r?   r   s    r   r@   z0TestRolling.test_rolling_apply.<locals>.<lambda>   s!    1););<MSV);)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IIQI *4G''(:#F 	YwwWXH	Y ==1=-#//C%)0LM'
fh/	Y 	Ys   C		Cc                    t        dgdz  dgdz  z   dgdz  d      }|j                  d      }t        j                  g d      }dd g|_        t        t
        j                  d	d	gd
z  dg|      }|j                  d
      j                         }t        j                  ||       |j                          |j                  d
      j                         }t        j                  ||       y )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FJJsO##T
 ;bffc3/!3cU"M!$((*
fh/ 	
 !$((*
fh/r   zexpected_value,raw_valueT        Fc                 "   d }t        g dg dd      }|j                  d      j                  j                  d      j	                  ||      }t        |gdz  t        j                  d	dd g
      d      }t        j                  ||       y )Nc                 H    t        t        | t        j                              S r   )int
isinstancer'   ndarrayr>   s    r   isnumpyarrayz6TestRolling.test_groupby_rolling.<locals>.isnumpyarray  s    z!RZZ0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 i)<=D!''//28898Uq (()A$PTV

 	vx0r   c                 z   t        t        dd            }|j                  |      j                  dd      j	                         }t        t
        j                  gdz  t        j                  d            }t        j                  ||       t        t        dd            }|j                  |      j                  dd      j	                         }t        t
        j                  gd	z  t        j                  d
            }t        j                  ||       t        dgdz  dgdz  z   t        d      d      }|j                  d      j                  dd      j	                         }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      }|j                  d      j                  dd      j	                         }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                  ||       y )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*  sD   a$'//tA/FKKMVVHqL(()QR
 	vx0a$'//tA/FKKMVVHqL(()IJ
 	vx0cUQY#2rCDC((Q(?DDFVVQ1bffbffaAq"&&A(( Dk  E%
( 	fh/cUQY#2rCDC((Q(?DDFVVQ1bffbffaArvv>(( Dk E#
& 	fh/r   c                 f   t        t        dd      dgdz  dgdz  z   t        d      d	      }|j                  d
      j	                  dddd      j
                  j                         }t        j                  |d
   |d   gd
dg      }t        g dd|      }t        j                  ||       y )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>U446 	
 ##RXr&z$:4.Q>

 	vx0r   rK   )r   rZ   r   c                    t        dgdz  dgdz  z   t        d      d      }d}|j                  d      j                  |d|	      j	                         }|j                         dd
g   }g d}|D cg c]  }|dz   	 }}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                  ||       y c c}w )Nr   r   r   r!   )groupr   r   r   T)r   rK   r   )
r   r   r   r   r         @g      @r   r          @g      $@r   r   )r   rj   r3   r<   r=   reset_indexrT   r'   r   rB   rl   )r4   rK   r   window_sizerG   
grp_A_meanr?   
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  s    #sebj!8%)LMJJwW[;WGTV 	
 ##%w&78G
(231a$h3
3q+/*x("
8b8m DDtK
8b8m DDtKebjC52:-~7VW
 	fh/ 4s   3C3c           	         t        g dg dg dd      }|j                  d      dg   j                  d      j                         }t        t        j
                  t        j
                  dt        j
                  gdgt        j                  d	dd g
            }t        j                  ||       |j                  d      d   j                  d      j                         }t        t        j
                  t        j
                  dt        j
                  gt        j                  d	dd g
      d      }t        j                  ||       y )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  s   %9@PQ
 C#'//2668VVRVVS"&&)E((0d
 	fh/C%--a0446VVRVVS"&&)((0d 
 	vx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                  |j                        j	                   |d      d      j                         }|j                  |j                        j	                  dd      j                         }t        j                  ||       y )Nc                       e Zd Z	 	 	 	 	 ddZy)FTestRolling.test_groupby_rolling_custom_indexer.<locals>.SimpleIndexerNc                     || j                   nd}t        j                  |t        j                        dz   }|j	                         | 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ii
"((;a?
T%5%55#.eai cz!r   )r   NNNN)__name__
__module____qualname__r  r   r   r   SimpleIndexerr    s      "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
 JJrxx W]q1qWASU 	
 ::bhh'//qa/HLLN
fh/r   c                    t        t        d      t        d      dgdz  dgdz  z   dD cg c]  }t        |       c}dz  d      }|j                  d      j	                  d	d
d      d   j                         }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                  ||       y c c}w )Nr#   r   rZ   r   
2019-01-01r!  
2019-01-02r"  r   column1column2r   dater   1Dr&  leftr   r  r$  r         "@r   r   r   rj   r   r3   r<   rR   r   r'   r   r   
from_framerB   rC   r4   r&  r   rG   rF   s        r   'test_groupby_rolling_subset_with_closedz3TestRolling.test_groupby_rolling_subset_with_closed  s     8 8cUQY. !Y dO 			
 JJw'''G	RVVX 	 VVRVVS#rvvrvvsC@''GV$%' 
 	vx0%s   C=c                    t        t        d      t        d      dgdz  dgdz  z   dD cg c]  }t        |       c}dz  d      }|j                  d      d	d
g   j	                  dd
d      d	   j                         }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                  ||       y c c}w )Nr#   r   rZ   r   r   r   r#  r   r$  r&  r'  r(  r)  r   r*  r   r   r+  r-  s        r   .test_groupby_subset_rolling_subset_with_closedz:TestRolling.test_groupby_subset_rolling_subset_with_closed  s    8 8cUQY. !Y dO 			
 JJwF 34WTfVW4Y@SU 	
 VVRVVS#rvvrvvsC@''GV$%' 
 	vx0+s   Dr   rT   rS   c                 l   t        g dt        j                  g dddg      d      } t        |j	                  |      j                  d      |             }t        t        j                  t        j                  d	gt        j                  g d
g d      d      }t        j                  ||       y )N)r   r   r   ))r   r?   )r   r   )r   z12r   r   r   r   r   ))r   r   r?   )r   r   r   )r   r   r2  )r   r3  r4  )
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     ((4S#J 
 :B//2D9;VVRVVS!((=_ 
 	vx0r   c                    t        dg i      }|j                  d      j                  d      j                         }|j	                  d      }t        j                  t        g d      t        g d      gdd g      |_        t        j                  ||       t        g g d	      }|j                  dd
g      j                  d      j                         }|j	                  dd
g      }t        j                  t        g d      t        g d      t        g d      gg d      |_        t        j                  ||       y )Ns1r   r[   r   float64r  r  r   )r8  s2r;  )r8  r;  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==?===. $002Y'r)AB4QU,
 	fh/Bb12!!4,/77q7AEEG==$=6#0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      j                  d      }|j                  d      }|j	                         |d<   |j                  dd      }|j                  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      j                  ddg      }t        j                  ||       y )Nr   r     r   r   r   r   Zr   r   Hr   Er!   )rk   r   	eventTimer9  rk   r   count_to_date10drC  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   rC  rD  )	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:i4Aq!9:i4Aq!9:i4Aq!9:i4B!:; 4	
 )G
 	 G$$oo/?+>%%&<=i4Aq!93?i4Aq!93?i4Aq!93?i4Aq!93?i4B!:C@ E	
 )Wg&
' 	 	fh/r   c           	      X   t        ddgddgd      j                  dd      j                  d      j                         }t        t	        j
                  ddgddgg      dd	gt        j                  d
dgdd g            }|j                  d      }t        j                  ||       y )Nr   r   )r/   r   r/   F)sortr   r   r   )r   r   r   r   r   r9  )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5WUW'WQZSU	 	 HHsCj3*-.EN((&&)9%O
 ===/
fh/r   c           
         t        t        d      t        d      dddgz  t        dd|      d      }|j                  d      j	                  d	d
d      d   j                         }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                  ||       y )Nr   r   r   r   20190101)r  periodsunitr#  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   rj   r	   r3   r<   rM   r   r   ri   r   r'   r   rB   rC   )r4   rT  r   rG   dtir   rF   s          r   $test_groupby_rolling_count_closed_onz0TestRolling.test_groupby_rolling_count_closed_onh  s     8 8c3Z"z14H	
 JJwWTfVW4Y@UW 	
  vQ-

 ##. F#
 VVS#rvvsC0

 	vx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        |j                  d      |      di |j                         }t        t        j
                  gdz  t        j
                  dt        j
                  ddgd	t        j                  g d
dd g            }|j                  d      }t        j                  ||       y )Nr   r   r   r   r   r9  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   rZ  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==?66(Q,bffgrvvw%PQ((B3PT+
 ===-
fh/r   )rollingskeyr   r   Nrk   c                 2   t        t        ddt        j                  g      g dg dd      }|dk(  r|j	                  d      }t        j                  t        | d	      5   |j                  d
      j                  di | d d d        y # 1 sw Y   y xY w)Nz2020-06-01 12:00z2020-06-01 14:00r   r   r   rk   r   z values must not have NaTr-   r   )60min)
r   r
   r'   r   r   r0   r1   
ValueErrorr3   r<   )r4   r`  ra  r   s       r   "test_groupby_rolling_nans_in_indexz.TestRolling.test_groupby_rolling_nans_in_index  s    
  "46H"&&!QR
 '>c"B]]:u4M-NO 	9#BJJsO##8x8	9 	9 	9s   ""BBrY   c                 @   g dg dg}t        j                  |d      }t        g d|      }|j                  ddg|      j	                  d	      j                         }t        g d
t        j                  g dg d            }t        j                  ||       y )Nval1rh  val2r   r   r   r   r   r   r   rX   r   )r   r   r   )rh  rh  rh  rh  rk  )ri  ri  ri  ri  )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E&&v5EF9E*FF+
CKKANSSU((
 7

 	vx0r   c                 X   g dg dg}t        j                  |d      }t        g dt        d      d|      }|j	                  dd	g      j                  d
      j                         }t        dg dit        j                  g dg d            }t        j                  ||       y )Nrg  rj  r   )r   r   r   r   r%   r   r   r   r   r   )r   r   r   )rh  r   rh  rh  rp  )ri  r   ri  ri  )r   r   r   r   )
r   ri   r   rj   r3   r<   r=   r   rB   rl   r4   rl  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E&&v5EFYU1X6eDVSM*2215::</"((
 4

 	fh/r   c                 "   t        t        j                  d      ddgdz  d      }|j                  d      j	                  d      j                         }t        j                  g ddd g	      }t        j                  |j                  |       y )
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  st    
 RYYs^1a&1*=>C((+002#//L+
 	fllN;r   c                 2   t        t        j                  d      ddgdz  g ddz  d      }|j                  dd	g      j	                  d      j                         }t        j                  g d
g d      }t        j                  |j                  |       y )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   rt  rk   ru  s       r   *test_groupby_rolling_resulting_multiindex2z6TestRolling.test_groupby_rolling_resulting_multiindex2  s    RYYt_Aq6A:LSTDTUVS#J'//2668#// #
" 	fllN;r   c                 X   t        t        j                  d      ddgdz  g ddz  d      }|j                  dd	      }|j	                  d
      j                  d      j                         }t        j                  g dg d      }t        j                  |j                  |d       y )Nr   r   r   rZ   rx  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   rt  rk   ru  s       r   *test_groupby_rolling_resulting_multiindex3z6TestRolling.test_groupby_rolling_resulting_multiindex3  s    RYYs^1a&1*<RSCSTU\\#d\+C((+002#//	 #
 	fllN'Jr   c                    |j                  dd      }d}t        j                  t        |      5  |j	                  d       j
                  }d d d        |j                  d      }d}t        j                  t        |      5  |j	                  d	       j
                  }d d d        t        j                         y # 1 sw Y   txY w# 1 sw Y   ,xY w)
Nr   FrX   r]   r-   c                 @    | j                  d      j                         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                 @    | j                  d      j                         S r_   r  r>   s    r   r@   zUTestRolling.test_groupby_rolling_object_doesnt_affect_groupby_apply.<locals>.<lambda>!  s    qyy|'7'7'9 r   )r3   rB   rf   rg   rA   rk   r<   rt  )r4   r)   rD   r5   rF   _rG   s          r   7test_groupby_rolling_object_doesnt_affect_groupby_applyzCTestRolling.test_groupby_rolling_object_doesnt_affect_groupby_apply  s    su5G''(:#F 	Cww;<BBH	CIIQIG''(:#F 	AWW9:@@F	A
fh/	C 	C	A 	As   C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           	      J   t        g d      }|j                  g d      j                  |||      j                  d      }t        t	        j
                  |d      t        t	        j
                  ddg      g d	gg d
g dg            }t        j                  ||       y )N)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   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'   rO  r   rB   rl   )r4   r\   rK   r  rF   r   rG   expected_results           r   test_groupby_rolling_varz$TestRolling.test_groupby_rolling_var$  s     /0JJ/0WFFWKSV 	
 $HHXY/!Q(*BC/1IJ
 	fo6r   r   )r    )r   r   r   r   c                 J   t        ddggdz  ddggdz  z   ddggdz  z   |      }|j                  d	      }|j                  j                  d
      }|j	                  d      }|j                         }d	|j                  vsJ t        j                  |j                  |       y )Nr   r   r!   r   r"   r   r#   r9  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JJsOuuzztz,IIaL&..(((
aee\2r   c                    g dg dg}t        j                  |d      }t        dg di|      }|j                  d	      d   j	                  d
      j                         }t        t        j                  dt        j                  dgt        j                  g dg d      d      }t        j                  ||       y )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   rq  s         r   test_groupby_levelzTestRolling.test_groupby_levelJ  s     52
 &&v5GH%?@N!$[199!<@@BVVUBFFD)(( 3 
 	vx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   j                  d| d	      |d<   |j                  dg      }|D cg c]  }t        ||       }}|j	                  |d
      j                  dd      j                         }dg di}	|	j                  |       t        |	|j                        }	d|v r|	d   j                  d| d	      |	d<   t        j                  ||	       y c c}w )N)r   r  r  )r   r  r  )r   r  r  )r   r  r  )r   r&  r  r9  r&  rV  rW  F)as_indexr   r   r  r   )r   r   r   r   r   )r   astyper   ra   r3   r<   r=   updaterk   rB   rl   )
r4   r9   r   rT  r   r   attrgp_byrG   rF   s
             r   test_as_index_falsezTestRolling.test_as_index_falseb  s   * '&&&	
 t%:;Z&&TF!}56
\\6(#/12tT"22JJuuJ-55QA5NSSU 	 ./&((
 ]"'/66TF!}EHV
fh/ 3s   C:c                 J   t        j                  |      j                  }d}t        j                   |d      |      }d|d<   d}t        j                  ||      }t         j                  |d<   d|d<   t        ||d      j                  d      }|j                  d      d   j                  d	d
      j                         }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                  ||	       y )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  s   hh*+00iiA%BiiT"AB

 )G
 	 G$V,44BA4NSSU((1#)qc/7C1#)qc/7C	
 	vx0r   c           	         g d}d}t        |D cg c]  }t        d|z  |z        |dz   dd c}      }t        j                  t        d      5  |j                  d	      j                  d
d       d d d        y c c}w # 1 sw Y   y xY w)N)r   r   r   r   r  r   r   *   )tr?   r   z.* must be monotonicr-   r   r  3s)r   r\   )r   r   r0   r1   rd  r3   r<   )r4   shuffledsecr?   r   s        r   "test_groupby_rolling_non_monotonicz.TestRolling.test_groupby_rolling_non_monotonic  s      IQRA9QUS[)AB?R
 ]]:-DE 	9JJsO##s4#8	9 	9 S	9 	9s   A=#BB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<   |j                  d      }d}t        j                  t
        |      5  |j                  d      j                  d      j                  d       }d d d        |j                  d      j                  dd      d   j                         }t        j                  |       y # 1 sw Y   SxY w)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                 F    | j                  d      d   j                         S )N180Dr  r  r>   s    r   r@   z4TestRolling.test_groupby_monotonic.<locals>.<lambda>  s    6!28!<!@!@!B r   r  rF  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E F,6
^^F#G''(:#F 	V$BC 	 F#++Fv+>xHLLN
vx0	 	s   /1C22C;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}t        j                  t        |      5  |j                  d      j                  d      j                  d       }d d d        |j                  d      j                  dd      j                  j                         }t        j                  |       y # 1 sw Y   ZxY w)Nz2016-01-01 09:30:00r!   rm  )r  rS  freqr   r   r"   r   r#   r$   r   r]   r-   r   r   c                 F    | j                  d      d   j                         S )N4sr   r;   r>   s    r   r@   zJTestRolling.test_datelike_on_monotonic_within_each_group.<locals>.<lambda>  s    4!5!:!:!< r   r  rF  )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S2Xb(A372^^UEN3YYr]
 H''(:#F 	S!<= 	 C((#(688==?
vx0	 	s   51C??Dc                 0   t        dgdz  dgdz  z   dD cg c]  }t        |dd       c}dz  t        d      d      }t        j                  t
        d      5  |j                  d	      j                  d
d       d d d        y c c}w # 1 sw Y   y xY w)Nr   r   r   )i  i  r?  r   r   z&Each group within B must be monotonic.r-   r   365Dr   rF  )r   r   rj   r0   r1   rd  r3   r<   )r4   yearr   s      r   0test_datelike_on_not_monotonic_within_each_groupz<TestRolling.test_datelike_on_not_monotonic_within_each_group  s    S1WsQw&8JKia+KaO1X
 ]]:-UV 	4JJsO##Fs#3	4 	4	 L	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  r.  r0  r6  r=  rL  rP  rY  r_  re  rn  rr  rv  ry  r~  r  r  r   r   r  r  r   r  r  r  r  r  r  r   r   r   r+   r+   1   s    +
1$1 [[	
00 [[S5%.10 20 [[M00" [[.&!ucl0KL0 M00 [[S65/20 30" [[S65/21 31 [[
3*sCj)	*VsCj3*5M,NO0	0@0 0. [[73+U|9TU1 V1?0B1, [[]I60 7041208161< [[VeU^41 51(060:0"&1P [[
!4	5R7HI0	0  [[c{C0D$<2IJ99 [[\D%=91 :1,0(<<.K(
0 [[76EF6GH6KL7JK		
77  [[*J**Iz+BCc3ZP3310 [[Ve9:;w ",/!,/!,/!,/	 8	
$0%$061>	9 1D12
4r   r+   c                   V   e Zd Zej                  d        Zej                  j                  dg d      d        Zej                  j                  dddg      d        Z	ej                  j                  dg d	      d
        Z
ej                  j                  dddg      d        Zd Zy)TestExpandingc                 h    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  s6    sRx1#(2aS1W<299R=QRRr   rP   rQ   c                    |j                  dd      }|j                         } t        |             }d}t        j                  t
        |      5  |j                  fd      }d d d        j                  dd      }t        j                  |d   t        d	      g      }||_        t        j                  ||       y # 1 sw Y   ]xY w)
Nr   FrX   r]   r-   c                 B     t        | j                                      S r   ra   r[  rb   s    r   r@   z.TestExpanding.test_expanding.<locals>.<lambda>  s    )B)B)D r   r   rc   r$   r3   r[  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KKMAG''(:#F 	FwwDEH	F ==1=-#//sU2Y0GH'
fh/	F 	Fs   CCrq   rr   c                    |j                  dd      }|j                         } t        |      d      }d}t        j                  t
        |      5  |j                  fd      }d d d        j                  dd	
      }t        j                  |d   t        d      g      }||_        t        j                  ||       y # 1 sw Y   ]xY w)Nr   FrX   r   rt   r]   r-   c                 F     t        | j                               d      S )Nr   rt   r  rb   s    r   r@   z3TestExpanding.test_expanding_ddof.<locals>.<lambda>   s    )B)B)J r   r   rc   r$   r  r  s	    `       r   test_expanding_ddofz!TestExpanding.test_expanding_ddof  s    MM#%M0KKMAA&G''(:#F 	LwwJKH	L ==1=-#//sU2Y0GH'
fh/	L 	Lrp   ry   rz   c                    |j                  dd      }|j                         }|j                  d      }d}t        j                  t
        |      5  |j                  fd      }d d d        j                  dd	
      }t        j                  |d   t        d      g      }||_        t        j                  ||       y # 1 sw Y   ]xY w)Nr   FrX   r   r   r]   r-   c                 F    | j                         j                  d      S )Nr   r   )r[  r   r   s    r   r@   z7TestExpanding.test_expanding_quantile.<locals>.<lambda>3  s    !++-00M0R r   r   rc   r$   )r3   r[  r   rB   rf   rg   rA   rh   r   ri   rj   rk   rl   )	r4   ry   r  rD   rN   rG   r5   rF   rn   s	    `       r   test_expanding_quantilez%TestExpanding.test_expanding_quantile(  s     MM#%M0KKMC}=G''(:#F 	wwRH	
 ==1=-#//sU2Y0GH'
fh/	 	rp   r   r   c                    j                  d      }|j                         } t        |            }fd}d}t        j                  t
        |      5  |j                  |      }d d 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}
d}t        j                  t
        |      5  |j                  |
      }d d d        t        j                  ||       y # 1 sw Y   xY w# 1 sw Y   ,xY w)Nr   c                 D     t        | j                                     S r   r  )r?   rP   r  s    r   func_0z5TestExpanding.test_expanding_corr_cov.<locals>.func_0C  s    ,71;;=!,U33r   r]   r-   r!   =   H   q   r   Tr   c                 Z     t        | j                  j                               d      S )NTr   )ra   r   r[  rb   s    r   func_1z5TestExpanding.test_expanding_corr_cov.<locals>.func_1T  s!    .7133==?A.==r   )r3   r[  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#KKMAu%	4 H''(:#F 	'wwvH	' b"&eBn)==%'VVhk" 
fh/ a$/	> H''(:#F 	'wwvH	'
vx0'	' 	'"	' 	's   E%E"E"E+c                    |j                  dd      }|j                         }|j                  d       }d}t        j                  t
        |      5  |j                  fd      }d d d        j                  dd	
      }t        j                  |d   t        d      g      }||_
        t        j                  ||       y # 1 sw Y   ]xY w)Nr   FrX   c                 "    | j                         S r   r   r>   s    r   r@   z4TestExpanding.test_expanding_apply.<locals>.<lambda>a  r   r   r   r]   r-   c                 H    | j                         j                  d       S )Nc                 "    | j                         S r   r   r   s    r   r@   zFTestExpanding.test_expanding_apply.<locals>.<lambda>.<locals>.<lambda>e  s     r   r   )r[  rA   r   s    r   r@   z4TestExpanding.test_expanding_apply.<locals>.<lambda>e  s    !++---.?S-I 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_expanding_applyz"TestExpanding.test_expanding_apply\  s    MM#%M0KKM *4G''(:#F 	wwIH	
 ==1=-#//sU2Y0GH'
fh/	 	s   CCN)r  r  r  r0   fixturer  r  r  r  r  r  r  r  r   r   r   r  r    s    ^^S S [[C00 [[S5%.10 20 [[M00" [[S65/21 31>0r   r  c            
       8   e Zd Zej                  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                  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y)TestEWMzmethod, expected_datar=   )r   gUUUUUU?gm۶m?g""""""@rq   g۞?g?gt ?rr   r   gn۶m۶?g++?c                    t        dgdz  t        d      d      } t        |j                  d      j	                  d      |             }t        d|it        j                  g ddd g	      
      }t        j                  ||       y )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     cUQYU1X67>C,,,5v>@- (( Dk
 	fh/r   r   r   r   r   grڶ?g߿yq+?c                    t        dgdz  t        d      d      } t        |j                  d      j	                  d                   }t        d|it        j                  g dg d	
            }t        j                  ||       |j                  d      dg   j                  fd      }t        j                  ||       y )Nr   rZ   r%   r   r   r  r   ))r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   NNr   r   c                 F     t        | j                  d                   S )Nr   r  )ra   r  )r?   r  s    r   r@   z/TestEWM.test_pairwise_methods.<locals>.<lambda>  s    5gaeeenf57 r   )
r   rj   ra   r3   r  r   r   rB   rl   rA   r  s    `    r   test_pairwise_methodszTestEWM.test_pairwise_methods  s     cUQYU1X67>C,,,5v>@- (( (
 	fh/::c?C5)//7
 	fh/r   c                 
   d}|j                  d      }|j                  d      j                  ||      j                         }t	        dg dit        j                  g ddd g      	      }t        j                  ||       y )
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   )	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RRT  (( Dk
> 	fh/r   c                    d}|j                  d      }|j                  d      }|j                  ||      j                         }|j                  ||j                        j                         }t        j                  ||       y )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  so    $  %7<<>6685<<6@EEG
fh/r   c                    t        g dt        ddd      t        d      d      }|j                  d      j	                  dd	
      }|j                         }t        t        ddd      dgdz  dt        j                  g dt        t        d            gdd g            }t        j                  ||       |d   j                         }t        dgdz  t        j                  g dt        ddd      gdd	g      d      }t        j                  ||       |j                         }t        j                  ||       y )N)r   r   r   r   r   z2021-9-1r   h)rS  r  )r   	timestampr   r   1hr  rF  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1X
 jj&&t&<'
ACHUQY ((*DqN;D$<
 	fk2S! EAI((-z13? [) 

 	v7
fk2r   N)r  r  r  r0   r  r  r'   r   r  r   r  r
  r  r   r   r   r  r  o  s    [[VWRVVXx:;RVVS"46HIJ	
00$ [[
2663Q'	(52663(2S*TU0	0.%0N0%3r   r  c                     t        g dg dd      } | j                  dg      }|j                  d      j                  |       }t	        j
                  g ddd g      }t        t        j                  t        j                  t        j                  gt        j                  d	d	gd|
      }t        j                  ||       y )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""#DSRVKXEvvrvvrvv&bffc3-?@H &(+r   c                     t        g dg dd      } | j                  dg      }|j                  d      j                  |       }t	        j
                  g ddd g      }t        t        j                  t        j                  t        j                  gt        j                  d	d	gd|
      }t        j                  ||       y )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 vvrvvrvv&bffc3-?@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  0 O OM4 M4`k0 k0\K3 K3\	,,r   