a
    oÝEb€D  ã                   @   s¤  d dl m Z  d dlZd dlZd dlm  mZ d dlm	Z	m
Z
mZmZmZmZ d dlmZ d dlm  mZ ej dejdi gejdi gejdd„ d	i ej d
¡d�ejdi gejdi gejdi gdd„ di gdd„ ddd igdd„ di gdd„ ddd igg
¡dd„ ƒZej dejdi gejdi gejdd„ d	i ej d
¡d�ejdi gejdi gejdi gdd„ di gdd„ ddd igdd„ di gdd„ ddd igg
¡dd„ ƒZej dejdi d gejdi d gd!d„ d	i d gejdi d gejdi d gejdi d gd"d„ di d gd#d„ ddd id gd$d„ di d gd%d„ ddd id gg
¡d&d'„ ƒZ ej dejdi d gejdi d gd(d„ d	i d gejdi d gejdi d gejdi d gd)d„ di d gd*d„ ddd id gd+d„ di d gd,d„ ddd id gg
¡d-d.„ ƒZ!ej dejdi gejdi gejdi gejdi gejdi gd/d„ di gd0d„ ddd igd1d„ di gd2d„ ddd igg	¡d3d4„ ƒZ"d5d6„ Z#ej d7di gdi gdi gdi gdi gdi gddd igdi gddd igg	¡ej d8g d9¢¡d:d;„ ƒƒZ$d<d=„ Z%ej d>di d?gdi d?gd	i d gdi d?gdi d?gdi d?gdi d?gddd id?gdi d?gddd id?gg
¡d@dA„ ƒZ&ej dBdi d dgdi d dgd	i d d gdi d dgdi d dgdi d dgdi d dgddd id dgdi d dgddd id dgg
¡dCdD„ ƒZ'ej dBdi d dgdi d dgd	i d d gdi d dgdi d dgdi d dgdi d dgddd id dgdi d dgddd id dgg
¡dEdF„ ƒZ(ej dGdHd„ dId„ dJd„ dKd„ dLd„ dMd„ dNd„ dOd„ dPd„ dQd„ dRd„ dSd„ dTd„ dUd„ ejdVd„ ej)d�g¡dWdX„ ƒZ*dYdZ„ Z+d[d\„ Z,d]d^„ Z-d_d`„ Z.dadb„ Z/ej dcddde„ dfD ƒdgde„ dhD ƒ ¡didj„ ƒZ0ej dGdkd„ dld„ dmd„ dnd„ dod„ dpd„ dqd„ drd„ dsd„ dtd„ dud„ dvd„ dwd„ dxd„ dyd„ ejdzd„ ej)d�g¡d{d|„ ƒZ1dS )}é    ©ÚdatetimeN)Ú	DataFrameÚDatetimeIndexÚSeriesÚconcatÚisnaÚnotnazcompare_func, roll_func, kwargsÚmeanÚsumc                 C   s   t  | ¡ t¡ ¡ S ©N©ÚnpÚisfiniteÚastypeÚfloatr   ©Úx© r   új/home/ja/django-apps/lartica_env/lib/python3.9/site-packages/pandas/tests/window/test_rolling_functions.pyÚ<lambda>   ó    r   Úcountz ignore:min_periods:FutureWarning)ZmarksÚmedianÚminÚmaxc                 C   s   t j| dd�S ©Né   ©Úddof©r   Ústdr   r   r   r   r   #   r   r!   c                 C   s   t j| dd�S ©Nr   r   r    r   r   r   r   r   $   r   r   c                 C   s   t j| dd�S r   ©r   Úvarr   r   r   r   r   %   r   r$   c                 C   s   t j| dd�S r"   r#   r   r   r   r   r   &   r   c                 C   sJ   t |  d¡|ƒf i |¤Ž}t|tƒs(J ‚t |jd || dd … ƒ¡ d S )Né2   éÿÿÿÿéÎÿÿÿ)ÚgetattrÚrollingÚ
isinstancer   ÚtmÚassert_almost_equalÚiloc)ÚseriesÚcompare_funcÚ	roll_funcÚkwargsÚresultr   r   r   Útest_series   s    r3   c                 C   s   t  | ¡ t¡ ¡ S r   r   r   r   r   r   r   5   r   c                 C   s   t j| dd�S r   r    r   r   r   r   r   =   r   c                 C   s   t j| dd�S r"   r    r   r   r   r   r   >   r   c                 C   s   t j| dd�S r   r#   r   r   r   r   r   ?   r   c                 C   s   t j| dd�S r"   r#   r   r   r   r   r   @   r   c                 C   sh   t | d¡|ƒf i |¤Ž}t|tƒs(J ‚tj|jdd d …f |jdd …d d …f j|d| d�dd� d S )Nr%   r&   r'   r   )ZaxisÚrawF©Zcheck_names)r(   r)   r*   r   r+   Úassert_series_equalr-   Úapply)r4   Úframer/   r0   r1   r2   r   r   r   Ú
test_frame/   s     ýr9   z%compare_func, roll_func, kwargs, minpé
   c                 C   s   t  | ¡ t¡ ¡ S r   r   r   r   r   r   r   R   r   c                 C   s   t j| dd�S r   r    r   r   r   r   r   V   r   c                 C   s   t j| dd�S r"   r    r   r   r   r   r   W   r   c                 C   s   t j| dd�S r   r#   r   r   r   r   r   X   r   c                 C   s   t j| dd�S r"   r#   r   r   r   r   r   Y   r   c                 C   s‚   d}| d d d…   d¡ ¡ }t|j||d�|ƒf i |¤Ž}|jd }|dt ¡   }	| d d d…  |	|¡}
t 	|d ||
ƒ¡ d S )Né   é   ÚB©ÚwindowÚmin_periodsr&   é   )
Úresampler
   r(   r)   ÚindexÚoffsetsÚBDayÚtruncater+   r,   )r.   r/   r0   r1   ÚminpÚwinZserZseries_resultÚ	last_dateÚ	prev_dateZtrunc_seriesr   r   r   Útest_time_rule_seriesM   s    ÿ
rK   c                 C   s   t  | ¡ t¡ ¡ S r   r   r   r   r   r   r   n   r   c                 C   s   t j| dd�S r   r    r   r   r   r   r   r   r   c                 C   s   t j| dd�S r"   r    r   r   r   r   r   s   r   c                 C   s   t j| dd�S r   r#   r   r   r   r   r   t   r   c                 C   s   t j| dd�S r"   r#   r   r   r   r   r   u   r   c                 C   sŽ   d}|d d d…   d¡ ¡ }t|j||d�|ƒf i |¤Ž}|jd }	|	dt ¡   }
|d d d…  |
|	¡}tj	| 
|	¡|j|| d�dd	� d S )
Nr;   r<   r=   r>   r&   rA   ©r4   Fr5   )rB   r
   r(   r)   rC   rD   rE   rF   r+   r6   Úxsr7   )r4   r8   r/   r0   r1   rG   rH   ÚfrmZframe_resultrI   rJ   Ztrunc_framer   r   r   Útest_time_rule_framei   s    ÿ
ýrO   c                 C   s   t j| dd�S r   r    r   r   r   r   r   ‘   r   c                 C   s   t j| dd�S r"   r    r   r   r   r   r   ’   r   c                 C   s   t j| dd�S r   r#   r   r   r   r   r   “   r   c                 C   s   t j| dd�S r"   r#   r   r   r   r   r   ”   r   c                 C   sz  t tj d¡ƒ}tj|d d…< tj|dd …< t|jddd�|ƒf i |¤Ž}t |j	d | |dd… ƒ¡ t|jddd�|ƒf i |¤Ž}t
|j	d	 ƒs˜J ‚t
|j	d
 ƒrªJ ‚t
|j	d ƒr¼J ‚t
|j	d ƒsÎJ ‚t tj d¡ƒ}t|jddd�|ƒf i |¤Ž}t
|j	d ƒ�sJ ‚t|j	d ƒ�s$J ‚|dk�rvt|jddd�|ƒf i |¤Ž}t|jddd�|ƒf i |¤Ž}t ||¡ d S )Nr%   r:   éöÿÿÿé   ©r@   r&   é   é   é   rA   iúÿÿÿéûÿÿÿé   é   é   r   r   r   )r   r   ÚrandomÚrandnÚNaNr(   r)   r+   r,   r-   r   r	   )r/   r0   r1   Úobjr2   Úobj2Zresult0Zresult1r   r   r   Ú	test_nans‰   s$    
r_   c                  C   sl   t tj d¡ƒ} tj| d d…< tj| dd …< | jddd� ¡ }t |j	d t 
| dd… ¡ t¡ ¡ ¡ d S )Nr%   r:   rP   rQ   rR   r&   )r   r   rZ   r[   r\   r)   r   r+   r,   r-   r   r   r   r   )r]   r2   r   r   r   Útest_nans_count²   s    "ÿr`   zroll_func, kwargsrG   )r   éc   éd   c                 C   s~   t | jt| ƒd |d�|ƒf i |¤Ž}t | jt| ƒ|d�|ƒf i |¤Ž}t|ƒ}t |t|ƒ¡ | }t || || ¡ d S )Nr   rR   )r(   r)   Úlenr   r+   r6   r,   )r.   rG   r0   r1   r2   ÚexpectedÚnan_maskr   r   r   Útest_min_periods¼   s    ÿÿrf   c                 C   sf   | j t| ƒd dd� ¡ }| j t| ƒdd� ¡ }t|ƒ}t |t|ƒ¡ | }t || || ¡ d S )Nr   r   rR   )r)   rc   r   r   r+   r6   r,   )r.   r2   rd   re   r   r   r   Útest_min_periods_countÙ   s    rg   zroll_func, kwargs, minprT   c                 C   sž   t tj d¡ƒ}tj|d d…< tj|dd …< t|jd|dd�| ƒf i |¤Ž}tt|t tjgd ƒgƒjd|d�| ƒf i |¤Ždd … jdd	�}t	 
||¡ d S )
Nr%   r:   rP   rS   T)r@   Úcenteré	   rR   )Zdrop)r   r   rZ   r[   r\   r(   r)   r   Zreset_indexr+   r6   )r0   r1   rG   r]   r2   rd   r   r   r   Útest_centerã   s     ÿ"ÿþþþrj   z#roll_func, kwargs, minp, fill_valuec                 C   s�   dd„ t dƒD ƒ}t|  t| jƒ| ¡jd|d�|ƒf i |¤Ž d¡ | j¡}t| jd|dd�|ƒf i |¤Ž}|d ur€| |¡}t 	||¡ d S )	Nc                 S   s   g | ]}d |d›�‘qS ©r   Údr   ©Ú.0r   r   r   r   Ú
<listcomp>  r   z.test_center_reindex_series.<locals>.<listcomp>é   r;   r>   éôÿÿÿT©r?   r@   rh   )
Úranger(   ÚreindexÚlistrC   r)   ÚshiftÚfillnar+   r6   )r.   r0   r1   rG   Ú
fill_valueÚsZ	series_xpZ	series_rsr   r   r   Útest_center_reindex_series   s(    þýüûÿÿþ
rz   c                 C   s�   dd„ t dƒD ƒ}t|  t| jƒ| ¡jd|d�|ƒf i |¤Ž d¡ | j¡}t| jd|dd�|ƒf i |¤Ž}|d ur€| |¡}t 	||¡ d S )	Nc                 S   s   g | ]}d |d›�‘qS rk   r   rm   r   r   r   ro   4  r   z-test_center_reindex_frame.<locals>.<listcomp>rp   r;   r>   rq   Trr   )
rs   r(   rt   ru   rC   r)   rv   rw   r+   Úassert_frame_equal)r8   r0   r1   rG   rx   ry   Zframe_xpZframe_rsr   r   r   Útest_center_reindex_frame#  s(    þýüûÿÿþ
r|   Úfc                 C   s   | j ddd�j| dd�S ©Nr:   rW   r>   F)Úpairwise©r)   Zcovr   r   r   r   r   I  r   c                 C   s   | j ddd�j| dd�S r~   ©r)   Zcorrr   r   r   r   r   J  r   c                 C   s   | j ddd� ¡ S ©Nr:   rW   r>   ©r)   r   r   r   r   r   r   K  r   c                 C   s   | j ddd� ¡ S r‚   ©r)   r   r   r   r   r   r   L  r   c                 C   s   | j ddd� ¡ S r‚   ©r)   r   r   r   r   r   r   M  r   c                 C   s   | j ddd� ¡ S r‚   ©r)   r
   r   r   r   r   r   N  r   c                 C   s   | j ddd� ¡ S r‚   ©r)   r!   r   r   r   r   r   O  r   c                 C   s   | j ddd� ¡ S r‚   ©r)   r$   r   r   r   r   r   P  r   c                 C   s   | j ddd� ¡ S r‚   ©r)   Zskewr   r   r   r   r   Q  r   c                 C   s   | j ddd� ¡ S r‚   ©r)   Zkurtr   r   r   r   r   R  r   c                 C   s   | j ddd�jdd�S )Nr:   rW   r>   ç      à?)Úquantile©r)   rŒ   r   r   r   r   r   S  r   c                 C   s   | j ddd� ¡ S r‚   ©r)   r   r   r   r   r   r   T  r   c                 C   s   | j ddd�jtdd�S ©Nr:   rW   r>   FrL   ©r)   r7   r   r   r   r   r   r   U  r   c                 C   s   | j ddd�jtdd�S ©Nr:   rW   r>   TrL   r�   r   r   r   r   r   V  r   c                 C   s   | j dddd� ¡ S ©NZboxcarr:   rW   )Zwin_typer?   r@   r†   r   r   r   r   r   X  r   c                 C   s„   t tdƒƒ}t tj|jd�}tddgddgddgdd	ggd
