U
    ÎZjØ<  ã                   @   s&  d dl Zd dlZd dl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 d dlmZ dd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Zdd„ Zej ddgddgddidddœg¡dd„ ƒZdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Z ej d%d&d'ej!ej!ej!ej!gd(d)d*d)gd*d+d,d+gej!ej!ej!ej!gd)d+d,d+gd,d-d.d-gd.d/d0d1ggfd2dd3d3d)d)gd(d)d*d)gd)d+d+d)gd3d3d+d+gd)d+d,d+gd4d-d5d+gd-d/d.d+ggfg¡d6d7„ ƒZ"d8d9„ Z#d:d;„ Z$ej %d<¡d=d>„ ƒZ&d?d@„ Z'dAdB„ Z(dCdD„ Z)ej dEdFdGdHg¡ej dIdJdKdLdMdNdOdPdQdRdSdTdUdVdWg¡dXdY„ ƒƒZ*dS )Zé    N)ÚSpecificationErrorÚUnsupportedFunctionCall)	Ú	DataFrameÚIndexÚ
MultiIndexÚPeriodÚSeriesÚ	TimestampÚconcatÚ
date_rangeÚtimedelta_rangec                 C   sâ   t tj dd¡ƒ}|jd| d�}t |jj|d d | … j¡ |jd| d�d }|jj	|d d | … jd ksnt
‚|jd| d�d }t |jj|d d | … jddg ¡ |jd| d�ddg }t |jj|d d | … jddg ¡ d S )Né   ©ÚwindowÚstepé   )r   é   r   )r   ÚnpÚrandomZrandnÚrollingÚtmÚassert_index_equalZ_selected_objÚcolumnsÚnameÚAssertionError)r   ÚframeÚr© r   ú_/var/www/html/TRUCKING_PROJECT/venv/lib/python3.8/site-packages/pandas/tests/window/test_api.pyÚtest_getitem   s     $r   c               	   C   sp   t ddggddgd�} | jdd�}tjtdd	�� |d
g  W 5 Q R X tjtdd	�� |dd
g  W 5 Q R X d S )Nr   é   ÚAÚB©r   r   ©r   zColumns not found: 'C'©ÚmatchÚCz^[^A]+$)r   r   ÚpytestÚraisesÚKeyError)ÚdfÚgr   r   r   Útest_select_bad_cols'   s    r-   c               	   C   sd   t ddggddgd�} | jdd�}t |j ¡ |d  ¡ ¡ d}tjt|d	�� |j	 W 5 Q R X d S )
Nr   r    r!   r"   r#   r   r$   z%'Rolling' object has no attribute 'F'r%   )
r   r   r   Úassert_series_equalr!   Úsumr(   r)   ÚAttributeErrorÚF)r+   r   Úmsgr   r   r   Útest_attribute_access2   s    r3   c                 C   s„   t tdƒtddƒddœƒ}|jd| d�}|ddg  ¡ }t tjtjdd	d
gtjtjdddgdœtdƒd�d d | … }t ||¡ d S )Nr   é
   Úfoo©r!   r"   r'   r   r   r!   r"   é   é	   é   é   é   ©r!   r"   ÚABr#   )	r   Úranger   r/   r   ÚnanÚlistr   Úassert_frame_equal©r   r+   r   ÚresultÚexpectedr   r   r   Útests_skip_nuisance<   s    $þýrE   c              	   C   sš   t tdƒtddƒddœƒ}|jd| d�}d}tjt|d�� | ¡ }W 5 Q R X t tjtjdd	d
