a
    é´«jæî  ã                   @   sJ  d dl m Z mZ d dlZd dlZd dlmZmZ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	„ 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&d&d'„ Z'ej  d(d)g d*¢g d+¢g d,¢g d-¢g d.¢gfd/g d0¢g d*¢g d1¢g d2¢g d.¢gfd3g d*¢g d1¢g d2¢g d.¢g d4¢gfd5g d0¢g d6¢g d7¢g d8¢g d4¢gfg¡d9d:„ ƒZ(ej  d;d<d3g d=¢fd<d)g d=¢fd<d/g d=¢fd<d5g d=¢fd>d3g d?¢fd>d)g d=¢fd>d/g d@¢fd>d5g dA¢fg¡dBdC„ ƒZ)ej  d;dDd3g dE¢fdDd/g dF¢fdDd)g dG¢fdDd5g dH¢fg¡dIdJ„ ƒZ*ej  dKd/ej+ej+ddddLdMdMdNdOg
fd5ej+ej+ddddPdddQdRg
fd3g dS¢fd)g dT¢fg¡dUdV„ ƒZ,ej  dKd/ej+ej+ddddLdWdWdNdOg
fd5ej+ej+ddddLdWdWdQdRg
fd3g dX¢fd)g dY¢fg¡dZd[„ ƒZ-d\d]„ Z.d^d_„ Z/ej  d`d5d/g¡dadb„ ƒZ0ej  dcdddeg¡dfdg„ ƒZ1ej  dcdddeg¡dhdi„ ƒZ2ej  djdkdlg¡ej  dmddd3g dn¢fddd)g do¢fddd5ej+d d ddddpddqdrg
fddd/ej+d d d ddddpddqg
fded3g ds¢fded)g ds¢fded5ej+d ddddpddqdrdRg
fded/ej+d ddddpddqdrdRg
fg¡dtdu„ ƒƒZ3dvdw„ Z4ej  dmddd3ej+d d ddddpdej+ej+g
fddd)ej+d d d ddddpdej+g
fddd5ej+ej+d ddddpdej+ej+g
fddd/ej+ej+d d ddddpdej+g
fded3ej+ddddpddqdqej+ej+g
fded)ej+ddddpddqdqdqej+g
fded5ej+ej+ddddpddqej+ej+g
fded/ej+ej+ddddpddqdqej+g
fg¡dxdy„ ƒZ5ej  dKd3g dz¢fd)g d{¢fd5ej+d d|d}d~dd€d�d‚dƒg
fd/ej+d d|ddddpddqdrg
fg¡d„d…„ ƒZ6ej  d†d‡dg¡dˆd‰„ ƒZ7dŠd‹„ Z8dŒd�„ Z9dŽd�„ Z:d�d‘„ Z;d’d“„ Z<d”d•„ Z=d–d—„ Z>d˜d™„ Z?ej  dšd›dœg¡d�dž„ ƒZ@dŸd „ ZAd¡d¢„ ZBd£d¤„ ZCej  d¥e
g d¦¢g d§¢d¨œƒdgdpgd¨œd gfddgdpdgd¨œd dgfg d¦¢g d§¢d¨œg d©¢fgddfe
g d¦¢g d§¢d¨œƒdgdpgd¨œd gfddgdpdgd¨œd dgfddgddqgd¨œddgfgddfe
g d¦¢g d§¢d¨œƒdgdpgd¨œd gfddgdpdgd¨œd dgfddgddqgd¨œddgfgddfe
g d¦¢g d§¢d¨œƒdgdpgd¨œd gfdgdgd¨œdgfdgdqgd¨œdgfgddfe
g d¦¢g d§¢d¨œƒdgdpgd¨œd gfdgdgd¨œdgfdgdqgd¨œdgfgdd fe
dgdpgd¨œƒg ddfe
dgdpgd¨œƒg ddfe
ƒ i g fgddfe
dej+dgej+ddqgd¨œƒdªgej+gd¨œd gfdej+gej+dgd¨œd dgfdej+dgej+ddqgd¨œg d©¢fgddfg	¡d«d¬„ ƒZDej  d­dgdpgd¨œd gfddgdpdgd¨œd dgfddgddqgd¨œddgfgdDfdgdpgd¨œd gfddgdpdgd¨œd dgfg d¦¢g d§¢d¨œg d©¢fgdfdgdpgd¨œd gfdgdgd¨œdgfdgdqgd¨œdgfgd®fg¡d¯d°„ ƒZEd±d²„ ZFej  d³eg d¦¢ƒdgd gfddgd dgfg d¦¢g d©¢fgddfeg d¦¢ƒdgd gfddgd dgfg d¦¢g d©¢fgddfeg d¦¢ƒdgd gfddgd dgfddgddgfgddfeg d¦¢ƒdgd gfddgd dgfddgddgfgddfeg d¦¢ƒdgd gfdgdgfdgdgfgdd feg d¦¢ƒ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·„ ƒZGej  d¸d gdgdgdgdpg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dpg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g d©¢g d¦¢g dÀ¢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Â„ ƒZHej  dÃdÄd iejIg dÅ¢ddgdÆ�fdÇdÈiejIg dÉ¢dÈdgdÆ�fg¡dÊdË„ ƒZJej  dÌdÍdg¡dÎdÏ„ ƒZKdÐdÑ„ ZLdÒdÓ„ ZMdÔdÕ„ ZNdÖd×„ ZOej  dØg dÙ¢¡dÚdÛ„ ƒZPdÜdÝ„ ZQej  dÞdßedàƒedáƒg¡dâdã„ ƒZRdädå„ ZSej  dæedçdèdddé�dêfedçdëdìdé�dífg¡ej  dîddej+d d ddddpddqg	fdeej+d ddddpddqdrg	fdïej+d ddddrdPdðdQg	fg¡dñdò„ ƒƒZTdódô„ ZUejjVeƒ �p¤eƒ dõdö�ej  d÷dødg dù¢fdúdg dû¢fdødg dü¢fdúdg dý¢fg¡dþdÿ„ ƒƒZW�d �d„ ZXej  �dg �d¢¡�d�d„ ƒZYej  d;d>d3g �d¢fd>d/g �d¢fd>d)g �d¢fd>d5g �d	¢fd<d3g �d¢fd<d/g �d¢fd<d)g �d¢fd<d5g �d¢fg¡�d
�d„ ƒZZej  �d�dg �d¢f�dg �d¢fg¡�d�d„ ƒZ[ej  �d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�d&e\�dƒ�d'e\�dƒ�d(�d)�d*�d+�d,gf�d-e\�dƒ�d.e\�dƒ�d/�d0�d1�d2�d3gfg¡�d4�d5„ ƒZ]ej  dæg �d6¢dfe�d7dºd�d8�dDfg¡�d9�d:„ ƒZ^�d;�d<„ Z_ej  �d�d&�d-g¡�d=�d>„ ƒZ`ej  �d?�d&g �d@¢f�d-g �dA¢fg¡�dB�dC„ ƒZa�dD�dE„ Zbej  dd�dFg¡�dG�dH„ ƒZc�dI�dJ„ Zd�dK�dL„ Zeej  �dMdg �dN¢fdg �dO¢fg¡�dP�dQ„ ƒZf�dR�dS„ Zg�dT�dU„ Zh�dV�dW„ Zi�dX�dY„ Zjej  dg �dZ¢¡ej  �dg �d[¢¡ej  �d\d›dœg¡ej  �d]d›dœg¡ej  �d^g �d_¢¡�d`�da„ ƒƒƒƒƒZk�db�dc„ Zlej  �ddg �de¢¡ej  �dfg �dg¢¡ej  �dhg �di¢g �dj¢dÍej+�dkej+�dlgej+ej+ej+ej+gej+�dmej+�dn�dld|gd|gej+�do�dpgg¡�dq�dr„ ƒƒƒZm�ds�dt„ Zn�du�dv„ Zo�dw�dx„ Zp�dy�dz„ Zq�d{�d|„ Zr�d}�d~„ Zsej  g �d¢�d€dLdLejtddddgddej+�d��d‚d �dƒd �d„dgg�d€dLdLej+dLdddgddej+�d��d‚d d �dƒ�d…dggej+ddqdrdddgddej+gd g �d†¢ gddrdrdrej+ejtdpdddg
ddej+gd �d‡d g ej+gdp  �d„d g gddrdrdrej+ejtdrdddg
ddej+gd �d‡d g ej+gdp  �dˆd g gddrgdp ddej+gd �d‡gdq  gddrdej+drddrgddej+d�d‡gdgd  �d‡g gg¡�d‰�dŠ„ ƒZu�d‹�dŒ„ Zv�d��dŽ„ Zw�d��d�„ Zxej  �d‘ddg¡ej  �d’d›dœg¡�d“�d”„ ƒƒZyej  �d•eze{g¡�d–�d—„ ƒZ|ej  �d‘ddg¡ej  �d’d›dœg¡ej  �d•eze{g¡�d˜�d™„ ƒƒƒZ}ej  �dšg �d›¢¡ej  �dœg �d�¢¡�dž�dŸ„ ƒƒZ~dS (   é    )ÚdatetimeÚ	timedeltaN)ÚIS64Úis_platform_armÚis_platform_power)
Ú	DataFrameÚDatetimeIndexÚ
MultiIndexÚSeriesÚ	TimedeltaÚ	TimestampÚ
date_rangeÚperiod_rangeÚto_datetimeÚto_timedelta)ÚBaseIndexer)ÚVariableOffsetWindowIndexer)Ú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    ú_/var/www/html/laksyashrimp/venv/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    
r3   Ú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/   )r0   r4   r1   r2   r    r    r!   Útest_invalid_constructor=   s    þÿ(*r9   r%   é   ©ÚdaysÚ3Dz
2015-12-25r#   ©Úperiodsr   ©ÚindexÚoffsetc                 C   s`   t t d¡tdddd�d�}tjtdd��" |j| dd	� ¡  W d   ƒ n1 sR0    Y  d S )
Né
   ú
