a
    oÝEb‚Ì  ã                   @   sb  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	„ 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�g¡dd„ ƒZ"ej dedd�edd�dg¡dd„ ƒZ#ej dg d¢¡dd„ ƒZ$dd„ Z%ej d d!g d"¢g d#¢g d$¢g d%¢g d&¢gfd'g d(¢g d"¢g d)¢g d*¢g d&¢gfd+g d"¢g d)¢g d*¢g d&¢g d,¢gfd-g d(¢g d.¢g d/¢g d0¢g d,¢gfg¡d1d2„ ƒZ&ej d3d4d+g d5¢fd4d!g d5¢fd4d'g d5¢fd4d-g d5¢fd6d+g d7¢fd6d!g d5¢fd6d'g d8¢fd6d-g d9¢fg¡d:d;„ ƒZ'ej d3d<d+g d=¢fd<d'g d>¢fd<d!g d?¢fd<d-g d@¢fg¡dAdB„ ƒZ(dCdD„ Z)dEdF„ Z*ej dGd-d'g¡dHdI„ ƒZ+ej dJdKdLg¡dMdN„ ƒZ,ej dJdKdLg¡dOdP„ ƒZ-ej dQdRdSg¡ej dTdKd+g dU¢fdKd!g dV¢fdKd-ej.d d dWdddXdYdZd[g
fdKd'ej.d d d dWdddXdYdZg
fdLd+g d\¢fdLd!g d\¢fdLd-ej.d dWdddXdYdZd[d]g
fdLd'ej.d dWdddXdYdZd[d]g
fg¡d^d_„ ƒƒZ/d`da„ Z0ej dTdKd+ej.d d dWdddXdYej.ej.g
fdKd!ej.d d d dWdddXdYej.g
fdKd-ej.ej.d dWdddXdYej.ej.g
fdKd'ej.ej.d d dWdddXdYej.g
fdLd+ej.dWdddXdYdZdZej.ej.g
fdLd!ej.dWdddXdYdZdZdZej.g
fdLd-ej.ej.dWdddXdYdZej.ej.g
fdLd'ej.ej.dWdddXdYdZdZej.g
fg¡dbdc„ ƒZ1ej ddd+g de¢fd!g df¢fd-ej.d dgdhdidjdkdldmdng
fd'ej.d dgdWdddXdYdZd[g
fg¡dodp„ ƒZ2ej dqdrdWg¡dsdt„ ƒZ3dudv„ Z4dwdx„ Z5dydz„ Z6d{d|„ Z7d}d~„ Z8dd€„ Z9d�d‚„ Z:dƒd„„ Z;ej d…d†d‡gd[ dˆgd‰  dŠg d‹gdŒ  d�gdŽ  d�gdY  d�gdY  d‘gdŒ  d’gd“  d”gd•  d‡gd  d”gd‰  d‘gdŒ  d�gdZ  d–g d—gdZ  d˜gdŒ  d™gd  dšgd›  d—gdY  dŠgdŒ  dˆgd“  d�gd[  d—gdX  dšgdX  d�gdŒ  dœgd“  d™gd  d�gdY  džgd  dŠgdŒ  d�gd“  d–gd[  dšg d�gd  d�gdŸ  d gd  fd¡ej.gd d‡gdŽ  dˆgd‰  dŠg d‹gdŒ  d�gdŽ  d�gdY  d�gdY  d‘gdŒ  d’gd“  d”gd•  d‡gd  d”gd‰  d‘gdŒ  d�gdZ  d–g d—gdZ  d˜gdŒ  d™gd  dšgd›  d—gdY  dŠgdŒ  dˆgd“  d�gd[  d—gdX  dšgdX  d�gdŒ  dœgd“  d™gd  d�gdY  džgd  dŠgdŒ  d�gd“  d–gd[  dšg d�gd  d�gd¢  fg¡d£d¤„ ƒZ<d¥d¦„ Z=d§d¨„ Z>d©dª„ Z?ej d«eg d¬¢g d­¢d®œƒdWgdXgd®œd gfdWdgdXdYgd®œd dWgfg d¬¢g d­¢d®œg d¯¢fgddfeg d¬¢g d­¢d®œƒdWgdXgd®œd gfdWdgdXdYgd®œd dWgfddgdYdZgd®œdWdgfgddWfeg d¬¢g d­¢d®œƒdWgdXgd®œd gfdWdgdXdYgd®œd dWgfddgdYdZgd®œdWdgfgddfeg d¬¢g d­¢d®œƒdWgdXgd®œd gfdgdYgd®œdWgfdgdZgd®œdgfgdWdWfeg d¬¢g d­¢d®œƒdWgdXgd®œd gfdgdYgd®œdWgfdgdZgd®œdgfgdWd fedWgdXgd®œƒg ddfedWgdXgd®œƒg ddWfeƒ i g fgddfedWej.dgej.dYdZgd®œƒd°gej.gd®œd gfdWej.gej.dYgd®œd dWgfdWej.dgej.dYdZgd®œg d¯¢fgddfg	¡d±d²„ ƒZ@ej d³dWgdXgd®œd gfdWdgdXdYgd®œd dWgfddgdYdZgd®œdWdgfgd<fdWgdXgd®œd gfdWdgdXdYgd®œd dWgfg d¬¢g d­¢d®œg d¯¢fgdfdWgdXgd®œd gfdgdYgd®œdWgfdgdZgd®œdgfgd´fg¡dµd¶„ ƒZAd·d¸„ ZBej d¹eg d¬¢ƒdWgd gfdWdgd dWgfg d¬¢g d¯¢fgddfeg d¬¢ƒdWgd gfdWdgd dWgfg d¬¢g d¯¢fgddWfeg d¬¢ƒdWgd gfdWdgd dWgfddgdWdgfgddWfeg d¬¢ƒdWgd gfdWdgd dWgfddgdWdgfgddfeg d¬¢ƒdWgd gfdgdWgfdgdgfgdWd feg d¬¢ƒdWgd gfdgdWgfdgdgfgdWdWfedWdgƒdWgd gfdWdgd dWgfgdd feg dºd»�g ddWfg¡d¼d½„ ƒZCej d¾d gdWgdgdgdXgged¿dWdÀdÁ�edÂdWdÀdÁ�edÃdWdÀdÁ�edÄdWdÀdÁ�edÅdWdÀdÁ�gd´fd gd dWgdWdgddgddXgged¿dWdÀ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 dWgg d¯¢g d¬¢g dÆ¢ged¿dWdÀ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È„ ƒZDej dÉdÊd iejEg dË¢ddgdÌ�fdÍdÎiejEg dÏ¢dÎdgdÌ�fg¡dÐdÑ„ ƒZFej dÒdÓdg¡dÔdÕ„ ƒZGdÖd×„ ZHdØdÙ„ ZIdÚdÛ„ ZJdÜdÝ„ ZKej dÞg dß¢¡dàdá„ ƒZLdâdã„ ZMej dädåedæƒedçƒg¡dèdé„ ƒZNdêdë„ ZOej dìedídîdïdð�dñfedídòdódð�dôfg¡ej dõdKej.d d dWdddXdYdZg	fdLej.d dWdddXdYdZd[g	fdöej.d dWddYd[d‰d÷d•g	fg¡dødù„ ƒƒZPdúdû„ ZQejjReƒ �ofeƒ  düdý�ej dþdÿdWg �d ¢f�ddWg �d¢fdÿdg �d¢f�ddg �d¢fg¡�d�d„ ƒƒZS�d�d„ ZTej dg �d	¢¡�d
�d„ ƒZUej d3d6d+g �d¢fd6d'g �d¢fd6d!g �d¢fd6d-g �d¢fd4d+g �d¢fd4d'g �d¢fd4d!g �d¢fd4d-g �d¢fg¡�d�d„ ƒZVej �d�dg �d¢f�dg �d¢fg¡�d�d„ ƒZWej �ddÿeX�dƒ�deX�dƒ�d�d�d�d�d gf�d!eX�dƒdneX�dƒ�d"�d#�d$�d%�d&gfdöeX�dƒ�d'eX�dƒdš�d'�d(d–�d)gf�d*eX�dƒ�d+eX�dƒ�d,�d-�d.�d/�d0gf�d1eX�dƒ�d2eX�dƒ�d3�d4�d5�d6�d7gfg¡�d8�d9„ ƒZYej dìg �d:¢dfe�d;dÀdY�d<�d<fg¡�d=�d>„ ƒZZ�d?�d@„ Z[�dA�dB„ Z\ej d�d*�d1g¡�dC�dD„ ƒZ]ej �dE�d*g �dF¢f�d1g �dG¢fg¡�dH�dI„ ƒZ^�dJ�dK„ Z_ej ddW�dLg¡�dM�dN„ ƒZ`�dO�dP„ Za�dQ�dR„ Zbej �dSdWg �dT¢fdg �dU¢fg¡�dV�dW„ ƒZc�dX�dY„ Zd�dZ�d[„ Ze�d\�d]„ Zf�d^�d_„ Zgej dg �d`¢¡ej dg �da¢¡ej �dbd†d¡g¡ej �dcd†d¡g¡ej �ddg �de¢¡�df�dg„ ƒƒƒƒƒZh�dh�di„ Ziej �djg �dk¢¡ej �dlg �dm¢¡ej �dng �do¢g �dp¢dÓej.�dqej.�drgej.ej.ej.ej.gej.�dsej.�dt�drdggdggej.�du�dvgg¡�dw�dx„ ƒƒƒZj�dy�dz„ Zk�d{�d|„ Zl�d}�d~„ Zm�d�d€„ Znd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)ÚRollingc                  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   ú`/home/ja/django-apps/lartica_env/lib/python3.9/site-packages/pandas/tests/window/test_rolling.pyÚtest_doc_string    s    r!   c                 C   s†   | t dƒƒj}|dƒ |dd� |ddd� |dddd� |ddd	d� d
}tjt|d�� |dƒ W d   ƒ n1 sx0    Y  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    
r2   Úwç       @Úfoor   c                 C   sÖ   | t dƒƒj}d ddg¡}tjt|d�� ||d� W d   ƒ n1 sJ0    Y  d}tjt|d�� |d|d	� W d   ƒ n1 sˆ0    Y  d
}tjt|d�� |dd|d� W d   ƒ n1 sÈ0    Y  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-   r.   )r/   r3   r0   r1   r   r   r    Útest_invalid_constructor<   s    þÿ(*r8   r$   é   )Údaysc                 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 )Né
   Úvaluez
