a
    oÝEb!W  ã                   @   s*  d dl m Z  d dlZd dlZd dlZd dlmZmZmZ d dl	m
Z d dlmZ ee dddƒe dddƒdd	�Zeej eeƒ¡eƒZeeee eeƒ¡d
œƒZej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gddgg¡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(d0d1„ Z)d2d3„ Z*d4d5„ Z+d6d7„ Z,d8d9„ Z-d:d;„ Z.ej d<g d=¢¡d>d?„ ƒZ/d@dA„ Z0ej dBdCdDdEg dF¢dGdHdg dI¢dJdKf
dLdMdNdgdO dEdHdPg dQ¢dRdf
dCdDdEg dF¢dGdHdSg dT¢dUdVf
dCdDdEg dF¢dGdWdg dX¢dYdKf
g¡dZd[„ ƒZ1dS )\é    )ÚdatetimeN)Ú	DataFrameÚNamedAggÚSeries)Ú
date_rangeéÕ  é   é
   ZMin)ÚstartÚendÚfreq©ÚAÚBÚCc                   C   s   t  ¡ S ©N)Ú_test_frameÚcopy© r   r   úg/home/ja/django-apps/lartica_env/lib/python3.9/site-packages/pandas/tests/resample/test_resample_api.pyÚ
test_frame   s    r   c                  C   s<   t  d¡} dt| ƒv sJ ‚t jddd�} dt| ƒv s8J ‚d S )NÚHziDatetimeIndexResampler [freq=<Hour>, axis=0, closed=left, label=left, convention=start, origin=start_day]z
2000-01-01)ÚoriginzsDatetimeIndexResampler [freq=<Hour>, axis=0, closed=left, label=left, convention=start, origin=2000-01-01 00:00:00])Útest_seriesÚresampleÚstr)Úrr   r   r   Útest_str   s    
ÿÿÿÿr   c                  C   sh   t  d¡} |  ¡ }t|tƒs J ‚t|ƒdks0J ‚t  ¡  d¡} |  ¡ }t|tƒsTJ ‚t|ƒdksdJ ‚d S )Nr   éÙ   )r   r   ÚmeanÚ
isinstancer   ÚlenZto_framer   )r   Úresultr   r   r   Útest_api)   s    
r#   c                  C   sÆ   t tdddd�g d¢g d¢dœƒ d¡} td	d
d� ¡ tdd
d� ¡  }tjjdgd
 dgd
  |gddgd�}t ddgd dg dgd  d
g i|d�}|  d¡ dd„ ¡dg }t	 
||¡ d S )Nú
2016-01-01é   ÚW)r
   Úperiodsr   )r   r   é   r(   )é   é   é   é   )ÚdateÚgroupÚvalr-   z
2016-01-03r,   ©r'   z
2016-01-17r   r(   r.   ©Únamesr/   r)   r+   r*   ©Úindexc                 S   s   |   d¡ ¡ S )NÚ1D)r   Úffill©Úxr   r   r   Ú<lambda>J   ó    z+test_groupby_resample_api.<locals>.<lambda>)r   r   Ú	set_indexÚtolistÚpdÚ
MultiIndexÚfrom_arraysÚgroupbyÚapplyÚtmÚassert_frame_equal)ÚdfÚir4   Úexpectedr"   r   r   r   Útest_groupby_resample_api6   s     ýÿú
ÿÿ(,rG   c                  C   sj   t ddgd tddd�tj d¡dœƒ} |  d¡ d	¡ d
¡ ¡ }|  d	¡jd
dd� ¡ }t	 
||¡ d S )Nr   r   r)   r$   r	   r0   )ÚkeyÚdatesÚvaluesrI   rH   ÚD©Úon)r   r   ÚnpÚrandomÚrandnr;   r@   r   r   rB   rC   )rD   rF   r"   r   r   r   Útest_groupby_resample_on_apiN   s    