2015-12-24ÚD©r?   Úfreq©rA   z(^step (not implemented|is not supported)r)   r:   ©Ústep)	r   r   Úaranger   r-   r.   ÚNotImplementedErrorr   r   )r%   r   r    r    r!   Ú test_freq_window_not_implementedU   s    þÿrM   ÚaggÚcovÚcorrc                 C   sT   t tdƒƒjddd�}tjtdd�� t|| ƒƒ  W d   ƒ n1 sF0    Y  d S )Nr   r   rI   zstep not implementedr)   )r   r,   r   r-   r.   rL   Úgetattr)rN   Úrollr    r    r!   Ú&test_step_not_implemented_for_cov_corrl   s    rS   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 )NrC   ÚvaluerD   rE   rF   rH   ç        ç      ð?ç      @ç      ;@r:   r$   r=   )	r   r   rK   r   Úappendr   r   ÚtmÚassert_frame_equal)r%   Únr   Úexpected_dataÚresultÚexpectedr    r    r!   Ú&test_constructor_with_timedelta_windowt   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 )NrC   rT   z
2017-08-08rE   rF   rH   rV   rW   rX   r:   r   r&   )Úraw)r   r   rK   r   rY   r   r   r   ÚapplyrZ   r[   )r%   ra   r\   r   r_   Zresult_roll_sumZresult_roll_genericr    r    r!   Ú0test_constructor_timedelta_window_and_minperiodsˆ   s    þþrc   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   r:   r   Ú2020r#   r>   rH   r   r   ©Úclosedr   Ú2DT©Údrop)r   r   rQ   r   Úreset_indexrZ   r[   )rh   Úarithmetic_win_operatorsÚ	func_nameZdf_fixedÚdf_timer^   r_   r    r    r!   Útest_closed_fixedš   s    þþýrp   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 )Nrd   )rU   rV   r5   rW   ç      @rf   r#   r>   rH   c                    s"   g | ]}t ˆ d  j| ˆƒƒ ‘qS )rd   )rQ   Úiloc)Ú.0Ús©ro   rn   r    r!   Ú
<listcomp>ã   ó    z9test_datetimelike_centered_selections.<locals>.<listcomp>ÚsemÚddofr   ri   r   T)rh   r   r(   F©Zcheck_dtype)r   r   rQ   r   rZ   r[   )rh   Zwindow_selectionsrm   r_   Úkwargsr^   r    rw   r!   Ú%test_datetimelike_centered_selections¬   s$    1ÿ
þ
þýr~   zwindow,closed,expectedÚ3s)rW   rW   rW   Z2s)rW   r5   r5   )rV   rW   rW   ©rV   r5   r5   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   rH   T©rh   r(   )r   r   r   rZ   Úassert_equal©r%   rh   r_   r0   rA   r   r^   r    r    r!   Ú,test_datetimelike_centered_offset_covers_allô   s    ýr„   ri   )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   é   ©rA   ÚdtypeT)r(   rh   )r   Úfloatr   r   rZ   r‚   rƒ   r    r    r!   Ú+test_datetimelike_nonunique_index_centering  s    ÿrŽ   zclosed,expectedrC   é   é   é   é	   é   rŠ   )
r   r   r:   r…   rC   r�   é   r�   r‘   é   )
r   r   r:   r…   rC   é   é   é   é   é   c                 C   sN   t g d¢ƒ}|tdƒ|td�}|||td�}|jd| d� ¡ }t ||¡ d S )N©
ú
2011-01-01rœ   ú
2011-01-02r�   r�   z
2011-01-03ú
2011-01-04rž   z
2011-01-05z
2011-01-06rC   r‹   ri   ©rh   )r   r,   r�   r   r   rZ   r‚   )rh   r_   r0   rA   r   r^   r    r    r!   Útest_variable_window_nonunique3  s    ÿr    r–   )
r   r   r:   r…   rC   r–   r‘   é   r‘   r•   )
r   r   r:   r…   rC   r–   r‘   r¡   r™   rš   c                 C   sd   t g d¢ƒ}|tdƒ|td�}|||td�}tdƒ}t||d�}|j|| dd� ¡ }t ||¡ d S )Nr›   rC   r‹   r   r@   r   rg   )	r   r,   r�   r   r   r   r   rZ   r‚   )rh   r_   r0   rA   r   rB   Úindexerr^   r    r    r!   Ú%test_variable_offset_window_nonuniqueU  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 )Nr:   r†   rE   ©ÚstartrG   r?   rH   ri   r   Tr'   )ç      à?ç      ø?r   )r
   r,   r   r   ÚmeanrA   rZ   Úassert_series_equal©rv   r^   r_   r    r    r!   Ú!test_even_number_window_alignmenty  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�d d |… }|jt|ƒdd| |d�}| ¡ }t ||¡ d S )N)r   r   r   r   r   r   r   r   Z
