U
    ÎZj?é  ã                   @   sŠ  d dl m Z mZ d dlZd dlZd dlmZm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mZ d dlmZ d dlmZ d dlmZ d dlmZ d d	lmZ d
d„ Z dd„ Z!ej" #ddde $dg¡g¡dd„ ƒZ%ej" #dedd�edd�deeddd�edƒd�g¡dd„ ƒZ&ej" #dd d!g¡d"d#„ ƒZ'ej" #dedd�edd�g¡d$d%„ ƒZ(ej" #dedd�edd�dg¡d&d'„ ƒZ)ej" #d(d)d*d+d,d-d.g¡d/d0„ ƒZ*ej" #d1d2d3d4d5g¡d6d7„ ƒZ+ej" #d8d4d9d9d:d:d:gd9d9d9d:d:gd:d9d9d9d:gd:d:d9d9d9gd:d:d:d9d9ggfd3d9d:d:d:d:gd9d9d:d:d:gd:d9d9d:d:gd:d:d9d9d:gd:d:d:d9d9ggfd2d9d9d:d:d:gd:d9d9d:d:gd:d:d9d9d:gd:d:d:d9d9gd:d:d:d:d9ggfd5d9d:d:d:d:gd:d9d:d:d:gd:d:d9d:d:gd:d:d:d9d:gd:d:d:d:d9ggfg¡d;d<„ ƒZ,ej" #d=d>d2d?d?d?gfd>d4d?d?d?gfd>d3d?d?d?gfd>d5d?d?d?gfd@d2d?ddgfd@d4d?d?d?gfd@d3dAd?d?gfd@d5dAddgfg¡dBdC„ ƒZ-ej" #d=dDd2dEdEdEdEdEdEddgfdDd3dddEdEdEdEdEdEgfdDd4dEdEdFdFdFdFdEdEgfdDd5ddddddddgfg¡dGdH„ ƒZ.dIdJ„ Z/dKdL„ Z0ej" #d1d5d3g¡dMdN„ ƒZ1ej" #dOd-d,g¡dPdQ„ ƒZ2ej" #dOd-d,g¡dRdS„ ƒZ3ej" #dTdUdVg¡ej" #dWd-d2dXd d ddddEddFdYg
fd-d4dXd d d ddddEddFg
fd-d5ej4d d ddddEddFdYg
fd-d3ej4d d d ddddEddFg
fd,d2dXddddEddFdYdZd[g
fd,d4dXddddEddFdYdZd[g
fd,d5ej4d ddddEddFdYdZg
fd,d3ej4d ddddEddFdYdZg
fg¡d\d]„ ƒƒZ5d^d_„ Z6ej" #dWd-d2ej4d d ddddEdej4ej4g
fd-d4ej4d d d ddddEdej4g
fd-d5ej4ej4d ddddEdej4ej4g
fd-d3ej4ej4d d ddddEdej4g
fd,d2ej4ddddEddFdFej4ej4g
fd,d4ej4ddddEddFdFdFej4g
fd,d5ej4ej4ddddEddFej4ej4g
fd,d3ej4ej4ddddEddFdFej4g
fg¡d`da„ ƒZ7ej" #dbd2d dcddddEddFdYdZg
fd4d dcddddedfdgdhdidjg
fd5ej4d dcdddedfdgdhdidjg
fd3ej4d dcddddEddFdYg
fg¡dkdl„ ƒZ8ej" #dmdndg¡dodp„ ƒZ9dqdr„ Z:dsdt„ Z;dudv„ Z<dwdx„ Z=dydz„ Z>d{d|„ Z?d}d~„ Z@dd€„ ZAej" #d�d9d‚gdY dƒgd[  d„g d…gd†  d‡gdˆ  d‰gd  dŠgd  d‹gd†  dŒgd�  dŽgd�  d‚gd  dŽgd[  d‹gd†  d‡gdF  d�g d‘gdF  d’gd†  d“gd  d”gd•  d‘gd  d„gd†  dƒgd�  d‰gdY  d‘gdE  d”gdE  d‡gd†  d–gd�  d“gd  d—gd  d˜gd  d„gd†  d‡gd�  d�gdY  d”g d‰gd  d‡gd™  dšgd  fd:ej4gd d‚gdˆ  dƒgd[  d„g d…gd†  d‡gdˆ  d‰gd  dŠgd  d‹gd†  dŒgd�  dŽgd�  d‚gd  dŽgd[  d‹gd†  d‡gdF  d�g d‘gdF  d’gd†  d“gd  d”gd•  d‘gd  d„gd†  dƒgd�  d‰gdY  d‘gdE  d”gdE  d‡gd†  d–gd�  d“gd  d—gd  d˜gd  d„gd†  d‡gd�  d�gdY  d”g d‰gd  d‡gd›  fg¡dœd�„ ƒZBdždŸ„ ZCd d¡„ ZDd¢d£„ ZEej" #d¤edddgdEddFgd¥œƒdgdEgd¥œd gfddgdEdgd¥œd dgfdddgdEddFgd¥œd ddgfgddfedddgdEddFgd¥œƒdgdEgd¥œd gfddgdEdgd¥œd dgfddgddFgd¥œddgfgddfedddgdEddFgd¥œƒdgdEgd¥œd gfddgdEdgd¥œd dgfddgddFgd¥œddgfgddfedddgdEddFgd¥œƒdgdEgd¥œd gfdgdgd¥œdgfdgdFgd¥œdgfgddfedddgdEddFgd¥œƒdgdEgd¥œd gfdgdgd¥œdgfdgdFgd¥œdgfgdd fedgdEgd¥œƒg ddfedgdEgd¥œƒg ddfeƒ i g fgddfedej4dgej4ddFgd¥œƒdAgej4gd¥œd gfdej4gej4dgd¥œd dgfdej4dgej4ddFgd¥œd ddgfgddfg	¡d¦d§„ ƒZFej" #d¨dgdEgd¥œd gfddgdEdgd¥œd dgfddgddFgd¥œddgfgdDfdgdEgd¥œd gfddgdEdgd¥œd dgfdddgdEddFgd¥œd ddgfgdfdgdEgd¥œd gfdgdgd¥œdgfdgdFgd¥œdgfgd©fg¡dªd«„ ƒZGd¬d­„ ZHej" #d®edddgƒdgd gfddgd dgfdddgd ddgfgddfedddgƒdgd gfddgd dgfdddgd ddgfgddfedddgƒdgd gfddgd dgfddgddgfgddfedddgƒdgd gfddgd dgfddgddgfgddfedddgƒdgd gfdgdgfdgdgfgdd fedddgƒdgd gfdgdgfdgdgfgddfeddgƒdgd gfddgd dgfgdd feg d¯d°�g ddfg¡d±d²„ ƒZIej" #d³d gdgdgdgdEgged´ddµd¶�ed·ddµd¶�ed¸ddµd¶�ed¹ddµd¶�edºddµd¶�gd©fd gd dgddgddgddEgged´ddµd¶�ed´ddµd¶�ed·ddµd¶�ed¸ddµd¶�ed¹ddµd¶�gdDfd gd dgd ddgdddgdddEgged´ddµd¶�ed´ddµd¶�ed´ddµd¶�ed·ddµd¶�ed¸ddµd¶�gdfg¡d»d¼„ ƒZJej" #d½d¾d iejKd¿d¿dÀdÀdÀgddgdÁ�fdÂdÃiejKd¿dÄdÅdÆdÇgdÃdgdÁ�fg¡dÈdÉ„ ƒZLej" #dÊdXdg¡dËdÌ„ ƒZMdÍdÎ„ ZNdÏdÐ„ ZOdÑdÒ„ ZPdÓdÔ„ ZQej" #dÕdÖd×dØdÙdÚg¡dÛdÜ„ ƒZRdÝdÞ„ ZSej" #dßdàedáƒedâƒg¡dãdä„ ƒZTdådæ„ ZUej" #dçedèdédêdë�dìfedèdídîdë�dïfg¡ej" #dðd-ej4d d ddddEddFg	fd,ej4d ddddEddFdYg	fd+ej4d ddddYd[dñd�g	fg¡dòdó„ ƒƒZVdôdõ„ ZWej"jXeƒ �oZeƒ  död÷�ej" #død.ddùd dcdcdd gfd)ddúd dûdûdüd gfd.ddùdcd dcdd gfd)ddúdûd dûdüd gfg¡dýdþ„ ƒƒZYdÿ�d „ ZZej" #d(d.d+d*�d�dd-d,g¡�d�d„ ƒZ[ej" #d=d@d2dAd?�dd?gfd@d3dXdAd?�dgfd@d4dAd?�d�dgfd@d5dXdAdd?gfd>d2dAd?�d�dgfd>d3dAd?�d�dgfd>d4dAd?�d�dgfd>d5dAd?�d�dgfg¡�d�d„ ƒZ\ej" #�d	�d
dAdAdAdAgf�ddd?d?dgfg¡�d�d„ ƒZ]ej" #�dd.e^�dƒ�de^�dƒ�d�d�d�d�dgfd*e^�dƒdje^�dƒ�d�d�d�d�dgfd+e^�dƒ�de^�dƒd”�d�dd��dgf�de^�dƒ�de^�dƒ�d�d�d �d!�d"gf�de^�dƒ�d#e^�dƒ�d$�d%�d&�d'�d(gfg¡�d)�d*„ ƒZ_ej" #dçd ddddEgdfe�d+dµd�d,�dDfg¡�d-�d.„ ƒZ`�d/�d0„ Zaej" #d(�d�dg¡�d1�d2„ ƒZbej" #�d3�dd�d4dX�d5gf�d�d6�d7�d8�d9gfg¡�d:�d;„ ƒZc�d<�d=„ Zdej" #dd�d>g¡�d?�d@„ ƒZe�dA�dB„ Zf�dC�dD„ Zgej" #�dEd�dF�dG�dG�dH�dIgfd�dJ�dJ�dK�dLgfg¡�dM�dN„ ƒZh�dO�dP„ Zi�dQ�dR„ Zj�dS�dT„ Zk�dU�dV„ Zlej" #dddd•d›g¡ej" #d(d-d,�dWg¡ej" #�dXd9d:g¡ej" #�dYd9d:g¡ej" #�dZ�d[�d\�d]g¡�d^�d_„ ƒƒƒƒƒZm�d`�da„ Znej" #�dbdX�dc�dddcdg¡ej" #�de�df�dg�dh�di�djg¡ej" #�dkdAdd?�d6�d�d�dlg�dmdAd?�d6�dd�d�dlgdXej4�dnej4�dogej4ej4ej4ej4gej4�dcej4�dp�dodcgdcgej4�dq�drgg¡�ds�dt„ ƒƒƒZo�du�dv„ Zp�dw�dx„ Zq�dy�dz„ Zr�d{�d|„ Zs�d}�d~„ Zt�d�d€„ Zuej" #�d�d�d‚�dƒgd›d•d•ejvddddgddej4�d„�d…d �d†d �d‡dggd›d•d•ej4d•dddgddej4�d„�d…d d �d†�dˆdggej4ddFdYdddgddej4gd dd�d‰d g gddYdYdYej4ejvdEdddg
ddej4gd �d‰d g ej4gdE  �d‡d g gddYdYdYej4ejvdYdddg
ddej4gd �d‰d g ej4gdE  �dŠd g gddYgdE ddej4gd �d‰gdF  gddYdej4dYddYgddej4d�d‰gdgd  �d‰g gg¡�d‹�dŒ„ ƒZw�d��dŽ„ Zx�d��d�„ Zy�d‘�d’„ Zzej" #�d“d!d g¡ej" #�d”d9d:g¡�d•�d–„ ƒƒZ{ej" #�d—e|e}g¡�d˜�d™„ ƒZ~ej" #�d“d!d g¡ej" #�d”d9d:g¡ej" #�d—e|e}g¡�dš�d›„ ƒƒƒZdS (œ  é    )ÚdatetimeÚ	timedeltaN)Úis_platform_armÚis_platform_mac)ÚUnsupportedFunctionCall)
Ú	DataFrameÚDatetimeIndexÚ
MultiIndexÚSeriesÚ	TimedeltaÚ	TimestampÚ
date_rangeÚperiod_rangeÚto_datetimeÚto_timedelta)ÚBaseIndexer)ÚVariableOffsetWindowIndexer)ÚRolling)ÚBusinessDayc                  C   s@   t ddddtjdgiƒ} |  |  d¡ ¡  | jddd� ¡  d S )NÚBr   é   é   é   ©Úmin_periods)r   ÚnpÚnanÚrollingÚsum©Údf© r!   úc/var/www/html/TRUCKING_PROJECT/venv/lib/python3.8/site-packages/pandas/tests/window/test_rolling.pyÚtest_doc_string#   s    r#   c              	   C   sr   | t dƒƒj}|dƒ |dd� |ddd� |dddd� |ddd	d� d
}tjt|d�� |dƒ W 5 Q R X d S )Né   r   r   ©Úwindowr   ©r&   r   T©r&   r   ÚcenterFz&window must be an integer 0 or greater©Úmatchéÿÿÿÿ)Úranger   ÚpytestÚraisesÚ
ValueError)Úframe_or_seriesÚcÚmsgr!   r!   r"   Útest_constructor+   s    
r4   Úwç       @Úfoor   c              	   C   sš   | t dƒƒj}d ddg¡}tjt|d�� ||d� W 5 Q R X d}tjt|d�� |d|d	� W 5 Q R X d
}tjt|d�� |dd|d� W 5 Q R X d S )Nr$   ú|zwindow must be an integerz=passed window foo is not compatible with a datetimelike indexr*   r%   zmin_periods must be an integerr   r'   zcenter must be a booleanr   r(   )r-   r   Újoinr.   r/   r0   )r1   r5   r2   r3   r!   r!   r"   Útest_invalid_constructor?   s    þÿr:   r&   é   )ÚdaysÚ3Dz
2015-12-25r$   ©Úperiodsr   )ÚindexÚoffsetc              	   C   sH   t t d¡tdddd�d�}tjtdd�� |jdd	d
� W 5 Q R X d S )Né
   ú
