U
    *ifȩ                     @   s   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
 d dlmZ d dlmZ d dlmZ G dd dZG dd dZG d	d
 d
ZdS )    N)	DataFrameIndex
MultiIndexSeries	Timestamp
date_rangeto_datetime)BaseIndexer)get_groupbyc                   @   s  e Zd Zdd Zdd Zdd Zdd Zej	d	d
dddej
dejddddgdd Zej	d	ddgdd Zej	ddddddgdd  Zej	d!d"d#gd$d%ggd&d' Zej	d	d"d$gd(d) Zej	d	d"d$gd*d+ Zej	d,d$d-d-gd-d.ggfd"d-d%gd%d-ggfgd/d0 Zd1d2 Zd3d4 Zej	d5d-d6gd7d8ggd9d: Zd;d< Zd=d> Zej	d?d@dAdBgdCdD ZdEdF ZdGdH ZdIdJ ZdKdL Zej	dMddgdNdO ZdPdQ ZdRdS ZdTdU Z dVdW Z!ej	dXdYdZd#d[fd\i fgd]d^ Z"ej	d_d`daidafd`dbidcfgddde Z#ej	dfd6d8gdgdh Z$didj Z%dkdl Z&dmdn Z'dodp Z(dqdr Z)ej	dsdZdtdudbd7d-d-dbd7d-d-gfdZdZdudbdbd-d-dbdbd-d-gfdAdAdudbdbdbdbdbdbdbdbgfdAdAdvdbdbdbdwdbdbdbdwgfgdxdy Z*ej	dze+,d{d|gd}d~ggdd Z-dd Z.ej	ddgdddddgigddcge/de/de/de/dgddddgdggdd Z0dd Z1dd Z2dd Z3dd Z4dd Z5dbS )TestRollingc                 C   s4   t dgd dgd  dgd  tdd| _d S 	N                  (   ABr   nparangeframeself r   S/home/mars/bis/venv/lib/python3.8/site-packages/pandas/tests/window/test_groupby.pysetup_method   s    zTestRolling.setup_methodc              	   C   sb   d}t jt|d | jjddd W 5 Q R X | jd}|jrDtt| jddd}|js^td S )Nz4groupby\(\) got an unexpected keyword argument 'foo'matchr   r   )fooTbymutated)pytestraises	TypeErrorr   groupbyr%   AssertionErrorr
   )r   msggr   r   r   test_mutated   s    
zTestRolling.test_mutatedc                 C   s   | j d}t| j ddd}|jdd }|d j}t|| |dj }t|| |jd }t|| | j j| j j	d }t|| d S )Nr   Tr#   c                 S   s   |  d S )Nr   rollingmeanxr   r   r   <lambda>%       z*TestRolling.test_getitem.<locals>.<lambda>r   )
r   r)   r
   r   applyr/   r0   tmassert_series_equalr   )r   r,   	g_mutatedexpectedresultr   r   r   test_getitem!   s    zTestRolling.test_getitemc                 C   sj   | j d}|jddd}t| j ddd}|jdd }|j }t|| |j }t|| d S )	Nr   r   r   min_periodsTr#   c                 S   s   | j ddd S )Nr   r   r<   )r/   countr1   r   r   r   r3   9   r4   z3TestRolling.test_getitem_multiple.<locals>.<lambda>)	r   r)   r/   r
   r   r5   r>   r6   r7   )r   r,   rr8   r9   r:   r   r   r   test_getitem_multiple3   s    

z!TestRolling.test_getitem_multiplefsumr0   minmaxr>   z ignore:min_periods:FutureWarning)Zmarkskurtskewc                    sr   | j d}|jdd}t|  }| fdd}|jddd}t| j d tdg}||_	t
|| d S )	Nr      windowc                    s   t | d  S NrG   getattrr/   r1   rA   r   r   r3   U   r4   z*TestRolling.test_rolling.<locals>.<lambda>r   Zaxisr   r   r)   r/   rL   r5   dropr   from_arraysrangeindexr6   assert_frame_equalr   rA   r,   r?   r:   r9   expected_indexr   rM   r   test_rollingA   s    zTestRolling.test_rollingstdvarc                    sv   | j d}|jdd}t| dd}| fdd}|jddd}t| j d td	g}||_	t
|| d S )
Nr   rG   rH   r   Zddofc                    s   t | d ddS )NrG   r   rZ   rK   r1   rM   r   r   r3   c   r4   z/TestRolling.test_rolling_ddof.<locals>.<lambda>rN   r   rO   rU   r   rM   r   test_rolling_ddof]   s    zTestRolling.test_rolling_ddofinterpolationlinearlowerhighermidpointnearestc                    st   | j d}|jdd}|jd d}| fdd}|jddd	}t| j d td
g}||_	t
|| d S )Nr   rG   rH   皙?r\   c                    s   |  djd dS )NrG   rb   rc   )r/   quantiler1   rc   r   r   r3   t   r4   z3TestRolling.test_rolling_quantile.<locals>.<lambda>r   rN   r   )r   r)   r/   rd   r5   rP   r   rQ   rR   rS   r6   rT   r   r\   r,   r?   r:   r9   rV   r   rc   r   test_rolling_quantilek   s    
z!TestRolling.test_rolling_quantilezf, expected_valcorrr   cov      ?c              
   C   s   t tddgd dgd  dddddgd ddd	g}t tddddddgd
