o
    Û­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ƒ �pReƒ 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/CropPilot/venv/lib/python3.10/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   ƒ d S 1 s=w   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 s%w   Y  d}tjt|d�� |d|d	� W d   ƒ n1 sDw   Y  d
}tjt|d�� |dd|d� W d   ƒ d S 1 sew   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   sb   t t d¡tdddd�d�}tjtdd�� |j| dd	� ¡  W d   ƒ d S 1 s*w   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   sV   t tdƒƒjddd�}tjtdd�� t|| ƒƒ  W d   ƒ d S 1 s$w   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_   Úresult_roll_sumÚresult_roll_genericr    r    r!   Ú0test_constructor_timedelta_window_and_minperiodsˆ   s   þþre   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[   )rj   Úarithmetic_win_operatorsÚ	func_nameÚdf_fixedÚdf_timer^   r_   r    r    r!   Útest_closed_fixedš   s   þþýrs   zclosed, window_selectionsÚboth)TTFFF)TTTFF)FTTTF)FFTTT)FFFTTÚleft)TFFFF)FTTFF)FFTTFÚright)FFFFTÚ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r-d
di}ni }tˆ jd| ddd�ˆƒdi |¤Ž}tj||dd� d S )Nrf   )rU   rV   r5   rW   ç      @rh   r#   r>   rH   c                    s"   g | ]}t ˆ d  j| ˆƒƒ ‘qS )rf   )rQ   Úiloc)Ú.0Ús©rr   rp   r    r!   Ú
<listcomp>ã   s   " z9test_datetimelike_centered_selections.<locals>.<listcomp>ÚsemÚddofr   rk   r   T)rj   r   r(   F©Úcheck_dtyper    )r   r   rQ   r   rZ   r[   )rj   Úwindow_selectionsro   r_   Úkwargsr^   r    r|   r!   Ú%test_datetimelike_centered_selections¬   s$   1ÿ
þ
þýr„   zwindow,closed,expectedÚ3s)rW   rW   rW   Ú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©rj   r(   )r   r   r   rZ   Úassert_equal©r%   rj   r_   r0   rA   r   r^   r    r    r!   Ú,test_datetimelike_centered_offset_covers_allô   s   ýr‹   rk   )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(   rj   )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’   rk   ©rj   )r   r,   r”   r   r   rZ   r‰   )rj   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   ri   )	r   r,   r”   r   r   r   r   rZ   r‰   )rj   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   rk   r   Tr'   )ç      à?ç      ø?r   )r
   r,   r   r   ÚmeanrA   rZ   Úassert_series_equal©r{   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�}| rg 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   Ú
binary_colr�   Úminr«   rH   )çUUUUUUå?r­   çš™™™™™Ù?r­   ç£å@µmÛ?r­   g.�_x%Iâ?r­   r   r­   rµ   r¶   r·   )ÚcolumnsrA   ru   r   )r%   rj   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»   rj   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#   Ú2000rk   rF   ©rº   rA   Ú1Dr¦   rH   )
r
   r   rK   r   r   rQ   r   rA   rZ   r°   )rj   ro   rp   Ú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½   Ú10Dru   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   ©rf   r   r¼   r:   r>   r½   rf   F)Úsortr   rÃ   ru   r¦   )rf   N)ÚarraysÚnames)rº   rA   Úname)r   r   rQ   Úgroupbyr   r	   Úfrom_arraysrA   r
   r   r   rZ   r°   )rÁ   r¿   r^   Ú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Á   rj   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=   ru   r¦   r   r   r:   r   rŒ   )r
   r   rK   r   rm   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   rj   rH   )r
   r   rK   r   rÑ   r   rA   rQ   r   rZ   r°   )rÁ   rj   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)rj   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   Ú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s1J ‚d S )Nrf   r   )ÚCrE   ÚEÚ1Ú2©rÈ   )rC   rŒ   ©r¸   r:   )Nrë   rì   )r	   Úfrom_productr   r   Úonesr   rO   rZ   Ú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 sKw   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   ©rz   Úir    r    r!   Ú
<dictcomp>\  s   $ 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   
 ÿr   c                 C   s°   t tdƒtdƒdœƒ}| | ¡}|dv r"d}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 sKw   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   
ÿ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   Úsetflagsr
   r   r¯   rZ   r°   )Úarrr^   r_   r    r    r!   Útest_readonly_arrayy  s
   r	  c              	   C   s  |}t dd„ tddd|d�D ƒƒ}| dv r:d}tjt|d	�� |jjd
