U
    Ãçbl8  ã                   @   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	 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 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	ƒ ej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%d)d*„ Z&d+d,„ Z'd-d.„ Z(d/d0„ Z)d1d2„ Z*d3d4„ Z+ej, -d5d6gd6d7gg¡d8d9„ ƒZ.ej, -d:d;d<g¡d=d>„ ƒZ/dS )?é    )ÚdedentN)Ú
async_mark)Ú	DataFrameÚIndexÚSeriesÚTimedeltaIndexÚ	Timestamp)Ú
Int64Index)Ú
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!   úP/tmp/pip-unpacked-wheel-xg7vt6ln/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"   ÚfD   s    z%test_deferred_with_groupby.<locals>.fr*   ú
2016-01-01é   ÚW)Ústartr   r   é   )r&   ÚgroupÚvalc                 S   s   |   d¡ ¡ S )NÚ1D)r,   Úffillr.   r!   r!   r"   r0   S   s    r6   r8   )r   ÚpdÚto_datetimer&   ÚgroupbyÚapplyr+   r,   r-   r   Úassert_frame_equalr
   r9   )ÚdataÚdfr0   ÚexpectedÚresultr!   r!   r"   Útest_deferred_with_groupby0   s:    ö

ýÿúrC   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>rE   )Ú
test_framer<   r   r=   r,   rF   r   Úassert_series_equal)ÚgrA   rB   r!   r!   r"   Útest_getitem[   s    
rL   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   r1   ©r   r   r'   r8   rM   z
2016-01-02©Únames)r   Úname)r   r
   r<   r,   Úcountr   r:   Ú
MultiIndexÚfrom_tuplesr   r   rJ   )r?   r@   ÚrrB   rA   r!   r!   r"   Útest_getitem_multiplej   s    þúrV   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%   rN   r   )r'   r&   r?   r&   r'   Ú2Dr?   ©Úon)	r   r   r
   r+   r<   r,   Úsumr   rJ   )r@   ÚexprB   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   rR   zIndex are different)Úmatchr   )r   Úorigini0u  )r
   r   ÚnpÚrandomÚrandnÚlenr:   ÚGrouperr<   ÚaggÚpytestZraisesÚAssertionErrorr   Úassert_index_equalr   r   rJ   Z	Timedelta)r   r4   ÚendZmiddleÚrngÚtsZts2Zsimple_grouperZcount_tsZ	count_ts2r_   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    rl   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)Zdtyper   )	r
   r   Úranger,   Únearestr:   ZDatetimeIndexr   rJ   )r   rB   rA   r!   r!   r"   Útest_nearest³   s$    ù	õþrq   c                     s|  t  d¡} |  d¡}dD ].‰ t|ˆ ƒƒ }|  ‡ fdd„¡}t ||¡ qdD ].‰ t|ˆ ƒƒ }|  ‡ fdd„¡}t ||¡ qLdD ].‰ t|ˆ ƒƒ }|  ‡ fd	d„¡}t ||¡ q€d
D ]2‰ t|jˆ ƒƒ }| j ‡ fdd„¡}t ||¡ q´dD ].‰ t|ˆ ƒƒ }|  ‡ fdd„¡}t ||¡ qì| 	¡ }|  dd„ ¡}t ||¡ dD ]4‰ t|ˆ ƒdd}|  ‡ fdd„¡}t ||¡ qBd S )Nr   rE   )ÚfirstÚlastÚmedianZsemrZ   rF   ÚminÚmaxc                    s   t |  d¡ˆ ƒƒ S rD   ©Úgetattrr,   r.   ©r0   r!   r"   rG   Ó   rH   ztest_methods.<locals>.<lambda>)Úsizec                    s   t |  d¡ˆ ƒƒ S rD   rw   r.   ry   r!   r"   rG   Ø   rH   )rR   c                    s   t |  d¡ˆ ƒƒ S rD   rw   r.   ry   r!   r"   rG   Ý   rH   )Znuniquec                    s   t |  d¡ˆ ƒƒ S rD   rw   r.   ry   r!   r"   rG   ã   rH   )rp   Zbfillr9   r-   c                    s   t |  d¡ˆ ƒƒ S rD   rw   r.   ry   r!   r"   rG   è   rH   c                 S   s   |   d¡ ¡ S rD   )r,   Úohlcr.   r!   r!   r"   rG   ì   rH   )ZstdÚvarr   ©Zddofc                    s   t |  d¡ˆ ƒddS )NrE   r   r}   rw   r.   ry   r!   r"   rG   ñ   rH   )
rI   r<   r,   rx   r=   r   r>   rJ   r   r{   )rK   rU   rB   rA   r!   ry   r"   Útest_methodsÍ   s:    