ýÿrQ   c                 C   sl   t  d¡}| ¡ | ¡  }| dd„ ¡}t ||¡ |  d¡}| ¡ | ¡  }| dd„ ¡}t ||¡ d S )Nr   c                 S   s   |   ¡ |  ¡  S r   ©Úmaxr   r7   r   r   r   r9   g   r:   ztest_pipe.<locals>.<lambda>c                 S   s   |   ¡ |  ¡  S r   rR   r7   r   r   r   r9   m   r:   )r   r   rS   r   ÚpiperB   Úassert_series_equalrC   )r   r   rF   r"   r   r   r   Ú	test_pipea   s    

rV   c                 C   s”   |   d¡}t |jj| j¡ |   d¡d }|jj| jd ks@J ‚|   d¡d }t |jj| jddg ¡ |   d¡d }t |jj| jddg ¡ d S )Nr   r   r   ©r   r   r   )r   rB   Zassert_index_equalZ_selected_objÚcolumnsÚname©r   r   r   r   r   Útest_getitemq   s    
r[   rH   rK   r   c                 C   sH   |  d¡}d}tjt|d�� ||   W d   ƒ n1 s:0    Y  d S )Nr   z^\"Columns not found: 'D'\"$©Úmatch)r   ÚpytestÚraisesÚKeyError)rH   r   ÚgÚmsgr   r   r   Útest_select_bad_cols�   s    
rc   c                 C   s(   |   d¡}t |j ¡ |d  ¡ ¡ d S )Nr   r   )r   rB   rU   r   ÚsumrZ   r   r   r   Útest_attribute_access‹   s    
re   c                  C   sX   dD ]N} t dddd�}tt t|ƒ¡|d�}| d¡}t|| ƒ | ¡  t|| ƒ qd S )N)ÚgroupsZngroupsÚindicesú1/1/2012éd   ÚS©r'   r   r3   Z30s)r   r   rN   Úaranger!   r   Úgetattrr   )ÚattrÚrngÚtsÚrsr   r   r   Útest_api_compat_before_use‘   s    

