o
    Û­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s9J ‚|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ÚrandomÚdefault_rngÚstandard_normalÚrollingÚtmÚassert_index_equalÚ_selected_objÚcolumnsÚname)r   ÚframeÚr© r    úY/var/www/html/CropPilot/venv/lib/python3.10/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 s(w   Y  tjtdd	�� |dd
g  W d   ƒ d S 1 sFw   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   sz   t ddggddgd�} | jdd�}t |j ¡ |d  ¡ ¡ d}tjt|d	�� |j	 W d   ƒ d S 1 s6w   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   "ÿr5   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   r1   r   ÚnanÚlistr   Úassert_frame_equal©r   r-   r   ÚresultÚexpectedr    r    r!   Útests_skip_nuisance;   s   $þýrG   c                 C   sd   t tdƒtddƒddœƒ}|jd| d�}tjtdd�� | ¡  W d   ƒ d S 1 s+w   Y  d S )	Nr   r6   r7   r8   r   r   z-Cannot aggregate non-numeric type: object|strr'   )r   r@   r   r*   r+   r   r1   )r   r-   r   r    r    r!   Útest_sum_object_str_raisesF   s   ÿ
"ürH   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 sMw   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Šw   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øw   Y  tjt|
d�� | 	dddœdddœdœ¡ W d   ƒ n	1 �sw   Y  | 	ddgddgdœ¡}t||||gdd�}	g d¢}t |¡|	_tj||	dd� d S )Nr   r   r6   r   r>   r   r   r#   r$   zusing Rolling.[mean|std]r'   r   ©ÚaxisÚmeanÚstdT©Ú
check_like©r#   rK   ©r#   rL   r1   únested renamer is not supported)rK   r1   )Úmean2Úsum2)rO   rP   )r$   rK   )r$   rL   )r   r@   r   rK   rL   r1   r   Úassert_produces_warningÚFutureWarningÚ	aggregater   r
   r   Úfrom_productr   rC   Úfrom_tuplesr*   r+   r   )r   r-   r   Úa_meanÚa_stdÚa_sumÚb_meanÚb_stdrE   rF   r4   Úexp_colsr    r    r!   Útest_aggP   sP   ÿÿ
þÿÿr_   ÚfuncÚminrK   ÚmaxÚbr1   ÚprodÚmedian)rc   Úcc                 C   sš   t g d¢g d¢g d¢dœƒ}d}tjt|d�� |jddd	�}W d   ƒ n1 s)w   Y  tjtd
d�� | | ¡ W d   ƒ d S 1 sFw   Y  d S )N)r   r   r   )r   é   r   )r9   é   é   )Úarc   rf   ú5Support for axis=1 in DataFrame.rolling is deprecatedr'   r   r   )r   rJ   z"axis other than 0 is not supported)	r   r   rT   rU   r   r*   r+   ÚNotImplementedErrorÚagg)r`   r-   r4   r   r    r    r!   Útest_multi_axis_1_raises‚   s   ÿ"ÿrn   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 s6w   Y  |d j	dd„ | d�}t
||gdd�}tj||dd� d S )Nr   r   r6   r   r>   r   r&   r#   zusing Rolling.[sum|std]r'   c                 S   ó   t j| dd�S ©Nr   )Úddof©r   rL   ©Úxr    r    r!   Ú<lambda>—   ó    z test_agg_apply.<locals>.<lambda>r$   c                 S   ro   rp   rr   rs   r    r    r!   ru   ˜   rv   )Úrawr   rI   TrM   )r   r@   r   r1   r   rT   rU   rm   r   Úapplyr
   rC   )rw   r-   r   r[   rE   ÚrcustomrF   r    r    r!   Útest_agg_apply�   s   ÿrz   c                 C   sN  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 s0w   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 sdw   Y  tddgƒ}t ||¡ tjtdd	�� | dtjtj	gi¡j
}W d   ƒ n1 s“w   Y  t ddg¡}t ||¡ d S )Nr   r   r6   r   r>   r   r   zusing Rolling.[sum|mean]r'   r?   r1   rK   r#   )r#   r1   rO   )r   r@   r   r   rT   rU   rm   r   r1   rK   r   r   rW   rB   r   r   rX   rD   r    r    r!   Útest_agg_consistency�   s"   ÿÿÿr{   c                  C   sf  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 d   ƒ n1 s7w   Y  t|d
  ¡ |d
  	¡ |d  ¡ |d  	¡ gdd�}t
 g d¢¡|_tjt|d	�� |d