2015-12-24ÚD©ÚperiodsÚfreq©Úindexç        ç      ð?ç      @ç      ;@r9   r#   Ú3D)	r   r   Úaranger   Úappendr   r   ÚtmÚassert_frame_equal)r$   Únr   Úexpected_dataÚresultÚexpectedr   r   r    Ú&test_constructor_with_timedelta_windowT   s    þþrP   rG   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 )Nr;   r<   z
2017-08-08r=   r>   rA   rD   rE   rF   r9   r   r%   )Úraw)r   r   rH   r   rI   ÚNaNr   r   ÚapplyrJ   rK   )r$   rQ   rL   r   rO   Zresult_roll_sumZresult_roll_genericr   r   r    Ú0test_constructor_timedelta_window_and_minperiodsh   s    þþrT   Úmethod)ÚstdÚmeanr   ÚmaxÚminÚvarc                 C   sœ   t tg d¢ƒdd�}d}tjt|d��" t|| ƒdddƒ W d   ƒ n1 sN0    Y  tjt|d��" t|| ƒtjd� W d   ƒ n1 sŽ0    Y  d S )	N)r   r   é   r   r#   z2numpy operations are not valid with window objectsr(   r   r9   ©Údtype)r   r
   r,   r-   r   Úgetattrr   Úfloat64)rU   Úrr1   r   r   r    Útest_numpy_compatz   s    0ra   c                 C   sx   |}t dg d¢iƒ}t dg d¢itddd�d�}t|jd| dd	�|ƒƒ }t|jd