binary_colr†   Úminr¤   rH   )çUUUUUUå?r¦   çš™™™™™Ù?r¦   ç£å@µmÛ?r¦   g.�_x%Iâ?r¦   r   r¦   r­   r®   r¯   )ÚcolumnsrA   rq   r   )r%   rh   r   r(   rJ   )	r   r   Úlenr   r   r   r¨   rZ   r[   )r(   rJ   Údatar   r]   r_   r   r^   r    r    r!   Útest_closed_fixed_binary_col‡  s(    þ
ýüÿr³   rh   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#   Ú2000ri   rF   ©r²   rA   Ú1DrŸ   rH   )
r
   r   rK   r   r   rQ   r   rA   rZ   r©   )rh   rm   rn   ÚserrR   r^   r_   r    r    r!   Útest_closed_empty¡  s    r¸   Úfuncr¬   Úmaxc                 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µ   Ú10Drq   rŸ   rH   )	r
   r   rQ   r   rZ   r©   r   r   rA   )r¹   r·   r^   r    r    r!   Útest_closed_one_entry­  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   )r:   r   r   ©rd   r   r´   r:   r>   rµ   rd   F)Úsortr   r»   rq   rŸ   )rd   N)ZarraysÚnames)r²   rA   Úname)r   r   rQ   Úgroupbyr   r	   Zfrom_arraysrA   r
   r   r   rZ   r©   )r¹   r·   r^   Zexp_idxr_   r    r    r!   Útest_closed_one_entry_groupbyµ  s    
þÿrÂ   Úinput_dtypeÚintr�   zfunc,closed,expected)
rU   r   r   r   r   r:   r   r#   r…   é   )
rU   r   r   r   r   r   r:   r   r#   r…   r   r…   rÅ   )
rU   r   r   r:   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 )NrC   r´   r>   rµ   r=   rŸ   rH   )
r
   r   rK   Úastyper   rQ   r   rA   rZ   r©   )rÃ   r¹   rh   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 )NrC   r´   r>   rµ   r   r#   rH   r=   rq   rŸ   r   r   r:   r   r…   )r
   r   rK   r   rk   rA   r   r¬   r   rZ   r©   )r·   r^   r_   r    r    r!   Útest_closed_unevenÞ  s
     rÈ   c                 C   sn   t t d¡tddd�d�}| d¡}tj||jdd … < t|jdd|d	�| ƒƒ }t ||jd
�}t	 
||¡ d S )NrC   r´   r>   rµ   r�   éýÿÿÿr=   r   )r   rh   rH   )r
   r   rK   r   rÆ   r   rA   rQ   r   rZ   r©   )r¹   rh   r_   r·   r^   r    r    r!   Útest_closed_min_max_minpé  s    
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   sd   t t d¡tddd�d�}|jd| d�}t ||jd�}| ¡ }t ||¡ | 	d¡}t ||¡ d S )	NrC   r´   r>   rµ   r=   rŸ   rH   r¦   )
r
   r   rK   r   r   rA   ÚmedianrZ   r©   Úquantile)rh   r_   r·   rR   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 )NrH   )r   r   r   rZ   r[   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   rK   r   rÑ   rZ   r©   rÒ   )r_   rR   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   rU   )r
   r   r   r   r   rZ   r©   ©Úxr^   r_   r    r    r!   Útest_missing_minp_zero2  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-07rH   Z2dr   r   rU   )