dgd�}ttj|j|jd�}| |ƒ}t ||¡ | |ƒ}t 	||¡ d S )NrY   ©rC   r   rW   rX   r<   ri   r&   r   ÚAr=   ©Úcolumns)rC   r–   )
r   rs   r   ÚnanrC   r   r–   r+   r6   r{   )r}   ry   Ú
s_expectedZdfZdf_expectedÚs_resultZ	df_resultr   r   r   Ú+test_rolling_functions_window_non_shrinkageF  s    (rš   c                  C   s¤   dd„ t ddƒD ƒ} |  tdddddƒ¡ tt ddƒ| d	�}| d
d„ ¡}| ¡ }tg d¢tdd„ t ddƒD ƒdd�d	�}| d¡ ¡ j	dd� ¡ }t
 ||¡ dS )z%Replicate result expected in GH #6297c                 S   s   g | ]}t d d|ƒ‘qS ©é·  r   r   ©rn   Úir   r   r   ro   m  r   z+test_rolling_max_gh6297.<locals>.<listcomp>r   é   rœ   rX   r   é   r“   c                 S   s   t | ƒS r   ©r   r   r   r   r   r   r  r   z)test_rolling_max_gh6297.<locals>.<lambda>)ç      ð?ç       @g      @ç      @g      @c                 S   s   g | ]}t d d|dƒ‘qS ©rœ   r   r   r   r�   r   r   r   ro   x  r   ÚD©Úfreq©r?   N)rs   Úappendr   r   ÚmapÚ