| dd	�|ƒƒ jdd�}t ||¡ d S )NÚA©r   r   r   r9   r   Ú2020r"   ©r?   rA   r   r   ©Úclosedr   Ú2DT)Údrop)r   r   r^   r   Zreset_indexrJ   rK   )rg   Úarithmetic_win_operatorsÚ	func_nameZdf_fixedÚdf_timerN   rO   r   r   r    Útest_closed_fixed‡   s    þþýrm   zclosed, window_selectionsZboth)TTFFF)TTTFF)FTTTF)FFTTT)FFFTTÚleft)TFFFF)FTTFF)FFTTFÚright)FFFFTZneither)FTFFF)FFTFF)FFFTFc                    s”   |‰t dg d¢itddd�d�‰ t d‡ ‡fdd„|D ƒitddd�d�}ˆd	krZd
di}ni }tˆ jd| ddd�ˆƒf i |¤Ž}tj||dd� d S )Nrb   )rC   rD   r4   rE   ç      @rd   r"   re   rA   c                    s"   g | ]}t ˆ d  j| ˆƒƒ ‘qS )rb   )r^   Úiloc)Ú.0Ús©rl   rk   r   r    Ú
<listcomp>Ð   ó    z9test_datetimelike_centered_selections.<locals>.<listcomp>ÚsemÚddofr   rh   r   T)rg   r   r'   F©Zcheck_dtype)r   r   r^   r   rJ   rK   )rg   Zwindow_selectionsrj   rO   ÚkwargsrN   r   rt   r    Ú%test_datetimelike_centered_selections™   s$    1ÿ
þ
þýr{   zwindow,closed,expectedÚ3s)rE   rE   rE   Z2s)rE   r4   r4   )rD   rE   rE   ©rD   r4   r4   c                 C   sV   t dƒt dƒt dƒg}|g d¢|d�}|j| |dd� ¡ }|||d�}t ||¡ d S )Nz20130101 09:00:01z20130101 09:00:02)r   r   r   rA   T©rg   r'   )r   r   r   rJ   Úassert_equal©r$   rg   rO   r/   rB   r   rN   r   r   r    Ú,test_datetimelike_centered_offset_covers_allá   s    ýr�   rh   )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   c                 C   sR   t g d¢ƒ}|dgd |td�}|||td�}|j| d|d� ¡ }t ||¡ d S )N)ú
2020-01-01r‚   ú
2020-01-02rƒ   ú
2020-01-03r„   ú
2020-01-04r…   r   é   ©rB   r]   T)r'   rg   )r   Úfloatr   r   rJ   r   r€   r   r   r    Ú+test_datetimelike_nonunique_index_centeringÿ   s    ÿr‰   c                  C   sP   t tdƒtdddd�d�} | jdddd	� ¡ }t g d
¢| jd�}t ||¡ d S )Nr9   r‚   r=   ©Ústartr@   r?   rA   rh   r   Tr&   )ç      à?ç      ø?r   )r
   r+   r   r   rW   rB   rJ   Úassert_series_equal©rs   rN   rO   r   r   r    Ú!test_even_number_window_alignment   s    r�   c                 C   s–   g d¢}t d|itddt|ƒd�d�}| r4g d¢}ntjdd	d
d	dd	dg}t |dgtddt|ƒd�d�}|jt|ƒdd| d�}| ¡ }t ||¡ d S )N)r   r   r   r   r   r   r   r   Z
binary_colr‚   rY   rŠ   rA   )çUUUUUUå?rŒ   çš™™™™™Ù?rŒ   ç£å@µmÛ?rŒ   g.�_x%Iâ?rŒ   r   rŒ   r‘   r’   r“   )ÚcolumnsrB   rn   r   )r$   rg   r   r'   )	r   r   Úlenr   r   r   rW   rJ   rK   )r'   Údatar   rM   rO   r   rN   r   r   r    Útest_closed_fixed_binary_col.  s     þ
ýr—   rg   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"   Ú2000rh   r>   ©r–   rB   Ú1D©rg   rA   )
r
   r   rH   r   r   r^   r   rB   rJ   rŽ   )rg   rj   rk   ÚserÚrollrN   rO   r   r   r    Útest_closed_emptyF  s    rž   ÚfuncrY   rX   c                 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   re   r™   Ú10Drn   r›   rA   )	r
   r   r^   r   rJ   rŽ   r   r   rB   )rŸ   rœ   rN   r   r   r    Útest_closed_one_entryR  s    r¡   c                 C   s†   t g d¢g d¢dœtddd�d�}t|jdd	d
�d jddd�| ƒƒ }tjg d¢|jgdd�}tt	j
dt	j
g|dd�}t ||¡ d S )N)r   r   r   )r9   r   r   ©rb   r   r˜   r9   re   r™   rb   F)Úsortr   r    rn   r›   )rb   N)ZarraysÚnames)r–   rB   Úname)r   r   r^   Úgroupbyr   r	   Zfrom_arraysrB   r
   r   r   rJ   rŽ   )rŸ   rœ   rN   Zexp_idxrO   r   r   r    Útest_closed_one_entry_groupbyZ  s    
þÿr§   Úinput_dtypeÚintrˆ   zfunc,closed,expected)
rC   r   r   r   r   r9   r   r"   r[   é   )
rC   r   r   r   r   r   r9   r   r"   r[   r   r   r"   r[   rª   )
rC   r   r   r9   r   r"   r[   rª   r†   é	   r†   c                 C   sT   t t d¡ | ¡tddd�d�}t|jd|d�|ƒƒ }t ||jd�}t 	||¡ d S )Nr;   r˜   re   r™   rG   r›   rA   )
r
   r   rH   Úastyper   r^   r   rB   rJ   rŽ   )r¨   rŸ   rg   rO   rœ   rN   r   r   r    Útest_closed_min_max_datetimei  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 )Nr;   r˜   re   r™   r   r"   rA   rG   rn   r›   r   r   r9   r   r[   )r
   r   rH   r   ri   rB   r   rY   r   rJ   rŽ   )rœ   rN   rO   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 )
