U
    fª/eK6  ã                   @   sx  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 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.d/„ Z&d0d1„ Z'ej( )d2d3gd3d4gg¡d5d6„ ƒZ*ej( )d7d8d9g¡d:d;„ ƒZ+dS )<é    )ÚdedentN)Ú
async_mark)Ú	DataFrameÚ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   úP/tmp/pip-unpacked-wheel-tiezk1ph/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    ÚfB   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    r.   Q   s    r4   r6   )r   ÚpdÚto_datetimer$   ÚgroupbyÚapplyr)   r*   r+   r   Úassert_frame_equalr   r7   )ÚdataÚdfr.   ÚexpectedÚresultr   r   r    Útest_deferred_with_groupby.   s:    ö

ýÿúrA   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>rC   )Ú
test_framer:   r   r;   r*   rD   r   Úassert_series_equal)Úgr?   r@   r   r   r    Útest_getitemY   s    
rJ   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   r/   ©r   r   r%   r6   rK   z
2016-01-02©Únames)r   Úname)r   r   r:   r*   Úcountr   r8   Ú
MultiIndexÚfrom_tuplesr   r   rH   )r=   r>   Úrr@   r?   r   r   r    Útest_getitem_multipleh   s    þúrT   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#   rL   r	   )r%   r$   r=   r$   r%   Ú2Dr=   ©Úon)	r   r   r   r)   r:   r*   Úsumr   rH   )r>   Úexpr@   r   r   r    Ú)test_groupby_resample_on_api_with_getitem~   s    ÿrZ   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   rP   zIndex are different)Úmatchr   )r   Úorigini0u  )r   r   ÚnpÚrandomÚrandnÚlenr8   ÚGrouperr:   ÚaggÚpytestZraisesÚAssertionErrorr   Úassert_index_equalr   r   rH   Z	Timedelta)r   r2   Ú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    rj   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*   Únearestr8   ZDatetimeIndexr   rH   )r   r@   r?   r   r   r    Útest_nearest±   s$    ù	õþro   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   rC   )ÚfirstÚlastÚmedianZsemrX   rD   ÚminÚmaxc                    s   t |  d¡ˆ ƒƒ S rB   ©Úgetattrr*   r,   ©r.   r   r    rE   Ñ   rF   ztest_methods.<locals>.<lambda>)Úsizec                    s   t |  d¡ˆ ƒƒ S rB   ru   r,   rw   r   r    rE   Ö   rF   )rP   c                    s   t |  d¡ˆ ƒƒ S rB   ru   r,   rw   r   r    rE   Û   rF   )Znuniquec                    s   t |  d¡ˆ ƒƒ S rB   ru   r,   rw   r   r    rE   á   rF   )rn   Zbackfillr7   r+   c                    s   t |  d¡ˆ ƒƒ S rB   ru   r,   rw   r   r    rE   æ   rF   c                 S   s   |   d¡ ¡ S rB   )r*   Úohlcr,   r   r   r    rE   ê   rF   )ZstdÚvarr	   ©Zddofc                    s   t |  d¡ˆ ƒddS )NrC   r	   r{   ru   r,   rw   r   r    rE   ï   rF   )
rG   r:   r*   rv   r;   r   r<   rH   r   ry   )rI   rS   r@   r?   r   rw   r    Útest_methodsË   s:    

