
    .ic                         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y)    N)Pandas4Warning)		DataFrameDatetimeIndexIndex
MultiIndexNamedAgg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        ^/var/www/app/trading-bot/venv/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d) Zej                  j                  d*d+d,g      d-        Zd. Zd/ Zd0 Zd1 Zej                  j                  d2d3d4dd5e jB                  de jB                  ddgfd6i e jB                  de jB                  dd7gfg      d8        Z"ej                  j                  d9d:d;id;fd:d<id=fg      d>        Z#ej                  j                  d?ddg      d@        Z$dA Z%dB Z&dC Z'dD Z(dE Z)ej                  j                  dFd4dGdHg dIfd4d4dHg dJfdKdKdHg dLfdKdKdMg dNfg      dO        Z*ej                  j                  dP e+jX                  dQdRg      dSdTgg      dU        Z-dV Z.ej                  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 Z5y<)e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_argument5   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   )	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	;;$$%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_periodsr:   c                 D    | j                  dd      j                         S )Nr   r   rL   )r>   countr@   s    r   rB   z3TestRolling.test_getitem_multiple.<locals>.<lambda>Q   s    qyyy/J/P/P/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	;;$$%RS
vx0
vx0r   f
sumr?   minmaxfirstlastrO   kurtskewnuniquec                    |j                  dd      }|j                  d      } t        |             }|j                  fd      }t	        j
                  |d   t        d      g      }||_        t        j                  ||       y )Nr   F
group_keys   windowc                 D     t        | j                  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IIQIA77?@#//C%)0LM'
fh/r   stdvarc                    |j                  dd      }|j                  d      } t        |      d      }|j                  fd      }t	        j
                  |d   t        d	      g      }||_        t        j                  ||       y )
Nr   Fr]   r_   r`   r   ddofc                 H     t        | j                  d            d      S )Nr_   r   rr   rd   rf   s    r   rB   z/TestRolling.test_rolling_ddof.<locals>.<lambda>y   s    %=WQYYq\1%=1%E r   r&   rg   rl   s    `      r   test_rolling_ddofzTestRolling.test_rolling_ddofs   s}    su5IIQIAA&77EF#//C%)0LM'
fh/r   interpolationlinearlowerhighermidpointnearestc                    |j                  dd      }|j                  d      }|j                  d      }|j                  fd      }t	        j
                  |d   t        d	      g      }||_        t        j                  ||       y )
Nr   Fr]   r_   r`   皙?rv   c                 H    | j                  d      j                  d      S )Nr_   r~   r   )r>   quantilerA   rv   s    r   rB   z3TestRolling.test_rolling_quantile.<locals>.<lambda>   s    aiil++C}+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IIQIC}=77M
 $//C%)0LM'
fh/r   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   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   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                     j                  d      }|j                  d      } t        |            }fd}|j                  |      }t        j
                  |d<   t        j                  ||       y )Nr   r_   r`   c                 F     t        | j                  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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   sh    s#IIQIAz*	8 774= 
fh/r   c                     |j                  d      }|j                  d      } t        |j                        d      }fd}|j	                  |      }t        j                  ||       y )Nr   r_   r`   Tpairwisec                 \     t        | j                  j                  d            d      S )Nr_   Tr   )re   r   r>   rf   s    r   r   z8TestRolling.test_rolling_corr_cov_pairwise.<locals>.func   s#    -7133;;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0r   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   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o%%a(#d#%"&&\OA$66bffXE"&&\OA$66bffXE ((	 (
& 	fh/r   c                     |j                  dd      }|j                  d      }|j                  d       }|j                  fd      }t        j                  |d   t        d	      g      }||_        t        j                  ||       y )
Nr   Fr]   r_   r`   c                 "    | j                         S NrT   r@   s    r   rB   z0TestRolling.test_rolling_apply.<locals>.<lambda>       1557 r   rawc                 J    | j                  d      j                  d       S )Nr_   c                 "    | j                         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%78Is%7%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IIQI *477ST#//C%)0LM'
fh/r   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 )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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   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 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   )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  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_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>U446 	
 ##RXr&z$:4.Q>

 	vx0r   rM   )r   r_   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   rM   r   )