Nr;   r˜   re   r™   éýÿÿÿrG   r   )r   rg   rA   )
r
   r   rH   r   r   rB   r^   r   rJ   rŽ   )rŸ   rg   rO   rœ   rN   r   r   r    Útest_closed_min_max_minpŽ  s
    r°   zclosed,expected)
r   rŒ   r   r   r9   r   r"   r[   rª   r†   )
r   rŒ   r   r�   ç      @ç      @ç      @ç      @ç      @ç      @rŒ   r�   r±   r²   r³   r´   rµ   r¶   c                 C   sd   t t d¡tddd�d�}|jd| d�}t ||jd�}| ¡ }t ||¡ | 	d¡}t ||¡ d S )	Nr;   r˜   re   r™   rG   r›   rA   rŒ   )
r
   r   rH   r   r   rB   ÚmedianrJ   rŽ   Úquantile)rg   rO   rœ   r�   rN   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 )NrA   )r   r   r   rJ   rK   r   )rº   rO   rN   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 )Nr9   r   çš™™™™™¹?)	r
   r   r   rH   r   r·   rJ   rŽ   r¸   )rO   r�   rN   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   rC   )r
   r   r   r   r   rJ   rŽ   ©ÚxrN   rO   r   r   r    Útest_missing_minp_zeroÕ  s    
rÁ   c                  C   sP   t tjgd tg d¢ƒ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-07rA   Z2dr   r   rC   )
r
   r   r   r   r   r   r   rB   rJ   rŽ   r¿   r   r   r    Útest_missing_minp_zero_variableã  s    

þrÂ   c                  C   sf   t jddgg d¢gddgd�} tt d¡| d�}| d	¡ ¡ }t |j	|j	¡ |j
jg d
¢ksbJ ‚d S )Nrb   r   )ÚCr=   ÚEÚ1Ú2©r¤   )r;   r[   ©r”   r9   )NrÅ   rÆ   )r	   Zfrom_productr   r   Úonesr   ZcovrJ   Zassert_index_equalr”   rB   r¤   )Úcolsr   rN   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)r;   é   r   c                 S   s$   i | ]}|t jgd  dgd  “qS )r   rE   r†   )r   r   ©rr   Úir   r   r    Ú
<dictcomp>ÿ  rv   z)test_rolling_axis_sum.<locals>.<dictcomp>rÌ   r   rE   é   r;   r9   ©Úaxis)
r   r   rÉ   Ú_get_axis_numberr+   r   r   r   rJ   rK   ©Ú
axis_framer   rÒ   rO   rN   r   r   r    Útest_rolling_axis_sumù  s    
 rÖ   c                 C   sz   t tdƒtdƒdœƒ}| | ¡}|dv r@t g d¢g d¢dœƒ}nt g d¢g d¢dœƒ}|jd| dd	� ¡ }t ||¡ d S )
Nr9   )rÀ   Úy©r   rB   r}   )rD   rD   rD   )r4   r4   r4   r   r   )rÒ   r   )r   r+   rÓ   r   ÚcountrJ   rK   rÔ   r   r   r    Útest_rolling_axis_count  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   r9   r"   F)Úwriter   r   )	r   Úarrayr   Zsetflagsr
   r   rW   rJ   rŽ   )ZarrrN   rO   r   r   r    Útest_readonly_array  s
    rÝ   c              	   C   s    |}t dd„ tddd|d�D ƒƒ}| dv rB|jjd| d	� ¡ j}n|jd| d	� ¡ }t i 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Ï   $  rv   z)test_rolling_datetime.<locals>.<dictcomp>z	2019-8-01z
2019-08-03r=   )r@   ÚtzrØ   rh   rÑ   c                 S   s   i | ]}|d gd “qS )rD   r   r   rÍ   r   r   r    rÏ   ,  s   ÿr   )r?   r@   rÞ   c                 S   s   i | ]}|d gd “qS )r4   r   r   rÍ   r   r   r    rÏ   0  s   ÿz	2019-8-02z	2019-8-03)r   r   ÚTr   r   rJ   rK   )rÕ   Ztz_naive_fixturerÞ   r   rN   rO   r   r   r    Útest_rolling_datetime   s&    ÿþÿþûÿrà   zcenter, expected_dataTg      V@g     @X@r«   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@r;   g     @U@g      S@g     @T@é   g     @S@FrÌ   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  r=   )r@   i¥  )Úseedr   éd   )ÚhighÚsize)ÚDateColÚmetricrê   T)ZinplaceZ21Dr   rn   )r$   r   rg   r'   rë   rX   )rB   r¥   )r   Únowr   r   r   ÚrandomZRandomStateÚrandintr•   r   Z	set_indexr   ZaggÚrenameZ
_with_freqr
   rJ   rŽ   )
r'   rM   Z
date_todayr:   Znprr–   r   rN   rB   rO   r   r   r    Útest_rolling_window_as_string9  s    [ÿþ

rð   c                  C   sJ   t g d¢dgd�} | d jdddd� ¡ }tg d¢dd	�}t ||¡ d S )
N)r   r   r   r   r   ÚarÈ   r9   Tr   )r'   r   )rD   r4   r4   r4   rD   ©r¥   )r   r   rX   r
   rJ   rŽ   ©r   rN   rO   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"   r9   r   rE   )r+   r   rÙ   r   r   rJ   r   )r/   rN   rO   r   r   r    Ú#test_rolling_count_with_min_periods¯  s    rõ   c                 C   sp   dddt jdddg}g d¢}t t¡�" | |ƒ d¡ ¡ }W d   ƒ n1 sN0    Y  | |ƒ}t ||¡ d S )Nr   r   r9   r   r"   r[   )rD   r4   rE   r4   r4   r4   rE   )r   r   rJ   Zassert_produces_warningÚFutureWarningr   rÙ   r   )r/   ÚvaluesZexpected_countsrN   rO   r   r   r    Ú7test_rolling_count_default_min_periods_with_null_values¶  s    0rø   zdf,expected,window,min_periods)r   r   r9   )r   r"   r[   r¢   ©r   r   r   rD   c                 C   s<   dd„ |D ƒ}t || j||d�ƒD ]\}}t ||¡ q"d S )Nc                 S   s   g | ]\}}t ||d �‘qS ©rA   )r   ©rr   r÷   rB   r   r   r    ru     rv   z/test_iter_rolling_dataframe.<locals>.<listcomp>r   )Úzipr   rJ   rK   )r   rO   r$   r   Úactualr   r   r    Útest_iter_rolling_dataframeÂ  s
    Fÿrþ   zexpected,windowrš   c                    sb   t g d¢g d¢tdddd�dœƒ‰ ‡ fdd	„| D ƒ} t| ˆ j|d