d	}t|jddd||}tjg|gd  d }t |dgtj	dgd dgd  dgd dgd  t
tddd gddd	gdd}t|| d S )N
   r      r   r   rG   )valueidx1idx2rm   rn   )rl   rn   r   levelrl      namescolumnsrS   )r   rR   	set_indexrL   r)   r/   r   nanr   rQ   listr6   rT   )r   rA   Zexpected_valdfotherr:   expected_datar9   r   r   r   /test_rolling_corr_cov_other_same_size_as_groups}   s,    ,z;TestRolling.test_rolling_corr_cov_other_same_size_as_groupsc                    sZ   j d}|jdd}t| j } fdd}||}tj|d< t|| d S )Nr   rG   rH   c                    s   t | d jS rJ   )rL   r/   r   r1   rA   r   r   r   func   s    zITestRolling.test_rolling_corr_cov_other_diff_size_as_groups.<locals>.func)	r   r)   r/   rL   r5   r   rw   r6   rT   r   rA   r,   r?   r:   r~   r9   r   r}   r   /test_rolling_corr_cov_other_diff_size_as_groups   s    

z;TestRolling.test_rolling_corr_cov_other_diff_size_as_groupsc                    sP   | j d}|jdd}t|j dd} fdd}||}t|| d S )Nr   rG   rH   Tpairwisec                    s   t | jd ddS )NrG   Tr   )rL   r   r/   r1   rM   r   r   r~      s    z8TestRolling.test_rolling_corr_cov_pairwise.<locals>.func)r   r)   r/   rL   r   r5   r6   r7   r   r   rM   r   test_rolling_corr_cov_pairwise   s    
z*TestRolling.test_rolling_corr_cov_pairwisezfunc, expected_values      ?      @c                 C   s   t ddddgddddgddddgd}|d	d
}t|| }t dtjg |d  dtjg  dtjg |d  dtjg  dtjddddddddgd	d d gdd}t	|| d S )Ng1g2r   r   r   rq   rG   abcr   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   rr   rS   )
r   r)   r/   rL   r   rw   r   from_tuplesr6   rT   )r   r~   Zexpected_valuesry   Zrolr:   r9   r   r   r   test_rolling_corr_cov_unordered   s4    



z+TestRolling.test_rolling_corr_cov_unorderedc                    sx   | j d}|jdd}|jdd  d}| fdd}|jddd	}t| j d td
g}||_t	
|| d S )Nr   rG   rH   c                 S   s   |   S NrB   r1   r   r   r   r3      r4   z0TestRolling.test_rolling_apply.<locals>.<lambda>rawc                    s   |  djdd  dS )NrG   c                 S   s   |   S r   r   yr   r   r   r3      r4   zBTestRolling.test_rolling_apply.<locals>.<lambda>.<locals>.<lambda>r   )r/   r5   r1   r   r   r   r3      r4   r   rN   r   )r   r)   r/   r5   rP   r   rQ   rR   rS   r6   rT   r   r   r,   r?   r:   r9   rV   r   r   r   test_rolling_apply   s    zTestRolling.test_rolling_applyc                 C   s   t dgd dgd  dgd d}|d}tdd	d
dddg}dd g|_t tjddgd dg|d}|jdd }t	
|| |  |jdd }t	
|| d S )Nr"   r   barr   rq   r   r   )r   r   )r   rG   )r   rk   )r"   r   )r"   r   )r"   r          @r   r   rt   rH   )r   r)   r   r   rs   r   rw   r/   rB   r6   rT   )r   ry   r,   mir9   r:   r   r   r   test_rolling_apply_mutability   s    $