r   r   r   r   r         @      @r   r          @      $@r   r   )r   ri   r5   r>   r?   reset_indexrV   r)   r   rD   rk   )r6   rM   r   window_sizerI   
grp_A_meanrA   
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  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   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  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                   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  sW     3>2Ed..1ii
"((;a?d...#.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   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
 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   r_   r   
2019-01-01r   
2019-01-02r!  r   column1column2r   dater   1Dr%  leftr   r  r#  r         "@r   r   r   ri   r
   r5   r>   rT   r	   r)   r   r   
from_framerD   rE   r6   r%  r   rI   rH   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        g dg dg dd      }|j                  d      j                  d      j                  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                  ||       y )Ncatdogr0  r1  r0  r1  333333"@r         #@g      A@      (@r   皙@r   g#@g     h@r   g      E@kindheightweightr9  r   r;  columnaggfuncr:  total_weight
min_height1@gfffff3@     i@g      n@r3  r4  r   r   r0  r1  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  s    B:<
 JJvWQZS%XsC#8SA   	 !#tRVVUE J!vvsCcB !34#%78tn

 	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      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   r_   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   rV   rU   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   rA   )r   r   )r   z12r   r   r   r   r   ))r   r   rA   )r   r   r   )r   r   rL  )r   rM  rN  )
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     ((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   )rR  s2rU  )rR  rU  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==?===. $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#   )rj   r   	eventTimerS  rj   r   count_to_date10Dr^  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   r^  r_  )	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: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   )r1   r   r1   F)sortr   r   r   )r   r   r   r   r   rS  )r   r5   r>   rU   r)   arrayr   r   rV  rD   rk   )r6   rI   rH   s      r   test_groupby_rolling_no_sortz(TestRolling.test_groupby_rolling_no_sortg  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      }d}t        j                  t
        |	      5  |j                  d
      j                  ddd      d   j                         }d d d        t        g dd| d      }t        j                  g d|gd
dg      }t        t        j                  ddt        j                  ddgd|      }t        j                  |       y # 1 sw Y   xY w)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   ro  r   r7   rI   dtir   rH   s           r   $test_groupby_rolling_count_closed_onz0TestRolling.test_groupby_rolling_count_closed_onx  s    8 8c3Z"z14H	
 K''cB 	

7#&8D 	  vQ-

 ##. F#
 VVS#rvvsC0

 	vx0;	 	s   5DD)r   kwargsr   r>   r   r  	expandingg3Ey?c                 d   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  |dt        j                  g d	dd g
            }|j                  d      }t        j                  ||       y )Nr   r   r   r   r   rS  r   r   )r   r   )r   r   )r   r   r   r_   r   r   r   )r   re   r5   semr)   r   r   r   rV  rD   rk   )r6   r   rv  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==?66(Q,_5((B3PT+
 ===-
fh/r   )rollingskeyr   r   Nrj   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   rj   r   z values must not have NaTr/   r   )60min)
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
 '>c"B]]:u4M-NO 	9#BJJsO##8x8	9 	9 	9s   ""BBr^   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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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 )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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   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  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 )Nr5  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    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   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    RYYs^1a&1*<RSCSTU\\#d\+C((+002#//	 #
 	fllN'Jr   c                     |j                  dd      }|j                  d       j                  }|j                  d      }|j                  d       j                  }t	        j
                  ||       y )Nr   Fr]   c                 @    | j                  d      j                         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 r   r_   r`   c                 @    | j                  d      j                         S rc   r  r@   s    r   rB   zUTestRolling.test_groupby_rolling_object_doesnt_affect_groupby_apply.<locals>.<lambda>7  s    199Q<#3#3#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  sa    su57778>>IIQI5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           	      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   r_   r   r   r   r%   )r   r   r   r   r   r   r   r   )ra   rM   r  r   rT  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)   rj  r   rD   rk   )r6   ra   rM   r  rH   r   rI   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%   rS  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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   rh   r   r5   r>   rT   r	   r)   r   r   rD   rE   r  s         r   test_groupby_levelzTestRolling.test_groupby_level`  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  rS  r%  rq  rr  F)as_indexr   r   r  r   )r   r   r   r   r   )r   astyper   re   r5   r>   r?   updaterj   rD   rk   )