rr   c                 C   sx   | }d|d< |  d¡}|ddg  ¡ }tj|j ¡ |j ¡ gdd�}t ||¡ |g d¢  ¡ }| ¡ }t ||¡ d S )	NZfoorK   r   r   r   r   ©Zaxisr   )r   rd   r=   Úconcatr   r   rB   rC   )r   rD   r   r"   rF   r   r   r   Útests_skip_nuisance¢   s    
ru   c                  C   s`   t dddd�} ttjt| ƒdd�| d�}| d¡ ¡ }tg d	¢t d
ddd�d�}t ||¡ d S )Nrh   ri   rj   rk   Úint64©Údtyper3   Z20s)r   é   é(   é<   éP   ú2012-01-01 00:00:00r)   ©r   r'   )	r   r   rN   rl   r!   r   ÚasfreqrB   rU   )ro   rp   r"   rF   r   r   r   Ú'test_downsample_but_actually_upsampling°   s    þr€   c                  C   st   t dddd�} tt t| ƒ¡| d�}|jg d¢ }| d¡ ¡  ¡ }tg d¢t	j
g d	¢d
dd�d�}t ||¡ d S )Nrh   ri   rj   rk   r3   )r   r   r(   é   r)   r+   é   é   é   é   é   Z2s)g      à?g      @g      @ç      @r‡   ç      &@rˆ   g      .@ç      0@r‰   r‰   r‰   ç      9@rŠ   rŠ   g      >@)r}   z2012-01-01 00:00:02z2012-01-01 00:00:04z2012-01-01 00:00:06z2012-01-01 00:00:08z2012-01-01 00:00:10z2012-01-01 00:00:12z2012-01-01 00:00:14z2012-01-01 00:00:16z2012-01-01 00:00:18z2012-01-01 00:00:20z2012-01-01 00:00:22z2012-01-01 00:00:24z2012-01-01 00:00:26z2012-01-01 00:00:28z2012-01-01 00:00:30zdatetime64[ns]Ú2S)rx   r   )r   r   rN   rl   r!   Zilocr   r   r6   r=   ZDatetimeIndexrB   rU   )ro   rp   Zts2r"   rF   r   r   r   Ú*test_combined_up_downsampling_of_irregular½   s    ìí*rŒ   c                  C   s<   t  d¡} t  tjdd�¡ d¡}|  d¡}t ||¡ d S )NÚ20min©r   r   )r   r   r@   r=   ÚGrouperZ	transformrB   rU   )r   rF   r"   r   r   r   Útest_transformõ   s    

r�   c                  C   s²   t dddd�} ttjt| ƒdd�| d�}| d¡}| ¡ }|jd	d
�}t 	||¡ | 
¡ }|jdd
�}t 	||¡ d}tjt|d�� | d¡ W d   ƒ n1 s¤0    Y  d S )Nrh   r	   r‹   rk   rv   rw   r3   Úsr6   )ÚmethodÚbfillzTInvalid fill method\. Expecting pad \(ffill\), backfill \(bfill\) or nearest\. Got 0r\   r   )r   r   rN   rl   r!   r   r6   ZfillnarB   rU   r“   r^   r_   Ú
ValueError)ro   rp   r   rF   r"   rb   r   r   r   Útest_fillnaý   s    
ÿr•   c                  C   sH   t  d¡} t  tjdd�¡}|| fD ]}| dd„ ¡}t |t ¡ q$d S )Nr�   rŽ   c                 S   s   | S r   r   r7   r   r   r   r9     r:   z0test_apply_without_aggregation.<locals>.<lambda>)r   r   r@   r=   r�   rA   rB   rU   )r   ra   Útr"   r   r   r   Útest_apply_without_aggregation  s
    
r—   c                  C   sv   t tj dd¡tdddd�g d¢d�} |  d¡}d	}tjt|d
��  | 	dddœ¡ W d   ƒ n1 sh0    Y  d S )Néè  r�   rh   rj   r~   r   ©r4   rX   Ú3Tz'Column\(s\) \['r1', 'r2'\] do not existr\   r   rd   ©Úr1Úr2©
r   rN   rO   rP   r   r   r^   r_   r`   Úagg©rD   r   rb   r   r   r   Útest_agg_consistency  s    ý
r¡   c                  C   sv   t tj dd¡tdddd�ddgd�} |  d	¡}d
}tjt|d��  | 	dddœ¡ W d   ƒ n1 sh0    Y  d S )Nr˜   r(   rh   rj   r~   r   Úar™   rš   z#Column\(s\) \[2, 'b'\] do not existr\   r   rd   )r(   Úbrž   r    r   r   r   Ú'test_agg_consistency_int_str_column_mix0  s    ý
r¤   c               	   C   sT  t j d¡ ttdddƒtdddƒdd�} d| _tt j dd¡td	ƒ| d
�}| 	¡ }| 
¡ }tjjtdƒ|jgddgd�|_| d¡}||jddd�|jddd�| tjdd�¡g}|d  ¡ }|d  ¡ }|d  ¡ }|d  ¡ }	|d  ¡ }
|d  ¡ }tj|||	|
gdd�}tj ddgddgg¡|_|D ]n}||dd… v �rJtnd }tj|dd��" | t jt jg¡}W d   ƒ n1 �s†0    Y  t ||¡ �q0tj||
gdd�}|D ]‚}| t jt jdœ¡}tj||dd� |jdt jfdt jfd�}tj||dd� |jtdt jƒtdt jƒd�}tj||dd� �q¶tj||gdd�}tj ddg¡|_|D ]$}| dddgi¡}t ||¡ �qbtj||gdd�}ddg|_|D ]B}|d  ddg¡}t ||¡ |d jddd�}t ||¡ �q¨d}|D ]P}t j!tj"j#j$|d��$ | ddddœi¡ W d   ƒ n1 �s80    Y  �qôtj|||	|gdd�}tj g d ¢¡|_|D ]X}t j!tj"j#j$|d��, | dddœddd!œdœ¡ W d   ƒ n1 �s¾0    Y  �qrtj|||	|
gdd�}tj g d"¢¡|_|D ].}| ddgddgdœ¡}tj||dd� �qøtj|||	|gdd�}tj g d#¢¡|_d S )$NéÒ  r   r   r	   rK   rŽ   r-   r(   ÚAB©rX   r4   r4   r1   Ú2DrL   ©Úlevelr   r   rs   r   Ústdr�   z)\['date'\] did not aggregate successfullyr\   rW   T©Z
check_like©r   r   ©r   r«   rd   )r   rd   únested renamer is not supported)r­   ©r   rd   )r   Úmean2)r   Úsum2)r±   r²   )r­   r®   ©r   r   ©r   r«   ))rœ   r   r   )rœ   r   rd   )r�   r   r   )r�   r   rd   )%rN   rO   Úseedr   r   rY   r   ÚrandÚlistÚreset_indexr   r=   r>   r?   Úranger4   r   r@   r�   r   r«   rd   rt   Zfrom_productrX   ÚFutureWarningrB   Zassert_produces_warningÚ	aggregaterC   r   Úfrom_tuplesr^   r_   ÚcoreÚbaseÚSpecificationError)r4   rD   Údf_colÚdf_multr   ÚcasesZa_meanZa_stdZa_sumZb_meanZb_stdZb_sumrF   r–   Úwarnr"   rb   r   r   r   Útest_aggC  sš    ÿ
üþ2
8ÿþÿ(ÿÿrÄ   c               	   C   s€  t j d¡ ttdddƒtdddƒdd�} d| _tt j dd¡td	ƒ| d
�}| 	¡ }| 
¡ }tjjtdƒ|jgddgd�|_| d¡}||jddd�|jddd�| tjdd�¡g}|D ]²}| t jdd„ dœ¡}|d  dd„ ¡}tj|d  ¡ |gdd�}	tj||	dd� |jdt jfddd„ fd�}tj||	dd� |jtdt jƒtddd„ ƒd�}tj||	dd� q¸tj|d  ¡ |d  ¡ |d  ¡ |d  ¡ gdd�}	tj g d¢¡|	_d}
|D ]ú}tjt|
d��, |ddg  t jt jdœ¡ W d   ƒ n1 �s0    Y  tjt|
d��2 |ddg jdt jfd t jfd� W d   ƒ n1 �sT0    Y  tjt|
d��6 |ddg jtdt jƒtd t jƒd� W d   ƒ n1 �sª0    Y  �q¼tj|d  ¡ |d   ¡ |d  ¡ |d   ¡ gdd�}	tj g d!¢¡|	_|D ].}| d"d#gd$d#gdœ¡}tj||	dd� �q|D ]6}|ddg  d"d#gd$d#gdœ¡}tj||	dd� �q8d%}
|D ]¤}tjtj!j"j#|
d��& |d  dd"d#gi¡ W d   ƒ n1 �s¾0    Y  tjtj!j"j#|
d��, |d  d"d#gd$d#gdœ¡ W d   ƒ n1 �s0    Y  �qxd&}
|D ]T}tjt|
d��. |dg  d"d#gd$d#gdœ¡ W d   ƒ n1 �sn0    Y  �q&d S )'Nr¥   r   r   r	   rK   rŽ   r-   r(   r¦   r§   r4   r1   r¨   rL   r©   c                 S   s   t j| dd�S ©Nr   )Zddof©rN   r«   r7   r   r   r   r9   À  r:   ztest_agg_misc.<locals>.<lambda>rW   r   c                 S   s   t j| dd�S rÅ   rÆ   r7   r   r   r   r9   Á  r:   r   rs   Tr¬   c                 S   s   t j| dd�S rÅ   rÆ   r7   r   r   r   r9   Å  r:   c                 S   s   t j| dd�S rÅ   rÆ   r7   r   r   r   r9   É  r:   ))Úresult1r   )rÇ   r   )Úresult2r   )rÈ   r   z1Column\(s\) \['result1', 'result2'\] do not existr\   )rÇ   rÈ   rÇ   rÈ   )r°   r®   r³   r´   rd   r«   r   r¯   z Column\(s\) \['B'\] do not exist)$rN   rO   rµ   r   r   rY   r   r¶   r·   r¸   r   r=   r>   r?   r¹   r4   r   r@   r�   rŸ   rd   rA   rt   rB   rC   r   r   r¼   rX   r^   r_   r`   r«   r½   r¾   r¿   )r4   rD   rÀ   rÁ   r   rÂ   r–   r"   ZrcustomrF   rb   r   r   r   Útest_agg_misc©  s€    ÿ
üÿ,ÿÿ<Bÿ*,ÿÿ 6@rÉ   c               	   C   sÜ  t j d¡ ttdddƒtdddƒdd�} d| _tt j dd¡td	ƒ| d
�}| 	¡ }| 
¡ }tjjtdƒ|jgddgd�|_| d¡}||jddd�|jddd�| tjdd�¡g}d}|D ]Z}tjtjjj|d��0 | dddgidddgidœ¡ W d   ƒ q¼1 �s0    Y  q¼|D ]º}tjtjjj|d��8 |ddg  dddgidddgidœ¡ W d   ƒ n1 �st0    Y  tjtjjj|d��0 | dddgidddgidœ¡ W d   ƒ n1 �sÊ0    Y  �qd S )Nr¥   r   r   r	   rK   rŽ   r-   r(   r¦   r§   r4   r1   r¨   rL   r©   r¯   r\   r   r   rd   r   r›   Úrar«   ÚrbrW   )rN   rO   rµ   r   r   rY   r   r¶   r·   r¸   r   r=   r>   r?   r¹   r4   r   r@   r�   r^   r_   r½   r¾   r¿   r»   rŸ   )r4   rD   rÀ   rÁ   r   rÂ   rb   r–   r   r   r   Útest_agg_nested_dicts  s4    ÿ
üBÿ$rÌ   c                  C   s¢   t ddddƒdddœt ddddƒdddœt ddddƒd	d
dœg} t| ƒ d¡}d}tjt|d��. | d¡ dgdgdgdœ¡ W d   ƒ n1 s”0    Y  d S )Niá  r*   r   r   g      ð?g       @)Údtr8   Úyr(   g      @g      ø?rÍ   z Column\(s\) \['z'\] do not existr\   Z30Tr   Zmedianrd   )r8   rÎ   Úz)r   r   r;   r^   r_   r`   r   rŸ   )ÚdatarD   rb   r   r   r   Ú&test_try_aggregate_non_existing_column'  s    ýrÑ   c                  C   sT  t tdddƒtdddƒdd�} tjt| ƒtjd�}t| |dœtjj	|| gdd	gd
�d�}td|i| d�}d}t
jt|d�� |j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gd� W d   ƒ n1 �s&0    Y  d}t
jt|d��" |jdddgd� W d   ƒ n1 �sl0    Y  d}t
jt|d��" |jdd	d� ¡  W d   ƒ n1 �s²0    Y  t
jt|d��" |jddd� ¡  W d   ƒ n1 �sô0    Y  | d¡ ¡ }d|j_t ||jddd� ¡ ¡ d	|j_t ||jdd	d� ¡ ¡ d S )Nr   r   r	   rK   rŽ   rw   )r-   r¢   ÚvÚdr1   r3   r¢   zaOnly valid with DatetimeIndex, TimedeltaIndex or PeriodIndex, but got an instance of 'Int64Index'r\   r¨   r©   z2The Grouper cannot specify both a key and a level!r-   )rM   rª   zunhashable type: 'list'rL   z#\"Level \['a', 'date'\] not found\"z|Upsampling from level= or on= selection is not supported, use \.set_index\(\.\.\.\) to explicitly set index to datetime-like)r   r   rN   rl   r!   rv   r   r=   r>   r?   r^   r_   Ú	TypeErrorr   r”   r`   r   rd   r4   rY   rB   rC   )r4   ro   rD   Zdf_exprb   Úexpr   r   r   Útest_selection_api_validation6  s>    þÿ,.22ÿ22rÖ   Úcol_name)Út2Zt2xZt2qZT_2MZt2pZt2mZt2m1ZT2Mc                 C   s~   t ttdƒƒtddddd�| gd�}| d¡ dg¡}t g d	¢tdd
ddd�tj| gdggdgdggd�d�}t 	||¡ d S )NéÈ   z
2017-01-01Z15minzEurope/Berlin)r
   r   r'   Útzr™   Z1dr   )g     ÀG@g     ða@g     ph@rK   r�   r   )ZlevelsÚcodes)