d�ƒD ]\} }t || ¡ qHd S )N©r   r   r9   r   r"   )r   r"   r[   rª   r†   z
2016-01-01r"   r=   ©r‹   r?   r@   ©rb   r   rÃ   c                    s&   g | ]\}}t |ˆ j|d f d�‘qS )rÃ   rA   )r   Úlocrû   r   r   r    ru   7  s   z2test_iter_rolling_on_dataframe.<locals>.<listcomp>rÃ   )Úon)r   r   rü   r   rJ   rK   )rO   r$   rý   r   r   r    Útest_iter_rolling_on_dataframe  s    ýÿ
ÿr  c                     sn   t g d¢g d¢dœƒ‰ tˆ  d¡ d¡ƒ} ‡ fdd„dgddgd	gfD ƒ}t| |ƒD ]\}}t ||¡ qTd S )
N)rÀ   r×   rÀ   rù   ©rñ   Úbrñ   r   c                    s   g | ]}ˆ j |d gf ‘qS )r   )rq   )rr   Úidxr   r   r    ru   B  rv   z<test_iter_rolling_on_dataframe_unordered.<locals>.<listcomp>r   r   )r   Úlistr¦   r   rü   rJ   rK   )ÚresultsÚ	expectedsrN   rO   r   r   r    Ú(test_iter_rolling_on_dataframe_unordered>  s
     r  z ser,expected,window, min_periodsÚint64r\   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    ru   j  rv   z,test_iter_rolling_series.<locals>.<listcomp>r   )rü   r   rJ   rŽ   )rœ   rO   r$   r   rý   r   r   r    Útest_iter_rolling_seriesG  s
    #ÿr  zexpected,expected_index,windowr‚   r=   r>   rƒ   r„   r…   z
2020-01-05)r   r9   r   c                 C   sX   t tdƒtdddd�d�}dd„ t| |ƒD ƒ} t| | |¡ƒD ]\} }t || ¡ q>d S )Nr"   r‚   r=   r   rA   c                 S   s   g | ]\}}t ||d �‘qS rú   r  )rr   r÷   r  r   r   r    ru   œ  s   z.test_iter_rolling_datetime.<locals>.<listcomp>)r
   r+   r   rü   r   rJ   rŽ   )rO   Zexpected_indexr$   rœ   rý   r   r   r    Útest_iter_rolling_datetimer  s    (ÿr  zgrouping,_indexÚlevel)©r   r   r  ©r   r   r  r  rÇ   ÚbyÚX)r  )r   r   )r   r   )r9   r   )r   r   c                 C   s|   dd„ }t dtdƒig d¢d�}t dg d¢i|d�}d| v rJ|jdd	d
�}|jf i | ¤Ž 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•   r.   r   )ÚargsrÜ   Úscaler   r   r    Ú
scaled_sum¸  s    z4test_rolling_positional_argument.<locals>.scaled_sumr  r"   )r   r   r   r   r   r™   )rC   rŒ   rD   r�   r4   r  Úignore)r”   Úerrorsr   )r   )rQ   r  )r   r+   ri   r¦   r   rS   rJ   rK   )ÚgroupingÚ_indexrQ   r  r   rO   rN   r   r   r    Ú test_rolling_positional_argument¤  s    "r  ÚaddrC   c              	   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 )Nrb   gVUUUUU%Cç       €z19700101 09:00:00z19700101 09:00:03z19700101 09:00:06rA   r»   r|   rn   r9   rf   rª   ÚSr>   gUUUUUU%CgÇqÇqCgÇqÇqCrC   )r   r   ZresampleZffillr   rW   r   r   r   rJ   rK   )r  r   rN   ÚdatesrO   r   r   r    Ú*test_rolling_numerical_accuracy_kahan_meanÈ  s0    ýþ	ÿùÿôr!  c                  C   sP   t g d¢dgd�} | d  d¡ ¡ }ttjtjddddgdd�}t ||¡ d S )	N)g°rh‘í|@ç'1¬Zú¿rC   rC   rC   rC   rÀ   rÈ   r9   gsh‘í|?á?r"  rC   rò   )r   r   r   r
   r   r   rJ   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‹   Úendr@   r„   r–   rA   )r   rI   r   r   rí   Úrandr•   r   r   rW   rJ   rK   )rB   r–   r   rN   r   r   r    Ú$test_rolling_numerical_accuracy_jumpð  s    ÿr'  c                  C   s4   t g d¢tddƒd�} |  d¡ ¡ }t || ¡ d S )N)g›(¶@ŠS ?ga2U0*©3?r  r  z
1999-02-03z
1999-02-06r™   r   )r
   r   r   rW   rJ   rŽ   )rs   rN   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-01r;   r=   r>   )r–   rB   r]   gÐ¢�†¿»ûÆr   r"   gÚ¦kÌ/ÖÆç      @ç      @ç      @rA   )