r
   r   r   r   r   r   r   rA   rZ   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 )Nrd   r   )ÚCrE   ÚEÚ1Ú2©r¿   )rC   r…   ©r°   r:   )Nrß   rà   )r	   Úfrom_productr   r   Úonesr   rO   rZ   Zassert_index_equalr°   rA   r¿   )Úcolsr   r^   r    r    r!   Útest_multi_index_namesK  s
    ræ   c                 C   s°   t t d¡ƒ}| | ¡}|dkr<d}t dd„ tdƒD ƒƒ}n$d}t tjgd d	gd
  gd ƒ}tjt|d��" |j	d| d� 
¡ }W d   ƒ n1 s–0    Y  t ||¡ d S )N)rC   r—   r   ú'The 'axis' keyword in DataFrame.rollingc                 S   s$   i | ]}|t jgd  dgd  “qS )r   rW   rŠ   )r   r   ©ru   Úir    r    r!   Ú
<dictcomp>\  ry   z)test_rolling_axis_sum.<locals>.<dictcomp>r—   ú5Support for axis=1 in DataFrame.rolling is deprecatedr   rW   r�   rC   r)   r:   ©Úaxis)r   r   rä   Ú_get_axis_numberr,   r   rZ   Úassert_produces_warningÚFutureWarningr   r   r[   ©Ú
axis_framer   rí   r2   r_   r^   r    r    r!   Útest_rolling_axis_sumU  s    
 0ró   c                 C   s°   t tdƒtdƒdœƒ}| | ¡}|dv rDd}t g d¢g d¢dœƒ}nd}t g d¢g d¢dœƒ}tjt|d	��$ |jd
| dd� ¡ }W d   ƒ n1 s–0    Y  t ||¡ d S )Nr:   )rÚ   Úy©r   rA   rç   r€   rë   )rV   rV   rV   )r5   r5   r5   r)   r   r   )rí   r   )	r   r,   rî   rZ   rï   rð   r   Úcountr[   rñ   r    r    r!   Útest_rolling_axis_countg  s    
2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   r¨   rZ   r©   )Zarrr^   r_   r    r    r!   Útest_readonly_arrayy  s
    rú   c              	   C   s  |}t dd„ tddd|d�D ƒƒ}| dv rtd}tjt|d	��& |jjd
| d� ¡ j}W d   ƒ q¸1 sh0    Y  nDd}tjt|d	��" |jd
| d� ¡ }W d   ƒ n1 s®0    Y  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ê   †  ry   z)test_rolling_datetime.<locals>.<dictcomp>z	2019-8-01z
2019-08-03rE   )rG   Útzrõ   rç   r)   ri   rì   z'Support for axis=1 in DataFrame.rollingc                 S   s   i | ]}|d gd “qS )rV   r   r    rè   r    r    r!   rê   “  s   ÿr   )r?   rG   rû   c                 S   s   i | ]}|d gd “qS )r5   r   r    rè   r    r    r!   rê   —  s   ÿz	2019-8-02z	2019-8-03)	r   r   rZ   rï   rð   ÚTr   r   r[   )rò   Ztz_naive_fixturerû   r   r2   r^   r_   r    r    r!   Útest_rolling_datetime‚  s.    ÿ60þÿþûÿrý   r(   TFc           	      C   s¼   t  ¡ }t||tdƒ dd�}t t|ƒ¡}t||dœƒ}|jddd� |j	dd	d
| d�d  
d¡}| d¡}| d ¡}tjt|ƒtjd�}| sžtj|d d	…< t||dd�}t ||¡ d S )Nim  rE   )rG   )ÚDateColÚmetricrþ   T)ZinplaceZ21Dr   rq   )r%   r   rh   r(   rÿ   rº   ©rŒ   )rA   rÀ   )r   Únowr   r   r   rä   r±   r   Z	set_indexr   rN   ÚrenameZ
_with_freqÚfloat64r   r
   rZ   r©   )	r(   Z
date_todayr<   r²   r   r^   rA   r]   r_   r    r    r!   Útest_rolling_window_as_string   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â   r:   Tr   )r(   r   )rV   r5   r5   r5   rV   ©rÀ   )r   r   rº   r
   rZ   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   rW   )r,   r   rö   r   r   rZ   r‚   )r0   r^   r_   r    r    r!   Ú#test_rolling_count_with_min_periods¿  s    r	  c                 C   sJ   dddt jdddg}g d¢}| |ƒjddd	� ¡ }| |ƒ}t ||¡ d S )
Nr   r   r:   r   r#   r…   )rV   r5   rW   r5   r5   r5   rW   r   r   )r   r   r   rö   rZ   r‚   )r0   ÚvaluesZexpected_countsr^   r_   r    r    r!   Ú7test_rolling_count_default_min_periods_with_null_valuesÆ  s
    r  zdf,expected,window,min_periods©r   r   r:   )r   r#   r…   r½   ©r   r   r   rV   c                 C   s<   dd„ |D ƒ}t || j||d�ƒD ]\}}t ||¡ q"d S )Nc                 S   s   g | ]\}}t ||d �‘qS ©rH   )r   ©ru   r
  rA   r    r    r!   rx     ry   z/test_iter_rolling_dataframe.<locals>.<listcomp>r   )Úzipr   rZ   r[   )r   r_   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   r:   r   r#   )r   r#   r…   rÅ   rŠ   z