| d� ¡ j}W d   ƒ n1 s4w   Y  n"d}tjt|d	�� |jd
| d� ¡ }W d   ƒ n1 sWw   Y  t i dd„ tddd|d�D ƒ¥dd„ tddd|d�D ƒ¥ƒ}t ||¡ d S )Nc                 S   ó   i | ]}|d gd “qS )r   r   r    rõ   r    r    r!   r÷   †  s    z)test_rolling_datetime.<locals>.<dictcomp>z	2019-8-01z
2019-08-03rE   )rG   Útzr  rô   r)   rk   rù   z'Support for axis=1 in DataFrame.rollingc                 S   r
  )rV   r   r    rõ   r    r    r!   r÷   “  ó    
ÿÿr   )r?   rG   r  c                 S   r
  )r5   r   r    rõ   r    r    r!   r÷   —  r  z	2019-8-02z	2019-8-03)	r   r   rZ   rü   rý   ÚTr   r   r[   )rÿ   Útz_naive_fixturer  r   r2   r^   r_   r    r    r!   Útest_rolling_datetime‚  s4   ÿÿ€ÿþÿþûÿ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�}| sOtj|d d	…< t||dd�}t ||¡ d S )Nim  rE   )rG   )ÚDateColÚmetricr  T)ÚinplaceÚ21Dr   ru   )r%   r   rj   r(   r  rÂ   ©r“   )rA   rÉ   )r   Únowr   r   r   rð   r¹   r   Ú	set_indexr   rN   ÚrenameÚ
_with_freqÚfloat64r   r
   rZ   r°   )	r(   Ú
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   ÚvaluesÚ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   ó<   dd„ |D ƒ}t || j||d�ƒD ]
\}}t ||¡ qd S )Nc                 S   ó   g | ]
\}}t ||d �‘qS ©rH   )r   ©rz   r!  rA   r    r    r!   r}     ó    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 || ¡ q$d S )N©r   r   r:   r   r#   )r   r#   rŒ   rÐ   r‘   z
2016-01-01r#   rE   ©r¬   r?   rG   ©rf   r   ré   c                    s&   g | ]\}}t |ˆ j|d f d�‘qS )ré   rH   )r   Úlocr)  r   r    r!   r}   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   ýÿ
ÿÿr3  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 ||¡ q*d S )
N)rå   r  rå   r%  ©r  Úbr  r   c                    s   g | ]
}ˆ j |d gf ‘qS )r   )ry   )rz   Úidxr   r    r!   r}   O  r*  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   r&  )Nc                 S   r'  r(  ©r
   r)  r    r    r!   r}   w  r*  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   r'  r(  r<  )rz   r!  r6  r    r    r!   r}   §  s    ÿz.test_iter_rolling_datetime.<locals>.<listcomp>)r
   r,   r   r+  r   rZ   r°   )r_   Úexpected_indexr%   r¿   r,  r    r    r!   Útest_iter_rolling_datetime}  s   (ÿÿr?  zgrouping,_indexÚlevel)©r   r   rA  ©r   r   rB  rB  rí   ÚbyÚX)rA  )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 r%|jdd	d
�}|jd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_sumrD  r#   )r   r   r   r   r   r½   )rU   r­   rV   r®   r5   rC  Úignore)r¸   Úerrorsr   )r   )ra   rE  r    )r   r,   rm   rÊ   r   rb   rZ   r[   )ÚgroupingÚ_indexra   rG  r   r_   r^   r    r    r!   Ú test_rolling_positional_argument¯  s   "rL  Ú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:06rf   gVUUUUU%Cç       €rH   rà   r…   ru   r:   ri   rÐ   r{   )r?   rG   ÚunitgUUUUUU%CgÇqÇqCgÇqÇqCrU   )r   r   Úas_unitr   ÚresampleÚffillr   r¯   r   r   r   rZ   r[   )rM  rO  Údtir   r^   Údatesr_   r    r    r!   Ú*test_rolling_numerical_accuracy_kahan_meanÓ  s:   ýÿúþÿùÿôrU  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‘í|?á?rV  rU   r  )r   r   r   r
   r   r   rZ   r°   r  r    r    r!   Ú)test_rolling_numerical_accuracy_kahan_sumö  s   rW  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Ž   Ú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?rN  rN  z