r   r
   r+   r   r_   r   rW   r   rJ   rŽ   )r   ÚdsrN   rO   r   r   r    Ú(test_rolling_numerical_too_large_numbers  s&    öór-  )rŸ   r<   ))r   r4   )rX   rD   )rY   rD   )rW   rD   )r·   rD   c                 C   sj   t dddgg d¢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  r0   )rB   r”   rD   r0   ©r$   r   rÒ   rA   )r   r^   r   rJ   rK   )rŸ   r<   r   rN   rO   r   r   r    Ú test_rolling_mixed_dtypes_axis_1  s    þr/  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 g d¢g d	¢g d
¢gƒ}t ||¡ d S )Nr   r   r   r   rª   r”   r.  )rC   rD   rE   r+  r+  r+  r+  )rC   rD   rE   rE   rE   rE   rE   )rC   r4   rp   rp   r*  r*  r+  )r   r   r   r   r   rJ   rK   ró   r   r   r    Útest_rolling_axis_one_with_nan.  s    ýÿýÿr0  r<   Ú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.  rD   r4   )r   r   r   rJ   rK   )r<   r   rN   rO   r   r   r    Ú&test_rolling_axis_1_non_numeric_dtypesB  s
    r2  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  rD   r)  g      &@ç      *@r   )r   r$   rÒ   )r   r$   )r   r   r   r   r   rJ   rK   rß   )r   rO   rN   r   r   r    Útest_rolling_on_df_transposedO  s    r4  )rB   r$   z2020-01-01 08:00z2020-01-01 08:08rß   r$  Z2Tz2020-01-01 12:00Z30TZ1h)rŸ   r÷   r   é   c                 C   sB   t g d¢| d�}t|j|dd�|ƒƒ }t || d�}t ||¡ d S )N)	r   r   r   r9   r   r"   r[   rª   r†   rA   rn   r›   )r
   r^   r   rJ   rŽ   )rB   r$   rŸ   r÷   r,  rN   rO   r   r   r    Útest_rolling_period_indexZ  s    r6  c                 C   s\   | g d¢ƒ}|j ddd� ¡ }t|tƒr6t|d jƒ}ttjgdgd  ƒ}t 	||¡ d S )Nrù   r   r   r   r   gÍ;fž æ?)
r   rw   Ú
isinstancer   r
   r÷   r   r   rJ   rŽ   )r/   ÚobjrN   rO   r   r   r    Útest_rolling_semw  s    
r9  zGH 38921)Úreason)rŸ   Úthird_valuer÷   rZ   )ç|Øê›ÐîFr   rŒ   rŒ   r   r   rV   )ç >g¤ßfoCr   çPï˜pž æ?r>  ç»¹øÛž ö?r   )r<  rŒ   r   rŒ   r   r   )r=  r>  r   r>  r?  r   c                 C   sH   t dd|ddddgƒ}t| d¡| ƒƒ }t tjg| ƒ}t ||¡ d S )Nl   ÿ;ár   r   r9   ©r
   r^   r   r   r   rJ   rŽ   )rŸ   r;  r÷   r,  rN   rO   r   r   r    Ú!test_rolling_var_numerical_issues�  s    rA  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 g d¢g d¢dœtdƒtdƒtdƒtdƒtdƒgd�}|jdd� ¡ }t 	| |¡ d S )Ngþÿÿÿÿÿï?g      ð¿rD   g6µ<AìòÔ¿g     ð?gáÿÿÿÿÿï?)r   rb   z20130101 09:00:00r   rb   z20130102 09:00:02z20130103 09:00:03z20130105 09:00:05z20130106 09:00:06rA   )r   r   r   r   r9   )rª   r   r[   r«   r9   Z3dr#   )
r   r   r   r	   Úfrom_tuplesr   r   ÚcorrrJ   rK   )Úexpr   Úresr   r   r    Ú,test_timeoffset_as_window_parameter_for_corr“  sb    ööó









öÿå+ûþrF  )rZ   r   rW   ÚskewÚkurtrY   rX   c                 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¢J ‚dS )zf
    Make sure that decreasing indices give the same results as increasing indices.

    GH 36933
    r÷   iñÿÿÿr;   r   Nr*   rA   r"   r#   éüÿÿÿr   gê-�™—q=)	r   r   rH   rB   r^   r   Úabsr÷   rX   )rU   r   Z
df_reverseZ
increasingZ
decreasingr   r   r    Útest_rolling_decreasing_indicesÐ  s
    *rK  )rD   rE   r)  rE   )rC   rD   rE   r)  )rD   rE   r*  r)  )rC   rD   r4   rE   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.
    rd   r   r»   r>   rA   Nr*   Tr~   )r   r+   r   r   rJ   r   )r$   rg   rO   r/   rB   Zdf_incZdf_decZexpected_incZexpected_decZ
result_incZ
result_decr   r   r    Ú(test_rolling_decreasing_indices_centeredà  s    rL  zwindow,expectedÚ1ns)rD   rD   rD   rD   Z3ns)r4   rE   rE   r4   c                 C   sR   t dddd�}|g d¢|td�}|||td�}|j| |dd� ¡ }t ||¡ d S )	Nrd   r   rM  r>   )r   r   r   r   r‡   Tr~   )r   rˆ   r   r   rJ   r   r€   r   r   r    Ú)test_rolling_center_nanosecond_resolution  s
    