2015-12-24ÚD©r?   Úfreq©r@   z,step is not supported with frequency windowsr*   r=   r;   ©Ústep)r   r   Úaranger   r.   r/   ÚNotImplementedErrorr   )r&   r    r!   r!   r"   Ú test_freq_window_not_implementedW   s    þ ÿrL   ÚaggÚcovÚcorrc              	   C   s@   t tdƒƒjddd�}tjtdd�� t|| ƒƒ  W 5 Q R X d S )Nr   r   rH   zstep not implementedr*   )r   r-   r   r.   r/   rK   Úgetattr)rM   Úrollr!   r!   r"   Ú&test_step_not_implemented_for_cov_corrn   s    rR   c                 C   s’   d}t dt |¡itd|dd�d�}t ddgt d	d
d¡¡}|j| d� ¡ }t d|itd|dd�d�}t ||¡ | d¡ ¡ }t ||¡ d S )NrB   ÚvaluerC   rD   rE   rG   ç        ç      ð?ç      @ç      ;@r;   r%   r=   )	r   r   rJ   r   Úappendr   r   ÚtmÚassert_frame_equal)r&   Únr    Úexpected_dataÚresultÚexpectedr!   r!   r"   Ú&test_constructor_with_timedelta_windowv   s    þþr_   c              
   C   sœ   d}t dt |¡itd|dd�d�}t dt tjdgt dd	d