r6   r;   r   ro  r   r   attrgp_byrI   rH   s
             r   test_as_index_falsezTestRolling.test_as_index_falsex  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)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  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   *   )trA   r   z.* must be monotonicr/   r   r  3s)r   ra   )r   r
   r2   r3   r  r5   r>   )r6   shuffledsecrA   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      }|j                  d      j	                  d      j                  d       }|j	                  d      j                  dd      d   j                         }t        j                  ||       y )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                 F    | j                  d      d   j                         S )N180Dr  r  r@   s    r   rB   z4TestRolling.test_groupby_monotonic.<locals>.<lambda>  s    QYYv.x8<<> r   r  ra  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E F,6
^^F# LL WV_U>? 	
 F#++Fv+>xHLLN
vx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      }|j                  d      j                  d      j                  d       }|j                  d      j                  dd      j                  j                         }t        j                  ||       y )Nz2016-01-01 09:30:00r#   r  )r  rn  freqr   r   r$   r   r%   r&   r   r   r   c                 F    | j                  d      d   j                         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 r   r  ra  )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S2Xb(A372^^UEN3YYr]
 LL%%c*001VW 	 C((#(688==?
vx0r   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  rZ  r   r   z&Each group within B must be monotonic.r/   r   365Dr   ra  )r   r
   ri   r2   r3   r  r5   r>   )r6   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)6r  r  r  r8   rJ   rQ   r2   markparametrizern   ru   r   r   r   r   r   r   r   r   r   r   r  r
  r  r-  rH  rJ  rP  rX  rg  rk  ru  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   sZ   +
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0<1< [[VeU^41 51(060:0")1V [[- Q/bffc3/
 "rvvsBFFCH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1@1*
4r   r-   c                   \   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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(   )r6   s    r   framezTestExpanding.frame  s6    sRx1#(2aS1W<299R=QRRr   rR   rS   c                    |j                  dd      }|j                         } t        |             }|j                  fd      }t	        j
                  |d   t        d      g      }||_        t        j                  ||       y )Nr   Fr]   c                 B     t        | j                                      S r   re   rw  rf   s    r   rB   z.TestExpanding.test_expanding.<locals>.<lambda>*  s    %>WQ[[]A%>%@ r   r&   
r5   rw  re   rC   r   rh   ri   rj   rD   rk   r6   rR   r  rF   rP   rI   rH   rm   s    `      r   test_expandingzTestExpanding.test_expanding  st      MM#%M0KKMA77@A#//sU2Y0GH'
fh/r   ro   rp   c                    |j                  dd      }|j                         } t        |      d      }|j                  fd      }t	        j
                  |d   t        d      g      }||_        t        j                  ||       y )Nr   Fr]   r   rr   c                 F     t        | j                               d      S )Nr   rr   r  rf   s    r   rB   z3TestExpanding.test_expanding_ddof.<locals>.<lambda>6  s    %>WQ[[]A%>A%F r   r&   r  r  s    `      r   test_expanding_ddofz!TestExpanding.test_expanding_ddof0  su    MM#%M0KKMAA&77FG#//sU2Y0GH'
fh/r   rv   rw   c                    |j                  dd      }|j                         }|j                  d      }|j                  fd      }t	        j
                  |d   t        d      g      }||_        t        j                  ||       y )Nr   Fr]   r~   r   c                 F    | j                         j                  d      S )Nr~   r   )rw  r   r   s    r   rB   z7TestExpanding.test_expanding_quantile.<locals>.<lambda>E  s    akkm,,S,N r   r&   )
r5   rw  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KKMC}=77N
 $//sU2Y0GH'
