o
    ¹i6:  ã                   @   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!ej" #d!g d"¢¡d#d$„ ƒZ$d%d&„ Z%ej" #d!d'd(g¡d)d*„ ƒZ&d+d,„ Z'd-d.„ Z(d/d0„ Z)d1d2„ Z*d3d4„ Z+d5d6„ Z,d7d8„ Z-d9d:„ Z.d;d<„ Z/ej" #d=d>gd>d?gg¡d@dA„ ƒZ0ej" #dBdCdDg¡dEdF„ ƒZ1dGdH„ Z2dS )Ié    )ÚdedentN)Ú
async_mark)Ú	DataFrameÚIndexÚSeriesÚTimedeltaIndexÚ	Timestamp)Ú
Int64Index)Ú
date_rangeé   é   é   é   é   é   é(   )ÚAÚBú1/1/2000Ús©ÚfreqÚperiods©Úindexc              	   Ã   s    ddl m} tdƒ}|  |¡I d H  t d ¡. |dƒ t| j dd¡ƒ W d   ƒ n1 s1w   Y  W d   ƒ d S W d   ƒ d S 1 sIw   Y  d S )Nr   )ÚprovisionalcompleterzZ    import pandas._testing as tm
    s = tm.makeTimeSeries()
    rs = s.resample("D")
    Úignorezrs.r   )	ÚIPython.core.completerr   r   Úrun_codeÚtmÚassert_produces_warningÚlistÚ	CompleterÚcompletions)Úipr   Úcode© r&   úg/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/pandas/tests/resample/test_resampler_grouper.pyÚ"test_tab_complete_ipython6_warning   s   €ÿ
ÿÿ"ÿr(   c                  C   s   g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d	¢g d
¢g
} t | g d¢d}t |j¡|_dd„ }| d¡ |¡}| d¡ d¡ d¡ ¡ }t	 
||¡ t tddddg d¢g d¢dœƒ d¡}dd„ }| d¡ |¡}| d¡ d¡ ¡ }t	 
||¡ d S )N)ú
2010-01-01r   r   )z
2010-01-02r   r   )z
2010-01-05r   r   )z
2010-01-10r   é   )z
2010-01-13r   r   )r)   r   é   )z
2010-01-03r   r   )z
2010-01-04r   r   )z
2010-01-11r   r*   )z
2010-01-14r   r   )ÚdateÚidÚscore©Úcolumnsc                 S   s   |   d¡ d¡ ¡ S )Nr,   ÚD)Ú	set_indexÚresampleÚasfreq©Úxr&   r&   r'   ÚfD   ó   z%test_deferred_with_groupby.<locals>.fr-   r,   r1   ú
2016-01-01é   ÚW)Ústartr   r   )r   r   r   r   )r+   é   r*   r   ©r,   ÚgroupÚvalc                 S   ó   |   d¡ ¡ S )NÚ1D)r3   Úffillr5   r&   r&   r'   r7   S   ó   r?   rB   )r   ÚpdÚto_datetimer,   ÚgroupbyÚapplyr2   r3   r4   r   Úassert_frame_equalr
   rC   )ÚdataÚdfr7   ÚexpectedÚresultr&   r&   r'   Útest_deferred_with_groupby0   s:   öýÿúrN   c                  C   sr   t  d¡} | j dd„ ¡}|  d¡j ¡ }t ||¡ | j d¡ ¡ }t ||¡ |  d¡ ¡ j}t ||¡ d S )Nr   c                 S   rA   ©NÚ2s)r3   Úmeanr5   r&   r&   r'   Ú<lambda>^   ó    ztest_getitem.<locals>.<lambda>rP   )Ú
test_framerG   r   rH   r3   rQ   r   Úassert_series_equal)ÚgrL   rM   r&   r&   r'   Útest_getitem[   s   
rW   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   r9   ©r   r   r-   rB   rX   z
2016-01-02©Únames)r   Úname)r   r
   rG   r3   Úcountr   rE   Ú