¡¡itd|dd�d�}|j| dd� ¡ }|j| dd�jt|d�}t	 
||¡ t	 
||¡ d S )NrB   rS   z
2017-08-08rD   rE   rG   rU   rV   rW   r;   r   r'   )Úraw)r   r   rJ   r   rX   ÚNaNr   r   ÚapplyrY   rZ   )r&   r`   r[   r    r^   Zresult_roll_sumZresult_roll_genericr!   r!   r"   Ú0test_constructor_timedelta_window_and_minperiodsŠ   s    þþrc   ÚmethodÚstdÚmeanr   ÚmaxÚminÚvarc              
   C   s¾   t tdddgƒdd�}d}d| › �}tjt|d��2 tjt|d�� t|| ƒddd	ƒ W 5 Q R X W 5 Q R X d
| › �}tjt|d��2 tjt|d�� t|| ƒt	j
d� W 5 Q R X W 5 Q R X d S )Nr   r   é   r%   z2numpy operations are not valid with window objectsz#Passing additional args to Rolling.r*   r   r;   z%Passing additional kwargs to Rolling.©Údtype)r   r
   rY   Úassert_produces_warningÚFutureWarningr.   r/   r   rP   r   Úfloat64)rd   ÚrÚ	error_msgZwarn_msgr!   r!   r"   Útest_numpy_compatœ   s    
&
rr   ÚclosedÚrightÚleftZbothZneitherc                 C   s„   |}t ddddddgiƒ}t ddddddgitddd	�d
�}t|jd| dd�|ƒƒ }t|jd| dd�|ƒƒ jdd�}t ||¡ d S )NÚAr   r   r   r;   r   Ú2020r$   r>   rG   ©rs   r   Ú2DT©Údrop)r   r   rP   r   Úreset_indexrY   rZ   )rs   Úarithmetic_win_operatorsÚ	func_nameZdf_fixedÚdf_timer]   r^   r!   r!   r"   Útest_closed_fixed­   s    "þþýr€   zclosed, window_selectionsTFc                    s–   |‰t ddddddgitddd	�d
�‰ t d‡ ‡fdd„|D ƒitddd	�d
�}ˆdkr`ddi}ni }tˆ jd| ddd�ˆƒf |Ž}tj||dd� d S )Nrv   rT   rU   r6   rV   ç      @rw   r$   r>   rG   c                    s"   g | ]}t ˆ d  j| ˆƒƒ ‘qS )rv   )rP   Úiloc)Ú.0Ús©r   r~   r!   r"   Ú
<listcomp>÷   s     z9test_datetimelike_centered_selections.<locals>.<listcomp>ÚsemÚddofr   ry   r   T)rs   r   r)   F©Zcheck_dtype)r   r   rP   r   rY   rZ   )rs   Zwindow_selectionsr}   r^   Úkwargsr]   r!   r…   r"   Ú%test_datetimelike_centered_selectionsÀ   s&    1 
ÿ
þ
þýr‹   zwindow,closed,expectedÚ3srV   Z2srU   c                 C   sX   t dƒt dƒt dƒg}|dddg|d�}|j| |dd� ¡ }|||d�}t ||¡ d S )Nz20130101 09:00:01z20130101 09:00:02r   rG   T©rs   r)   )r   r   r   rY   Úassert_equal©r&   rs   r^   r1   r@   r    r]   r!   r!   r"   Ú,test_datetimelike_centered_offset_covers_all  s    ýr�   ry   r   rj   c              	   C   s^   t ddddddddgƒ}|dgd |td�}|||td�}|j| d|d	� ¡ }t ||¡ d S )
Nú
2020-01-01ú
2020-01-02ú
2020-01-03ú
2020-01-04r   é   ©r@   rl   T)r)   rs   )r   Úfloatr   r   rY   rŽ   r�   r!   r!   r"   Ú+test_datetimelike_nonunique_index_centering&  s    øÿr˜   c                  C   sR   t tdƒtdddd�d�} | jdddd	� ¡ }t d
ddg| jd�}t ||¡ d S )Nr;   r‘   rD   ©ÚstartrF   r?   rG   ry   r   Tr(   ç      à?ç      ø?r   )r
   r-   r   r   rf   r@   rY   Úassert_series_equal©r„   r]   r^   r!   r!   r"   Ú!test_even_number_window_alignmentG  s    rŸ   c                 C   sº   ddddddddg}t d|itddt|ƒd�d�}| rLdd	d
d	dd	dd	g}ntjdd	dd	d
d	dg}t |dgtddt|ƒd�d�d d |… }|jt|ƒdd| |d�}| ¡ }t ||¡ d S )Nr   r   Z
binary_colr‘   rh   r™   rG   gUUUUUUå?r›   çš™™™™™Ù?g£å@µmÛ?g.�_x%Iâ?)Úcolumnsr@   ru   )r&   rs   r   r)   rI   )	r   r   Úlenr   r   r   rf   rY   rZ   )r)   rI   Údatar    r\   r^   r   r]   r!   r!   r"   Útest_closed_fixed_binary_colU  s0    þýü    ÿr¤   c                 C   s`   |}t t d¡tdddd�d�}|jd| d�}t||ƒƒ }t tjgd |jd�}t 	||¡ d S )	Nr$   Ú2000ry   rE   ©r£   r@   Ú1D©rs   rG   )
r
   r   rJ   r   r   rP   r   r@   rY   r�   )rs   r}   r~   ÚserrQ   r]   r^   r!   r!   r"   Útest_closed_emptyo  s    rª   Úfuncc                 C   sJ   t dgtddd�d�}t|jddd�| ƒƒ }t |t tjg|jd	�¡ d S )
Nr   r¥   r   r>   r¦   Ú10Dru   r¨   rG   )	r
   r   rP   r   rY   r�   r   r   r@   )r«   r©   r]   r!   r!   r"   Útest_closed_one_entry{  s    r­   c                 C   sŒ   t dddgdddgdœtddd�d�}t|jdd	d
�d jddd�| ƒƒ }tjdddg|jgdd�}tt	j
dt	j
g|dd�}t ||¡ d S )Nr   r   r;   ©rv   r   r¥   r>   r¦   rv   F)Úsortr   r¬   ru   r¨   )rv   N)ZarraysÚnames)r£   r@   Úname)r   r   rP   Úgroupbyr   r	   Zfrom_arraysr@   r
   r   r   rY   r�   )r«   r©   r]   Zexp_idxr^   r!   r!   r"   Útest_closed_one_entry_groupbyƒ  s    
þ ÿr³   Úinput_dtypeÚintr—   zfunc,closed,expectedrT   é   r•   é	   c                 C   sT   t t d¡ | ¡tddd�d�}t|jd|d�|ƒƒ }t ||jd�}t 	||¡ d S )NrB   r¥   r>   r¦   r=   r¨   rG   )
r
   r   rJ   Úastyper   rP   r   r@   rY   r�   )r´   r«   rs   r^   r©   r]   r!   r!   r"   Útest_closed_min_max_datetime’  s    
þr¹   c               	   C   sr   t t d¡tddd�d�} | j| jddg d�} | jdd	d
� ¡ }t tjdddddddg| jd�}t	 
||¡ d S )NrB   r¥   r>   r¦   r   r$   rG   r=   ru   r¨   r   r   r;   r   rj   )r
   r   rJ   r   r{   r@   r   rh   r   rY   r�   )r©   r]   r^   r!   r!   r"   Útest_closed_uneven¬  s
     rº   c                 C   sd   t t d¡tddd�d�}tj||jdd … < t|jdd|d�| ƒƒ }t ||jd	�}t 	||¡ d S )
NrB   r¥   r>   r¦   éýÿÿÿr=   r   )r   rs   rG   )
r
   r   rJ   r   r   r@   rP   r   rY   r�   )r«   rs   r^   r©   r]   r!   r!   r"   Útest_closed_min_max_minp·  s
    r¼   zclosed,expectedr›   rœ   g      @g      @g      @g      @g      @g      @c                 C   sd   t t d¡tddd�d�}|jd| d�}t ||jd�}| ¡ }t ||¡ | 	d¡}t ||¡ d S )	NrB   r¥   r>   r¦   r=   r¨   rG   r›   )
