a
    oÝEbÉ.  ã                   @   s~  d dl Zd dl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lmZ dd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Z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 d%¢g d¢g d&¢g d'¢gfg¡d(d)„ ƒZ d*d+„ Z!d,d-„ Z"ej #d.¡d/d0„ ƒZ$d1d2„ Z%d3d4„ Z&d5d6„ Z'dS )7é    N)	Ú	DataFrameÚIndexÚ
MultiIndexÚPeriodÚSeriesÚ	TimestampÚconcatÚ
date_rangeÚtimedelta_range)ÚSpecificationErrorc                  C   s²   t tj dd¡ƒ} | jdd�}t |jj| j¡ | jdd�d }|jj	| jd ksVJ ‚| jdd�d }t |jj| jddg ¡ | jdd�ddg }t |jj| jddg ¡ d S )Né   ©Úwindowé   )r   é   r   )
r   ÚnpÚrandomZrandnÚrollingÚtmÚassert_index_equalZ_selected_objÚcolumnsÚname)ÚframeÚr© r   ú\/home/ja/django-apps/lartica_env/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   é   Ú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_access.   s    r/   c                  C   sx   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�}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   ÚresultÚexpectedr   r   r   Útests_skip_nuisance8   s    $þrA   c                  C   s¢   t tdƒtddƒddœƒ} | jdd�}d}tjt|d�� | ¡ }W d   ƒ n1 sV0    Y  t tjtjdd	d
gtjtjdddgdœt	dƒd�}t 
||¡ d S )Nr   r0   r1   r2   r   r   zGnuisance columns.*Dropped columns were Index\(\['C'\], dtype='object'\)r!   r3   r4   r5   r6   r7   r8   r9   r    )r   r:   r   r   Úassert_produces_warningÚFutureWarningr+   r   r;   r<   r=   )r'   r   r.   r?   r@   r   r   r   Útest_skip_sum_object_raisesD   s    &$þrD   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 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   r0   r   r8   r   r   r   r   r   ©ÚaxisÚmeanÚstdT©Z
check_like©r   rG   ©r   rH   r+   únested renamer is not supportedr!   )rG   r+   )Zmean2Zsum2)rJ   rK   )r   rG   )r   rH   )r   r:   r   rG   rH   r+   Ú	aggregater   r   r   Úfrom_productr   r   r=   Úfrom_tuplesr$   r%   r   )r'   r   Za_meanZa_stdÚa_sumZb_meanZb_stdr?   r@   r.   Zexp_colsr   r   r   Útest_aggR   sD    
4ÿ$rQ   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   r0   r   r8   r   r   r   c                 S   s   t j| dd�S ©Nr   )Zddof©r   rH   ©Úxr   r   r   Ú<lambda>Š   ó    z test_agg_apply.<locals>.<lambda>r   c                 S   s   t j| dd�S rR   rS   rT   r   r   r   rV   ‹   rW   )Úrawr   rE   TrI   )
r   r:   r   r+   Úaggr   Úapplyr   r   r=   )rX   r'   r   rP   r?   Zrcustomr@   r   r   r   Útest_agg_apply‚   s    r[   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   r0   r   r8   r   r   r9   r+   rG   r   )r   r+   rJ   )r   r:   r   rY   r   r+   rG   r   r   rN   r<   r   r   r   rO   r>   r   r   r   Útest_agg_consistency�   s    r\   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   r0   r   r8   r   r   rL   r!   r   rG   r+   r   )Úr1Úr2r   rE   ))ÚrarG   )r_   rH   )ÚrbrG   )r`   rH   r_   rH   r`   )r   r:   r   r$   r%   r   rM   r   rG   rH   r   rO   r   rY   )r'   r   r.   r@   r   r   r   Útest_agg_nested_dicts¢   s    >,ÿÿHra   c                  C   s:  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�}|j	ddd� 
¡ }t ||¡ |j	ddd� 
¡ }| ¡  t¡}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   )rg   z1 sÚs)rg   Úfreqz2012-01z2012-02z2012-03ç      ð?ç       @ZaaZbbr    )rl   rm   rm   )rl   rm   rl   r   r   ©r   Úmin_periodsr   )ro   )r   r   r<   r	   r
   r   r   ZInfÚNaNr   Úcountr   r=   ZnotnaZastyperc   )ÚcolsZ
dt_nat_colr'   r@   r?   r   r   r   Útest_count_nonnumeric_types¹   sV    
ý


