U
    ¾mœd«K  ã                   @   s  d dl mZ d dlZd dlZd dlmZ d dlmZ d dl	Z
d dl	mZmZmZmZmZ d dlmZ d dlmZ edgd d	gd
  dgd  e d¡dœedddd�d�Zeƒ 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#d$d%d&d'd(d)d*d+d,d-d.d/d0g¡d1d2„ ƒZ d3d4„ Z!ej d!d5d6g¡d7d8„ ƒZ"d9d:„ Z#d;d<„ Z$d=d>„ Z%d?d@„ Z&dAdB„ Z'dCdD„ Z(dEdF„ Z)dGdH„ Z*dIdJ„ Z+ej dKdLgdLdMgg¡dNdO„ ƒZ,ej dPdQdRg¡dSdT„ ƒZ-dUdV„ Z.ej dKdLgdLdMgg¡dWdX„ ƒZ/dYdZ„ Z0d[d\„ Z1d]d^„ Z2d_d`„ Z3dadb„ Z4dS )cé    )ÚdedentN)Úis_platform_windows)Ú
async_mark)Ú	DataFrameÚIndexÚSeriesÚTimedeltaIndexÚ	Timestamp)Ú
date_rangeé   é   é   é   é   é   é(   ©ÚAÚBú1/1/2000Ús©ÚfreqÚperiods©Úindexc              
   Ã   sd   ddl m} tdƒ}|  |¡I d H  t d ¡�, |dƒ� t| j dd¡ƒ W 5 Q R X W 5 Q R X d S )Nr   )ÚprovisionalcompleterzZ    import pandas._testing as tm
    s = tm.makeTimeSeries()
    rs = s.resample("D")
    Úignorezrs.r   )	ZIPython.core.completerr   r   Zrun_codeÚtmZassert_produces_warningÚlistZ	CompleterZcompletions)Úipr   Úcode© r"   úe/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/pandas/tests/resample/test_resampler_grouper.pyÚ"test_tab_complete_ipython6_warning   s    ÿ
r$   c                  C   s  dddgdddgdddgddd	gd
ddgdddgdddgdddgddd	gdddgg
} t | dddgd�}t |j¡|_dd„ }| d¡ |¡}| d¡ d¡ d¡ ¡ }t	 
||¡ t tdddd�ddddgddd	dgdœƒ d¡}dd „ }| d!¡ |¡}| d!¡ d"¡ ¡ }t	 
||¡ d S )#Nz
2010-01-01r   r   z
2010-01-02r   z
2010-01-05r   z
2010-01-10é   z
2010-01-13r   é   z
2010-01-03z
2010-01-04r   z
2010-01-11z
2010-01-14ÚdateÚidZscore©Úcolumnsc                 S   s   |   d¡ d¡ ¡ S )Nr'   ÚD)Ú	set_indexÚresampleÚasfreq©Úxr"   r"   r#   Úf_0A   s    z'test_deferred_with_groupby.<locals>.f_0r+   ú
2016-01-01é   ÚW)Ústartr   r   é   ©r'   ÚgroupÚvalc                 S   s   |   d¡ ¡ S )NÚ1D)r-   Úffillr/   r"   r"   r#   Úf_1P   s    z'test_deferred_with_groupby.<locals>.f_1r8   r:   )r   ÚpdÚto_datetimer'   ÚgroupbyÚapplyr,   r-   r.   r   Úassert_frame_equalr
   r;   )ÚdataÚdfr1   ÚexpectedÚresultr<   r"   r"   r#   Útest_deferred_with_groupby.   s:    ö

ýÿúrF   c                  C   sr   t  d¡} | j dd„ ¡}|  d¡j ¡ }t ||¡ | j d¡ ¡ }t ||¡ |  d¡ ¡ j}t ||¡ d S )Nr   c                 S   s   |   d¡ ¡ S ©NÚ2s)r-   Úmeanr/   r"   r"   r#   Ú<lambda>[   ó    ztest_getitem.<locals>.<lambda>rH   )Ú
test_framer?   r   r@   r-   rI   r   Úassert_series_equal)ÚgrD   rE   r"   r"   r#   Útest_getitemX   s    
rO   c                  C   s¢   dddœdddœg} t | tddd�d�}| d	¡ d
¡}|d  ¡ }tddgtjjdt	dƒfdt	dƒfgd	d gd�dd�}t
 ||¡ |d  ¡ }t
 ||¡ d S )Nr   r   )r(   Úbuyerr   r   r2   ©r   r   r(   r:   rP   z
2016-01-02©Únames)r   Úname)r   r
   r?   r-   Úcountr   r=   Ú