2016-01-01r#   rE   ©r¥   r?   rG   ©rd   r   rÝ   c                    s&   g | ]\}}t |ˆ j|d f d�‘qS )rÝ   rH   )r   Úlocr  r   r    r!   rx   D  s   z2test_iter_rolling_on_dataframe.<locals>.<listcomp>rÝ   )Úon)r   r   r  r   rZ   r[   )r_   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   )rt   )ru   Úidxr   r    r!   rx   O  ry   z<test_iter_rolling_on_dataframe_unordered.<locals>.<listcomp>r   r   )r   ÚlistrÁ   r   r  rZ   r[   )ÚresultsÚ	expectedsr^   r_   r    r   r!   Ú(test_iter_rolling_on_dataframe_unorderedK  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!   rx   w  ry   z,test_iter_rolling_series.<locals>.<listcomp>r   )r  r   rZ   r©   )r·   r_   r%   r   r  r    r    r!   Útest_iter_rolling_seriesT  s    #r"  zexpected,expected_index,windowr†   rE   rF   r‡   rˆ   r‰   z
2020-01-05)r   r:   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†   rE   r  rH   c                 S   s   g | ]\}}t ||d �‘qS r  r!  )ru   r
  r  r    r    r!   rx   §  s   z.test_iter_rolling_datetime.<locals>.<listcomp>)r
   r,   r   r  r   rZ   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   r&  r&  rá   ÚbyÚX)r%  )r   r   )r   r   )r:   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µ   )rU   r¦   rV   r§   r5   r'  Úignore)r°   Úerrorsr   )r   )ra   r)  )r   r,   rk   rÁ   r   rb   rZ   r[   )ÚgroupingÚ_indexra   r+  r   r_   r^   r    r    r!   Ú test_rolling_positional_argument¯  s    "r0  ÚaddrU   c              	   C   sœ   t tdƒtdƒtdƒgƒ |¡}tdd|  ddgi|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 )Nz19700101 09:00:00z19700101 09:00:03z19700101 09:00:06rd   gVUUUUU%Cç       €rH   rÕ   r   rq   r:   rg   rÅ   rv   )r?   rG   ÚunitgUUUUUU%CgÇqÇqCgÇqÇqCrU   )r   r   Úas_unitr   ZresampleZffillr   r¨   r   r   r   rZ   r[   )r1  r3  Údtir   r^   Údatesr_   r    r    r!   Ú*test_rolling_numerical_accuracy_kahan_meanÓ  s:    ýÿúþÿùÿôr7  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ú¿rU   rU   rU   rU   rÚ   râ   r:   gsh‘í|?á?r8  rU   r  )r   r   r   r
   r   r   rZ   r©   r  r    r    r!   Ú)test_rolling_numerical_accuracy_kahan_sumö  s    r9  c                  C   sd   t dddd� tdgƒ¡} tj d¡ t| ƒ¡}td|i| d�}| d¡ 	¡ }t
 ||dg ¡ d S )	Nr†   r‡   Z60s©r¥   ÚendrG   rˆ   r   r²   rH   )r   rY   r   r   ÚrandomÚdefault_rngr±   r   r   r¨   rZ   r[   )rA   r²   r   r^   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?r2  r2  z
1999-02-03z
1999-02-06rµ   r   )r
   r   r   r¨   rZ   r©   )rv   r^   r    r    r!   Ú,test_rolling_numerical_accuracy_small_values
  s    þr?  c                  C   sr   t dddd�} ttdƒ| tjd�}d|j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-01rC   rE   rF   )r²   rA   rŒ   gÐ¢�†¿»ûÆr   r#   gÚ¦kÌ/ÖÆç      @ç      @ç      @rH   )r   r
   r,   r   r  rt   r   r¨   r   rZ   r©   )r6  Údsr^   r_   r    r    r!   Ú(test_rolling_numerical_too_large_numbers  s&    
öórD  )r¹   rT   ))r   r5   )rº   rV   )r¬   rV   )r¨   rV   )rÑ   rV   c                 C   s    t dddgg d¢d�}d|d< d}tjt|d��  |jdddd	�}W d   ƒ n1 sV0    Y  t|| ƒƒ }t ddg||g||gdœddgd
�}t ||¡ d S )Nr   r   ©r  r  r1   )rA   r°   rV   r1   rë   r)   ©r%   r   rí   rH   )r   rZ   rï   rð   r   rQ   r[   )r¹   rT   r   r2   rR   r^   r_   r    r    r!   Ú test_rolling_mixed_dtypes_axis_1,  s    .þrG  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ƒ} d}tjt|d��$ | jdddd	� ¡ }W d   ƒ n1 s†0    Y  t g d
¢g d¢g d¢gƒ}t ||¡ d S )Nr   r   r   r   rë   r)   rÅ   r°   rF  )rU   rV   rW   rB  rB  rB  rB  )rU   rV   rW   rW   rW   rW   rW   )rU   r5   rs   rs   rA  rA  rB  )	r   r   r   rZ   rï   rð   r   r   r[   ©r   r2   r^   r_   r    r    r!   Útest_rolling_axis_one_with_nan?  s     ýÿ2ýÿrI  rT   Útestz
2019-12-31z1 days 06:05:01.00003c                 C   s~   t dddgiƒ}| |d< d}tjt|d��$ |jdddd� ¡ }W d   ƒ n1 sT0    Y  t ddd	giƒ}t ||¡ d S )
Nr  r   r   r  rë   r)   rF  rV   r5   )r   rZ   rï   rð   r   r   r[   )rT   r   r2   r^   r_   r    r    r!   Ú&test_rolling_axis_1_non_numeric_dtypesU  s    2rK  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œƒ}d}tjt|d��$ | jdddd� ¡ }W d   ƒ n1 sv0    Y  t ||¡ | j	jddd� ¡ j	}t ||¡ d S )Nr   r   r#   rÅ   rŠ   r  rV   r@  g      &@ç      *@rë   r)   r   )r   r%   rí   )r   r%   )
r   r   r   rZ   rï   rð   r   r   r[   rü   )r   r_   r2   r^   r    r    r!   Útest_rolling_on_df_transposedd  s    2rM  )rA   r%   z2020-01-01 08:00z2020-01-01 08:08r:  Z2minz2020-01-01 12:00Z30minZ1h)r¹   r
  r   r”   c                 C   sB   t g d¢| d�}t|j|dd�|ƒƒ }t || d�}t ||¡ d S )N)	r   r   r   r:   r   r#   r…   rÅ   rŠ   rH   rq   rŸ   )r
   rQ   r   rZ   r©   )rA   r%   r¹   r
  rC  r^   r_   r    r    r!   Útest_rolling_period_indexq  s    rN  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   rz   Ú
isinstancer   r
   r
  r   r   rZ   r©   )r0   Úobjr^   r_   r    r    r!   Útest_rolling_sem�  s    