r|   c                  C   sl   t  d¡} |  d¡}|  d¡ ¡ }dd„ }| |¡}t ||¡ dd„ }|  |¡}| d¡}t ||¡ d S )Nr   rC   c                 S   s   |   d¡ ¡ S rB   )r*   rX   r,   r   r   r    r.   û   s    ztest_apply.<locals>.fc                 S   s   |   d¡ dd„ ¡S )NrC   c                 S   s   |   ¡ S ©N©rX   )Úyr   r   r    rE     rF   z'test_apply.<locals>.f.<locals>.<lambda>)r*   r;   r,   r   r   r    r.     s    Zint64)rG   r:   r*   rX   r;   r   r<   Zastype)rI   rS   r?   r.   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  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    r.     s    z(test_apply_with_mutated_index.<locals>.fÚM)r   r   r^   r_   Zrandra   r:   r8   rb   r;   r*   r   r<   rH   )r   r>   r.   r?   r@   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   )r2   r   r   r   é   r   )r   r'   c                 S   s&   i | ]}||d  dkrt jnt j“qS )r   rˆ   )r^   rX   rD   )Ú.0Úcolr   r   r    Ú
<dictcomp>#  s      z1test_apply_columns_multilevel.<locals>.<dictcomp>ÚHc                    s   ˆ | j  | ƒS r}   ©rO   r,   ©Zagg_dictr   r    rE   $  rF   z/test_apply_columns_multilevel.<locals>.<lambda>g        Z1H)r8   rQ   rR   r   r   r^   ÚarrayZreshaper'   r*   r;   r   r<   )ÚcolsÚindr>   r@   r?   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-01rU   r#   r   r   r	   r   )Úcol0r   )r   r=   r•   Z1WÚleft)Úlabelz
1999-12-26z
2000-01-02rM   r‚   )r   r   r:   r*   rX   r^   r‘   r8   r9   rQ   Úfrom_arraysr   r<   )r   r>   r@   ÚmiZmindexr?   r   r   r    Ú test_resample_groupby_with_label/  s    &ÿþ ÿrš   c                  C   sŒ   t } tjdddgdd}|  d¡ d¡ ¡ }|jjdks<t‚t	 
|jjd |¡ |  d¡ d¡ ¡ }|jjdkstt‚t	 
|jjd |¡ d S )	Nr	   r   r   r   r   rC   r   r
   )rG   r8   Z
Int64Indexr:   r*   rD   r   Znlevelsre   r   rf   ÚlevelsZrolling)r>   r?   r@   r   r   r    Útest_consistency_with_windowC  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   rl   ©r'   r   rƒ   r„   ÚcZ5s)r   r^   r_   r`   r   r   Úcopyr'   r*   rr   r   r<   )r>   Údf2r?   r@   r   r   r    Útest_median_duplicate_columnsQ  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20minrl   r   rŽ   c                 S   s
   | j  ¡ S r}   )rŒ   rX   ©r4   r   r   r    rE   i  rF   z0test_apply_to_one_column_of_df.<locals>.<lambda>r   r   é   é	   r0   c                 S   s   | d   ¡ S )NrŒ   r~   r¤   r   r   r    rE   p  rF   )r   rm   r   r*   r;   r   r   rH   )r>   r@   r?   r   r   r    Útest_apply_to_one_column_of_dfa  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   r0   é   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«   ÚYrV   r¬   rX   )	r   r8   r9   r:   r*   rX   rc   r   r<   )r>   Z	resampledr?   r@   r   r   r    Útest_resample_groupby_aggt  s6    ø
øôÿ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*   r8   Zto_timedeltarD   r)   ra   r   rO   r   r<   )r¯   r>   r@   r?   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(   rl   r   r5   )Úkeyr$   r   Z
col_objectr   )r³   r$   r   T)Zignore_indexr³   r1   r$   rV   r   z
2020-01-05z
2020-01-12z
2020-01-19r   rM   z
2020-01-06z
2020-01-13r   r#   r   r   )r   r   rm   r8   ÚconcatZ_consolidater:   r*   rs   rQ   r˜   r9   r^   Únanr   r<   )r±   ÚdatesZdf1r¡   r>   r@   Úidxr?   r   r   r    Ú.test_resample_groupby_agg_object_dtype_all_nan¤  s,    þûüù	r¸   ),Útextwrapr   Znumpyr^   rd   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsÚtdr   Zpandasr8   r   r   r   r   Zpandas._testingZ_testingr   Zpandas.core.indexes.datetimesr   ZarangerG   Zcheck_file_leaksr!   rA   rJ   rT   rZ   rj   ro   r|   r€   r†   r”   rš   rœ   r¢   r§   r®   ÚmarkZparametrizer°   r¸   r   r   r   r    Ú<module>   sD   (þ+
)($