1999-02-03z
1999-02-06r½   r   )r
   r   r   r¯   rZ   r°   )r{   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  ry   r   r¯   r   rZ   r°   )rT  Údsr^   r_   r    r    r!   Ú(test_rolling_numerical_too_large_numbers  s&   
öórc  )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 s+w   Y  t|| ƒƒ }t ddg||g||gdœddgd
�}t ||¡ d S )Nr   r   ©r  r5  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   ÿþrf  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 sCw   Y  t g d
¢g d¢g d¢gƒ}t ||¡ d S )Nr   r   r   r   rø   r)   rÐ   r¸   re  )rU   rV   rW   ra  ra  ra  ra  )rU   rV   rW   rW   rW   rW   rW   )rU   r5   rx   rx   r`  r`  ra  )	r   r   r   rZ   rü   rý   r   r   r[   ©r   r2   r^   r_   r    r    r!   Útest_rolling_axis_one_with_nan?  s"   ýÿÿýÿrh  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 s*w   Y  t ddd	giƒ}t ||¡ d S )
Nr  r   r   r5  rø   r)   re  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   ÿrj  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 s;w   Y  t ||¡ | j	jddd� ¡ j	}t ||¡ d S )Nr   r   r#   rÐ   r‘   r0  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   ÿrl  )rA   r%   z2020-01-01 08:00z2020-01-01 08:08rY  Ú2minz2020-01-01 12:00Ú30minÚ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   ru   r¦   )r
   rQ   r   rZ   r°   )rA   r%   rÁ   r!  rb  r^   r_   r    r    r!   Útest_rolling_period_indexq  s   rp  c                 C   s\   | g d¢ƒ}|j ddd� ¡ }t|tƒrt|d jƒ}ttjgdgd  ƒ}t 	||¡ d S )Nr%  r   r   r   r   gÍ;fž æ?)
r   r~   Ú
isinstancer   r
   r!  r   r   rZ   r°   )r0   Úobjr^   r_   r    r    r!   Útest_rolling_sem�  s   
rs  zGH 38921)Úreason)rÁ   Úthird_valuer!  Úvar)ç|Øê›ÐîFr   r­   r­   r   r   Ústd)ç >g¤ßfoCr   çPï˜pž æ?rz  ç»¹øÛž ö?r   )rw  r­   r   r­   r   r   )ry  rz  r   rz  r{  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Á   ru  r!  rb  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   rf   gþÿÿÿÿÿï?g      ð¿rV   g6µ<AìòÔ¿g     ð?gáÿÿÿÿÿï?)r   rf   rH   )r   r   r   r   r:   )rÐ   r   rŒ   r™   r:   Ú3dr$   )r   r   rP  r	   rï   r   r   r   r   rP   rZ   r[   )rO  rS  ÚmiÚexpr   Úresr    r    r!   Ú,test_timeoffset_as_window_parameter_for_corr²  sV   ûÿø	ööóåþr‚  Úmethod)rv  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 sQJ ‚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   Ú
df_reverseÚ
increasingÚ
decreasingr    r    r!   Útest_rolling_decreasing_indicesç  s
   *<r‹  )rV   rW   r_  rW   )rU   rV   rW   r_  )rV   rW   r`  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.
    rh   r   rà   rF   rH   Nr+   Trˆ   )r   r,   r   r   rZ   r‰   )r%   rj   r_   r0   rA   Údf_incÚdf_decÚexpected_incÚexpected_decÚ
result_incÚ
result_decr    r    r!   Ú(test_rolling_decreasing_indices_centered÷  s   r’  zwindow,expectedÚ1ns)rV   rV   rV   rV   Ú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 )	Nrh   r   r“  rF   )r   r   r   r   r’   Trˆ   )r   r”   r   r   rZ   r‰   rŠ   r    r    r!   Ú)test_rolling_center_nanosecond_resolution  s
   
r•  zmethod,expectedr   g     €E@g¯µ÷©ª
a@g     ÀE@gÖÇCßÝ½W@g     Àf@g     às@r¯   g     €5@r`  g¥„`UU"@rk  g     €1@g      >@g     €U@g     €K@g     ÀV@g     €a@r„  g/àe†�²æ?g8j…é{Ú?göì¹LM‚ï?gô4`�ôií?g
+TTýë?g­ùñ—õê?r…  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| r&d||< |d ||< q|||< || j ||< q||fS )Nr  r   r   )r   Úemptyr;  r,   Úuse_expandingÚwindow_size)	ÚselfÚ
num_valuesr   r(   rj   rJ   r¬   rZ  rö   r    r    r!   Úget_window_boundsk  s   
zCtest_rolling_non_monotonic.<locals>.CustomIndexer.get_window_boundsN)Ú__name__Ú
__module__Ú__qualname__r›  r    r    r    r!   ÚCustomIndexerj  s    rŸ  r   )r˜  r—  N)	r   r   rK   r¹   r   rQ   r   rZ   r[   )rƒ  r_   r—  r   rŸ  r©   r^   r    r    r!   Útest_rolling_non_monotonic)  s   >r   rg   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
   Úcopyry   r   rP   r   r   rZ   Úassert_almost_equal)rA   r%   rå   r  r^   r_   r    r    r!   Ú!test_rolling_corr_timedelta_index~  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Úg2rg   )Úgroupr   r¦  F)Údropnar   r   r   )rU   r5   rW   rV   rx   )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   