r~   c                  C   sl   t  d¡} |  d¡}|  d¡ ¡ }dd„ }| |¡}t ||¡ dd„ }|  |¡}| d¡}t ||¡ d S )Nr   rE   c                 S   s   |   d¡ ¡ S rD   )r,   rZ   r.   r!   r!   r"   r0   ý   s    ztest_apply.<locals>.fc                 S   s   |   d¡ dd„ ¡S )NrE   c                 S   s   |   ¡ S ©N©rZ   )Úyr!   r!   r"   rG     rH   z'test_apply.<locals>.f.<locals>.<lambda>)r,   r=   r.   r!   r!   r"   r0     s    Zint64)rI   r<   r,   rZ   r=   r   r>   Zastype)rK   rU   rA   r0   rB   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  tjd	d¡ 	|¡}|d  
d	¡ 	|¡}t ||¡ d S )
Nz1-1-2015z12-31-15r*   r]   Úcol1©r?   r   c                 S   s   t ddgddgd}|S )Nr   r   ÚaÚbr   )r   )r/   r   r!   r!   r"   r0     s    z(test_apply_with_mutated_index.<locals>.fÚM)r
   r   r`   ra   Zrandrc   r<   r:   rd   r=   r,   r   r>   rJ   )r   r@   r0   rA   rB   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†   ÚiZtwoz
2017-01-01Z15Minr   )r4   r   r   r   é   r   ©r   r)   c                 S   s&   i | ]}||d  dkrt jnt j“qS )r   rŠ   )r`   rZ   rF   )Ú.0Úcolr!   r!   r"   Ú
<dictcomp>%  s      z1test_apply_columns_multilevel.<locals>.<dictcomp>ÚHc                    s   ˆ | j  | ƒS r   ©rQ   r.   ©Zagg_dictr!   r"   rG   &  rH   z/test_apply_columns_multilevel.<locals>.<lambda>g        Z1H)r:   rS   rT   r
   r   r`   ÚarrayZreshaper)   r,   r=   r   r>   )ÚcolsÚindr@   rB   rA   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 ddddg¡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-01rW   r%   r   r   r   r   )Úcol0rƒ   )r   r?   r˜   Z1WÚleft)Úlabelz
1999-12-26z
2000-01-02rO   r„   )r
   r   r<   r,   rZ   r`   r”   r:   r;   rS   Úfrom_arraysr   r>   )r   r@   rB   ÚmiZmindexrA   r!   r!   r"   Ú test_resample_groupby_with_label1  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’   rE   r   r   )rI   r	   r<   r,   rF   r   Znlevelsrg   r   rh   ÚlevelsZrolling)r@   rA   rB   r!   r!   r"   Útest_consistency_with_windowE  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   rn   ©r)   r   r…   r†   ÚcZ5s)r   r`   ra   rb   r   r
   Úcopyr)   r,   rt   r   r>   )r@   Údf2rA   rB   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20minrn   r   r‘   c                 S   s
   | j  ¡ S r   )r   rZ   ©r6   r!   r!   r"   rG   k  rH   z0test_apply_to_one_column_of_df.<locals>.<lambda>r   r   é   é	   r2   c                 S   s   | d   ¡ S )Nr   r€   r§   r!   r!   r"   rG   r  rH   )r   ro   r
   r,   r=   r   r   rJ   )r@   rB   rA   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di¡}t ||¡ d S )NZcat_1Zcat_2r%   r   é   r   r2   é   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®   ÚYrX   r¯   rZ   )	r   r:   r;   r<   r,   rZ   re   r   r>   )r@   Ú	resampledrA   rB   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¶   rZ   rz   r   rO   r   )r   r   r   r<   r,   re   r:   rS   rT   r   r>   )rk   r@   r±   rB   rA   r!   r!   r"   Ú"test_resample_groupby_agg_listlikeš  s     ýr·   Úkeysr…   r†   c                 C   sr   t g ddgtg ƒd}| | ¡jt d¡d ¡ }t ddgdj| dd}t| ƒd	krb| d
 |j	_
t ||¡ d S )Nr…   r†   r¡   z00:00:01)Zruler(   F)Zdropr   r   )r   r   r<   r,   r:   Zto_timedeltarF   r+   rc   r   rQ   r   r>   )r¸   r@   rB   rA   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  t d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*   rn   r   r7   )Úkeyr&   rƒ   Z
col_objectr   )r¼   r&   rƒ   T)Zignore_indexr¼   r3   r&   rX   r   z
2020-01-05z
2020-01-12z
2020-01-19r   rO   z
2020-01-06z
2020-01-13r   r%   r   r   )r
   r   ro   r:   ÚconcatZ_consolidater<   r,   ru   rS   r›   r;   r`   Únanr   r>   )rº   ÚdatesZdf1r¤   r@   rB   ÚidxrA   r!   r!   r"   Ú.test_resample_groupby_agg_object_dtype_all_nan´  s,    þûüù	rÁ   )0Útextwrapr   Znumpyr`   rf   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsÚtdr   Zpandasr:   r   r   r   r   r   Zpandas._testingZ_testingr   Zpandas.core.apir	   Zpandas.core.indexes.datetimesr
   ZarangerI   Zcheck_file_leaksr#   rC   rL   rV   r\   rl   rq   r~   r‚   rˆ   r—   r   rŸ   r¥   rª   r²   r·   ÚmarkZparametrizer¹   rÁ   r!   r!   r!   r"   Ú<module>   sH   (þ+
)($