MultiIndexÚfrom_tuplesr   r   rU   )rJ   rK   ÚrrM   rL   r&   r&   r'   Útest_getitem_multiplej   s   þúra   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 )NÚaabbbz1-1-2016r+   rY   r   )r-   r,   rJ   r,   r-   Ú2DrJ   ©Úon)	r   r!   r
   r2   rG   r3   Úsumr   rU   )rK   ÚexprM   r&   r&   r'   Ú)test_groupby_resample_on_api_with_getitem€   s   ÿrh   c                  C   sr  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 d   ƒ n1 sWw   Y  td
ƒ}
tj| |
d}| |¡ 	d¡}|||… }| |¡ 	d¡}t ||¡ td
ƒt d¡d  }tj| |d}| |¡ 	d¡}|||… }| |¡ 	d¡}t ||¡ t ||¡ d S )NÚ1399min)z1/1/2000 00:00:00z1/31/2000 00:00z1/15/2000 00:00:00Ú1231min©r   r   r]   zIndex are different©Úmatchr   )r   Úorigini0u  )r
   r   ÚnpÚrandomÚrandnÚlenrE   ÚGrouperrG   ÚaggÚpytestÚraisesÚAssertionErrorr   Úassert_index_equalr   r   rU   Ú	Timedelta)r   r<   ÚendÚmiddleÚrngÚtsÚts2Úsimple_grouperÚcount_tsÚ	count_ts2rn   Úadjusted_grouperÚadjusted_count_tsÚadjusted_count_ts2Úorigin_futureÚadjusted_grouper2Úadjusted2_count_tsÚadjusted2_count_ts2r&   r&   r'   Útest_groupby_with_originŠ   s4   ÿr‰   c                  C   sX   t dddd} ttdƒ| d d¡ ¡ }tg d¢tjg d¢d	d
dd}t ||¡ d S )Nr   r   ÚT©r   r   r   Ú20s)r   r   r   r   r   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]Ú20S)Údtyper   )	r
   r   Úranger3   ÚnearestrE   ÚDatetimeIndexr   rU   )r   rM   rL   r&   r&   r'   Útest_nearest³   s   	õþr’   r7   )ÚfirstÚlastÚmedianÚsemrf   rQ   ÚminÚmaxÚsizer]   r   ÚbfillrC   r4   Úohlcc                    sB   t  d¡}| d¡}t|ˆ ƒƒ }| ‡ fdd„¡}t ||¡ d S )Nr   rP   c                    s   t |  d¡ˆ ƒƒ S rO   ©Úgetattrr3   r5   ©r7   r&   r'   rR   æ   s    ztest_methods.<locals>.<lambda>)rT   rG   r3   r   rH   r   Úassert_equal©r7   rV   r`   rM   rL   r&   rž   r'   Útest_methodsÍ   s
   

r¡   c                  C   s>   t  d¡} |  d¡}|j ¡ }| j dd„ ¡}t ||¡ d S )Nr   rP   c                 S   rA   rO   )r3   Únuniquer5   r&   r&   r'   rR   ï   rS   z&test_methods_nunique.<locals>.<lambda>)rT   rG   r3   r   r¢   rH   r   rU   )rV   r`   rM   rL   r&   r&   r'   Útest_methods_nuniqueê   s
   