z)TestRolling.test_rolling_apply_mutabilityzexpected_value,raw_valueT        Fc                 C   sp   dd }t dddgdddgd}|djdj||d}t|gd tjd	dd gd
dd}t	|| d S )Nc                 S   s   t t| tjS r   )int
isinstancer   Zndarrayr1   r   r   r   r"      s    z-TestRolling.test_groupby_rolling.<locals>.foor   r   r   )idrl   r   r   )r   r   r   r   r   r   rr   rl   rS   name)
r   r)   rl   r/   r5   r   r   r   r6   r7   )r   Zexpected_valueZ	raw_valuer"   ry   r:   r9   r   r   r   test_groupby_rolling   s    z TestRolling.test_groupby_rollingc                 C   s  t tdd}||jddd }t tjgd tdd}t	
|| t tdd}||jddd }t tjgd	 td
d}t	
|| tdgd dgd  tdd}|djddd }ttjdddtjtjddddtjgtjddd gddgd}t	|| tdgd dgd  tdd}|djddd }ttjdddtjtjdddtjg
tjddd gddgd}t	|| d S )Nr   rq   Tr   )centerrI   rk   )r   r   r   r   r   rG   r   )rk   rG   r   rG   )r   r   r   r   r   r      r   r   r      r   	   )r   r   r   r   r   r   r   r   r   rG   r   rk   r   rq   r   r   r   r   r   r   )r   rj   rr   )rS   ru   rj   )
r   r   r   r   r   r   r   r   r   r   )r   rR   r)   r/   r0   r   rw   r   r   r6   r7   r   rT   )r   Zseriesr:   r9   ry   r   r   r   "test_groupby_rolling_center_center  sH    

" "z.TestRolling.test_groupby_rolling_center_centerc                 C   s   t tdddgd dgd  tddd	}|d
jdddddj }tddddddddddg
dtj	dt
dfdt
dfdt
dfdt
dfdt
dfdt
dfdt
dfdt
dfdt
dfdt
dff
d
dgd d!}t|| d S )"Nz
2020-01-01z
2020-01-10group_1rq   group_2rG   rj   )Dategbrl   )datar   r   Tr   )onr   r=   r         ?r   g      @      @g      @      @      @rl   z
2020-01-02z
2020-01-03z
2020-01-04z
2020-01-05z
2020-01-06z
2020-01-07z
2020-01-08z
2020-01-09rr   r   rS   )r   r   rR   r)   r/   rl   r0   r   r   r   r   r6   r7   r   ry   r:   r9   r   r   r   test_groupby_rolling_center_onM  s@    
   










z*TestRolling.test_groupby_rolling_center_onr=   rk   rG   r   c              
   C   s   t dgd dgd  tdd}d}|dj|d|d	 }| dd
g }ddddddddddg
}dd |D }td|d }tjg| }|||d|   | }	|||d|   | }
t dgd dgd  |	|
 d}t	
|| d S )Nr   rj   r   r   )groupr   rk   r   T)r   r=   r   r   r   r   r   r         @g      @r   r          @c                 S   s   g | ]}|d  qS )g      $@r   .0r2   r   r   r   
<listcomp>~  s     zGTestRolling.test_groupby_rolling_center_min_periods.<locals>.<listcomp>r   r   )r   rR   r)   r/   r0   reset_indexrD   r   rw   r6   rT   )r   r=   ry   window_sizer:   Z
grp_A_meanZ
grp_B_meanZnum_nansZnansZgrp_A_expectedZgrp_B_expectedr9   r   r   r   'test_groupby_rolling_center_min_periodsp  s&    "
  z3TestRolling.test_groupby_rolling_center_min_periodsc                 C   s   t ddddgddddgdd	d
d	gd}|ddg d }t tjtjdtjgdgtjddd gdd}t	|| |dd d }t
tjtjdtjgtjddd gddd}t|| d S )Nr   r   r   r   r   r   r   rj   r      r   r   r   )r   r   r   r   r   rr   rt   r   )r   r)   r/   rD   r   rw   r   r   r6   rT   r   r7   r   r   r   r   test_groupby_subselect_rolling  s.    "  z*TestRolling.test_groupby_subselect_rollingc                 C   s   G dd dt }tddddddgd	 id
gd dgd  dgd  d}||jj|d	ddd }||jjd	dd }t|| d S )Nc                   @   s   e Zd ZdddZdS )zFTestRolling.test_groupby_rolling_custom_indexer.<locals>.SimpleIndexerr   Nc                 S   sH   |d kr| j nd}tj|tjdd }| | j  }|||dk < ||fS )Nr   Zdtyper   )r   r   r   int64copy)r   Z
num_valuesr=   r   closedendstartr   r   r   get_window_bounds  s
    zXTestRolling.test_groupby_rolling_custom_indexer.<locals>.SimpleIndexer.get_window_bounds)r   NNN)__name__