rQ  zGH 38921)Úreason)r¹   Úthird_valuer
  Úvar)ç|Øê›ÐîFr   r¦   r¦   r   r   Ústd)ç >g¤ßfoCr   çPï˜pž æ?rX  ç»¹øÛž ö?r   )rU  r¦   r   r¦   r   r   )rW  rX  r   rX  rY  r   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
   rQ   r   r   r   rZ   r©   )r¹   rS  r
  rC  r^   r_   r    r    r!   Ú!test_rolling_var_numerical_issuesš  s
    r[  c                 C   sº   t tdƒtdƒtdƒtdƒtdƒgƒ | ¡}t |ddgg¡}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œ|d�}tg d¢g d¢dœ|d�}|jdd� 	¡ }t
 ||¡ d S )Nz20130101 09:00:00z20130102 09:00:02z20130103 09:00:03z20130105 09:00:05z20130106 09:00:06r   rd   gþÿÿÿÿÿï?g      ð¿rV   g6µ<AìòÔ¿g     ð?gáÿÿÿÿÿï?)r   rd   rH   )r   r   r   r   r:   )rÅ   r   r…   r’   r:   Z3dr$   )r   r   r4  r	   rã   r   r   r   r   rP   rZ   r[   )r3  r5  ÚmiÚexpr   Úresr    r    r!   Ú,test_timeoffset_as_window_parameter_for_corr²  sV    ûÿø	ööóåþr_  Úmethod)rT  r   r¨   ÚskewÚkurtr¬   rº   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ñÿÿÿrC   r   Nr+   rH   r#   r$   éüÿÿÿr   gê-�™—q=)	r   r   rK   rA   rQ   r   Úabsr
  rº   )r`  r   Z
df_reverseZ
increasingZ
decreasingr    r    r!   Útest_rolling_decreasing_indicesç  s
    *re  )rV   rW   r@  rW   )rU   rV   rW   r@  )rV   rW   rA  r@  )rU   rV   r5   rW   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.
    rf   r   rÕ   rF   rH   Nr+   Tr�   )r   r,   r   r   rZ   r‚   )r%   rh   r_   r0   rA   Zdf_incZdf_decZexpected_incZexpected_decZ
result_incZ
result_decr    r    r!   Ú(test_rolling_decreasing_indices_centered÷  s    rf  zwindow,expectedÚ1ns)rV   rV   rV   rV   Z3ns)r5   rW   rW   r5   c                 C   sR   t dddd�}|g d¢|td�}|||td�}|j| |dd� ¡ }t ||¡ d S )	Nrf   r   rg  rF   )r   r   r   r   r‹   Tr�   )r   r�   r   r   rZ   r‚   rƒ   r    r    r!   Ú)test_rolling_center_nanosecond_resolution  s
    
rh  zmethod,expectedr   g     €E@g¯µ÷©ª
a@g     ÀE@gÖÇCßÝ½W@g     Àf@g     às@r¨   g     €5@rA  g¥„`UU"@rL  g     €1@g      >@g     €U@g     €K@g     ÀV@g     €a@ra  g/àe†�²æ?g8j…é{Ú?göì¹LM‚ï?gô4`�ôií?g
+TTýë?g­ùñ—õê?rb  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(   rh   rJ   r¥   r;  ré   r    r    r!   Úget_window_boundsk  s    
zCtest_rolling_non_monotonic.<locals>.CustomIndexer.get_window_boundsN)Ú__name__Ú
__module__Ú__qualname__rm  r    r    r    r!   ÚCustomIndexerj  s   rq  r   )rk  rj  N)	r   r   rK   r±   r   rQ   r   rZ   r[   )r`  r_   rj  r   rq  r¢   r^   r    r    r!   Útest_rolling_non_monotonic)  s    >rr  re   z
2001-01-01)rG   r?   c                 C   s`   t g d¢| d�}| ¡ }d|jdd…< | |¡ |¡}t tjtjdddg| d�}t ||¡ d S )Nr  rH   rU   r   r   r   )	r
   Úcopyrt   r   rP   r   r   rZ   Úassert_almost_equal)rA   r%   rÚ   rô   r^   r_   r    r    r!   Ú!test_rolling_corr_timedelta_index~  s    	ru  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Úg2re   )Úgroupr   rx  F)Zdropnar   r   r   )rU   r5   rW   rV   rs   )r   r   r   r   r   )r   r   r:   r   r   rá   rH   )	r   r   r   rÁ   r   r¨   r	   rZ   r[   )r²   r   r^   r_   r    r    r!   Ú!test_groupby_rolling_nan_included�  s    