rN  zmethod,expectedr   g     €E@g¯µ÷©ª
a@g     ÀE@gÖÇCßÝ½W@g     Àf@g     às@rW   g     €5@r*  g¥„`UU"@r3  g     €1@g      >@g     €K@g     €a@rG  g/àe†�²æ?g8j…é{Ú?göì¹LM‚ï?gô4`�ôií?g
+TTýë?g­ùñ—õê?rH  g %”bøîâ¿g�Oq&àð¿g zCen@¯¿gk±=ôáCÐ¿gÀ~é—~é×¿gf`8gÕÝ¿c                 C   sl   g d¢}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.
    )TFTFTTTTr÷   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 )Nr\   r   r   )r   Úemptyr  r+   Úuse_expandingÚwindow_size)ÚselfZ
num_valuesr   r'   rg   r‹   r%  rÎ   r   r   r    Úget_window_boundsT  s    
zCtest_rolling_non_monotonic.<locals>.CustomIndexer.get_window_boundsN)Ú__name__Ú
__module__Ú__qualname__rS  r   r   r   r    ÚCustomIndexerS  s   rW  r   )rQ  rP  N)	r   r   rH   r•   r   r^   r   rJ   rK   )rU   rO   rP  r   rW  ZindexerrN   r   r   r    Útest_rolling_non_monotonic  s    >rX  rc   z
2001-01-01)r@   r?   c                 C   s^   t g d¢| d�}| ¡ }d|dd…< | |¡ |¡}t tjtjdddg| d�}t ||¡ d S )Nrÿ   rA   rC   r   r   r   )r
   Úcopyr   rC  r   r   rJ   Úassert_almost_equal)rB   r$   rÀ   r×   rN   rO   r   r   r    Ú!test_rolling_corr_timedelta_indexg  s    	r[  c                  C   sŽ   dt jddt jgg d¢dœ} t| ƒ}|jddd�jddd	� ¡ }td
g d¢itddt jgg d¢gg d¢g d¢gdd gd�d�}t ||¡ d S )NÚg1Úg2rc   )Úgroupr   r^  F)Zdropnar   r   r   )rC   r4   rE   rD   rp   )r   r   r   r   r   )r   r   r9   r   r   rÇ   rA   )	r   r   r   r¦   r   rW   r	   rJ   rK   )r–   r   rN   rO   r   r   r    Ú!test_groupby_rolling_nan_includedx  s    
ýør_  c                     sh   g d¢} d‰ t ‡ fdd„| D ƒƒ}tjtdd��$ | d¡jdd	d
� W d   ƒ n1 sZ0    Y  d S )N)r9   r   r   r   iè  c                    s(   g | ] }t d | ˆ  ƒ|d ddœ‘qS )r   r   é*   )ÚtrÀ   r0   )r   )rr   rÀ   ©Úsecr   r    ru   ”  rv   z6test_groupby_rolling_non_monotonic.<locals>.<listcomp>z.* must be monotonicr(   r0   ra  r|   )r  r$   )r   r,   r-   r.   r¦   r   )Zshuffledr   r   rb  r    Ú"test_groupby_rolling_non_monotonicŽ  s    ÿrd  c                 C   s`   t tj d¡ƒ}| ¡ }t| d¡| ƒƒ }t ||¡ |d }t| d¡| ƒƒ }t ||¡ d S )Nr;   r9   iPÃ  )	r
   r   rí   r&  rY  r^   r   rJ   rŽ   )rU   rœ   Zser_copyrO   rN   r   r   r    Ú*test_rolling_skew_kurt_numerical_stabilityš  s    re  )rU   r÷   )r4   gŠä+�”Xë?rC   gJ_9ïÿÿ?)rp   g˜¿BæÊ ô¿g333333ó¿gÍ >°ãÿ@c                 C   sB   t g d¢ƒ}t| d¡| ƒƒ }t tjgd | ƒ}t ||¡ d S )N)iÀÆ- r   r   r   r9   r   iç  r   r9   r@  )rU   r÷   rs   rN   rO   r   r   r    Ú(test_rolling_skew_kurt_large_value_range¦  s    	rf  c                   C   sH   t jtdd��& ttdƒƒjddd� W d   ƒ n1 s:0    Y  d S )Nz!method must be 'table' or 'singler(   r   r5   )rU   )r,   r-   r.   r
   r+   r   r   r   r   r    Útest_invalid_methodµ  s    rg  Ú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„   rh  r$  r   r   rA   rn   r›   r   r*   z-1dr9   )	r   r+   r   r   r   r   rJ   r   rq   )r$   r/   r  r8  rN   rO   r   r   r    Ú.test_rolling_descending_date_order_with_offsetº  s    ri  c                  C   sD   t g d¢ƒ} |  d¡ ¡ }t tjtjddgƒ}tj||ddd� d S )N)rª   r"   r"   r"   r9   gUUUUUUõ?r   çVçž¯Ò<©ZatolZrtol)r
   r   rZ   r   r   rJ   rŽ   r�   r   r   r    Ú,test_rolling_var_floating_artifact_precisionÉ  s    rl  c                  C   s@   t g d¢ƒ} |  d¡ ¡ }t tjddgƒ}tj||ddd� d S )N)çQöØŽ�¢>g 4PSªÈ¡>rm  r   gÌ[³¸^>>rj  rk  )r
   r   rV   r   r   rJ   rŽ   r�   r   r   r    Útest_rolling_std_small_valuesÑ  s    ÿrn  zstart, exp_values)ç¸…ëQ¸ž?çX9´Èv¾�?rp  gºI+‡†?gË¡E¶óý„?)çü©ñÒMbP?rq  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 )Nro  rq  çü©ñÒMb`?çü©ñÒMb€?ç{®Gázt?çš™™™™™É?rr  g=
×£p=º?rA   r"   r   r   )r   r   rR   r  r+   r•   rq   r   rW   rJ   rK   )r‹   Z
exp_valuesr   r÷   rO   rN   r   r   r    Ú3test_rolling_mean_all_nan_window_floating_artifactsß  sB    	òÿø
þrw  c                  C   sH   t dddtjtjtjgƒ} | jddd� ¡ }t g d¢ƒ}t ||¡ d S )Nrs  rt  ru  r9   r   r   )rs  g{®Gáz„?g¸…ëQ¸Ž?g9´Èv¾ŸŠ?ru  rC   )r   r   rR   r   r   rJ   rK   ró   r   r   r    Ú2test_rolling_sum_all_nan_window_floating_artifacts  s    rx  c                  C   s6   t tdƒƒ} |  d¡ ¡ }t tjgƒ}t ||¡ d S )Nr   r   )r
   r+   r   rY   r   r   rJ   rŽ   r�   r   r   r    Útest_rolling_zero_window  s    ry  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"   r;   é   r¢   r\   rÌ   r   r   rÑ   Fry   )r   r+   r   r   r   r   rJ   rK   )Zfloat_numpy_dtyper   rO   rN   r   r   r    Útest_rolling_float_dtype  s    þr{  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   r;   Z
abcdefghijrÈ   Zfloat16Zfloat32r_   Zint8Zint16Zint32Zuint8Zuint16Zuint32Zuint64)
rñ   r  r0   ÚdÚeÚfÚgÚhrÎ   Újr   r   r.  r   r9   r"   r[   rª   r†   r\   )r   r   rH   Úreshaper  r¬   r   rY   r+   rJ   rK   ró   r   r   r    Útest_rolling_numeric_dtypes(  s:    öÿ









öór„  )r   r9   r;   rÌ   )rY   rX   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‰  r9   rŠ  rD   ç      Ð?ç      è?c                    s   | j ˆˆˆ d�jd S )N©rU   r…  r†  r*   )Úrankrq   )rÀ   ©r†  rU   r…  r   r    Ú<lambda>\  rv   ztest_rank.<locals>.<lambda>r�  )r
   r   rí   r&  Úchoicer   Úinfr   rS   rŽ  rJ   rŽ   )	r$   rU   r…  r†  r‡  Úlengthrœ   rO   rN   r   r�  r    Ú	test_rankK  s     ÿ
ÿr”  c                  C   sv   d} d}t d| dd�}ttj | | ¡ | df¡|d�}|jg d¢d	d
�}tj|g d¢d	d
�}t 	|j
t |¡¡ d S )Nr;   r"   Z20100101r   r>   r*   rA   )r‹  rŒ   rŒ  r   rÑ   )é   é2   éK   )r   r   r   rí   r&  rƒ  r¸   Z
percentilerJ   rZ  r÷   rÜ   )ÚrowÚcolr  r   Zdf_quantileZnp_percentiler   r   r    Ú#test_rolling_quantile_np_percentilec  s    "rš  r¸   )rC   r½   gÍÌÌÌÌÌÜ?rŒ   r   Úinterpolation)ZlinearÚlowerZhigherZnearestZmidpointr–   )rD   r4   rE   rp   r)  r*  r+  )g       @rD   rE   rp   r)  r4   r*  r+  rv  r’   r½   g333333Ó?gffffffæ?g333333ã?c                 C   sX   t |ƒ}| | |¡}|jdd� | |¡jd }t |¡rHt |¡sTJ ‚n||ksTJ ‚d S )Nr   r   r*   )r
   r¸   Z	expandingrq   r   Úisnan)r¸   r›  r–   rs   Úq1Úq2r   r   r    Ú+test_rolling_quantile_interpolation_optionsq  s    
r   c                  C   sd   t  d¡} t| ƒ}d}tjt|d��, |jt| ƒdd�jddd� W d   ƒ n1 sV0    Y  d S )	Nr"   z(Interpolation 'invalid' is not supportedr(   r   r   rŒ   Úinvalid)r›  )	r   rH   r
   r,   r-   r.   r   r•   r¸   )r–   rs   r1   r   r   r    Útest_invalid_quantile_value�  s
    
r¢  c                  C   sÖ   t g d¢ƒ} d}tjt|d��  |  d¡ d¡ W d   ƒ n1 sD0    Y  d}tjt|d��  |  d¡ d¡ W d   ƒ n1 s†0    Y  d}tjt|d��  |  d¡ d	¡ W d   ƒ n1 sÈ0    Y  d S )
N)rC   r½   rŒ   gÍÌÌÌÌÌì?rD   z#quantile value -0.1 not in \[0, 1\]r(   r9   gš™™™™™¹¿z#quantile value 10.0 not in \[0, 1\]g      $@zmust be real number, not strr5   )r
   r,   r-   r.   r   r¸   Ú	TypeError)rœ   r1   r   r   r    Útest_rolling_quantile_param˜  s    ..r¤  c                  C   s¤   t g d¢ƒ} | 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 J ‚d S )N)rD   r4   rE   rp   r)  r   r   r"   r   )rx   rC   r9   r   r   )r
   r   rV   r   r   rJ   rŽ   r�  )ÚvalsrN   rO   r   r   r    Útest_rolling_std_1obs§  s    $r¦  c                  C   sd   t g d¢ƒ} | jdd� ¡ }t |dd … ¡ ¡ s6J ‚| jdd� ¡ }t |dd … ¡ ¡ s`J ‚d S )N)ge>¸¸ÁR?ç¨R¨z1Ò2?r§  r§  r§  r9   r#   r   )Úspan)r
   r   rV   r   ÚisfiniteÚallZewmr  r   r   r    Útest_rolling_std_neg_sqrt¶  s    ÿ	r«  )or   r   Únumpyr   r,   Zpandas.compatr   r   Zpandas.errorsr   Zpandasr   r   r	   r
   r   r   r   r   r   r   Zpandas._testingZ_testingrJ   Zpandas.api.indexersr   Zpandas.core.windowr   r!   r2   ÚmarkZparametrizerÜ   r8   rP   rT   ra   rm   r{   r�   r‰   r�   r—   rž   r¡   r§   r   r­   r®   r°   r¹   r¼   r¾   rÁ   rÂ   rË   rÖ   rÚ   rÝ   rà   rð   rô   rõ   rø   rþ   r  r  r  r  rB  r  r!  r#  r'  r(  r-  r/  r0  r2  r4  r6  r9  ZxfailrA  rF  rK  rL  rN  rˆ   rX  r[  r_  rd  re  rf  rg  ri  rl  rn  rw  rx  ry  r{  r„  r”  rš  r   r¢  r¤  r¦  r«  r   r   r   r    Ú<module>   sÜ  0



ûþûþûþûþáþ-
øþ
üþ	



øþ" $"" $"øþ
	

üþ	

	ÿþýüûúùø	÷
öõôóòñðïîíìëêéèçæåäãâá à!ß"Þ#Ý$Üý+
ÿþýüûúùø	÷
öõôóòñðïîíìëêéèçæåäãâá à!ß"Þ#Ý$ÜýÕþY
ýøýøýøýøýø
 ýøÊþD

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

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