MultiIndexÚfrom_tuplesr	   r   rM   )rB   rC   ÚrrE   rD   r"   r"   r#   Útest_getitem_multipleg   s    þúrY   c                  C   sf   t tdƒtddd�ddœƒ} |  d¡ d¡ d	¡d
  ¡ }|  d¡jd	dd�d
  ¡ }t ||¡ d S )NZaabbbz1-1-2016r&   rQ   r   )r(   r'   rB   r'   r(   Ú2DrB   ©Úon)	r   r   r
   r,   r?   r-   Úsumr   rM   )rC   ÚexprE   r"   r"   r#   Ú)test_groupby_resample_on_api_with_getitem|   s    ÿr_   c               	   C   s^  d} d\}}d}t ||dd�}ttj t|ƒ¡|d�}|||… }tj| d�}| |¡ 	d¡}|||… }| |¡ 	d¡}	t
jtdd	�� t |j|	j¡ W 5 Q R X td
ƒ}
tj| |
d�}| |¡ 	d¡}|||… }| |¡ 	d¡}t ||¡ td
ƒt d¡d  }tj| |d�}| |¡ 	d¡}|||… }| |¡ 	d¡}t ||¡ t ||¡ d S )NZ1399min)z1/1/2000 00:00:00z1/31/2000 00:00z1/15/2000 00:00:00Z1231min©r   r   rU   zIndex are different©Úmatchr   )r   Úorigini0u  )r
   r   ÚnpÚrandomÚrandnÚlenr=   ÚGrouperr?   ÚaggÚpytestÚraisesÚAssertionErrorr   Úassert_index_equalr   r	   rM   Z	Timedelta)r   r5   ÚendÚmiddleÚrngÚtsZts2Zsimple_grouperZcount_tsZ	count_ts2rc   Zadjusted_grouperZadjusted_count_tsZadjusted_count_ts2Zorigin_futureZadjusted_grouper2Zadjusted2_count_tsZadjusted2_count_ts2r"   r"   r#   Útest_groupby_with_origin†   s2    rr   c               
   C   sl   t dddd�} ttdƒ| d� d¡ ¡ }tdddddd	d	gtjd
ddddddgddd�d�}t ||¡ d S )Nr   r   ÚT©r   r   r   Z20sr   r   r   z2000-01-01 00:00:00z2000-01-01 00:00:20z2000-01-01 00:00:40z2000-01-01 00:01:00z2000-01-01 00:01:20z2000-01-01 00:01:40z2000-01-01 00:02:00zdatetime64[ns]Z20S)Údtyper   )	r
   r   Úranger-   Únearestr=   ZDatetimeIndexr   rM   )r   rE   rD   r"   r"   r#   Útest_nearest¯   s$    ù	õþrx   ÚfÚfirstÚlastÚmedianZsemr]   rI   ÚminÚmaxÚsizerU   rw   Zbfillr;   r.   Zohlcc                    sB   t  d¡}| d¡}t|ˆ ƒƒ }| ‡ fdd„¡}t ||¡ d S )Nr   rH   c                    s   t |  d¡ˆ ƒƒ S rG   ©Úgetattrr-   r/   ©ry   r"   r#   rJ   á   rK   ztest_methods.<locals>.<lambda>)rL   r?   r-   r�   r@   r   Zassert_equal©ry   rN   rX   rE   rD   r"   r‚   r#   Útest_methodsÈ   s
    

r„   c                  C   s>   t  d¡} |  d¡}|j ¡ }| j dd„ ¡}t ||¡ d S )Nr   rH   c                 S   s   |   d¡ ¡ S rG   )r-   Únuniquer/   r"   r"   r#   rJ   ê   rK   z&test_methods_nunique.<locals>.<lambda>)rL   r?   r-   r   r…   r@   r   rM   )rN   rX   rE   rD   r"   r"   r#   Útest_methods_nuniqueå   s
    


r†   ZstdÚvarc                    sF   t  d¡}| d¡}t|ˆ ƒdd�}| ‡ fdd„¡}t ||¡ d S )Nr   rH   r   ©Zddofc                    s   t |  d¡ˆ ƒdd�S )NrH   r   rˆ   r€   r/   r‚   r"   r#   rJ   ó   rK   z&test_methods_std_var.<locals>.<lambda>)rL   r?   r-   r�   r@   r   rA   rƒ   r"   r‚   r#   Útest_methods_std_varî   s
    