__module____qualname__r   r   r   r   r   SimpleIndexer  s
          r   r   r   r   r   r   r   r   r   rk   r   r   r   )r   r<   rI   r=   )r	   r   r)   rS   r/   rB   r6   rT   )r   r   ry   r:   r9   r   r   r   #test_groupby_rolling_custom_indexer  s    
  z/TestRolling.test_groupby_rolling_custom_indexerc                 C   s   t tdtddddg tdgd d}|djdd	d
dd  }ttjddtjddgt	j
dtdfgd dtdfgd  dd	gddd}t|| d S )Nrq   r   r   r   
2019-01-01column1Zcolumn2r   dater   1Dr   leftr   r   r   r   r   r   r   rr   r   r   rR   r   r)   r/   rB   r   r   rw   r   r   r6   r7   r   r   r   r   'test_groupby_rolling_subset_with_closed  s(    
		z3TestRolling.test_groupby_rolling_subset_with_closedc                 C   s   t tdtddddg tdgd d}|ddd	g jd
d	ddd  }ttjddtjddgt	j
dtdfgd dtdfgd  dd	gddd}t|| d S )Nrq   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rr   r   r   r   r   r   r   .test_groupby_subset_rolling_subset_with_closed  s4    

  	z:TestRolling.test_groupby_subset_rolling_subset_with_closedr~   c                 C   s~   t dddgtjdddgddgdd	d
}t||d| }t tjtjdgtjdddgd	ddgdd	d
}t	|| d S )Nr   r   )r   r2   )r   r   )r   z12rr   r   r   r   )r   r   r2   )r   r   r   )r   r   r   )
r   r   r   rL   r)   r/   r   rw   r6   r7   )r   r~   Zdsr:   r9   r   r   r   "test_groupby_rolling_index_changed  s$      z.TestRolling.test_groupby_rolling_index_changedc                 C   s   t dg i}|djdd }|jdd}tjtg ddtg ddgdd gd|_t	
|| t g g d	}|dd
gjdd }|jdd
gd}tjtg ddtg ddtg ddgdd
d gd|_t	
|| d S )Ns1r   rH   ru   float64r   r   rr   )r   s2r   )r   r)   r/   rB   rP   r   Zfrom_productr   rS   r6   rT   )r   r9   r:   r   r   r    test_groupby_rolling_empty_frame  s&     


z,TestRolling.test_groupby_rolling_empty_framec                 C   s6  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dddgdd}|d}| |d< |jddd}|dd }t ddtdddddgddtdddddgddtdddddgdd	tddd
ddgdd	tdddddggddddgdddg}t|| d S )Nr   r     r   r   r   r   Zr   r   Hrq   Er   rS   r   Z	eventTimer   Zcount_to_dateZ10dr   c                 S   s
   | j d S )Nr   )shapery   r   r   r   r3   .  r4   z?TestRolling.test_groupby_rolling_string_index.<locals>.<lambda>r   r   r   )	r   r   rv   r)   Zcumcountr/   r5   r6   rT   )r   ry   groupsZrolling_groupsr:   r9   r   r   r   !test_groupby_rolling_string_index  s6    	

	
z-TestRolling.test_groupby_rolling_string_indexc                 C   s|   t ddgddgdjdddd }t tddgddggdd	gtjd
dgdd gdd}|jdd}t	
|| d S )Nr   r   )r"   r   r"   F)sortr   r   r   )r   r   r   rr   rt   r   )r   r)   r/   rC   r   arrayr   r   rP   r6   rT   )r   r:   r9   r   r   r   test_groupby_rolling_no_sort;  s     z(TestRolling.test_groupby_rolling_no_sortc                 C   s   t tdtddddg tdddd}|djd	d
ddd  }ttjddtjddgdt	j
dtdfdtdfdtdfdtdfdtdfdtdfgdd
gdd}t|| d S )Nrq   r   r   r   Z20190101)r   periodsr   r   Z3dr   r   r   r   r   z
2018-12-27z
2018-12-29z
2018-12-31z
2018-12-28z
2018-12-30r   rr   r   )r   rR   r   r)   r/   r>   r   r   rw   r   r   r   r6   r7   r   r   r   r   $test_groupby_rolling_count_closed_onL  s<    

	
  





