a
    é´«j…3  ã                   @   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g d(¢g d)¢ej!ej!ej!ej!gg d*¢g d+¢g d,¢gfd-dg d.¢g d(¢g d/¢g d0¢g d*¢g d1¢g d2¢gfg¡d3d4„ ƒZ"d5d6„ Z#d7d8„ Z$d9d:„ Z%d;d<„ Z&dS )=é    N)Ú	DataErrorÚSpecificationError)	Ú	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srJ ‚|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é   )é   r   r   ©ÚwindowÚstepé   )r   é   r   )r   ÚnpÚrandomZdefault_rngZstandard_normalÚrollingÚtmÚassert_index_equalZ_selected_objÚcolumnsÚname)r   ÚframeÚr© r   ú[/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/pandas/tests/window/test_api.pyÚtest_getitem   s     $r   c                  C   s˜   t ddggddgd�} | jdd�}tjtdd	�� |d
g  W d   ƒ n1 sP0    Y  tjtdd	�� |dd
g  W d   ƒ n1 sŠ0    Y  d S )Nr   r   Ú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   sx   t ddggddgd�} | jdd�}t |j ¡ |d  ¡ ¡ d}tjt|d	�� |j	 W d   ƒ n1 sj0    Y  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    r2   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    $þýrD   c                 C   sb   t tdƒtddƒddœƒ}|jd| d�}tjtdd�� | ¡  W d   ƒ n1 sT0    Y  d S )	Nr   r3   r4   r5   r   r   z-Cannot aggregate non-numeric type: object|strr$   )r   r=   r   r'   r(   r   r.   )r   r*   r   r   r   r   Útest_sum_object_str_raisesF   s    ÿrE   c                 C   sž  t tdƒtdddƒdœƒ}|jd| d�}|d  ¡ }|d  ¡ }|d  ¡ }|d	  ¡ }|d	  ¡ }tjtd
d��" | 	t
jt
jg¡}W d   ƒ n1 sš0    Y  t||||gdd�}	t dd	gddgg¡|	_t ||	¡ tjtd
d��$ | 	t
jt
jdœ¡}W d   ƒ n1 �s0    Y  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 d   ƒ n1 �sô0    Y  tjt|
d��, | 	dddœdddœdœ¡ W d   ƒ n1 �s@0    Y  | 	ddgddgdœ¡}t||||gdd�}	g d¢}t |¡|	_tj||	dd� d S )Nr   r   r3   r   r;   r   r   r    r!   zusing Rolling.[mean|std]r$   r   ©ÚaxisÚmeanÚstdT©Z
check_like©r    rH   ©r    rI   r.   únested renamer is not supported)rH   r.   )Zmean2Zsum2)rK   rL   )r!   rH   )r!   rI   )r   r=   r   rH   rI   r.   r   Úassert_produces_warningÚFutureWarningÚ	aggregater   r
   r   Úfrom_productr   r@   Úfrom_tuplesr'   r(   r   )r   r*   r   Za_meanZa_stdÚa_sumZb_meanZb_stdrB   rC   r1   Zexp_colsr   r   r   Útest_aggP   sH    04