r‰   c                  C   sl   t  d¡} |  d¡}|  d¡ ¡ }dd„ }| |¡}t ||¡ dd„ }|  |¡}| d¡}t ||¡ d S )Nr   rH   c                 S   s   |   d¡ ¡ S rG   )r-   r]   r/   r"   r"   r#   r1   þ   s    ztest_apply.<locals>.f_0c                 S   s   |   d¡ dd„ ¡S )NrH   c                 S   s   |   ¡ S ©N©r]   )Úyr"   r"   r#   rJ     rK   z)test_apply.<locals>.f_1.<locals>.<lambda>)r-   r@   r/   r"   r"   r#   r<     s    ztest_apply.<locals>.f_1Úint64)rL   r?   r-   r]   r@   r   rA   Zastype)rN   rX   rD   r1   rE   r<   r"   r"   r#   Ú
test_apply÷   s    




rŽ   c                  C   sª   t dddd�} tdtj t| ƒ¡i| d�}dd„ }| tjd	d�¡ 	|¡}| 
d	¡ 	|¡}t ||¡ |d jtjd	d�d
d� 	|¡}|d  
d	¡ 	|¡}t ||¡ d S )Nz1-1-2015z12-31-15r+   r`   Úcol1©rB   r   c                 S   s   t ddgddgd�}|S )Nr   r   ÚaÚbr   )r   )r0   r   r"   r"   r#   ry     s    z(test_apply_with_mutated_index.<locals>.fÚMF)Z
group_keys)r
   r   rd   re   Zrandrg   r?   r=   rh   r@   r-   r   rA   rM   )r   rC   ry   rD   rE   r"   r"   r#   Útest_apply_with_mutated_index  s     r”   c                     s¦   t j ddg¡} tdddd�}tt dgd ¡ dd	¡|| d
�}dd„ |jD ƒ‰ | 	d¡ 
‡ fdd„¡}td	ddgg tddd	d�t j ddg¡d
�}t ||¡ d S )N)r   r‘   Ú Úone)r   r’   ÚiÚtwoz
2017-01-01Z15Minr   )r5   r   r   r   é   r   ©r   r*   c                 S   s&   i | ]}||d  dkrt jnt j“qS )r   r–   )rd   r]   rI   )Ú.0Úcolr"   r"   r#   Ú
<dictcomp>&  s      z1test_apply_columns_multilevel.<locals>.<dictcomp>ÚHc                    s   ˆ | j  | ƒS rŠ   ©rT   r/   ©Zagg_dictr"   r#   rJ   '  rK   z/test_apply_columns_multilevel.<locals>.<lambda>g        Z1H)r=   rV   rW   r
   r   rd   ÚarrayZreshaper*   r-   r@   r   rA   )ÚcolsÚindrC   rE   rD   r"   r    r#   Útest_apply_columns_multilevel!  s    "ÿýr¤   c               	   C   sÂ   t dddd�} t| dddddgdddddgdœd	�}| d
¡jddd� ¡ }tjddddgtjd�t 	t ddddg¡¡g}tj
j|d
d gd�}tddddgddddgdœ|d�}t ||¡ d S )Nz
2000-01-01rZ   r&   r   r   r   r   )Úcol0r�   )r   rB   r¥   Z1WÚleft)Úlabel©ru   z
1999-12-26z
2000-01-02rR   r�   )r
   r   r?   r-   r]   rd   r¡   r�   r=   r>   rV   Úfrom_arraysr   rA   )r   rC   rE   ÚmiZmindexrD   r"   r"   r#   Ú test_resample_groupby_with_label2  s    &ÿþ ÿr«   c                  C   sŠ   t } tdddgdd�}|  d¡ d¡ ¡ }|jjdks:t‚t 	|jj
d |¡ |  d¡ d¡ ¡ }|jjdksrt‚t 	|jj
d |¡ d S )	Nr   r   r   r   rŸ   rH   r   r   )rL   r   r?   r-   rI   r   Znlevelsrl   r   rm   ÚlevelsZrolling)rC   rD   rE   r"   r"   r#   Útest_consistency_with_windowF  s    r­   c                  C   sn   t tj dd¡tdƒtdddd�d�} |  ¡ }dd	d
g|_| d¡ 	¡ }|  d¡ 	¡ }|j|_t
 ||¡ d S )Nr   r   Zaaaú
2012-01-01r   rt   ©r*   r   r‘   r’   ÚcZ5s)r   rd   re   rf   r   r
   Úcopyr*   r-   r|   r   rA   )rC   Údf2rD   rE   r"   r"   r#   Útest_median_duplicate_columnsS  s    ýr³   c                  C   sˆ   t tdƒtddƒdœtdddd�d�} |  d¡ d	d
„ ¡}tddddgtdddd�d�}t ||¡ |  d¡ dd
„ ¡}t ||¡ d S )Né
   r   )rœ   r�   r®   Z20minrt   r   rž   c                 S   s
   | j  ¡ S rŠ   )rœ   r]   ©r8   r"   r"   r#   rJ   k  rK   z0test_apply_to_one_column_of_df.<locals>.<lambda>r   r   é   é	   r3   c                 S   s   | d   ¡ S )Nrœ   r‹   rµ   r"   r"   r#   rJ   r  rK   )r   rv   r
   r-   r@   r   r   rM   ©rC   rE   rD   r"   r"   r#   Útest_apply_to_one_column_of_dfc  s    þ
 ÿr¹   c                  C   s’   t ddddddddgddddddd	d
gddddddddgdœƒ} t | d ¡| d< |  d¡jddd�}|dg  ¡ }| ddi¡}t ||¡ d S )NZcat_1Zcat_2r&   r   é   r   r3   é   r´   é2   z2019-2-1z
2018-02-03z	2020-3-11z2019-2-2z	2018-12-4z
2020-12-12)ÚcatÚnumr'   r'   r½   ÚYr[   r¾   r]   )	r   r=   r>   r?   r-   r]   ri   r   rA   )rC   Ú	resampledrD   rE   r"   r"   r#   Útest_resample_groupby_aggv  s6    ø
øôÿrÁ   c                  C   sˆ   t dƒ} tdgdgdœt| gdd�d�}| d¡ d	¡d
 }| ddg¡}tddggtjjd| fgddgd�ddgd�}t	 
||¡ d S )Nz2021-02-28 00:00:00ÚbetaéE   )ÚclassÚvaluer'   rŸ   r   rÄ   r“   rÅ   r]   r   r   rR   rš   )r	   r   r   r?   r-   ri   r=   rV   rW   r   rA   )rq   rC   rÀ   rE   rD   r"   r"   r#   Ú"test_resample_groupby_agg_listlikeš  s     ýrÆ   Úkeysr‘   r’   c                 C   s€   t g ddgtg ƒd�}| | ¡jt d¡d� ¡ }t ddgd�j| dd�jtg ƒd	d
�}t| ƒdkrp| d |j	_
t ||¡ d S )Nr‘   r’   r¯   ú00:00:01©Úruler)   F©ÚdropT)Úappendr   r   )r   r   r?   r-   r=   Úto_timedeltarI   r,   rg   r   rT   r   rA   ©rÇ   rC   rE   rD   r"   r"   r#   Ú
test_empty¨  s     ÿ þÿrÐ   ÚconsolidateTFc                 C   sø   t dddd�}td|tdƒddœƒ}td|tdƒd	œƒ}tj||gd
d�}| rV| ¡ }| dg¡jddd� ¡ }tj	j
dgd dgd  t dddgd ¡gddgd�}tdgd dgd  dddgd dgd tjgd  dœ|d�}t ||¡ d S )Nz
2020-01-01é   r+   rt   r   r9   )Úkeyr'   r�   Ú
col_objectr   )rÓ   r'   r�   T)Zignore_indexrÓ   r4   r'   r[   r   z
2020-01-05z
2020-01-12z
2020-01-19r   rR   r   r&   r   )rÓ   r�   rÔ   r   )r
   r   rv   r=   ÚconcatZ_consolidater?   r-   r}   rV   r©   r>   rd   Únanr   rA   )rÑ   ÚdatesZdf1r²   rC   rE   ÚidxrD   r"   r"   r#   Ú.test_resample_groupby_agg_object_dtype_all_nan¸  s*    þûýúrÙ   c                  C   s°   t tddd�ddddddddgddddd	d
ddgdœd�} |  d¡jddd�dg  ¡ }t dddddgitdtdƒfdtdƒfdtdƒfdtdƒfgdd�d�}t ||¡ d S )Nr2   r   ©r5   r   r   r   r%   r&   r   r   r´   r7   )rB   r8   rZ   r'   r[   r9   ç      @g      @g      @g      @ú
2016-01-03ú
2016-01-05ú
2016-01-07©r8   r'   ©rB   rT   r�   )	r   r
   r?   r-   rI   r   r	   r   rA   r¸   r"   r"   r#   Ú'test_groupby_resample_with_list_of_keysÖ  s*    
ýÿ 
ÿ



üùürá   c                 C   s®   t g dddgd�}t |d ¡|d< | d¡}| | ¡jt d¡d� ¡ }t dddgd�j| dd�}t |d ¡|d< |jdd	d	d
�}t| ƒdkrž| d |j	_
t ||¡ d S )Nr‘   r’   r'   r)   rÈ   rÉ   FrË   T)rÍ   rÌ   r   r   )r   r=   r>   r,   r?   r-   rÎ   rI   rg   r   rT   r   rA   rÏ   r"   r"   r#   Útest_resample_no_indexñ  s    
râ   c                  C   s¬   t tt dddg¡dd�d�} |  dddg¡jt d	¡d
� ¡ }t ddddg¡}t tjt	j
ddgt	jd�|gddddgddddggd dgd�d�}tj||tƒ  d� d S )Nz2018-01-01 00:00:00z2018-01-01 12:00:00z2018-01-02 00:00:00r'   rŸ   r   r   r   z06:00:00rÉ   z2018-01-01 06:00:00r¨   r   r   )r¬   ÚcodesrS   )Zcheck_index_type)r   r   r=   r>   r?   r-   rÎ   rI   rV   rd   r¡   Zintpr   rA   r   )rC   rE   r   rD   r"   r"   r#   Útest_resample_no_columns  s0    ÿüÿ"üÿýÿ	rä   c               	   C   s®   t dgd dgd  dgd  dgd  t d¡dœtdddd�d	�} |  d
¡ d¡ ¡ }tdtj	j
dtdƒfdtdƒfdtdƒfdtdƒfgd
d gd�d	�}t ||¡ d S )Nr   r   r   r   r   z31/12/2000 18:00rž   r   r   r   r+   z
2000-12-31z
2001-01-01rR   )r   rd   Úaranger
   r?   r-   r   r   r=   rV   rW   r	   r   rM   r¸   r"   r"   r#   Ú)test_groupby_resample_size_all_index_same   s"    2þ



üùþræ   c               
   C   s´   t ddddddddgddddddddgd	œttd
dd�dd�d�} |  d¡ d¡dg  ¡ }t dddddgitdtd
ƒfdtdƒfdtdƒfdtdƒfgdd�d�}t 	||¡ d S )Nr   r   r   r3   r&   r·   r   r6   ©r8   r9   r2   r   rÚ   r'   rŸ   r�   r8   rZ   r9   ç       @ç      @ç      @rÛ   rÜ   rÝ   rÞ   rß   rà   ©
r   r   r
   r?   r-   rI   r   r	   r   rA   r¸   r"   r"   r#   Ú0test_groupby_resample_on_index_with_list_of_keys6  s0    þ
þû
 
ÿ



üùürì   c                  C   sä   t ddddddddgddddddddgdd	dd
dd
dd
gddddddddgdœttdd
d�dd�d�} |  d¡ d¡ddg  ¡ }t ddddgddddgdœtdtdƒfdtdƒfdtdƒfdtdƒfgdd �d�}t 	||¡ d S )!Nr   r   r   r3   r&   r·   r   r6   r%   r   )r8   Ú	first_valÚ
second_valZ	third_valr2   rÚ   r'   rŸ   r�   r8   rZ   rí   rî   rè   ré   rê   rÛ   g      @g      @)rí   rî   rÜ   rÝ   rÞ   rß   rà   rë   r¸   r"   r"   r#   Ú>test_groupby_resample_on_index_with_list_of_keys_multi_columnsT  s4    ü
þù

þ



üùûrï   c               
   C   sz   t ddddddddgddddddddgd	œttd
dd�dd�d�} tjtdd��  |  d¡ d¡dg  ¡  W 5 Q R X d S )Nr   r   r   r3   r&   r·   r   r6   rç   r2   r   rÚ   r'   rŸ   r�   zColumns not foundra   r8   rZ   Zval_not_in_dataframe)	r   r   r
   rj   rk   ÚKeyErrorr?   r-   rI   )rC   r"   r"   r#   Ú?test_groupby_resample_on_index_with_list_of_keys_missing_columnu  s    þ
þû
rñ   )5Útextwrapr   Únumpyrd   rj   Zpandas.compatr   Zpandas.util._test_decoratorsr   Zpandasr=   r   r   r   r   r	   Zpandas._testingZ_testingr   Zpandas.core.indexes.datetimesr
   rå   rL   r$   rF   rO   rY   r_   rr   rx   ÚmarkZparametrizer„   r†   r‰   rŽ   r”   r¤   r«   r­   r³   r¹   rÁ   rÆ   rÐ   rÙ   rá   râ   rä   ræ   rì   rï   rñ   r"   r"   r"   r#   Ú<module>   s€   (þ
*
)ñþ
		
$


!