gtjtjdddgdœt	dƒd�d d | … }t 
||¡ d S )Nr   r4   r5   r6   r   r   zGnuisance columns.*Dropped columns were Index\(\['C'\], dtype='object'\)r%   r7   r8   r9   r:   r;   r<   r=   r#   )r   r>   r   r   Úassert_produces_warningÚFutureWarningr/   r   r?   r@   rA   )r   r+   r   r2   rC   rD   r   r   r   Útest_skip_sum_object_raisesH   s    $þýrH   c              	   C   s  t tdƒtdddƒdœƒ}|jd| d�}|d  ¡ }|d  ¡ }|d  ¡ }|d	  ¡ }|d	  ¡ }| tjtjg¡}t||||gd
d�}	t	 
dd	gddgg¡|	_t ||	¡ | tjtjdœ¡}t||gd
d�}	tj||	dd� | dddgi¡}t||gd
d�}	t	 ddg¡|	_t ||	¡ |d  ddg¡}t||gd
d�}	ddg|	_t ||	¡ d}
tjt|
d�� | ddddœi¡ W 5 Q R X tjt|
d��" | dddœdddœdœ¡ W 5 Q R X | ddgddgdœ¡}t||||gd
d�}	ddddg}t	 |¡|	_tj||	dd� d S )Nr   r   r4   r    r<   r   r   r!   r"   r   ©ÚaxisÚmeanÚstdT©Z
check_like©r!   rK   )r!   rL   r/   únested renamer is not supportedr%   )rK   r/   )Zmean2Zsum2)r"   rK   )r"   rL   )r   r>   r   rK   rL   r/   Ú	aggregater   r
   r   Úfrom_productr   r   rA   Úfrom_tuplesr(   r)   r   )r   r+   r   Za_meanZa_stdÚa_sumZb_meanZb_stdrC   rD   r2   Zexp_colsr   r   r   Útest_aggV   sD    
ÿrT   ÚfuncÚminrK   ÚmaxÚbr/   ÚprodÚmedian)rX   Úcc              	   C   sX   t dddgdddgdddgd	œƒ}|jddd
�}tjtdd�� | | ¡ W 5 Q R X d S )Nr   r    r   é   r   r7   é   é   )ÚarX   r[   )r   rJ   z"axis other than 0 is not supportedr%   )r   r   r(   r)   ÚNotImplementedErrorÚagg)rU   r+   r   r   r   r   Útest_multi_axis_1_raises†   s    "rb   c                 C   s‚   t tdƒtdddƒdœƒ}|jdd�}|d  ¡ }| tjd	d
„ dœ¡}|d jdd
„ | d�}t||gdd�}tj	||dd� d S )Nr   r   r4   r    r<   r   r$   r!   c                 S   s   t j| dd�S ©Nr   )Zddof©r   rL   ©Úxr   r   r   Ú<lambda>™   ó    z test_agg_apply.<locals>.<lambda>r"   c                 S   s   t j| dd�S rc   rd   re   r   r   r   rg   š   rh   )Úrawr   rI   TrM   )
r   r>   r   r/   ra   r   Úapplyr
   r   rA   )ri   r+   r   rS   rC   ZrcustomrD   r   r   r   Útest_agg_apply‘   s    rk   c                 C   sÄ   t tdƒtdddƒdœƒ}|jd| d�}| tjtjg¡j}t 	t
dƒd	d
gg¡}t ||¡ |d  tjtjg¡j}td	d
gƒ}t ||¡ | dtjtjgi¡j}t ddg¡}t ||¡ d S )Nr   r   r4   r    r<   r   r   r=   r/   rK   r!   )r!   r/   rN   )r   r>   r   ra   r   r/   rK   r   r   rQ   r@   r   r   r   rR   rB   r   r   r   Útest_agg_consistencyŸ   s    rl   c               	   C   s,  t tdƒtdddƒdœƒ} | jdd�}d}tjt|d	��& | d
ddgidddgidœ¡ W 5 Q R X t|d
  ¡ |d
  	¡ |d  ¡ |d  	¡ gdd�}t
 ddddg¡|_tjt|d	��. |d
dg  dddgidddgidœ¡ W 5 Q R X tjt|d	��& | dddgidddgidœ¡ W 5 Q R X d S )Nr   r   r4   r    r<   r   r$   rO   r%   r!   rK   r/   r"   )Úr1Úr2r   rI   )ÚrarK   )ro   rL   )ÚrbrK   )rp   rL   ro   rL   rp   )r   r>   r   r(   r)   r   rP   r
   rK   rL   r   rR   r   ra   )r+   r   r2   rD   r   r   r   Útest_agg_nested_dicts±   s     ** ÿ