r
   r   rJ   r   r   r@   ÚmedianrY   r�   Úquantile)rs   r^   r©   rQ   r]   r!   r!   r"   Útest_closed_median_quantileÍ  s    
r¿   ÚrollerÚ1sc                 C   sX   t ƒ }t ƒ  | ¡ ¡ }t ||¡ t tg ƒd�}t tg ƒd� | ¡ ¡ }t ||¡ d S )NrG   )r   r   r   rY   rZ   r   )rÀ   r^   r]   r!   r!   r"   Útests_empty_df_rollingã  s    rÂ   c                  C   sV   t tjtjtjgƒ} t t d¡ƒ d¡}| ¡ }t || ¡ | d¡}t || ¡ d S )Nr;   r   çš™™™™™¹?)	r
   r   r   rJ   r   r½   rY   r�   r¾   )r^   rQ   r]   r!   r!   r"   Ú!test_empty_window_median_quantileò  s    
rÄ   c                  C   sb   t tjgƒ} | jddd� ¡ }t dgƒ}t ||¡ | jddd� ¡ }t tjgƒ}t ||¡ d S )Nr   r   r   rT   )r
   r   r   r   r   rY   r�   ©Úxr]   r^   r!   r!   r"   Útest_missing_minp_zeroþ  s    
rÇ   c                  C   sT   t tjgd tddddgƒd�} | jtdƒdd	� ¡ }t d
| jd�}t 	||¡ d S )Nr   z
2017-01-01z
2017-01-04z
2017-01-06z
2017-01-07rG   Z2dr   r   rT   )
r
   r   r   r   r   r   r   r@   rY   r�   rÅ   r!   r!   r"   Útest_missing_minp_zero_variable  s    
þrÈ   c                  C   sj   t jddgdddggddgd�} tt d	¡| d
�}| d¡ ¡ }t |j	|j	¡ |j
jd ddgksft‚d S )Nrv   r   ÚCrD   ÚEÚ1Ú2©r°   )rB   rj   ©r¡   r;   )r	   Zfrom_productr   r   Úonesr   rN   rY   Zassert_index_equalr¡   r@   r°   ÚAssertionError)Úcolsr    r]   r!   r!   r"   Útest_multi_index_names  s
     rÒ   c                 C   sz   t t d¡ƒ}| | ¡}|dkr8t dd„ tdƒD ƒƒ}n t tjgd dgd  gd	 ƒ}|jd
| d� ¡ }t 	||¡ d S )N)rB   é   r   c                 S   s$   i | ]}|t jgd  dgd  “qS )r   rV   r•   )r   r   ©rƒ   Úir!   r!   r"   Ú
<dictcomp>(  s      z)test_rolling_axis_sum.<locals>.<dictcomp>rÓ   r   rV   é   rB   r;   ©Úaxis)
r   r   rÏ   Ú_get_axis_numberr-   r   r   r   rY   rZ   ©Ú
axis_framer    rÙ   r^   r]   r!   r!   r"   Útest_rolling_axis_sum"  s    
 rÝ   c                 C   s‚   t tdƒtdƒdœƒ}| | ¡}|dkrDt dddgdddgdœƒ}nt dddgdddgdœƒ}|jd| dd� ¡ }t ||¡ d S )	Nr;   )rÆ   Úy©r   r@   rU   r6   r   r   )rÙ   r   )r   r-   rÚ   r   ÚcountrY   rZ   rÛ   r!   r!   r"   Útest_rolling_axis_count1  s    
rá   c                  C   s\   t  ddt jddg¡} | jdd� t| ƒ d¡ ¡ }tt jdt jt jdgƒ}t ||¡ d S )Nr   r;   r$   F)Úwriter   r   )	r   Úarrayr   Zsetflagsr
   r   rf   rY   r�   )Zarrr]   r^   r!   r!   r"   Útest_readonly_array@  s
    rä   c              	   C   sœ   |}t dd„ tddd|d�D ƒƒ}| dkrB|jjd| d	� ¡ j}n|jd| d	� ¡ }t d
d„ tddd|d�D ƒdd„ tddd|d�D ƒ–ƒ}t ||¡ d S )Nc                 S   s   i | ]}|d gd “qS )r   r   r!   rÔ   r!   r!   r"   rÖ   M  s      z)test_rolling_datetime.<locals>.<dictcomp>z	2019-8-01z
2019-08-03rD   )rF   Útzrß   ry   rØ   c                 S   s   i | ]}|d gd “qS )rU   r   r!   rÔ   r!   r!   r"   rÖ   U  s   ÿ r   )r?   rF   rå   c                 S   s   i | ]}|d gd “qS )r6   r   r!   rÔ   r!   r!   r"   rÖ   Y  s   ÿ z	2019-8-02z	2019-8-03)r   r   ÚTr   r   rY   rZ   )rÜ   Ztz_naive_fixturerå   r    r]   r^   r!   r!   r"   Útest_rolling_datetimeI  s"    ÿþþûÿrç   zcenter, expected_datag      V@g     @X@g     €X@g     ÀX@é   g     ÀW@é   g     @W@g     @V@g      X@g     €W@é   g     €V@é   g     ÀV@g     ÀU@g      W@g     ÀT@g     €U@rB   g     @U@g      S@g     @T@é   g     @S@rÓ   c           
      C   sª   t  ¡ }t||tdƒ dd�}tjjdd�}|jddt|ƒd�}t	||d	œƒ}|j
d
dd� |jddd| d�d  d¡}| d
¡}| d ¡}t||dd�}	t ||	¡ d S )Nim  rD   )rF   i¥  )Úseedr   éd   )ÚhighÚsize)ÚDateColÚmetricrñ   T)ZinplaceZ21Dr   ru   )r&   r   rs   r)   rò   rg   )r@   r±   )r   Únowr   r   r   ÚrandomZRandomStateÚrandintr¢   r   Z	set_indexr   rM   ÚrenameZ
_with_freqr
   rY   r�   )
r)   r\   Z
date_todayr<   Znprr£   r    r]   r@   r^   r!   r!   r"   Útest_rolling_window_as_stringb  s    [ÿþ

r÷   c                  C   sV   t dddddgdgd�} | d jdddd� ¡ }td	d
d
d
d	gdd�}t ||¡ d S )Nr   r   r   ÚarÎ   r;   T)r)   r   rU   r6   ©r±   )r   r   rg   r
   rY   r�   ©r    r]   r^   r!   r!   r"   Útest_min_periods1Ð  s    rû   c                 C   s@   | t dƒƒjddd� ¡ }| tjtjdddgƒ}t ||¡ d S )Nr$   r;   r   rV   )r-   r   rà   r   r   rY   rŽ   )r1   r]   r^   r!   r!   r"   Ú#test_rolling_count_with_min_periodsØ  s    rü   c              	   C   sf   dddt jdddg}ddd	dddd	g}t t¡� | |ƒ d¡ ¡ }W 5 Q R X | |ƒ}t ||¡ d S )