4ÿ$rT   ÚfuncÚminrH   ÚmaxÚbr.   ÚprodZmedian)rX   Úcc                 C   s˜   t g d¢g d¢g d¢dœƒ}d}tjt|d�� |jddd	�}W d   ƒ n1 sR0    Y  tjtd
d�� | | ¡ W d   ƒ n1 sŠ0    Y  d S )N)r   r   r   )r   é   r   )r6   é   é   )ÚarX   rZ   ú5Support for axis=1 in DataFrame.rolling is deprecatedr$   r   r   )r   rG   z"axis other than 0 is not supported)	r   r   rN   rO   r   r'   r(   ÚNotImplementedErrorÚagg)rU   r*   r1   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td	d
��& | tjdd„ dœ¡}W d   ƒ n1 sl0    Y  |d j	dd„ | d�}t
||gdd�}tj||dd� d S )Nr   r   r3   r   r;   r   r#   r    zusing Rolling.[sum|std]r$   c                 S   s   t j| dd�S ©Nr   )Zddof©r   rI   ©Ú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   rF   TrJ   )r   r=   r   r.   r   rN   rO   ra   r   Úapplyr
   r@   )ri   r*   r   rS   rB   ZrcustomrC   r   r   r   Útest_agg_apply�   s    4rk   c                 C   sP  t tdƒtdddƒdœƒ}|jd| d�}tjtdd	��$ | tjtj	g¡j
}W d   ƒ n1 s`0    Y  t td
ƒddgg¡}t ||¡ tjtdd	��( |d  tjtj	g¡j
}W d   ƒ n1 sÈ0    Y  tddgƒ}t ||¡ tjtdd	��( | dtjtj	gi¡j
}W d   ƒ n1 �s(0    Y  t ddg¡}t ||¡ d S )Nr   r   r3   r   r;   r   r   zusing Rolling.[sum|mean]r$   r<   r.   rH   r    )r    r.   rK   )r   r=   r   r   rN   rO   ra   r   r.   rH   r   r   rQ   r?   r   r   rR   rA   r   r   r   Útest_agg_consistency�   s    268rl   c                  C   sh  t tdƒtdddƒdœƒ} | jdd�}d}tjt|d	��0 | d
ddgidddgidœ¡ W d   ƒ n1 sn0    Y  t|d
  ¡ |d
  	¡ |d  ¡ |d  	¡ gdd�}t
 g d¢¡|_tjt|d	��8 |d
dg  dddgidddgidœ¡ W d   ƒ n1 �s
0    Y  tjt|d	��0 | dddgidddgidœ¡ W d   ƒ n1 �sZ0    Y  d S )Nr   r   r3   r   r;   r   r#   rM   r$   r    rH   r.   r!   )Úr1Úr2r   rF   ))ÚrarH   )ro   rI   )ÚrbrH   )rp   rI   ro   rI   rp   )r   r=   r   r'   r(   r   rP   r
   rH   rI   r   rR   r   ra   )r*   r   r1   rC   r   r   r   Útest_agg_nested_dicts±   s    >,ÿÿHrq   c                 C   sR  g d¢}t dƒt dƒt d ƒg}tg d¢g d¢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g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢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ÚperiodsZfl_infZfl_nanZstr_nanZdt_natZperiods_natZ20170101Z20170203©r   r   r   )g      @g      @g      @Úabcr   )rw   z1 sÚs)rw   Úfreqz2012-01z2012-02z2012-03ç      ð?ç       @ZaaZbbr"   )r|   r}   r}   )r|   r}   r|   r   r   ©r   Úmin_periodsr   r   )r   r   )r	   r   r?   r   r   r   r   Úinfr>   r   Úcountr   r@   ZnotnaZastypers   )r   ÚcolsZ
dt_nat_colr*   rC   rB   r   r   r   Útest_count_nonnumeric_typesÇ   sZ    
ý


ýñêõòñrƒ   c                  C   sN   t t d¡dd�} |  d¡ ¡ }|  d¡ ¡ }|jdks<J ‚|jdksJJ ‚d S )Néd   r4   )r   é   é   )r   r   Zaranger   r.   r   )rz   Ús2Zs3r   r   r   Útest_preserve_metadata
  s
    rˆ   zfunc,window_size,expected_valsr   r   )g      .@ç      4@ç      9@r‰   )rŠ   ç      >@ç     €A@r‹   )r‰   r‹   rŒ   r‹   )rŒ   ç      D@ç      N@r�   )rŽ   ç      T@g     @U@éP   Z	expanding)ç      $@r‘   r‰   r‰   )r‰   r‹   r‹   r‰   )r‘   r‘   r‹   r‹   )g‹RB°ªª:@r�   g      I@r‹   )r�   r�   rŽ   r‹   c           
   	   C   s¸   t g d¢g d¢g d¢g d¢g d¢g d¢g d¢gg d¢d	�}t| d
¡| ƒ}|rX||ƒ}n|ƒ }tjg d¢d
d gd�}t g d¢¡}t |||d�}| ddgddgdœ¡}	t |	|¡ d S )N)r    r3   r†   )r    r†   r…   )r    r…   é(   )r!   r3   r…   )r!   r…   r’   )r!   r’   r�   )r!   r�   éZ   )ÚstockÚlowÚhighr"   r”   ))r    r   )r    r   )r    r   )r!   r   )r!   r[   )r!   r   )r!   r6   )Únames))r•   rH   )r•   rW   )r–   rH   )r–   rV   )Úindexr   rH   rW   rV   )r•   r–   )r   ÚgetattrÚgroupbyr   rR   ra   r   r@   )
rU   Zwindow_sizeZexpected_valsr*   Úfr   r˜   r   rC   rB   r   r   r   Útest_multiple_agg_funcs  s2    !ù	ö
þÿrœ   c                    s`   t tdƒƒjd||||d�‰ ‡ fdd„ˆ jD ƒ}tˆ | ƒƒ  ‡ fdd„ˆ jD ƒ}||ks\J ‚d S )Nr   )ÚcenterÚclosedr   r   c                    s   i | ]}|t ˆ |ƒ“qS r   ©r™   ©Ú.0Úattr©Zroll_objr   r   Ú
<dictcomp>]  rh   z=test_dont_modify_attributes_after_methods.<locals>.<dictcomp>c                    s   i | ]}|t ˆ |ƒ“qS r   rŸ   r    r£   r   r   r¤   _  rh   )r   r=   r   Ú_attributesr™   )Zarithmetic_win_operatorsrž   r�   r   r   rC   rB   r   r£   r   Ú)test_dont_modify_attributes_after_methodsV  s    
ÿr¦   c                 C   s’  d}t jt|d��0 tt d¡ƒjddd| d� ¡  W d   ƒ n1 sH0    Y  d}tj	t
|d��0 tt d¡ƒjddd	| d� ¡  W d   ƒ n1 sš0    Y  tt d
¡ƒ}d}t jt|d��& |jddd| d� ¡  W d   ƒ n1 sð0    Y  d}t jt|d��& |jddd	| d� ¡  W d   ƒ n1 �s:0    Y  d}tj	t
|d��& |jddd| d� ¡  W d   ƒ n1 �s„0    Y  d S )Nz2The 'axis' keyword in Series.rolling is deprecatedr$   r3   r   Tr   )r   r�   rG   r   z&No axis named 1 for object type Seriesr   )r3   r3   z5The 'axis' keyword in DataFrame.rolling is deprecatedr_   z)No axis named 2 for object type DataFramer   )r   rN   rO   r   r   Úonesr   rH   r'   r(   Ú
ValueErrorr   )r   r1   r*   r   r   r   Útest_centered_axis_validationc  s     >>46r©   c                 C   sš   t g d¢ƒ}|jdd| d� ¡ }t t t|ƒ¡ƒd d | … }t ||¡ d}tj	t
|d��, t g d¢ƒjdd	| d� ¡  W d   ƒ n1 sŒ0    Y  d S )
N©r   r   r   r[   r   r„   r   r~   ú!min_periods 5 must be <= window 3r$   rx   r   r   )r   r   rV   r   r§   Úlenr   r-   r'   r(   r¨   ©r   r^   rB   rC   r1   r   r   r   Útest_rolling_min_min_periods}  s    r®   c                 C   s’   t g d¢tjd�}|jdd| d� ¡ }|d d | … }t ||¡ d}tjt	|d��, t g d¢ƒjd	d
| d� ¡  W d   ƒ n1 s„0    Y  d S )Nrª   )Zdtyper„   r   r~   r«   r$   rx   r   r   )
r   r   Zfloat64r   rW   r   Zassert_almost_equalr'   r(   r¨   r­   r   r   r   Útest_rolling_max_min_periods‡  s    r¯   )'Únumpyr   r'   Zpandas.errorsr   r   Zpandasr   r   r   r   r   r	   r
   r   r   Zpandas._testingZ_testingr   r   r,   r2   rD   rE   rT   ÚmarkZparametrizerb   rk   rl   rq   rƒ   rˆ   r>   rœ   r¦   r©   r®   r¯   r   r   r   r   Ú<module>   sd   ,	
2ÿ

C
ùýùýòþ
#