ÿ2rq   c                 C   s~  ddddddddd	d
dg}t dƒt dƒt d ƒg}tdddgdddgtdƒtddd�tdddd�tdƒtdƒtdƒgddtjgddtjgddtjg|tdƒtdƒtd ƒgd œ|d!�}tdddgdddgdddgdddgdddgdddgdddgdddgdddgdddgdddgd œ|d!�d d | … }|j	dd"| d#� 
¡ }t ||¡ |j	dd"| d$� 
¡ }| ¡  t¡d d | … }t ||¡ d S )%NÚintÚfloatÚstringÚdatetimeÚ	timedeltaÚperiodsÚfl_infÚfl_nanÚstr_nanÚdt_natÚperiods_natZ20170101Z20170203r   r    r   g      @g      @g      @Úabc)rw   z1 sÚs)rw   Úfreqz2012-01z2012-02z2012-03g      ð?g       @ZaaZbb)rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r#   r   ©r   Úmin_periodsr   )r�   r   )r	   r   r@   r   r   r   r   ZInfÚNaNr   Úcountr   rA   ZnotnaZastypers   )r   ÚcolsZ
dt_nat_colr+   rD   rC   r   r   r   Útest_count_nonnumeric_typesÈ   sp    õ
ý


ýñêõòñr…   c                  C   sN   t t d¡dd�} |  d¡ ¡ }|  d¡ ¡ }|jdks<t‚|jdksJt‚d S )Néd   r5   )r   é   é   )r   r   Zaranger   r/   r   r   )r~   Ús2Zs3r   r   r   Útest_preserve_metadata  s
    rŠ   zfunc,window_size,expected_valsr   r    g      .@g      4@g      9@g      >@g     €A@g      D@g      N@g      T@g     @U@éP   Ú	expandingg      $@g‹RB°ªª:@g      I@c           
   
   C   sÖ   t dddgdddgdddgdddgdddgdddgdddggd	d