fh/r   r   r   c                    j                  d      }|j                         } t        |            }fd}|j                  |      }t	        t        dd            t	        t        dd            z   }t        j                  |j                  |df<   t        j                  |d<   t        j                  ||        t        |j                        d	      }fd
}	|j                  |	      }t        j                  ||       y )Nr   c                 D     t        | j                                     S r   r  )rA   rR   r  s    r   func_0z5TestExpanding.test_expanding_corr_cov.<locals>.func_0S  s    ,71;;=!,U33r   r#   =   H   q   r   Tr   c                 Z     t        | j                  j                               d      S )NTr   )re   r   rw  rf   s    r   func_1z5TestExpanding.test_expanding_corr_cov.<locals>.func_1b  s!    .7133==?A.==r   )r5   rw  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#KKMAu%	4 776? b"&eBn)==%'VVhk" 
fh/ a$/	> 776?
vx0r   c                    |j                  dd      }|j                         }|j                  d       }|j                  fd      }t        j                  |d   t        d      g      }||_        t        j                  ||       y )Nr   Fr]   c                 "    | j                         S r   r   r@   s    r   rB   z4TestExpanding.test_expanding_apply.<locals>.<lambda>m  r   r   r   c                 H    | j                         j                  d       S )Nc                 "    | j                         S r   r   r   s    r   rB   zFTestExpanding.test_expanding_apply.<locals>.<lambda>.<locals>.<lambda>n  s    1557 r   r   )rw  rC   r   s    r   rB   z4TestExpanding.test_expanding_apply.<locals>.<lambda>n  s    Q[[]%8%89JPS%8%T r   r&   )	r5   rw  rC   r   rh   ri   rj   rD   rk   )r6   r   r  rF   rP   rI   rH   rm   s    `      r   test_expanding_applyz"TestExpanding.test_expanding_applyh  sx    MM#%M0KKM *477TU#//sU2Y0GH'
fh/r   c           	      T   t        g dg dg dd      }|j                  d      j                  d      j                  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                  ||       y )Nr/  r2  r6  r8  r9  r   r;  r<  r:  r?  )r7  rB  g;@r   rC  g     n@)r3  r3  r3  r   r   r   r0  r1  rD  rE  rF  r   r   )
r   r5   rw  rG  r   rT   rU   r   rD   rk   r	  s       r   #test_groupby_expanding_agg_namedaggz1TestExpanding.test_groupby_expanding_agg_namedaggt  s    B:<
 JJvYq\S%XsC#8SA   	  D< !34#%78tn

 	fh/r   N)r  r  r  r2   fixturer  r  r  r  r  r   r  r  r  r   r   r   r  r    s    ^^S S [[	
	0	0 [[S5%.1	0 2	0 [[M00 [[S65/21 316
00r   r  c            
       >   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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""""""@ro   绹۞?禀?t ?rp   r   n۶m۶?++?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   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     cUQYU1X67>C,,,5v>@- (( Dk
 	fh/r   c                    t        dgdz  t        d      d      }|j                  d      j                  d      j	                  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                  ||       y )Nr   r_   r'   r   r   r  r   r?   r<  ro   rp   )B_meanB_stdB_varr  r  r  r  r   r  r  r  r   r   )r   ri   r5   r   rG  r   r)   r   r   r   rD   rk   r	  s       r   test_groupby_ewm_agg_namedaggz%TestEWM.test_groupby_ewm_agg_namedagg  s    cUQYU1X67JJsOSSS\SsF;c59c5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        |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   r_   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  )re   r   )rA   r"  s    r   rB   z/TestEWM.test_pairwise_methods.<locals>.<lambda>  s    5gaeeenf57 r   )
r   ri   re   r5   r   r   r   rD   rk   rC   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   ry  r   )r   r   )r   r   )r   r%   r   r   )	popr5   r   r?   r   r   r   rD   rk   )r6   r    r/  r0  rI   rH   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.  )r1  r5   r   r?   valuesrD   rk   )r6   r    r/  r0  r   rI   rH   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)rn  r  )r   	timestampr   r   1hr8  ra  r   )r8  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1X
 jj&&t&<'
ACHUQY ((*DqN;D$<
 	fk2S! EAI((-z13? [) 

 	v7
fk2r   N)r  r  r  r2   r  r  r)   r   r#  r(  r+  r2  r5  r=  r   r   r   r  r    s    [[VWRVVXx:;RVVS"46HIJ	
00$!0F [[
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?  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_indexrD  D  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   rA  ))r   r   )r   r   )r   r   r   r   r   rB  rC  s        r   &test_rolling_corr_with_tuples_in_indexrF  P  s    	 	

B& 
SE	BZZ]b)F""/T{E vvrvvrvv&bffc3-?@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  rD  rF  r   r   r   <module>rN     s      (
 
 
  + 3  0 O OZ4 Z4z0 0Dn3 n3b	,,r   