Nr   r   r;   r   r$   rj   rU   r6   rV   )r   r   rY   rm   rn   r   rà   rŽ   )r1   ÚvaluesZexpected_countsr]   r^   r!   r!   r"   Ú7test_rolling_count_default_min_periods_with_null_valuesß  s    rþ   zdf,expected,window,min_periodsr®   c                 C   s<   dd„ |D ƒ}t || j||d�ƒD ]\}}t ||¡ q"d S )Nc                 S   s   g | ]\}}t ||d �‘qS ©rG   )r   ©rƒ   rý   r@   r!   r!   r"   r†   1  s     z/test_iter_rolling_dataframe.<locals>.<listcomp>r   )Úzipr   rY   rZ   )r    r^   r&   r   Úactualr!   r!   r"   Útest_iter_rolling_dataframeë  s    F ÿr  zexpected,windowr§   c                    sn   t dddddgdddddgtd	dd
d�dœƒ‰ ‡ fdd„| D ƒ} t| ˆ j|dd�ƒD ]\} }t || ¡ qTd S )Nr   r   r;   r   r$   rj   r¶   r•   z
2016-01-01rD   ©rš   r?   rF   ©rv   r   rÉ   c                    s&   g | ]\}}t |ˆ j|d f d�‘qS )rÉ   rG   )r   Úlocr   r   r!   r"   r†   `  s    z2test_iter_rolling_on_dataframe.<locals>.<listcomp>rÉ   )Úon)r   r   r  r   rY   rZ   )r^   r&   r  r!   r   r"   Útest_iter_rolling_on_dataframe9  s    ýÿ
ÿr  c                     sr   t dddgdddgdœƒ‰ tˆ  d¡ d¡ƒ} ‡ fdd	„dgddgdgfD ƒ}t| |ƒD ]\}}t ||¡ qXd S )
NrÆ   rÞ   r   r   r   ©rø   Úbrø   c                    s   g | ]}ˆ j |d gf ‘qS )r   )r‚   )rƒ   Úidxr   r!   r"   r†   k  s     z<test_iter_rolling_on_dataframe_unordered.<locals>.<listcomp>)r   Úlistr²   r   r  rY   rZ   )ÚresultsÚ	expectedsr]   r^   r!   r   r"   Ú(test_iter_rolling_on_dataframe_unorderedg  s
     r  z ser,expected,window, min_periodsÚint64rk   c                 C   s<   dd„ |D ƒ}t || j||d�ƒD ]\}}t ||¡ q"d S )Nc                 S   s   g | ]\}}t ||d �‘qS rÿ   ©r
   r   r!   r!   r"   r†   “  s     z,test_iter_rolling_series.<locals>.<listcomp>r   )r  r   rY   r�   )r©   r^   r&   r   r  r!   r!   r"   Útest_iter_rolling_seriesp  s    # ÿr  zexpected,expected_index,windowr‘   rD   rE   r’   r“   r”   z
2020-01-05c                 C   sX   t tdƒtdddd�d�}dd„ t| |ƒD ƒ} t| | |¡ƒD ]\} }t || ¡ q>d S )Nr$   r‘   rD   r  rG   c                 S   s   g | ]\}}t ||d �‘qS rÿ   r  )rƒ   rý   r  r!   r!   r"   r†   Å  s    z.test_iter_rolling_datetime.<locals>.<listcomp>)r
   r-   r   r  r   rY   r�   )r^   Zexpected_indexr&   r©   r  r!   r!   r"   Útest_iter_rolling_datetime›  s    (ÿr  zgrouping,_indexÚlevel)r   r   )r   r   rÍ   ÚbyÚX)r   r   )r   r   )r;   r   )r   r   c                 C   s„   dd„ }t dtdƒidddddgd�}t ddd	d
ddgi|d�}d| krV|jddd�}|jf | Ž d¡j||dd�}t ||¡ d S )Nc                  W   s(   t | ƒdk rtdƒ‚| \}}| ¡ | S )Nr   z The function needs two arguments)r¢   r0   r   )Úargsrã   Úscaler!   r!   r"   Ú
scaled_sumá  s    z4test_rolling_positional_argument.<locals>.scaled_sumr  r$   r   r   r¦   rT   r›   rU   rœ   r6   r  Úignore)r¡   Úerrors)r   )r`   r  )r   r-   r{   r²   r   rb   rY   rZ   )ÚgroupingÚ_indexr`   r  r    r^   r]   r!   r!   r"   Ú test_rolling_positional_argumentÍ  s    r  Úaddc              	   C   sŒ   t dd|  ddgitdƒtdƒtdƒgd�}| d¡ ¡ jd	d
dd� ¡ }tdddd�}t dtjtjtjddddgi|d�}t	 
||¡ d S )Nrv   gVUUUUU%Cç       €z19700101 09:00:00z19700101 09:00:03z19700101 09:00:06rG   rÁ   rŒ   ru   r;   rx   r¶   ÚSrE   gUUUUUU%CgÇqÇqCgÇqÇqCrT   )r   r   ZresampleZffillr   rf   r   r   r   rY   rZ   )r  r    r]   Údatesr^   r!   r!   r"   Ú*test_rolling_numerical_accuracy_kahan_meanñ  s0    ýþ	ÿùÿôr#  c                  C   sX   t ddddddgdgd�} | d  d¡ ¡ }ttjtjddddgdd�}t ||¡ d S )	Ng°rh‘í|@g'1¬Zú¿rT   rÆ   rÎ   r;   gsh‘í|?á?rù   )r   r   r   r
   r   r   rY   r�   rú   r!   r!   r"   Ú)test_rolling_numerical_accuracy_kahan_sum  s    r$  c                  C   s^   t dddd� tdgƒ¡} tj t| ƒ¡}td|i| d�}| d¡ 	¡ }t
 ||dg ¡ d S )Nr‘   r’   Z60s©rš   ÚendrF   r“   r£   rG   )r   rX   r   r   rô   Úrandr¢   r   r   rf   rY   rZ   )r@   r£   r    r]   r!   r!   r"   Ú$test_rolling_numerical_accuracy_jump  s    ÿr(  c                  C   s8   t ddddgtddƒd�} |  d¡ ¡ }t || ¡ d S )Ng›(¶@ŠS ?ga2U0*©3?r   z
1999-02-03z
1999-02-06r¦   r   )r
   r   r   rf   rY   r�   )r„   r]   r!   r!   r"   Ú,test_rolling_numerical_accuracy_small_values%  s    
þr)  c                  C   sp   t dddd�} ttdƒ| tjd�}d|d< | d¡ ¡ }ttjtjtjtjd	d	d	d
ddg
| d�}t 	||¡ d S )Nz
2015-01-01rB   rD   rE   )r£   r@   rl   gÐ¢�†¿»ûÆr   r$   gÚ¦kÌ/ÖÆç      @ç      @ç      @rG   )
r   r
   r-   r   ro   r   rf   r   rY   r�   )r"  Údsr]   r^   r!   r!   r"   Ú(test_rolling_numerical_too_large_numbers/  s&    öór.  )r«   rS   )r   r6   )rg   rU   )rh   rU   )rf   rU   )r½   rU   c                 C   sl   t dddgdddgd�}d|d< t|jdddd�| ƒƒ }t ddg||g||gd	œddgd
�}t ||¡ d S )Nr   r   rø   r
  r2   )r@   r¡   rU   ©r&   r   rÙ   ©rø   r
  r2   rG   )r   rP   r   rY   rZ   )r«   rS   r    r]   r^   r!   r!   r"   Ú test_rolling_mixed_dtypes_axis_1G  s    þr1  c               
   C   s¦   t ddddtjtjtjgdddtjtjtjtjgdddtjdtjdggƒ} | jdddd� ¡ }t dd	d
ddddgdd	d
d
d
d
d
gdddddddggƒ}t ||¡ d S )Nr   r   r   r   r¶   r¡   r/  rT   rU   rV   r,  r6   r�   r+  )r   r   r   r   r   rY   rZ   rú   r!   r!   r"   Útest_rolling_axis_one_with_nanW  s    ýÿýÿr2  rS   Útestz
2019-12-31z1 days 06:05:01.00003c                 C   sL   t dddgiƒ}| |d< |jdddd� ¡ }t dddgiƒ}t ||¡ d S )Nrø   r   r   r
  r/  rU   r6   )r   r   r   rY   rZ   )rS   r    r]   r^   r!   r!   r"   Ú&test_rolling_axis_1_non_numeric_dtypesk  s
    r4  c                  C   s€   t dd gddgddgdœƒ} t dtjgddgd	d