r   r·   r¹   r   r   r»   r=   r>   rB   rC   )r×   rD   r"   rF   r   r   r   Ú*test_agg_with_datetime_index_list_agg_funcg  s    	
ÿûýrÜ   c                  C   s¼   t dddd�} t | ¡}|jdd� t|| d�}| d¡}tt d	¡t d	¡g| d d d
… d�}| d¡}t	 
||¡ | d¡}t	 
||¡ | d¡}t	 
||¡ | d¡}t	 
||¡ d S )Nz
2020-01-01z
2020-01-02Z1hrŽ   F)Úwriter3   r5   r   é   ÚlastÚfirstrS   Úmin)r   rN   Z
zeros_likeZsetflagsr   r   r=   Ú	TimestamprŸ   rB   rU   )r4   ZarrZserrq   rF   r"   r   r   r   Útest_resample_agg_readonly€  s    

&



rã   zLstart,end,freq,data,resample_freq,origin,closed,exp_data,exp_end,exp_periodsz2000-10-01 23:30:00z2000-10-02 00:26:00Z7min)	r   r�   r*   é	   é   rƒ   é   é   rÞ   Z17minr   )r   ræ   é   é?   z20001002 00:26:00r%   z20200101 8:26:35z20200101 9:31:58Z77sé3   Úright)
r   r*   r)   r*   r)   r*   r)   r*   r)   r*   z2020-01-01 09:30:45Úleft)r   ræ   rè   é'   rÞ   z20001002 00:43:00r)   Zend_day)r�   rƒ   é-   rî   z2000-10-02 00:29:00c
                 C   sT   t | ||d�}
t||
d�}|j|||d� ¡ }t|t |||	d�d�}t ||¡ d S )NrŽ   r3   )r   Úclosed)r   r   r'   )r   r   r   rd   rB   rU   )r
   r   r   rÐ   Zresample_freqr   rï   Zexp_dataZexp_endZexp_periodsro   rp   ÚresrF   r   r   r   Útest_end_and_end_day_origin˜  s    Aþrñ   )2r   ÚnumpyrN   r^   Zpandasr=   r   r   r   Zpandas._testingZ_testingrB   Zpandas.core.indexes.datetimesr   ZdtirO   r¶   r!   r   rl   r   Zfixturer   r   r#   rG   rQ   rV   r[   ÚmarkZparametrizerc   re   rr   ru   r€   rŒ   r�   r•   r—   r¡   r¤   rÄ   rÉ   rÌ   rÑ   rÖ   rÜ   rã   rñ   r   r   r   r   Ú<module>   s°   

	8f[#1ÿ
ööööÛþ5