ýør¨  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\  r¡  rQ   r   rZ   r°   )rƒ  r¿   Úser_copyr_   r^   r    r    r!   Ú*test_rolling_skew_kurt_numerical_stability¥  s   rª  )rƒ  r!  )r5   gŠä+�”Xë?rU   gJ_9ïÿÿ?)rx   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:   r|  )rƒ  r!  r{   r^   r_   r    r    r!   Ú(test_rolling_skew_kurt_large_value_range±  s   	r«  c                   C   sJ   t jtdd�� ttdƒƒjddd� W d   ƒ d S 1 sw   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À  ó   "ÿ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®  rY  r   r   rH   ru   r¦   r   r+   z-1dr:   )	r   r,   r   r   r   r   rZ   r‰   ry   )r%   r0   r6  rr  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   rv  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   rx  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   r7  r,   r¹   ry   r   r¯   rZ   r[   )r¬   Ú
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 s<w   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[   )Úfloat_numpy_dtyper   r_   r2   r^   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œ
¡} d}tjt|d�� | j	dddd� 
¡ }W d   ƒ n1 s;w   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   Ú
abcdefghijrî   Úfloat16Úfloat32r  Úint8Úint16Úint32Úuint8Úuint16Úuint32Úuint64)
r  r5  r1   ÚdÚeÚfÚgÚhrö   Újrø   r)   r   r   re  r   r:   r#   rŒ   rÐ   r‘   r  )r   r   rK   Úreshaper7  rÑ   rZ   rü   rý   r   r´   r,   r[   rg  r    r    r!   Útest_rolling_numeric_dtypes8  s@   öÿÿ









öórØ  )r   r:   rC   rž   )r´   rÂ   ÚaverageÚpctÚ	ascendingÚ	test_data)ÚdefaultÚ
duplicatesÚnansc           	   	      sÂ   d}|dkrt tj d¡ |¡d�}n-|dkr%t tj d¡ d|¡d�}n|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+   )Úrankry   )rå   ©rÛ  rƒ  rÚ  r    r!   Ú<lambda>p  s    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#   Ú20100101r   rF   r   r+   rH   )rà  r­   rá  r   rù   )é   é2   éK   )r   r   r   r[  r\  r×  rÝ   Ú
percentilerZ   r¢  r!  r  )ÚrowÚcolr6  r   Údf_quantileÚnp_percentiler    r    r!   Ú#test_rolling_quantile_np_percentilew  s    ÿró  rÝ   )rU   râ   gÍÌÌÌÌÌÜ?r­   r   Úinterpolation)ÚlinearÚlowerÚhigherÚnearestÚmidpointrº   )rV   r5   rW   rx   r_  r`  ra  )g       @rV   rW   rx   r_  r5   r`  ra  r¿  r¶   râ   g333333Ó?gffffffæ?g333333ã?c                 C   s|   t |ƒ}| | |¡}|jdd� | |¡jd }t |¡r%t |¡s#J ‚d S ts6tj|g|gddd�s4J ‚d S ||ks<J ‚d S )Nr   r   r+   gH¯¼šò×z>r   )r´  r³  )r
   rÝ   Ú	expandingry   r   Úisnanr   Úallclose)rÝ   rô  rº   r{   Úq1Úq2r    r    r!   Ú+test_rolling_quantile_interpolation_options‡  s   
rÿ  c                  C   sf   t  d¡} t| ƒ}d}tjt|d�� |jt| ƒdd�jddd� W d   ƒ d S 1 s,w   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º   r{   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 s"w   Y  d}tjt|d�� |  d¡ d¡ W d   ƒ n1 sCw   Y  d}tjt|d�� |  d¡ d	¡ W d   ƒ d S 1 sew   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
 ¡sPJ ‚d S )N)rV   r5   rW   rx   r_  r   r   r#   r   )r   rU   r:   r   r   )r
   r   rx  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 … ¡ ¡ sJ ‚| jdd� ¡ }t |dd … ¡ ¡ s0J ‚d S )N)ge>¸¸ÁR?ç¨R¨z1Ò2?r  r  r  r:   r$   r   )Úspan)r
   r   rx  r   ÚisfiniteÚallÚewmr4  r    r    r!   Útest_rolling_std_neg_sqrtÐ  s   ÿ	r  c                   C   óJ   t jtdd�� ttdƒƒjddd� W d   ƒ d S 1 sw   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å  r­  r  c                   C   r  )Nzstep must be >= 0r)   r   r   r+   rI   r  r    r    r    r!   Útest_step_not_positive_raisesê  r­  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   rv  rZ   r°   rx  r   Úsqrt)r!  r%   r   r_   ÚsrÚ