gdœƒ}| jdddd� ¡ }t ||¡ | jjddd� ¡ j}t ||¡ d S )Nr   r   r$   r¶   r•   r  rU   r*  g      &@ç      *@r   )r   r&   rÙ   )r   r&   )r   r   r   r   r   rY   rZ   ræ   )r    r^   r]   r!   r!   r"   Útest_rolling_on_df_transposedx  s    r6  )r@   r&   z2020-01-01 08:00z2020-01-01 08:08ræ   r%  Z2Tz2020-01-01 12:00Z30TZ1h)r«   rý   é   c              
   C   sP   t ddddddddd	g	| d
�}t|j|dd�|ƒƒ }t || d
�}t ||¡ d S )Nr   r   r   r;   r   r$   rj   r¶   r•   rG   ru   r¨   )r
   rP   r   rY   r�   )r@   r&   r«   rý   r-  r]   r^   r!   r!   r"   Útest_rolling_period_indexƒ  s    r8  c                 C   s^   | dddgƒ}|j ddd� ¡ }t|tƒr8t|d jƒ}ttjgdgd  ƒ}t 	||¡ d S )Nr   r   r   r   gÍ;fž æ?)
r   r‡   Ú
isinstancer   r
   rý   r   r   rY   r�   )r1   Úobjr]   r^   r!   r!   r"   Útest_rolling_sem   s    
r;  zGH 38921)Úreason)r«   Úthird_valuerý   g|Øê›ÐîFg >g¤ßfoCgPï˜pž æ?g»¹øÛž ö?c                 C   s\   t dd|ddddgƒ}t| d¡| ƒƒ }t tjg| ƒ}t ||¡ t |dk|dk¡ d S )Nl   ÿ;ár   r   r;   r   ©r
   rP   r   r   r   rY   r�   )r«   r=  rý   r-  r]   r^   r!   r!   r"   Ú!test_rolling_var_numerical_issuesª  s
    r?  c                  C   s  t tjtjddddddddg
tjtjddddddddg
dœt tdƒd	ftdƒd
ftdƒd	ftdƒd
ftdƒd	ftdƒd
ftdƒd	ftdƒd
ftdƒd	ftdƒd
fg
¡d�} t dddddgdddddgdœtdƒtdƒtdƒtdƒtdƒgd�}|jdd� ¡ }t 	| |¡ d S )Ngþÿÿÿÿÿï?g      ð¿rU   g6µ<AìòÔ¿g     ð?gáÿÿÿÿÿï?)r   rv   z20130101 09:00:00r   rv   z20130102 09:00:02z20130103 09:00:03z20130105 09:00:05z20130106 09:00:06rG   r   r   r   r   r;   r¶   rj   r·   Z3dr%   )
r   r   r   r	   Úfrom_tuplesr   r   rO   rY   rZ   )Úexpr    Úresr!   r!   r"   Ú,test_timeoffset_as_window_parameter_for_corr¿  sb    ööó









öÿå+ûþrC  ÚskewÚkurtc                 C   s¦   t dt dd¡d iƒ}t d|d ddd… i|jddd… d�}t|jdd	�| ƒƒ }t|jdd	�| ƒƒ }t |jddd… dd
… |jdd…  ¡ ¡ dk s¢t	‚dS )zf
    Make sure that decreasing indices give the same results as increasing indices.

    GH 36933
    rý   iñÿÿÿrB   r   Nr,   rG   r$   r%   éüÿÿÿr   gê-�™—q=)
r   r   rJ   r@   rP   r   Úabsrý   rg   rÐ   )rd   r    Z
df_reverseZ
increasingZ
decreasingr!   r!   r"   Útest_rolling_decreasing_indicesü  s
    *rH  r*  r+  c                 C   sž   t dddd�}|tdƒ|d�}|tdƒ|ddd… d�}|||d�}|||ddd… d�}|j| |dd	� ¡ }	|j| |dd	� ¡ }
t |	|¡ t |
|¡ dS )
zV
    Ensure that a symmetrical inverted index return same result as non-inverted.
    rw   r   rÁ   rE   rG   Nr,   Tr�   )r   r-   r   r   rY   rŽ   )r&   rs   r^   r1   r@   Zdf_incZdf_decZexpected_incZexpected_decZ
result_incZ
result_decr!   r!   r"   Ú(test_rolling_decreasing_indices_centered  s    rI  zwindow,expectedÚ1nsZ3nsc                 C   sV   t dddd�}|ddddg|td�}|||td�}|j| |dd� ¡ }t ||¡ d S )	Nrw   r   rJ  rE   r   r–   Tr�   )r   r—   r   r   rY   rŽ   r�   r!   r!   r"   Ú)test_rolling_center_nanosecond_resolution-  s
    
rK  zmethod,expectedr   g     €E@g¯µ÷©ª
a@g     ÀE@gÖÇCßÝ½W@g     Àf@g     às@g     €5@g¥„`UU"@r5  g     €1@g      >@g     €K@g     €a@g/àe†�²æ?g8j…é{Ú?göì¹LM‚ï?gô4`�ôií?g
+TTýë?g­ùñ—õê?g %”bøîâ¿g�Oq&àð¿g zCen@¯¿gk±=ôáCÐ¿gÀ~é—~é×¿gf`8gÕÝ¿c                 C   sx   ddddddddg}t dt t|ƒ¡d iƒ}G dd„ dtƒ}|d|d�}t| |¡| ƒƒ }t d|iƒ}t ||¡ d	S )
zÓ
    Make sure the (rare) branch of non-monotonic indices is covered by a test.

    output from 1.1.3 is assumed to be the expected output. Output of sum/mean has
    manually been verified.

    GH 36933.
    TFrý   r   c                   @   s   e Zd Zdd„ ZdS )z1test_rolling_non_monotonic.<locals>.CustomIndexerc           	      S   sl   t j|t jd�}t j|t jd�}t|ƒD ]:}| j| rLd||< |d ||< q(|||< || j ||< q(||fS )Nrk   r   r   )r   Úemptyr  r-   Úuse_expandingÚwindow_size)	ÚselfZ
num_valuesr   r)   rs   rI   rš   r&  rÕ   r!   r!   r"   Úget_window_bounds€  s    
zCtest_rolling_non_monotonic.<locals>.CustomIndexer.get_window_boundsN)Ú__name__Ú
__module__Ú__qualname__rP  r!   r!   r!   r"   ÚCustomIndexer  s   rT  r   )rN  rM  N)	r   r   rJ   r¢   r   rP   r   rY   rZ   )rd   r^   rM  r    rT  Zindexerr]   r!   r!   r"   Útest_rolling_non_monotonic>  s    >rU  z
2001-01-01)rF   r?   c                 C   sf   t dddddg| d�}| ¡ }d|jdd…< | |¡ |¡}t tjtjdddg| d�}t ||¡ d S )	Nr   r   r;   r   r$   rG   rT   r   )	r
   Úcopyr‚   r   rO   r   r   rY   Úassert_almost_equal)r@   r&   rÆ   rÞ   r]   r^   r!   r!   r"   Ú!test_rolling_corr_timedelta_index“  s    	rX  c               
   C   s¬   dt jddt jgdddddgdœ} t| ƒ}|jd	d
d�jddd� ¡ }tddddddgitddt jgdddddggdddddgdddddggd	d gd�d�}t ||¡ d S )NÚg1Úg2r   r   r   r;   r   )Úgroupr   r[  F)Zdropnar   r   rT   r6   rV   rU   r�   rÍ   rG   )	r   r   r   r²   r   rf   r	   rY   rZ   )r£   r    r]   r^   r!   r!   r"   Ú!test_groupby_rolling_nan_included¤  s    "ýør\  c                 C   s`   t tj d¡ƒ}| ¡ }t| d¡| ƒƒ }t ||¡ |d }t| d¡| ƒƒ }t ||¡ d S )NrB   r;   iPÃ  )	r
   r   rô   r'  rV  rP   r   rY   r�   )rd   r©   Zser_copyr^   r]   r!   r!   r"   Ú*test_rolling_skew_kurt_numerical_stabilityº  s    r]  )rd   rý   gŠä+�”Xë?gJ_9ïÿÿ?r�   g˜¿BæÊ ô¿g333333ó¿gÍ >°ãÿ@c                 C   sL   t dddddddgƒ}t| d¡| ƒƒ }t tjgd | ƒ}t ||¡ d S )NiÀÆ- r   r   r;   r   iç  r>  )rd   rý   r„   r]   r^   r!   r!   r"   Ú(test_rolling_skew_kurt_large_value_rangeÆ  s    	r^  c                	   C   s4   t jtdd�� ttdƒƒjddd� W 5 Q R X d S )Nz!method must be 'table' or 'singler*   r   r7   )rd   )r.   r/   r0   r
   r-   r   r!   r!   r!   r"   Útest_invalid_methodÕ  s    r_  Ú1dc                 C   s¢   t dddd�}|tddƒ|d�}|jddd	� ¡ }|tjdd