z0TestRolling.test_groupby_rolling_count_closed_on)r~   kwargsr/   r   r   	expandingc                 C   s   t ddgddgddgddgddggddgd}t|d|f | }t tjgd tjdtjddgd	tjd
ddddgdd gdd}|jdd}t	
|| d S )Nr   r   r   r   r   r   rk   g&?r   r   r   )r   r   )r   r   r   rG   rr   r   )r   rL   r)   Zsemr   rw   r   r   rP   r6   rT   )r   r~   r   ry   r:   r9   r   r   r   test_groupby_rolling_seml  s       z$TestRolling.test_groupby_rolling_sem)rollingskeyr   r   NrS   c              	   C   sp   t tddtjgdddgdddgd}|dkr:|d}tjt| d	d
 |dj	d| W 5 Q R X d S )Nz2020-06-01 12:00z2020-06-01 14:00r   r   r   r   rS   r   z values must not have NaTr    r   60min)r  )
r   r   r   rw   rv   r&   r'   
ValueErrorr)   r/   )r   r  r  ry   r   r   r   "test_groupby_rolling_nans_in_index  s    
z.TestRolling.test_groupby_rolling_nans_in_index
group_keysc                 C   s   dddgdddgg}t j|dd}tdddg|d}|jd	d
g|dd }tdddgt jdddgd	d
d	d
gdd}t|| d S )Nval1val2rm   rn   rr   r   r   r   r   rm   rn   )r  r   r   r   )r	  r	  r	  r	  )r
  r
  r
  r
  )	r   rQ   r   r)   r/   r0   r   r6   r7   )r   r  arraysrS   sr:   r9   r   r   r   test_groupby_rolling_group_keys  s    
z+TestRolling.test_groupby_rolling_group_keysc                 C   s   dddgdddgg}t j|dd}tdddgtdd|d	}|d
dgd }tddddgit jdddgd
dd
dgdd	}t	|| d S )Nr	  r
  r  rr   r   r   r   r   r   rm   r   r   r   r   r   )r	  r   r	  r	  )r
  r   r
  r
  rn   )
r   rQ   r   rR   r)   r/   r0   r   r6   rT   r   r  rS   ry   r:   r9   r   r   r   1test_groupby_rolling_index_level_and_column_label  s    
z=TestRolling.test_groupby_rolling_index_level_and_column_labelc              	   C   sd   t tdddgd d}|dd }tjdd	d
dddddgdd gd}t	|j
| d S )Nr   r   r   rG   r   r   r   r   r   )r   rG   )r   rq   r   r   )r   rk   )r   r   rr   )r   r   r   r)   r/   r0   r   r   r6   assert_index_equalrS   r   ry   r:   rV   r   r   r   )test_groupby_rolling_resulting_multiindex  s    z5TestRolling.test_groupby_rolling_resulting_multiindexc                 C   s   t tdddgd ddddgd d}|dd	gd }tjd
dddddddddddgdd	d gd}t	|j
| d S )Ng      (@r   r   rq   r   rG   r   r   r   )r   r   r   )r   r   rG   )r   r   r   )r   r   r   )r   r   rq   )r   r   rj   )r   r   r   )r   r   rk   )r   r   r   )r   rG   r   )r   rG   r   )r   rG   r   rr   )r   r   r   r)   r/   rB   r   r   r6   r  rS   r  r   r   r   *test_groupby_rolling_resulting_multiindex2  s&    *z6TestRolling.test_groupby_rolling_resulting_multiindex2c              	   C   s   t tdddgd ddddgd d}|jddd	}|d
d }tjddddddddgd
d dgd}t	j
|j|dd d S )Nr   r   r   rG   r   r   r   T)appendr   )r   r   r   )r   r   r   )r   rG   r   )r   rq   r   )r   r   r   )r   r   rG   )r   rk   r   )r   r   rG   rr   equiv)exact)r   r   r   rv   r)   r/   r0   r   r   r6   r  rS   r  r   r   r   *test_groupby_rolling_resulting_multiindex3  s     *
z6TestRolling.test_groupby_rolling_resulting_multiindex3c                 C   s^   | j d}|dd j}|jdd}|dd j}t|| |jrNt|j	jrZtd S )Nr   c                 S   s   |  d S rJ   r/   rB   r1   r   r   r   r3     r4   zUTestRolling.test_groupby_rolling_object_doesnt_affect_groupby_apply.<locals>.<lambda>rG   rH   c                 S   s   |  d S rJ   r  r1   r   r   r   r3     r4   )
r   r)   r5   rS   r/   r6   r  r%   r*   Zgrouper)r   r,   r9   _r:   r   r   r   7test_groupby_rolling_object_doesnt_affect_groupby_apply  s    
zCTestRolling.test_groupby_rolling_object_doesnt_affect_groupby_apply)rI   r=   r   r9   r   r   rightr   c                 C   s   t ddddddddg}|ddddddddgj|||d	d
}t tj|ddtddgd
dddddddggd
d
d
d
ddddgd
dddddddggdd}t|| d S )Nr   r   r   rG   rk   rq   r   r   )rI   r=   r   r   r   r   )Zlevelscodesr   )	r   r)   r/   rY   r   r   r   r6   rT   )r   rI   r=   r   r9   ry   r:   Zexpected_resultr   r   r   test_groupby_rolling_var  s"    
  &z$TestRolling.test_groupby_rolling_varru   )r    )r   Cr   r   c                 C   s|   t ddggd ddggd  ddggd  |d}|d	}|jjd