result_varÚ
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 ¡ sJ ‚| ¡ }|dd … dk ¡ s+J ‚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  ó   
r  c                  C   sZ   t g d¢ƒ} |  d¡}| ¡ }|dd … dk ¡ sJ ‚| ¡ }|dd … dk ¡ s+J ‚d S )Nr  r   éþÿÿÿr   rÔ   )r
   r   r„  r	  r…  r  r    r    r!   Ú)test_rolling_skew_kurt_floating_artifactsD  r  r  c           	      C   sž   | }t dgdddœƒ}|d  t¡|d< |jddd�}t||ƒ}||d�}|r+dd	gng d¢}||  |g¡jd
d� t¡}t|j	ƒ|ksGJ ‚t
 ||¡ d S )Nr   r   r:   rd  r1   r   ©Únumeric_onlyr  r5  Trl   )r   rÑ   Úobjectr   rQ   rN   rn   r”   r7  r¸   rZ   r[   )	ro   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< |r|fnd}|jddd�}t|| ƒ}||d	|iŽ}|r3d
dgng d¢}||  t¡}	|rC|	fnd}
|	jddd�}t|| ƒ}||
d	|iŽ}t ||¡ d S )Nr$  r   r:   rd  r1   r    r   r   r  r  r5  )r   rÑ   r  r   rQ   r”   rZ   r[   )r   r  r#  r   Úargr   r!  r^   r¸   Ú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   ƒ d S 1 s9w   Y  d S ||d�}| |g¡jd	d
� 	t
¡}	t ||	¡ d S )Nr   r  r   r   úRolling.ú  does not implement numeric_onlyr)   r  Trl   )r
   r   rQ   r  r-   r.   rL   rN   rn   rÑ   r”   rZ   r°   )
ro   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|| ƒ}|rH|tu rHd| › d�}tjt|d	�� ||d
|iŽ W d   ƒ d S 1 sAw   Y  d S ||d
|iŽ}	| t¡}
|rY|
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^   Úser2r&  r'  r(  r_   r    r    r!   Ú!test_numeric_only_corr_cov_series†  s    
"ÿ

r.  rO  )r{   Ú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 )Nrf   r#   z
2013-01-01rà   )rG   r?   r  rH   r1  z
2023-01-01z
2023-01-10)rO  r  r   r   r   r;   )r   r,   r   r   r   rA   rP  rZ   r[   r
   ry   r   rÂ   )rO  r  rr   Úsum_in_nanosecsÚsum_in_microsecsÚ	ref_datesÚ
ref_seriesÚref_max_seriesrT  ÚseriesÚ
max_seriesÚref_dfr   r    r    r!   Ú-test_rolling_timedelta_window_non_nanosecondsž  s(   ÿ

r;  )r   r   Únumpyr   r-   Úpandas.compatr   r   r   Úpandasr   r   r	   r
   r   r   r   r   r   r   Úpandas._testingÚ_testingrZ   Úpandas.api.indexersr   Úpandas.core.indexers.objectsr   Úpandas.tseries.offsetsr   r"   r3   ÚmarkÚparametrizer  r9   rM   rS   r`   re   rs   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-  r3  r:  r=  r?  Úfrom_tuplesrL  rU  rW  r]  r^  rc  rf  rh  rj  rl  rp  rs  Úxfailr}  r‚  r‹  r’  r•  r”   r   r£  r¨  rª  r«  r¬  r¯  rµ  r·  rÁ  rÂ  rÃ  rÅ  rØ  ré  ró  rÿ  r  r  r  r  r  r  rç  r  r  r  r"  r)  rÏ   r  r,  r.  r;  r    r    r    r!   Ú<module>   s`   0
ÿüþ



ûþûþûþûþáþ
-øþ
üþ
	

üþ
	

üþ
	


øþ" $"" $"øþ


üþ
	

	
ýøýøýøýøýø
 ýøÊþ
Dýú
ýú
ýúïþ
	
(ü
(ü
(ü
(ü00*äþ
!û÷û÷û÷éþ
&ÿþÿþùþ

"
þ
þ
þÿüûþýþ
þüþ	5øþþþ
øþ(þ*þøþøþÝþ4!þþ
þþþþ'%ÿùþ	üüü*ü*ü
üüÛþ/