sort_indexr   rB   r   r)   r+   r6   ©Úindicesr.   rd   r   r   r   r   Útest_rolling_max_gh6297k  s    þr¯   c                  C   sh  dd„ t ddƒD ƒ} |  tddddƒ¡ |  tddddƒ¡ ttt ddƒƒd	d
g | d�}| dd„ ¡}| ¡ }tg d¢tdd„ t ddƒD ƒdd�d�}| d¡ 	¡ j
dd� 	¡ }t ||¡ tg d¢tdd„ t ddƒD ƒdd�d�}| d¡ ¡ j
dd� 	¡ }t ||¡ d}tdddd|gtdd„ t ddƒD ƒdd�d�}| d¡ ¡ j
dd� 	¡ }t ||¡ d S )Nc                 S   s   g | ]}t d d|ƒ‘qS r›   r   r�   r   r   r   ro   €  r   z-test_rolling_max_resample.<locals>.<listcomp>r   rŸ   rœ   rW   r<   r   r:   rS   r“   c                 S   s   t | ƒS r   r¡   r   r   r   r   r   †  r   z+test_rolling_max_resample.<locals>.<lambda>)ç        r¢   r£   ç      @g      4@c                 S   s   g | ]}t d d|dƒ‘qS r¥   r   r�   r   r   r   ro   �  r   r¦   r§   r©   )r°   r¢   r£   r±   g      $@c                 S   s   g | ]}t d d|dƒ‘qS r¥   r   r�   r   r   r   ro   •  r   g«ªªªªª&@r°   r¢   r£   r±   c                 S   s   g | ]}t d d|dƒ‘qS r¥   r   r�   r   r   r   ro   ž  r   )rs   rª   r   r   ru   r«   r¬   r   rB   r   r)   r+   r6   r   r
   )r®   r.   rd   r   Úvr   r   r   Útest_rolling_max_resample~  s2    þþþr³   c                  C   sÂ   dd„ t ddƒD ƒ} |  tddddƒ¡ |  tddddƒ¡ ttt ddƒƒd	d