d}|d}| }d	|jksjtt	|j| d S )Nr   r   r   r   r   r   r   r   r   T)deeprG   )
r   r)   objr   r/   rB   ru   r*   r6   rT   )r   ru   ry   r,   Zoriginal_objr?   r:   r   r   r   test_by_column_not_in_values  s    2

z(TestRolling.test_by_column_not_in_valuesc                 C   s   ddddgddddgg}t j|dd}tddd	d
dgi|d}|jddd d }ttjdtjdgt j	ddddgdddgddd}t
|| d S )NFalconParrotCaptiveWild)AnimalTyperr   z	Max Speedg     `x@g     u@g      >@g      4@r   r   ro   r   g      @g      I@)r$  r$  r&  )r$  r$  r'  )r%  r%  r&  )r%  r%  r'  r(  r)  r   )r   rQ   r   r)   r/   rB   r   r   rw   r   r6   r7   r  r   r   r   test_groupby_level$  s&    

	zTestRolling.test_groupby_levelzby, expected_datar   num      Y@     b@      i@
2018-01-01
2018-01-02     @o@)r   r+  c                    s   dddgdddgdddgdddgg}t |d	d
dgd t d
  d
<  d
g  fdd|D } j|ddjddd }d	ddddgi}|| t | jd}t	|| d S )Nr   r/  r,  r0  r.  r   r-  r1  r   r   r+  r   c                    s   g | ]}t  |qS r   )rL   )r   attrr   r   r   r   Z  s     z3TestRolling.test_as_index_false.<locals>.<listcomp>F)Zas_indexr   r   r   r   )
r   r   rv   r)   r/   r0   updaterS   r6   rT   )r   r$   r{   r   Zgp_byr:   r9   r   r   r   test_as_index_false<  s$    
zTestRolling.test_as_index_falsec                 C   s   d}t d|}d|d< d}t ||}t j|d< d|d< t||dd}|dd jd	dd
 }t|dt	j
dgd dg dgd dg gddgdd}t|| d S )N  r   r   g52DE)rS   adl2rS   r7  rj   r   i  rr   r   )r   repeatrw   r   rv   r)   r/   r0   r   r   rQ   r6   r7   )r   sizeidxvalZarrry   r:   r9   r   r   r   test_nan_and_zero_endpointsg  s0    
 z'TestRolling.test_nan_and_zero_endpointsc              	      sX   ddddg}d t  fdd|D }tjtdd	 |d
jddd W 5 Q R X d S )Nr   r   r   r   r5  c                    s(   g | ] }t d |   |d ddqS )r   r   *   )tr2   r   r   r   secr   r   r     s     zBTestRolling.test_groupby_rolling_non_monotonic.<locals>.<listcomp>z.* must be monotonicr    r   r>  Z3s)r   rI   )r   r&   r'   r  r)   r/   )r   Zshuffledry   r   r@  r   "test_groupby_rolling_non_monotonic  s    z.TestRolling.test_groupby_rolling_non_monotonicc                 C   s   dddgdddgdddgdddgd	d
dgd	ddgd	ddgdddgdddgdddgg
}t |dddgd}t|d |d< |d}|dddd }|djdddd  }t	|| d S )NZDavidz1/1/2015d   z1/5/2015i  z	5/30/20152   z	7/25/2015ZRyanz1/4/2014z	1/19/2015z	3/31/2016ZJoez7/1/2015z9/9/2015z
10/15/2015r   r   amount)r   ru   c                 S   s   |  dd  S )N180DrE  r  r1   r   r   r   r3     r4   z4TestRolling.test_groupby_monotonic.<locals>.<lambda>rF  r   )
r   r   Zsort_valuesrv   r)   r5   r/   rB   r6   r7   )r   r   ry   r9   r:   r   r   r   test_groupby_monotonic  s,    	

z"TestRolling.test_groupby_monotonicc                 C   s   t dddd}tdgd dgd  dgd	  t||ftd
d}|dddd }|djdddj	
 }t|| d S )Nz2016-01-01 09:30:00r   r  )r   r   freqr   r   r   r   r   r   r   r   r   r   r   c                 S   s   |  dd  S )N4sr   r.   r1   r   r   r   r3     r4   zJTestRolling.test_datelike_on_monotonic_within_each_group.<locals>.<lambda>rJ  r   )r   r   r   Zconcatenater   rv   r)   r5   r/   r   r0   r6   r7   )r   datesry   r9   r:   r   r   r   ,test_datelike_on_monotonic_within_each_group  s    	z8TestRolling.test_datelike_on_monotonic_within_each_groupc              	   C   sd   t dgd dgd  dd dD d tdd}tjtd	d
 |djddd W 5 Q R X d S )Nr   r   r   c                 S   s   g | ]}t |d d qS )r   r?  )r   yearr   r   r   r     s     zPTestRolling.test_datelike_on_not_monotonic_within_each_group.<locals>.<listcomp>)i  i  r   rq   rI  z&Each group within B must be monotonic.r    r   Z365Dr   r   )r   rR   r&   r'   r  r)   r/   )r   ry   r   r   r   0test_datelike_on_not_monotonic_within_each_group  s    z<TestRolling.test_datelike_on_not_monotonic_within_each_group)6r   r   r   r   r-   r;   r@   r&   markparametrizeparamfilterwarningsrW   r[   rf   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   r4  r<  rB  rG  rL  rN  r   r   r   r   r      s   


 



&
 
A#

 
 


	
 



!r   c                
   @   s   e Zd Zdd Zejddddddd	d
gdd Zejdddgdd Zejddddddgdd Z	ejdddgdd Z
dd ZdS ) TestExpandingc                 C   s4   t dgd dgd  dgd  tdd| _d S r   r   r   r   r   r   r     s    zTestExpanding.setup_methodrA   rB   r0   rC   rD   r>   rE   rF   c                    sn   | j d}| }t|  }| fdd}|jddd}t| j d tdg}||_	t
|| d S )Nr   c                    s   t |    S r   rL   r   r1   rM   r   r   r3     r4   z.TestExpanding.test_expanding.<locals>.<lambda>r   rN   r   r   r)   r   rL   r5   rP   r   rQ   rR   rS   r6   rT   rU   r   rM   r   test_expanding  s    zTestExpanding.test_expandingrX   rY   c                    sr   | j d}| }t| dd}| fdd}|jddd}t| j d tdg}||_	t
|| d S )	Nr   r   rZ   c                    s   t |   ddS )Nr   rZ   rT  r1   rM   r   r   r3     r4   z3TestExpanding.test_expanding_ddof.<locals>.<lambda>r   rN   r   rU  rU   r   rM   r   test_expanding_ddof  s    z!TestExpanding.test_expanding_ddofr\   r]   r^   r_   r`   ra   c                    sp   | j d}| }|jd d}| fdd}|jddd}t| j d tdg}||_	t
|| d S )	Nr   rb   rc   c                    s   |   jd dS )Nrb   rc   )r   rd   r1   rc   r   r   r3     r4   z7TestExpanding.test_expanding_quantile.<locals>.<lambda>r   rN   r   )r   r)   r   rd   r5   rP   r   rQ   rR   rS   r6   rT   re   r   rc   r   test_expanding_quantile  s    
z%TestExpanding.test_expanding_quantilerg   rh   c                    s   j d}| }t| j } fdd}||}ttddttdd }tj|j	|df< tj|d< t
|| t|j d	d
} fdd}||}t
|| d S )Nr   c                    s   t |   jS r   )rL   r   r   r1   r}   r   r   r~     s    z3TestExpanding.test_expanding_corr_cov.<locals>.funcr   =   H   q   r   Tr   c                    s   t | j  ddS )NTr   )rL   r   r   r1   rM   r   r   r~     s    )r   r)   r   rL   r5   rx   rR   r   rw   ilocr6   rT   r   r7   )r   rA   r,   r?   r:   r~   r9   Znull_idxr   r}   r   test_expanding_corr_cov  s    