g|d�}t ||¡ |jd d d… jddd	� ¡ }t dddd�}|tjdd
g|d�}t ||¡ d S )Nr‘   r“   r`  r%  r   r   rG   ru   r¨   r   r,   z-1dr;   )	r   r-   r   r   r   r   rY   rŽ   r‚   )r&   r1   r  r:  r]   r^   r!   r!   r"   Ú.test_rolling_descending_date_order_with_offsetÚ  s    ra  c                  C   s\   t ddddgƒ} |  d¡ ¡ }t tjtjddgƒ}tj||ddd� t |dk|dk¡ d S )Nr¶   r$   r;   çUUUUUUõ?r   çVçž¯Ò<©ZatolZrtol)r
   r   ri   r   r   rY   r�   rž   r!   r!   r"   Ú,test_rolling_var_floating_artifact_precisioné  s
    re  c                  C   sB   t dddgƒ} |  d¡ ¡ }t tjddgƒ}tj||ddd� d S )NgQöØŽ�¢>g 4PSªÈ¡>r   gÌ[³¸^>>rc  rd  )r
   r   re   r   r   rY   r�   rž   r!   r!   r"   Útest_rolling_std_small_valuesô  s    ýÿrf  zstart, exp_valuesç¸…ëQ¸ž?gX9´Èv¾�?gºI+‡†?gË¡E¶óý„?çü©ñÒMbP?gú~j¼t“X?ç›<#‹	n?c                 C   s˜   t dddtjddtjtjtjtjtjtjddgƒ}|ddddtjtjddg }t |tt| t|ƒ|  ƒƒd	�}|j| d … jd
dd� ¡ }t	 
||¡ d S )Nrg  rh  çü©ñÒMb`?çü©ñÒMb€?ç{®Gázt?çš™™™™™É?ri  g=
×£p=º?rG   r$   r   r   )r   r   ra   r  r-   r¢   r‚   r   rf   rY   rZ   )rš   Z
exp_valuesr    rý   r^   r]   r!   r!   r"   Ú3test_rolling_mean_all_nan_window_floating_artifacts  sB    	òÿø
þrn  c                  C   sP   t dddtjtjtjgƒ} | jddd� ¡ }t dddd	dd
gƒ}t ||¡ d S )Nrj  rk  rl  r;   r   r   g{®Gáz„?g¸…ëQ¸Ž?g9´Èv¾ŸŠ?rT   )r   r   ra   r   r   rY   rZ   rú   r!   r!   r"   Ú2test_rolling_sum_all_nan_window_floating_artifacts0  s    ro  c                  C   s6   t tdƒƒ} |  d¡ ¡ }t tjgƒ}t ||¡ d S )Nr   r   )r
   r-   r   rh   r   r   rY   r�   rž   r!   r!   r"   Útest_rolling_zero_window8  s    rp  c                 C   sd   t tdƒtddƒdœ| d�}t tjgd tdddƒdœ| d�}|jddd	� ¡ }tj||d
d� d S )Nr$   rB   é   r®   rk   rÓ   r   r   rØ   Fr‰   )r   r-   r   r   r   r   rY   rZ   )Zfloat_numpy_dtyper    r^   r]   r!   r!   r"   Útest_rolling_float_dtype@  s    þrr  c                  C   sÐ   t t d¡ dd¡tdƒd� dddd	d
ddddddœ
¡} | jdddd� ¡ }t tdddƒtdddƒtdddƒtdddƒtdddƒtdddƒtdddƒtdddƒtdddƒtdddƒdœ
dd�}t	 
||¡ d S )Né(   r   rB   Z
abcdefghijrÎ   Zfloat16Zfloat32ro   Zint8Zint16Zint32Zuint8Zuint16Zuint32Zuint64)
rø   r
  r2   ÚdÚeÚfÚgÚhrÕ   Újr   r   r/  r   r;   r$   rj   r¶   r•   rk   )r   r   rJ   Úreshaper  r¸   r   rh   r-   rY   rZ   rú   r!   r!   r"   Útest_rolling_numeric_dtypesK  s:    öÿ









öór{  ZaverageÚpctÚ	ascendingÚ	test_dataÚdefaultÚ
duplicatesÚnansc           	   	      s°   d}|dkr t tj |¡d�}nN|dkr>t tj d|¡d�}n0|dkrnt tj ddd	tjtjtj g|¡d�}| | ¡ ‡ ‡‡fd
d„¡}| | ¡j	ˆˆˆ d�}t
 ||¡ d S )NrÓ   r  )r£   r€  r;   r�  rU   ç      Ð?ç      è?c                    s   | j ˆˆˆ d�jd S )N©rd   r|  r}  r,   )Úrankr‚   )rÆ   ©r}  rd   r|  r!   r"   Ú<lambda>  ó    ztest_rank.<locals>.<lambda>r„  )r
   r   rô   r'  Úchoicer   Úinfr   rb   r…  rY   r�   )	r&   rd   r|  r}  r~  Úlengthr©   r^   r]   r!   r†  r"   Ú	test_rankn  s     ÿ
ÿrŒ  c                  C   sz   d} d}t d| dd�}ttj | | ¡ | df¡|d�}|jdd	d
gdd�}tj|dddgdd�}t 	|j
t |¡¡ d S )NrB   r$   Z20100101r   rE   r,   rG   r‚  r›   rƒ  r   rØ   é   é2   éK   )r   r   r   rô   r'  rz  r¾   Z
percentilerY   rW  rý   rã   )ÚrowÚcolr  r    Zdf_quantileZnp_percentiler!   r!   r"   Ú#test_rolling_quantile_np_percentile†  s    "r’  r¾   rÃ   gÍÌÌÌÌÌÜ?ÚinterpolationZlinearÚlowerZhigherZnearestZmidpointr£   r,  g       @rm  r    g333333Ó?gffffffæ?g333333ã?c                 C   sX   t |ƒ}| | |¡}|jdd� | |¡jd }t |¡rHt |¡sTt‚n||ksTt‚d S )Nr   r   r,   )r
   r¾   Z	expandingr‚   r   ÚisnanrÐ   )r¾   r“  r£   r„   Úq1Úq2r!   r!   r"   Ú+test_rolling_quantile_interpolation_options”  s    
r˜  c               	   C   sP   t  d¡} t| ƒ}d}tjt|d��" |jt| ƒdd�jddd� W 5 Q R X d S )	Nr$   z(Interpolation 'invalid' is not supportedr*   r   r   r›   Úinvalid)r“  )	r   rJ   r
   r.   r/   r0   r   r¢   r¾   )r£   r„   r3   r!   r!   r"   Útest_invalid_quantile_value²  s
    