ýøry  c                 C   sf   t tj d¡ d¡ƒ}| ¡ }t| d¡| ƒƒ }t ||¡ |d }t| d¡| ƒƒ }t ||¡ d S )Nr   rC   r:   iPÃ  )	r
   r   r<  r=  rs  rQ   r   rZ   r©   )r`  r·   Zser_copyr_   r^   r    r    r!   Ú*test_rolling_skew_kurt_numerical_stability¥  s    rz  )r`  r
  )r5   gŠä+�”Xë?rU   gJ_9ïÿÿ?)rs   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   r:   r   iç  r   r:   rZ  )r`  r
  rv   r^   r_   r    r    r!   Ú(test_rolling_skew_kurt_large_value_range±  s    	r{  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   r6   )r`  )r-   r.   r/   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   rH   rq   rŸ   r   r+   z-1dr:   )	r   r,   r   r   r   r   rZ   r‚   rt   )r%   r0   r  rP  r^   r_   r    r    r!   Ú.test_rolling_descending_date_order_with_offsetÅ  s    r~  c                  C   sX   t g d¢ƒ} |  d¡ ¡ }t tjtjddgƒ}tj||ddd� t |dk|dk¡ d S )N)rÅ   r#   r#   r#   r:   çUUUUUUõ?r   çVçž¯Ò<©ÚatolÚrtol)r
   r   rT  r   r   rZ   r©   rª   r    r    r!   Ú,test_rolling_var_floating_artifact_precisionÔ  s
    r„  c                  C   s@   t g d¢ƒ} |  d¡ ¡ }t tjddgƒ}tj||ddd� d S )N)çQöØŽ�¢>g 4PSªÈ¡>r…  r   gÌ[³¸^>>r€  r�  )r
   r   rV  r   r   rZ   r©   rª   r    r    r!   Útest_rolling_std_small_valuesß  s    ÿr†  zstart, exp_values)ç¸…ëQ¸ž?çX9´Èv¾�?rˆ  gºI+‡†?gË¡E¶óý„?)çü©ñÒMbP?r‰  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 )Nr‡  r‰  çü©ñÒMb`?çü©ñÒMb€?ç{®Gázt?çš™™™™™É?rŠ  g=
×£p=º?rH   r#   r   r   )r   r   r   r  r,   r±   rt   r   r¨   rZ   r[   )r¥   Z
exp_valuesr   r
  r_   r^   r    r    r!   Ú3test_rolling_mean_all_nan_window_floating_artifactsí  sB    	òÿø
þr�  c                  C   sH   t dddtjtjtjgƒ} | jddd� ¡ }t g d¢ƒ}t ||¡ d S )Nr‹  rŒ  r�  r:   r   r   )r‹  g{®Gáz„?g¸…ëQ¸Ž?g9´Èv¾ŸŠ?r�  rU   )r   r   r   r   r   rZ   r[   r  r    r    r!   Ú2test_rolling_sum_all_nan_window_floating_artifacts  s    r�  c                  C   s6   t tdƒƒ} |  d¡ ¡ }t tjgƒ}t ||¡ d S )Nr   r   )r
   r,   r   r¬   r   r   rZ   r©   rª   r    r    r!   Útest_rolling_zero_window#  s    r‘  c                 C   s–   t tdƒtddƒdœ| d�}t tjgd tdddƒdœ| d�}d}tjt|d	��" |jdd
d� ¡ }W d   ƒ n1 sx0    Y  tj	||dd� d S )Nr#   rC   r–   r½   r   r—   r   rë   r)   r   rì   Fr|   )
r   r,   r   r   rZ   rï   rð   r   r   r[   )Zfloat_numpy_dtyper   r_   r2   r^   r    r    r!   Útest_rolling_float_dtype+  s    þ0r’  c                  C   s  t t d¡ dd¡tdƒd� dddd	d
ddddddœ
¡} d}tjt|d��$ | j	dddd� 
¡ }W d   ƒ n1 sv0    Y  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   rC   Z
abcdefghijrâ   Zfloat16Zfloat32r  Zint8Zint16Zint32Zuint8Zuint16Zuint32Zuint64)
r  r  r1   ÚdÚeÚfÚgÚhré   Újrë   r)   r   r   rF  r   r:   r#   r…   rÅ   rŠ   r   )r   r   rK   Úreshaper  rÆ   rZ   rï   rð   r   r¬   r,   r[   rH  r    r    r!   Útest_rolling_numeric_dtypes8  s>    öÿ2









öór›  )r   r:   rC   r—   )r¬   rº   ZaverageÚpctÚ	ascendingÚ	test_data)ÚdefaultÚ
duplicatesÚnansc           	   	      sÂ   d}|dkr&t tj d¡ |¡d�}nZ|dkrJt tj d¡ d|¡d�}n6|dkr€t tj d¡ 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:   r¡  rV   ç      Ð?ç      è?c                    s   | j ˆˆˆ d�jd S )N©r`  rœ  r�  r+   )Úrankrt   )rÚ   ©r�  r`  rœ  r    r!   Ú<lambda>p  ry   ztest_rank.<locals>.<lambda>r¤  )r
   r   r<  r=  Úchoicer   Úinfr   rb   r¥  rZ   r©   )	r%   r`  rœ  r�  rž  Úlengthr·   r_   r^   r    r¦  r!   Ú	test_rank]  s     ÿÿ
ÿr«  c                  C   s|   d} d}t d| dd�}ttj d¡ | | ¡ | df¡|d�}|jg d	¢d
d�}tj|g d¢d
d�}t 	|j
t |¡¡ d S )NrC   r#   Z20100101r   rF   r   r+   rH   )r¢  r¦   r£  r   rì   )é   é2   éK   )r   r   r   r<  r=  rš  rÒ   Z
percentilerZ   rt  r
  rù   )ÚrowÚcolr  r   Zdf_quantileZnp_percentiler    r    r!   Ú#test_rolling_quantile_np_percentilew  s     ÿr±  rÒ   )rU   r×   gÍÌÌÌÌÌÜ?r¦   r   Úinterpolation)ZlinearÚlowerZhigherZnearestZmidpointr²   )rV   r5   rW   rs   r@  rA  rB  )g       @rV   rW   rs   r@  r5   rA  rB  rŽ  r®   r×   g333333Ó?gffffffæ?g333333ã?c                 C   sx   t |ƒ}| | |¡}|jdd� | |¡jd }t |¡rHt |¡stJ ‚n,tshtj|g|gddd�stJ ‚n||kstJ ‚d S )Nr   r   r+   gH¯¼šò×z>r   )rƒ  r‚  )r
   rÒ   Z	expandingrt   r   Úisnanr   Zallclose)rÒ   r²  r²   rv   Úq1Úq2r    r    r!   Ú+test_rolling_quantile_interpolation_options‡  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   rK   r
   r-   r.   r/   r   r±   rÒ   )r²   rv   r2   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)rU   r×   r¦   gÍÌÌÌÌÌì?rV   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 strr6   )r
   r-   r.   r/   r   rÒ   Ú	TypeError)r·   r2   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)rV   r5   rW   rs   r@  r   r   r#   r   )r{   rU   r:   r   r   )r
   r   rV  r   r   rZ   r©   r´  )Úvalsr^   r_   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¾  r:   r$   r   )Úspan)r
   r   rV  r   ÚisfiniteÚallZewmr  r    r    r!   Útest_rolling_std_neg_sqrtÐ  s    ÿ	rÂ  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step must be an integerr)   r   r   r6   rI   ©r-   r.   r/   r   r,   r   r    r    r    r!   Útest_step_not_integer_raiseså  s    rÄ  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step must be >= 0r)   r   r   r+   rI   rÃ  r    r    r    r!   Útest_step_not_positive_raisesê  s    rÅ  )r
  r%   r   r_   r—   r­  g«ªªªªª@@g     @D@çUUUUUUÕ?gUUUUUU8@)r   r   r  r   r  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   rT  rZ   r©   rV  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   sZ   t g d¢ƒ} |  d¡}| ¡ }|dd … dk ¡ s6J ‚| ¡ }|dd … dk ¡ sVJ ‚d S )N©rÆ  r   r   r   r   r   r   r:   rÉ   r   )r
   r   r¨   rÁ  r   ©rÈ  Úrr^   r    r    r!   Ú(test_rolling_mean_sum_floating_artifacts9  s    
rÍ  c                  C   sZ   t g d¢ƒ} |  d¡}| ¡ }|dd … dk ¡ s6J ‚| ¡ }|dd … dk ¡ sVJ ‚d S )NrÊ  r   éþÿÿÿr   rÉ   )r
   r   ra  rÁ  rb  rË  r    r    r!   Ú)test_rolling_skew_kurt_floating_artifactsD  s    