g | d�}| dd„ ¡}| ¡ }tg d¢tdd„ t ddƒD ƒdd�d�}| d¡ 	¡ j
dd�}t || 	¡ ¡ d S )Nc                 S   s   g | ]}t d d|ƒ‘qS r›   r   r�   r   r   r   ro   ¦  r   z-test_rolling_min_resample.<locals>.<listcomp>r   rŸ   rœ   rW   r<   r   r:   rS   r“   c                 S   s   t | ƒS r   r¡   r   r   r   r   r   ¬  r   z+test_rolling_min_resample.<locals>.<lambda>)r°   r¢   r£   r±   r¤   c                 S   s   g | ]}t d d|dƒ‘qS r¥   r   r�   r   r   r   ro   ³  r   r¦   r§   r©   )rs   rª   r   r   ru   r«   r¬   r   rB   r   r)   r+   r6   )r®   r.   rd   Úrr   r   r   Útest_rolling_min_resample¤  s    þrµ   c                  C   sÂ   dd„ t ddƒD ƒ} |  tddddƒ¡ |  tddddƒ¡ ttt ddƒƒd	d
g | d�}| dd„ ¡}| ¡ }tg d¢tdd„ t ddƒD ƒdd�d�}| d¡ 	¡ j
dd� 	¡ }t ||¡ d S )Nc                 S   s   g | ]}t d d|ƒ‘qS r›   r   r�   r   r   r   ro   »  r   z0test_rolling_median_resample.<locals>.<listcomp>r   rŸ   rœ   rW   r<   r   r:   rS   r“   c                 S   s   t | ƒS r   r¡   r   r   r   r   r   Á  r   z.test_rolling_median_resample.<locals>.<lambda>)r°   r¢   r£   r±   r:   c                 S   s   g | ]}t d d|dƒ‘qS r¥   r   r�   r   r   r   ro   È  r   r¦   r§   r©   )rs   rª   r   r   ru   r«   r¬   r   rB   r   r)   r+   r6   r­   r   r   r   Útest_rolling_median_resample¹  s    þr¶   c                  C   sD   d} t tj | ¡ƒjddd� ¡  t tj | ¡ƒjddd� ¡  d S )Ni N  r<   F)r?   rh   )r   r   rZ   r[   r)   r   )Únr   r   r   Ú test_rolling_median_memory_errorÎ  s    r¸   Ú	data_typec                 C   s   g | ]}t  d |› �¡‘qS )r}   ©r   Údtype)rn   Úwidthr   r   r   ro   ×  r   ro   )rY   é   c                 C   s(   g | ] }d D ]}t  |› |› �¡‘qqS )Zuirº   )rn   r¼   Úsignr   r   r   ro   Ø  r   )r   r<   rY   r½   c                 C   sp   t tjd| d�ƒjdd� ¡ }|jd t d¡ks6J ‚t tjd| d�ƒjdd� ¡ }|jd t d¡kslJ ‚d S )NrS   ©r»   rW   r©   r   Zf8)r   r   Zaranger)   r   Zdtypesr»   r   )r¹   r2   r   r   r   Ú"test_rolling_min_max_numeric_typesÕ  s    rÀ   c                 C   s   | j ddd� ¡ S )Nr:   r   r>   )r)   r   r   r   r   r   r   é  r   c                 C   s   | j ddd�j| dd�S r~   r€   r   r   r   r   r   ê  r   c                 C   s   | j ddd�j| dd�S r~   r�   r   r   r   r   r   ë  r   c                 C   s   | j ddd� ¡ S r‚   rƒ   r   r   r   r   r   ì  r   c                 C   s   | j ddd� ¡ S r‚   r„   r   r   r   r   r   í  r   c                 C   s   | j ddd� ¡ S r‚   r…   r   r   r   r   r   î  r   c                 C   s   | j ddd� ¡ S r‚   r†   r   r   r   r   r   ï  r   c                 C   s   | j ddd� ¡ S r‚   r‡   r   r   r   r   r   ð  r   c                 C   s   | j ddd� ¡ S r‚   rˆ   r   r   r   r   r   ñ  r   c                 C   s   | j ddd� ¡ S r‚   r‰   r   r   r   r   r   ò  r   c                 C   s   | j ddd� ¡ S r‚   rŠ   r   r   r   r   r   ó  r   c                 C   s   | j ddd� d¡S )Nr:   rW   r>   r‹   r�   r   r   r   r   r   ô  r   c                 C   s   | j ddd� ¡ S r‚   rŽ   r   r   r   r   r   õ  r   c                 C   s   | j ddd�jtdd�S r�   r�   r   r   r   r   r   ö  r   c                 C   s   | j ddd�jtdd�S r‘   r�   r   r   r   r   r   ÷  r   c                 C   s   | j dddd� ¡ S r’   r†   r   r   r   r   r   ù  r   c           
      C   s|   t tjd�}|}tƒ }|}tdgd�}|d  d¡|d< |}| |ƒ}t ||¡ | |ƒ}t ||¡ | |ƒ}	t |	|¡ d S )Nr¿   Úar•   Úfloat64)r   r   rÂ   r   r   r+   r6   r{   )
r}   ry   r˜   Zdf1Zdf1_expectedZdf2Zdf2_expectedr™   Z
df1_resultZ
df2_resultr   r   r   Ú!test_moment_functions_zero_lengthæ  s    rÃ   )2r   Únumpyr   ZpytestZpandas.util._test_decoratorsÚutilZ_test_decoratorsÚtdZpandasr   r   r   r   r   r	   Zpandas._testingZ_testingr+   Zpandas.tseries.offsetsZtseriesrD   ÚmarkZparametrizer
   ZnansumÚparamÚfilterwarningsr   r   r   r3   r9   rK   rO   r_   r`   rf   rg   rj   rz   r|   Zskip_if_no_scipyrš   r¯   r³   rµ   r¶   r¸   rÀ   rÃ   r   r   r   r   Ú<module>   s¦   


ü


ñþ



ü


ñþ

öþ
öþ





÷þ



÷þ
öþ








öþ








öþ
þñþ
&ÿþ
þðþ