ýñêõòrs   c                  C   sN   t t d¡dd�} |  d¡ ¡ }|  d¡ ¡ }|jdks<J ‚|jdksJJ ‚d S )Néd   r1   )r   é   é   )r   r   Zaranger   r+   r   )rj   Ús2Zs3r   r   r   Útest_preserve_metadataü   s
    rx   zfunc,window_size,expected_valsr   r   )g      .@ç      4@ç      9@ry   )rz   ç      >@ç     €A@r{   )ry   r{   r|   r{   )r|   ç      D@ç      N@r}   )r~   ç      T@g     @U@éP   Z	expanding)ç      $@r�   ry   ry   )ry   r{   r{   ry   )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   r0   rv   )r   rv   ru   )r   ru   é(   )r   r0   ru   )r   ru   r‚   )r   r‚   r€   )r   r€   éZ   )ÚstockÚlowÚhighr    r„   ))r   r   )r   r   )r   r   )r   r   )r   é   )r   r   )r   r3   )Únames))r…   rG   )r…   Úmax)r†   rG   )r†   Úmin)Úindexr   rG   r‰   rŠ   )r…   r†   )r   ÚgetattrÚgroupbyr   rO   rY   r   r=   )
ÚfuncZwindow_sizeZexpected_valsr'   Úfr   r‹   r   r@   r?   r   r   r   Útest_multiple_agg_funcs  s2    !ù	ö
þÿr�   c                  C   sJ   t tdƒƒ d¡} t t¡� | jr(J ‚W d   ƒ n1 s<0    Y  d S ©Nr   )r   r:   r   r   rB   rC   Zis_datetimelike©rj   r   r   r   Útest_is_datetimelike_deprecatedH  s    r“   c                  C   sP   t tdƒƒ d¡} t t¡�  |  ¡ d u s.J ‚W d   ƒ n1 sB0    Y  d S r‘   )r   r:   r   r   rB   rC   Úvalidater’   r   r   r   Útest_validate_deprecatedN  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sZJ ‚d S )Nr   )ÚcenterÚclosedro   c                    s   i | ]}|t ˆ |ƒ“qS r   ©rŒ   ©Ú.0Úattr©Zroll_objr   r   Ú
<dictcomp>\  rW   z=test_dont_modify_attributes_after_methods.<locals>.<dictcomp>c                    s   i | ]}|t ˆ |ƒ“qS r   r˜   r™   rœ   r   r   r�   ^  rW   )r   r:   r   Ú_attributesrŒ   )Zarithmetic_win_operatorsr—   r–   ro   r@   r?   r   rœ   r   Ú)test_dont_modify_attributes_after_methodsT  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 d   ƒ n1 sd0    Y  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 d   ƒ n1 sð0    Y  d S )Nr0   r   Tr   )r   r–   rF   z&No axis named 1 for object type Seriesr!   r   )r0   r0   z)No axis named 2 for object type DataFramer   )	r   r   Úonesr   rG   r$   r%   Ú
ValueErrorr   )r.   r   r   r   Útest_centered_axis_validationb  s    <r¢   c                  C   sŒ   t g d¢ƒ} | jddd� ¡ }t t t| ƒ¡ƒ}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   rt   r   rn   ú!min_periods 5 must be <= window 3r!   rh   r   r   )r   r   rŠ   r   r    Úlenr   r*   r$   r%   r¡   )Úar?   r@   r.   r   r   r   Útest_rolling_min_min_periodsv  s    r§   c                  C   s€   t g d¢tjd�} | jddd� ¡ }t | |¡ d}tjt	|d��* t g d¢ƒjd	d
d� ¡  W d   ƒ n1 sr0    Y  d S )Nr£   )Zdtypert   r   rn   r¤   r!   rh   r   r   )
r   r   Zfloat64r   r‰   r   Zassert_almost_equalr$   r%   r¡   )r¦   Úbr.   r   r   r   Útest_rolling_max_min_periods€  s    r©   )(Únumpyr   r$   Zpandasr   r   r   r   r   r   r   r	   r
   Zpandas._testingZ_testingr   Zpandas.core.baser   r   r)   r/   rA   rD   rQ   r[   r\   ra   rs   rx   ÚmarkZparametrizer;   r�   r“   r•   ÚfilterwarningsrŸ   r¢   r§   r©   r   r   r   r   Ú<module>   sb   ,
0C
ùýùýòþ
#