rš  c               	   C   s    t dddddgƒ} d}tjt|d�� |  d¡ d	¡ W 5 Q R X d
}tjt|d�� |  d¡ d¡ W 5 Q R X d}tjt|d�� |  d¡ d¡ W 5 Q R X d S )NrT   rÃ   r›   gÍÌÌÌÌÌì?rU   z#quantile value -0.1 not in \[0, 1\]r*   r;   gš™™™™™¹¿z#quantile value 10.0 not in \[0, 1\]g      $@zmust be real number, not strr7   )r
   r.   r/   r0   r   r¾   Ú	TypeError)r©   r3   r!   r!   r"   Útest_rolling_quantile_param»  s    rœ  c                  C   sª   t dddddgƒ} | jddd� ¡ }t tjgd ƒ}t ||¡ | jddd�jd	d
�}t dgd ƒ}t ||¡ t tjtjdddgƒjddd� ¡ }t |d ¡s¦t‚d S )NrU   r6   rV   r�   r*  r   r   r$   r   )rˆ   rT   r;   r   r   )	r
   r   re   r   r   rY   r�   r•  rÐ   )Úvalsr]   r^   r!   r!   r"   Útest_rolling_std_1obsÊ  s    $rž  c                  C   sj   t dddddgƒ} | jdd� ¡ }t |dd … ¡ ¡ s<t‚| jdd� ¡ }t |dd … ¡ ¡ sft‚d S )Nge>¸¸ÁR?g¨R¨z1Ò2?r;   r%   r   )Úspan)r
   r   re   r   ÚisfiniteÚallrÐ   Zewmr	  r!   r!   r"   Útest_rolling_std_neg_sqrtÙ  s    ûÿ	r¢  c                	   C   s4   t jtdd�� ttdƒƒjddd� W 5 Q R X d S )Nzstep must be an integerr*   r   r   r7   rH   ©r.   r/   r0   r   r-   r   r!   r!   r!   r"   Útest_step_not_integer_raisesî  s    r¤  c                	   C   s4   t jtdd�� ttdƒƒjddd� W 5 Q R X d S )Nzstep must be >= 0r*   r   r   r,   rH   r£  r!   r!   r!   r"   Útest_step_not_positive_raisesó  s    r¥  rý   r   r^   rŽ  g«ªªªªª@@g     @D@çUUUUUUÕ?gUUUUUU8@rb  gUUUUUU@c                 C   s~   t |ƒ}t | ƒ}|j||d� ¡ }t ||¡ t |dk|dk¡ |j||d� ¡ }t |t |¡¡ t |dk|dk¡ d S )Nr   r   )r
   r   ri   rY   r�   re   r   Úsqrt)rý   r&   r   r^   ÚsrZ
result_varZ
result_stdr!   r!   r"   Ú'test_rolling_var_same_value_count_logicø  s    2	r©  c                  C   sd   t dddddddgƒ} |  d¡}| ¡ }|dd … dk ¡ s@t‚| ¡ }|dd … dk ¡ s`t‚d S )Nr¦  r   r   r;   r»   )r
   r   rf   r¡  rÐ   r   ©r¨  rp   r]   r!   r!   r"   Ú(test_rolling_mean_sum_floating_artifactsB  s    
r«  c                  C   sd   t dddddddgƒ} |  d¡}| ¡ }|dd … dk ¡ s@t‚| ¡ }|dd … dk ¡ s`t‚d S )Nr¦  r   r   éþÿÿÿr»   )r
   r   rD  r¡  rÐ   rE  rª  r!   r!   r"   Ú)test_rolling_skew_kurt_floating_artifactsM  s    
r­  c           	      C   s    | }t dgdddœƒ}|d  t¡|d< |jddd�}t||ƒ}||d�}|rVdd	gndd	dg}||  |g¡jd
d� t¡}t|j	ƒ|ks�t
‚t ||¡ d S )Nr   r   r;   r0  r2   r   ©Únumeric_onlyrø   r
  Trz   )r   r¸   Úobjectr   rP   rM   r|   r—   r  r¡   rÐ   rY   rZ   )	r}   r¯  Úkernelr    r   Úopr]   r¡   r^   r!   r!   r"   Útest_numeric_only_frameX  s    

r³  r±  Úuse_argc                 C   sÄ   t dddgdddœƒ}|d  t¡|d< |r2|fnd}|jddd�}t|| ƒ}||d|iŽ}|rhd	d
gnd	d
dg}||  t¡}	|rŠ|	fnd}
|	jddd�}t|| ƒ}||
d|iŽ}t ||¡ d S )Nr   r   r;   r0  r2   r!   r   r¯  rø   r
  )r   r¸   r°  r   rP   r—   rY   rZ   )r±  r¯  r´  r    Úargr   r²  r]   r¡   Zdf2Úarg2Úrolling2Úop2r^   r!   r!   r"   Ú test_numeric_only_corr_cov_frameh  s    

r¹  rl   c           
   	   C   sœ   | }t dg|d�}|jddd�}t||ƒ}|rh|tkrhd|› d�}tjt|d�� ||d� W 5 Q R X n0||d�}| |g¡jd	d
� 	t
¡}	t ||	¡ d S )Nr   rk   r   r   úRolling.ú  does not implement numeric_onlyr*   r®  Trz   )r
   r   rP   r°  r.   r/   rK   rM   r|   r¸   r—   rY   r�   )
r}   r¯  rl   r±  r©   r   r²  r3   r]   r^   r!   r!   r"   Útest_numeric_only_series~  s    

r¼  c              	   C   sÖ   t dddg|d�}|r|fnd}|jddd�}t|| ƒ}|rz|tkrzd| › d�}tjt|d	�� ||d
|iŽ W 5 Q R X nX||d
|iŽ}	| t¡}
|rœ|
fnd}|
jddd�}t|| ƒ}||d
|iŽ}t	 
|	|¡ d S )Nr   r   r;   rk   r!   r   rº  r»  r*   r¯  )r
   r   rP   r°  r.   r/   rK   r¸   r—   rY   r�   )r±  r´  r¯  rl   r©   rµ  r   r²  r3   r]   Zser2r¶  r·  r¸  r^   r!   r!   r"   Ú!test_numeric_only_corr_cov_series�  s    


r½  )€r   r   Únumpyr   r.   Zpandas.compatr   r   Zpandas.errorsr   Zpandasr   r   r	   r
   r   r   r   r   r   r   Zpandas._testingZ_testingrY   Zpandas.api.indexersr   Zpandas.core.indexers.objectsr   Zpandas.core.windowr   Zpandas.tseries.offsetsr   r#   r4   ÚmarkZparametrizerã   r:   rL   rR   r_   rc   rr   r€   r‹   r�   r˜   rŸ   r¤   rª   r­   r³   r   r¹   rº   r¼   r¿   rÂ   rÄ   rÇ   rÈ   rÒ   rÝ   rá   rä   rç   r÷   rû   rü   rþ   r  r  r  r  r  r@  r  r#  r$  r(  r)  r.  r1  r2  r4  r6  r8  r;  Zxfailr?  rC  rH  rI  rK  r—   rU  rX  r\  r]  r^  r_  ra  re  rf  rn  ro  rp  rr  r{  rŒ  r’  r˜  rš  rœ  rž  r¢  r¤  r¥  rŠ  r©  r«  r­  r³  r¹  rµ   r°  r¼  r½  r!   r!   r!   r"   Ú<module>   sn  0

 ÿüþ





ûþûþûþûþáþ-
øþ
üþ	



øþ" $"" $"øþ
	üþ	

	ÿþýüûúùø	÷
öõôóòñðïîíìëêéèçæåäãâá à!ß"Þ#Ý$Üý+
ÿþýüûúùø	÷
öõôóòñðïîíìëêéèçæåäãâá à!ß"Þ#Ý$ÜýÕþY
ýøýøýøýøýø
"ýøÊþD

ýú
ýú
ýúïþ
	,ü,ü(ü(ü22*äþ!

û÷û÷$û÷éþ&
 ÿþ ÿþùþ


þ
þ
	þþûþýþ
üþ	
=øþþþ
øþ(þ&þøþøþÝþ4!þþ
þþþþ'# ÿùþ	üüü*ü*ü
üüÛþ/