dg  dddgidddgidœ¡ W d   ƒ n1 s„w   Y  tjt|d	�� | dddgidddgidœ¡ W d   ƒ d S 1 s¬w   Y  d S )Nr   r   r6   r   r>   r   r&   rQ   r'   r#   rK   r1   r$   )Úr1Úr2r   rI   ))ÚrarK   )r~   rL   )ÚrbrK   )r   rL   r~   rL   r   )r   r@   r   r*   r+   r   rV   r
   rK   rL   r   rX   r   rm   )r-   r   r4   rF   r    r    r!   Útest_agg_nested_dicts±   s$   "ÿ,ÿÿ*ÿ""ÿr€   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ÚperiodsÚfl_infÚfl_nanÚstr_nanÚdt_natÚperiods_natÚ20170101Ú20170203©r   r   r   )g      @g      @g      @Úabcr   )r†   z1 sÚs)r†   Úfreqz2012-01z2012-02z2012-03ç      ð?ç       @ÚaaÚbbr%   )r’   r“   r“   )r’   r“   r’   r   r   ©r   Úmin_periodsr   r   )r—   r   )r	   r   rB   r   r   r   r   ÚinfrA   r   Úcountr   rC   ÚnotnaÚastyper‚   )r   ÚcolsÚ
dt_nat_colr-   rF   rE   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s%J ‚d S )Néd   r7   )r   é   é   )r   r   Úaranger   r1   r   )r�   Ús2Ú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   Ú	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
¡| ƒ}|r,||ƒ}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#   r6   r¡   )r#   r¡   r    )r#   r    é(   )r$   r6   r    )r$   r    r°   )r$   r°   r­   )r$   r­   éZ   )ÚstockÚlowÚhighr%   r²   ))r#   r   )r#   r   )r#   r   )r$   r   )r$   rg   )r$   r   )r$   r9   )Únames))r³   rK   )r³   rb   )r´   rK   )r´   ra   )Úindexr   rK   rb   ra   )r³   r´   )r   ÚgetattrÚgroupbyr   rX   rm   r   rC   )
r`   Úwindow_sizeÚexpected_valsr-   Úfr   r¶   r   rF   rE   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                    ó   i | ]}|t ˆ |ƒ“qS r    ©r·   ©Ú.0Úattr©Úroll_objr    r!   Ú
<dictcomp>]  ó    z=test_dont_modify_attributes_after_methods.<locals>.<dictcomp>c                    r¿   r    rÀ   rÁ   rÄ   r    r!   rÆ   _  rÇ   )r   r@   r   Ú_attributesr·   )Úarithmetic_win_operatorsr¾   r½   r—   r   rF   rE   r    rÄ   r!   Ú)test_dont_modify_attributes_after_methodsV  s   
ÿrÊ   c                 C   s�  d}t jt|d�� tt d¡ƒjddd| d� ¡  W d   ƒ n1 s$w   Y  d}tj	t
|d�� tt d¡ƒjddd	| d� ¡  W d   ƒ n1 sMw   Y  tt d
¡ƒ}d}t jt|d�� |jddd| d� ¡  W d   ƒ n1 sxw   Y  d}t jt|d�� |jddd	| d� ¡  W d   ƒ n1 sœw   Y  d}tj	t
|d�� |jddd| d� ¡  W d   ƒ d S 1 sÁw   Y  d S )Nz2The 'axis' keyword in Series.rolling is deprecatedr'   r6   r   Tr   )r   r½   rJ   r   z&No axis named 1 for object type Seriesr   )r6   r6   z5The 'axis' keyword in DataFrame.rolling is deprecatedrk   z)No axis named 2 for object type DataFramer   )r   rT   rU   r   r   Úonesr   rK   r*   r+   Ú
ValueErrorr   )r   r4   r-   r    r    r!   Útest_centered_axis_validationc  s*   "ÿ"ÿÿÿ"ÿ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   ƒ d S 1 sGw   Y  d S )
N©r   r   r   rg   r   rŸ   r   r–   ú!min_periods 5 must be <= window 3r'   rŽ   r   r   )r   r   ra   r   rË   Úlenr   r0   r*   r+   rÌ   ©r   rj   rE   rF   r4   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   ƒ d S 1 sCw   Y  d S )NrÎ   )ÚdtyperŸ   r   r–   rÏ   r'   rŽ   r   r   )
r   r   Úfloat64r   rb   r   Úassert_almost_equalr*   r+   rÌ   rÑ   r    r    r!   Útest_rolling_max_min_periods‡  s   "ÿrÖ   )'Únumpyr   r*   Úpandas.errorsr   r   Úpandasr   r   r   r   r   r	   r
   r   r   Úpandas._testingÚ_testingr   r"   r/   r5   rG   rH   r_   ÚmarkÚparametrizern   rz   r{   r€   rž   r¥   rA   r¼   rÊ   rÍ   rÒ   rÖ   r    r    r    r!   Ú<module>   sf    ,	
2ÿ

C
ùýùýòþ
#