z%TestExpanding.test_expanding_corr_covc                    st   | j d}| }|jdd  d}| fdd}|jddd}t| j d tdg}||_t	
|| d S )	Nr   c                 S   s   |   S r   r   r1   r   r   r   r3   %  r4   z4TestExpanding.test_expanding_apply.<locals>.<lambda>r   c                    s   |   jdd  dS )Nc                 S   s   |   S r   r   r   r   r   r   r3   &  r4   zFTestExpanding.test_expanding_apply.<locals>.<lambda>.<locals>.<lambda>r   )r   r5   r1   r   r   r   r3   &  r4   r   rN   r   )r   r)   r   r5   rP   r   rQ   rR   rS   r6   rT   r   r   r   r   test_expanding_apply   s    z"TestExpanding.test_expanding_applyN)r   r   r   r   r&   rO  rP  rV  rW  rX  r]  r^  r   r   r   r   rS    s     

 

rS  c                
   @   s   e Zd Zejddddddggdejdd	d
ggdejdddgggdd Zejddejdddggdejdddgggdd Z	dd Z
dd Zdd Zdd  Zd!S )"TestEWMzmethod, expected_datar0   r   gUUUUUU?gm۶m?g""""""@rX   g۞?g?gt ?rY   ri   gn۶m۶?g++?c              	      s   t dgd tdd}t|djdd  }t d|itjdd	d
dgdd gdd}t|| tj	t
dd |d fdd}W 5 Q R X t|jdd| d S )Nr   rG   r   r   r   comr   r   r   r   r   rr   r   nuisancer    c                    s   t | jdd  S Nr   r`  rL   ewmr1   methodr   r   r3   M  r4   z&TestEWM.test_methods.<locals>.<lambda>TrP   )r   rR   rL   r)   re  r   r   r6   rT   assert_produces_warningFutureWarningr5   r   r   rg  r{   ry   r:   r9   r   rf  r   test_methods0  s&    


zTestEWM.test_methodsrg   r   r   rh   grڶ?g߿yq+?c                    s   t dgd tdd}t|djdd  }t d|itjdd	d
dgdd d gdd}t|| |d	 fdd}t|| d S )Nr   rG   r   r   r   r`  r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   rr   r   c                    s   t | jdd  S rc  rd  r1   rf  r   r   r3   i  r4   z/TestEWM.test_pairwise_methods.<locals>.<lambda>)
r   rR   rL   r)   re  r   r   r6   rT   r5   rk  r   rf  r   test_pairwise_methodsS  s     zTestEWM.test_pairwise_methodsc                 C   s   d}t jtdd |dj|dd }W 5 Q R X tddd	d
dddddddg
itjddddddddddg
dd gdd}t 	|| d S )N23 daysrb  r    r   r   halflifetimesr   r   gCus=?g;pGR?gZkB?g>(?g8Kr?gҧU?gA9w?r   r   )r   rq   )r   r   )r   r   r  r   )r   r   )r   rk   )r   r   rr   r   )
r6   ri  rj  r)   re  r0   r   r   r   rT   )r   times_framerp  r:   r9   r   r   r   
test_timesl  sB    "zTestEWM.test_timesc                    s   d t jtddX |dj dd }|d fddjd	d
ddddddddg
 jdd}W 5 Q R X t 	|jdd| d S )Nrn  rb  r    r   r   ro  c                    s   | j  dd S )Nr   ro  )re  r0   r1   rp  r   r   r3     r4   z-TestEWM.test_times_vs_apply.<locals>.<lambda>r   r   rq   r   r   rG   r   r   rk   r   Trh  )
r6   ri  rj  r)   re  r0   r5   r\  r   rT   )r   rr  r:   r9   r   rt  r   test_times_vs_apply  s    

zTestEWM.test_times_vs_applyc              	   C   sb   d}| d}tjtdd0 |j|dd }|j||d jd }W 5 Q R X t|| d S )Nrn  r   rb  r    r   ro  )r)   r6   ri  rj  re  r0   valuesrT   )r   rr  rp  r   r:   r9   r   r   r   test_times_array  s    
"zTestEWM.test_times_arrayc              	   C   s   t dddddgtddddtdd}|djd	d
d}| }t tdddddgd dtjdddddgttdgdd gdd}t	
|| |d  }tdgd tjdddddgtddddgdd
gddd}t	|| | }t	
|| d S )Nr   r   z2021-9-1rk   r   )r   rH  )r   	timestampr   r   Z1Hrx  r   r   )rx  r   rr   r   r   r   )r   r   rR   r)   r/   r>   r   rQ   rx   r6   rT   r   r7   )r   ry   grpr:   Zexpected_dfZexpected_seriesr   r   r   "test_dont_mutate_obj_after_slicing  s@     	z*TestEWM.test_dont_mutate_obj_after_slicingN)r   r   r   r&   rO  rP  r   rw   rl  rm  rs  ru  rw  rz  r   r   r   r   r_  /  s"   
"
'
r_  )numpyr   r&   Zpandasr   r   r   r   r   r   r   Zpandas._testingZ_testingr6   Zpandas.api.indexersr	   Zpandas.core.groupby.groupbyr
   r   rS  r_  r   r   r   r   <module>   s   $	       E_