dgd�}t| d	¡| ƒ}|rh||ƒ}n|ƒ }tjdddddddgd	d gd�}t ddddg¡}t |||d�}| ddgddgdœ¡}	t |	|¡ d S )Nr!   r4   rˆ   r‡   é(   r"   r‹   éZ   ZstockÚlowÚhighr#   )r!   r   )r!   r   )r!   r    )r"   r   )r"   r\   )r"   r   )r"   r7   )Únames)r�   rK   )r�   rW   )r�   rK   )r�   rV   )Úindexr   rK   rW   rV   )r�   r�   )r   ÚgetattrÚgroupbyr   rR   ra   r   rA   )
rU   Zwindow_sizeZexpected_valsr+   Úfr   r’   r   rD   rC   r   r   r   Útest_multiple_agg_funcs  s2    !ù	ö
þ
ÿr–   c               	   C   s6   t tdƒƒ d¡} t t¡� | jr(t‚W 5 Q R X d S ©Nr   )r   r>   r   r   rF   rG   Zis_datetimeliker   ©r~   r   r   r   Útest_is_datetimelike_deprecatedW  s    r™   c               	   C   s<   t tdƒƒ d¡} t t¡� |  ¡ d ks.t‚W 5 Q R X d S r—   )r   r>   r   r   rF   rG   Úvalidater   r˜   r   r   r   Útest_validate_deprecated]  s    r›   z ignore:min_periods:FutureWarningc                    s`   t tdƒƒjd||||d�‰ ‡ fdd„ˆ jD ƒ}tˆ | ƒƒ  ‡ fdd„ˆ jD ƒ}||ks\t‚d S )Nr   )ÚcenterÚclosedr�   r   c                    s   i | ]}|t ˆ |ƒ“qS r   ©r“   ©Ú.0Úattr©Zroll_objr   r   Ú
<dictcomp>k  s      z=test_dont_modify_attributes_after_methods.<locals>.<dictcomp>c                    s   i | ]}|t ˆ |ƒ“qS r   rž   rŸ   r¢   r   r   r£   m  s      )r   r>   r   Ú_attributesr“   r   )Zarithmetic_win_operatorsr�   rœ   r�   r   rD   rC   r   r¢   r   Ú)test_dont_modify_attributes_after_methodsc  s        ÿr¥   c              	   C   sà   t t d¡ƒjddd| d� ¡  d}tjt|d��& t t d¡ƒjddd| d� ¡  W 5 Q R X tt d	¡ƒjddd| d� ¡  tt d	¡ƒjddd| d� ¡  d
}tjt|d��& tt d	¡ƒjddd| d� ¡  W 5 Q R X d S )Nr4   r   Tr   )r   rœ   rJ   r   z&No axis named 1 for object type Seriesr%   r   )r4   r4   z)No axis named 2 for object type DataFramer    )	r   r   Úonesr   rK   r(   r)   Ú
ValueErrorr   )r   r2   r   r   r   Útest_centered_axis_validationq  s2     *   ÿ
   ÿ
   ÿÿr¨   c              	   C   sŽ   t dddddgƒ}|jdd| d� ¡ }t t t|ƒ¡ƒd d | … }t ||¡ d}tj	t
|d	��$ t dddgƒjdd| d� ¡  W 5 Q R X d S )
Nr   r    r   r\   r   r†   r€   ú!min_periods 5 must be <= window 3r%   )r   r   rV   r   r¦   Úlenr   r.   r(   r)   r§   ©r   r_   rC   rD   r2   r   r   r   Útest_rolling_min_min_periods�  s    r¬   c              	   C   s†   t dddddgtjd�}|jdd| d� ¡ }|d d | … }t ||¡ d	}tjt	|d
��$ t dddgƒjdd| d� ¡  W 5 Q R X d S )Nr   r    r   r\   r   )Údtyper†   r€   r©   r%   )
r   r   Úfloat64r   rW   r   Zassert_almost_equalr(   r)   r§   r«   r   r   r   Útest_rolling_max_min_periods—  s    r¯   zroll_type, class_name)r   ZRolling)rŒ   Z	Expanding)ÚewmZExponentialMovingWindowzkernel, has_args, raises)r/   TT)rW   TT)rV   TT)rK   TT)rZ   FF)rL   TT)ÚvarTT)ZskewFF)ÚsemTT)ZkurtFF)ÚquantileFF)ZrankFF)ÚcovFF)ÚcorrFFc           	   
   C   sò  t tdddgƒ| ƒdƒ}d}|dkr*d}nd}| dkrn|d	krntjtd
|› d�d�� t ||ƒ W 5 Q R X �n€d|› d|› �}tjt|d��R |rÄtjt|d�� t ||ƒ|dt	j
iŽ W 5 Q R X nt ||ƒ|dt	j
iŽ W 5 Q R X |�rîd|› d|› �}tjt|d��` |�rR| dk�s$|dk�rRtjt|d�� t ||ƒ|džŽ  W 5 Q R X nt ||ƒ|džŽ  W 5 Q R X d|› d|› �}tjt|d��\ |�rÊtjt|d��  t ||ƒ|dždt	j
iŽ W 5 Q R X nt ||ƒ|dždt	j
iŽ W 5 Q R X d S )Nr    r\   r7   z2numpy operations are not valid with window objectsr³   )g      à?r   r°   )r/   rK   rL   r±   r´   rµ   zhas no attribute 'ú'r%   zPassing additional kwargs to Ú.r­   zPassing additional args to rŒ   r²   r   r   z&Passing additional args and kwargs to )r   r    r   r\   )r   r    r   r\   )r   r    r   r\   )r   r    r   r\   )r“   r   r(   r)   r0   r   rF   rG   r   r   r®   )	Z	roll_typeÚ
class_nameZkernelZhas_argsr)   r   Ú	error_msgZrequired_argsZwarn_msgr   r   r   Útest_args_kwargs_depr¡  s6    	" &rº   )+Únumpyr   r(   Zpandas.errorsr   r   Zpandasr   r   r   r   r   r	   r
   r   r   Zpandas._testingZ_testingr   r   r-   r3   rE   rH   rT   ÚmarkZparametrizerb   rk   rl   rq   r…   rŠ   r?   r–   r™   r›   Úfilterwarningsr¥   r¨   r¬   r¯   rº   r   r   r   r   Ú<module>   s    ,
0 ÿ
C





ùý






ùýòþ
#



ýþòþ