rÏ  c           	      C   sž   | }t dgdddœƒ}|d  t¡|d< |jddd�}t||ƒ}||d�}|rVdd	gng d¢}||  |g¡jd
d� t¡}t|j	ƒ|ksŽJ ‚t
 ||¡ d S )Nr   r   r:   rE  r1   r   ©Únumeric_onlyr  r  Trj   )r   rÆ   Úobjectr   rQ   rN   rl   r�   r  r°   rZ   r[   )	rm   rÑ  Úkernelr   r   Úopr^   r°   r_   r    r    r!   Útest_numeric_only_frameO  s    

rÕ  rÓ  Úuse_argc                 C   sÀ   t g d¢dddœƒ}|d  t¡|d< |r0|fnd}|jddd�}t|| ƒ}||d	|iŽ}|rfd
dgng d¢}||  t¡}	|r†|	fnd}
|	jddd�}t|| ƒ}||
d	|iŽ}t ||¡ d S )Nr  r   r:   rE  r1   r    r   r   rÑ  r  r  )r   rÆ   rÒ  r   rQ   r�   rZ   r[   )rÓ  rÑ  rÖ  r   Úargr   rÔ  r^   r°   Zdf2Úarg2Úrolling2Úop2r_   r    r    r!   Ú test_numeric_only_corr_cov_frame_  s    

rÛ  rŒ   c           
      C   s°   | }t dg|d�}|jddd�}t||ƒ}|r||tu r|d|› d�}tjt|d�� ||d� W d   ƒ q¬1 sp0    Y  n0||d�}| |g¡jd	d
� 	t
¡}	t ||	¡ d S )Nr   r   r   r   úRolling.ú  does not implement numeric_onlyr)   rÐ  Trj   )r
   r   rQ   rÒ  r-   r.   rL   rN   rl   rÆ   r�   rZ   r©   )
rm   rÑ  rŒ   rÓ  r·   r   rÔ  r2   r^   r_   r    r    r!   Útest_numeric_only_seriesu  s    
*
rÞ  c                 C   sè   t g d¢|d�}|r|fnd}|jddd�}t|| ƒ}|rŒ|tu rŒd| › d�}tjt|d	�� ||d
|iŽ W d   ƒ qä1 s€0    Y  nX||d
|iŽ}	| t¡}
|r®|
fnd}|
jddd�}t|| ƒ}||d
|iŽ}t	 
|	|¡ d S )Nr  r   r    r   r   r   rÜ  rÝ  r)   rÑ  )r
   r   rQ   rÒ  r-   r.   rL   rÆ   r�   rZ   r©   )rÓ  rÖ  rÑ  rŒ   r·   r×  r   rÔ  r2   r^   Zser2rØ  rÙ  rÚ  r_   r    r    r!   Ú!test_numeric_only_corr_cov_series†  s    
.

rß  r3  )rv   ÚmsÚusÚnsrû   )NÚUTCzEurope/Praguec                 C   s  t dtdƒitddd|d�d�}| d¡ ¡ }|j | ¡|_| d¡ ¡ }|j d¡|_t ||¡ tdd	d|d
�}t	d|d�}d|j
d< | tdd�¡ ¡ }tdd	| |d
�}t	d|d�}	d|	j
d< |	 tdd�¡ ¡ }
t |ƒ}t |
ƒ}|j d¡|_t ||¡ d S )Nrd   r#   z
2013-01-01rÕ   )rG   r?   rû   rH   râ  z
2023-01-01z
2023-01-10)r3  rû   r   r   r   r;   )r   r,   r   r   r   rA   r4  rZ   r[   r
   rt   r   rº   )r3  rû   ro   Zsum_in_nanosecsZsum_in_microsecsZ	ref_datesZ
ref_seriesZref_max_seriesr6  ZseriesZ
max_seriesZref_dfr   r    r    r!   Ú-test_rolling_timedelta_window_non_nanosecondsž  s(    ÿ

rä  )r   r   Únumpyr   r-   Zpandas.compatr   r   r   Zpandasr   r   r	   r
   r   r   r   r   r   r   Zpandas._testingZ_testingrZ   Zpandas.api.indexersr   Zpandas.core.indexers.objectsr   Zpandas.tseries.offsetsr   r"   r3   ÚmarkZparametrizerù   r9   rM   rS   r`   rc   rp   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#  Úfrom_tuplesr0  r7  r9  r>  r?  rD  rG  rI  rK  rM  rN  rQ  Zxfailr[  r_  re  rf  rh  r�   rr  ru  ry  rz  r{  r|  r~  r„  r†  r�  r�  r‘  r’  r›  r«  r±  r·  r¹  r»  r½  rÂ  rÄ  rÅ  r©  rÉ  rÍ  rÏ  rÕ  rÛ  rÄ   rÒ  rÞ  rß  rä  r    r    r    r!   Ú<module>   s^  0
ÿüþ



ûþûþûþûþáþ-
øþ
üþ	


üþ	


üþ	



øþ" $"" $"øþ


üþ	


	
ýøýøýøýøýø
 ýøÊþD
ýú
ýú
ýúïþ
	
(ü
(ü
(ü
(ü00*äþ!
û÷û÷û÷éþ&
ÿþÿþùþ

"
þ
þ
þÿüûþýþ
þüþ	5øþþþ
øþ(þ*þøþøþÝþ4!þþ
þþþþ'%ÿùþ	üüü*ü*ü
üüÛþ/