r£   ÚstdÚvarc                    sF   t  d¡}| d¡}t|ˆ ƒdd}| ‡ fdd„¡}t ||¡ d S )Nr   rP   r   ©Úddofc                    s   t |  d¡ˆ ƒddS )NrP   r   r¦   rœ   r5   rž   r&   r'   rR   ø   s    z&test_methods_std_var.<locals>.<lambda>)rT   rG   r3   r   rH   r   rI   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   rP   c                 S   rA   rO   )r3   rf   r5   r&   r&   r'   r7     rD   ztest_apply.<locals>.fc                 S   s   |   d¡ dd„ ¡S )NrP   c                 S   s   |   ¡ S ©N©rf   )Úyr&   r&   r'   rR     s    z'test_apply.<locals>.f.<locals>.<lambda>)r3   rH   r5   r&   r&   r'   r7   
  r8   Úint64)rT   rG   r3   rf   rH   r   rI   Úastype)rV   r`   rL   r7   rM   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-15r1   rk   Úcol1©rJ   r   c                 S   s   t ddgddgd}|S )Nr   r   ÚaÚbr   )r   )r6   r   r&   r&   r'   r7     s   z(test_apply_with_mutated_index.<locals>.fÚM)r
   r   ro   rp   Úrandrr   rG   rE   rs   rH   r3   r   rI   rU   )r   rK   r7   rL   rM   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-01Ú15Minr   )r<   r   r   r   é   r   ©r   r0   c                 S   s&   i | ]}||d  dkrt jnt j“qS )r   r·   )ro   rf   rQ   )Ú.0Úcolr&   r&   r'   Ú
<dictcomp>,  s   & z1test_apply_columns_multilevel.<locals>.<dictcomp>ÚHc                    s   ˆ | j  | ƒS r©   ©r\   r5   ©Úagg_dictr&   r'   rR   -  rS   z/test_apply_columns_multilevel.<locals>.<lambda>g        Ú1H)rE   r^   r_   r
   r   ro   ÚarrayÚreshaper0   r3   rH   r   rI   )ÚcolsÚindrK   rM   rL   r&   rÂ   r'   Útest_apply_columns_multilevel'  s   "ÿýrÉ   c                  C   s    t dddd} t| g d¢g d¢dœd}| d	¡jd
dd ¡ }t g d¢¡t t g d¢¡¡g}tj	j
|d	d gd}tg d¢g d¢dœ|d}t ||¡ d S )Nz
2000-01-01rc   r+   r   )r   r   r   r   r   )r   r   r   r   r   )Úcol0r¯   )r   rJ   rÊ   Ú1WÚleft)Úlabel)r   r   r   r   )z
1999-12-26ú
2000-01-02rÎ   rÎ   rZ   )r   r   r   r   )r   r   r   r   r°   )r
   r   rG   r3   rf   ro   rÅ   rE   rF   r^   Úfrom_arraysr   rI   )r   rK   rM   ÚmiÚmindexrL   r&   r&   r'   Ú test_resample_groupby_with_label8  s   ÿþÿrÒ   c                  C   sˆ   t } tg d¢dd}|  d¡ d¡ ¡ }|jjdksJ ‚t |jj	d |¡ |  d¡ 
d¡ ¡ }|jjdks8J ‚t |jj	d |¡ d S )N)r   r   r   r   rÁ   rP   r   r   r   )rT   r	   rG   r3   rQ   r   Únlevelsr   rx   ÚlevelsÚrolling)rK   rL   rM   r&   r&   r'   Útest_consistency_with_windowL  s   rÖ   c                  C   sl   t tj dd¡tdƒtddddd} |  ¡ }g d¢|_| d	¡ 	¡ }|  d	¡ 	¡ }|j|_t
 ||¡ d S )
Nr   r   Úaaaú
2012-01-01r   r‹   ©r0   r   )r±   r²   ÚcÚ5s)r   ro   rp   rq   r!   r
   Úcopyr0   r3   r•   r   rI   )rK   Údf2rL   rM   r&   r&   r'   Útest_median_duplicate_columnsZ  s   ý
rÞ   c                  C   s„   t tdƒtddƒdœtddddd} |  d¡ d	d
„ ¡}tg d¢tddddd}t ||¡ |  d¡ dd
„ ¡}t ||¡ d S )Né
   r   )r¾   r¯   rØ   Ú20minr‹   r   rÀ   c                 S   s
   | j  ¡ S r©   )r¾   rf   ©r?   r&   r&   r'   rR   r  s   
 z0test_apply_to_one_column_of_df.<locals>.<lambda>)r   r   é   é	   r:   c                 S   s   | d   ¡ S )Nr¾   rª   rá   r&   r&   r'   rR   y  s    )r   r   r
   r3   rH   r   r   rU   ©rK   rM   rL   r&   r&   r'   Útest_apply_to_one_column_of_dfj  s   þÿrå   c                  C   sš   t g d¢g d¢g d¢dœƒ} t | d ¡| d< |  d¡jddd}d	}tjt|d
 | ¡ }W d   ƒ n1 s9w   Y  | 	ddi¡}t 
||¡ d S )N)Úcat_1ræ   Úcat_2ræ   rç   ræ   rç   ræ   )r+   r   é   r   r:   é   rß   é2   )z2019-2-1z
2018-02-03ú	2020-3-11ú2019-2-2rì   z	2018-12-4rë   z
2020-12-12)ÚcatÚnumr,   r,   rí   ÚYrd   z!The default value of numeric_onlyrl   rî   rf   )r   rE   rF   rG   r3   r   r    ÚFutureWarningrf   rt   rI   )rK   Ú	resampledÚmsgrL   rM   r&   r&   r'   Útest_resample_groupby_agg}  s   
ôÿ
ÿ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÷   rf   r™   r   rZ   r¼   )r   r   r   rG   r3   rt   rE   r^   r_   r   rI   )r}   rK   rñ   rM   rL   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r1| d
 |j	_
t ||¡ d S )Nr±   r²   rÙ   z00:00:01)Úruler/   F)Údropr   r   )r   r   rG   r3   rE   Úto_timedeltarQ   r2   rr   r   r\   r   rI   )rù   rK   rM   rL   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}| r+| ¡ }| dg¡jddd ¡ }tj	j
dgd dgd  t g d¢d ¡gddgd}tdgd dgd  g d¢d dgd tjgd  dœ|d}t ||¡ d S )Nz
2020-01-01é   r1   r‹   r   r@   )Úkeyr,   r¯   Ú
col_objectr   )r   r,   r¯   T)Úignore_indexr   r;   r,   rd   r   )z
2020-01-05z
2020-01-12z
2020-01-19r   rZ   )r   r+   r   )r   r¯   r  r   )r
   r   r   rE   ÚconcatÚ_consolidaterG   r3   r—   r^   rÏ   rF   ro   Únanr   rI   )rþ   ÚdatesÚdf1rÝ   rK   rM   ÚidxrL   r&   r&   r'   Ú.test_resample_groupby_agg_object_dtype_all_nan½  s*   þû
ýúr	  c               	   C   s”   t tdddg d¢g d¢dœd} |  d¡jd	d
ddg  ¡ }t dg d¢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 )Nr9   r   )r<   r   )r   r   r   r   r   r   r   r   )r   r*   r+   r   r   rß   r+   r   r>   )rJ   r?   rc   r,   rd   r@   )g      @g      @g      @g      @r   z
2016-01-03r   z
2016-01-05z
2016-01-07)r?   r,   )rJ   r\   r°   )	r   r
   rG   r3   rQ   r   r   r   rI   rä   r&   r&   r'   Ú'test_groupby_resample_with_list_of_keysÛ  s(   
ýÿÿ



üùür
  )3Útextwrapr   Únumpyro   ru   Úpandas.util._test_decoratorsÚutilÚ_test_decoratorsÚtdr   ÚpandasrE   r   r   r   r   r   Úpandas._testingÚ_testingr   Úpandas.core.apir	   Úpandas.core.indexes.datetimesr
   ÚarangerT   Úcheck_file_leaksr(   rN   rW   ra   rh   r‰   r’   ÚmarkÚparametrizer¡   r£   r¨   r®   rµ   rÉ   rÒ   rÖ   rÞ   rå   ró   rø   rý   r	  r
  r&   r&   r&   r'   Ú<module>   sZ    (þ+
)þ
		
&

