o
    ájhýG  ã                   @   sè  d dl mZ d dlZd dl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 g d!¢¡d"d#„ ƒZd$d%„ Zej d d&d'g¡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<d=gd=d>gg¡d?d@„ ƒZ*ej dAdBdCg¡dDdE„ ƒZ+dFdG„ Z,ej d<d=gd=d>gg¡dHdI„ ƒZ-dJdK„ Z.dLdM„ Z/dNdO„ Z0dPdQ„ Z1dS )Ré    )ÚdedentN)Ú
async_mark)Ú	DataFrameÚIndexÚSeriesÚTimedeltaIndexÚ	Timestamp)Ú
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&   úm/var/www/html/smartRegister/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'   Úf_0@   ó   z'test_deferred_with_groupby.<locals>.f_0r-   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'   Úf_1O   ó   z'test_deferred_with_groupby.<locals>.f_1r?   rB   )r   ÚpdÚto_datetimer,   ÚgroupbyÚapplyr2   r3   r4   r   Úassert_frame_equalr	   rC   )ÚdataÚdfr7   ÚexpectedÚresultrD   r&   r&   r'   Útest_deferred_with_groupby-   s:   öýÿúrO   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   ó    ztest_getitem.<locals>.<lambda>rQ   )Ú
test_framerH   r   rI   r3   rR   r   Úassert_series_equal)ÚgrM   rN   r&   r&   r'   Útest_getitemW   s   
rX   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   rY   z
2016-01-02©Únames)r   Úname)r   r	   rH   r3   Úcountr   rF   Ú
MultiIndexÚfrom_tuplesr   r   rV   )rK   rL   ÚrrN   rM   r&   r&   r'   Útest_getitem_multiplef   s   þúrb   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+   rZ   r
   )r-   r,   rK   r,   r-   Ú2DrK   ©Úon)	r   r!   r	   r2   rH   r3   Úsumr   rV   )rL   ÚexprN   r&   r&   r'   Ú)test_groupby_resample_on_api_with_getitem{   s   ÿri   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ÚlenrF   ÚGrouperrH   ÚaggÚpytestÚraisesÚAssertionErrorr   Úassert_index_equalr   r   rV   Ú	Timedelta)r   r<   ÚendÚmiddleÚrngÚtsÚts2Úsimple_grouperÚcount_tsÚ	count_ts2ro   Ú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   ÚnearestrF   ÚDatetimeIndexr   rV   )r   rN   rM   r&   r&   r'   Útest_nearest®   s   	õþr“   Úf)ÚfirstÚlastÚmedianÚsemrg   rR   ÚminÚmaxÚsizer^   r‘   ÚbfillrC   r4   Úohlcc                    sB   t  d¡}| d¡}t|ˆ ƒƒ }| ‡ fdd„¡}t ||¡ d S )Nr   rQ   c                    s   t |  d¡ˆ ƒƒ S rP   ©Úgetattrr3   r5   ©r”   r&   r'   rS   à   s    ztest_methods.<locals>.<lambda>)rU   rH   r3   rŸ   rI   r   Úassert_equal©r”   rW   ra   rN   rM   r&   r    r'   Útest_methodsÇ   s
   

r£   c                  C   s>   t  d¡} |  d¡}|j ¡ }| j dd„ ¡}t ||¡ d S )Nr   rQ   c                 S   rA   rP   )r3   Únuniquer5   r&   r&   r'   rS   é   rT   z&test_methods_nunique.<locals>.<lambda>)rU   rH   r3   r   r¤   rI   r   rV   )rW   ra   rN   rM   r&   r&   r'   Útest_methods_nuniqueä   s
   


r¥   ÚstdÚvarc                    sF   t  d¡}| d¡}t|ˆ ƒdd}| ‡ fdd„¡}t ||¡ d S )Nr   rQ   r
   ©Úddofc                    s   t |  d¡ˆ ƒddS )NrQ   r
   r¨   rž   r5   r    r&   r'   rS   ò   s    z&test_methods_std_var.<locals>.<lambda>)rU   rH   r3   rŸ   rI   r   rJ   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   rQ   c                 S   rA   rP   )r3   rg   r5   r&   r&   r'   r7   ý   rE   ztest_apply.<locals>.f_0c                 S   s   |   d¡ dd„ ¡S )NrQ   c                 S   s   |   ¡ S ©N©rg   )Úyr&   r&   r'   rS     s    z)test_apply.<locals>.f_1.<locals>.<lambda>)r3   rI   r5   r&   r&   r'   rD     r8   ztest_apply.<locals>.f_1Úint64)rU   rH   r3   rg   rI   r   rJ   Úastype)rW   ra   rM   r7   rN   rD   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-15r1   rl   Úcol1©rK   r   c                 S   s   t ddgddgd}|S )Nr
   r   ÚaÚbr   )r   )r6   r   r&   r&   r'   r”     s   z(test_apply_with_mutated_index.<locals>.fÚMF)Ú
group_keys)r	   r   rp   rq   Úrandrs   rH   rF   rt   rI   r3   r   rJ   rV   )r   rL   r”   rM   rN   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º   )rp   rg   rR   )Ú.0Úcolr&   r&   r'   Ú
<dictcomp>%  s   & z1test_apply_columns_multilevel.<locals>.<dictcomp>ÚHc                    s   ˆ | j  | ƒS r«   ©r]   r5   ©Úagg_dictr&   r'   rS   &  rT   z/test_apply_columns_multilevel.<locals>.<lambda>g        Ú1H)rF   r_   r`   r	   r   rp   ÚarrayÚreshaper0   r3   rI   r   rJ   )ÚcolsÚindrL   rN   rM   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jg d¢tj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-01rd   r+   r   )r   r   r
   r
   r   )r
   r
   r
   r
   r
   )Úcol0r±   )r   rK   rÍ   Ú1WÚleft)Úlabel)r   r   r
   r   )r   )z
1999-12-26ú
2000-01-02rÑ   rÑ   r[   )r   r   r   r   )r
   r
   r   r
   r²   )r	   r   rH   r3   rg   rp   rÈ   r®   rF   rG   r_   Úfrom_arraysr   rJ   )r   rL   rN   ÚmiÚmindexrM   r&   r&   r'   Ú test_resample_groupby_with_label1  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Ä   rQ   r   r   r   )rU   r   rH   r3   rR   r   Únlevelsr   ry   ÚlevelsÚrolling)rL   rM   rN   r&   r&   r'   Útest_consistency_with_windowE  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   rp   rq   rr   r!   r	   Úcopyr0   r3   r—   r   rJ   )rL   Údf2rM   rN   r&   r&   r'   Útest_median_duplicate_columnsR  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Á   rg   ©r?   r&   r&   r'   rS   j  s   
 z0test_apply_to_one_column_of_df.<locals>.<lambda>)r   r   é   é	   r:   c                 S   s   | d   ¡ S )NrÁ   r¬   rä   r&   r&   r'   rS   q  s    )r   r   r	   r3   rI   r   r   rV   ©rL   rN   rM   r&   r&   r'   Útest_apply_to_one_column_of_dfb  s   þÿrè   c                  C   sn   t g d¢g d¢g d¢dœƒ} t | d ¡| d< |  d¡jddd}|d	g  ¡ }| 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ð   ÚYre   rñ   rg   )	r   rF   rG   rH   r3   rg   ru   r   rJ   )rL   Ú	resampledrM   rN   r&   r&   r'   Útest_resample_groupby_aggu  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ø   rg   r›   r
   r[   r¿   )r   r   r   rH   r3   ru   rF   r_   r`   r   rJ   )r~   rL   ró   rN   rM   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r8| d |j	_
t ||¡ d S )Nr³   r´   rÜ   ú00:00:01©Úruler/   F©ÚdropT)Úappendr
   r   )r   r   rH   r3   rF   Úto_timedeltarR   r2   rs   r   r]   r   rJ   ©rú   rL   rN   rM   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,   re   r   )z
2020-01-05z
2020-01-12z
2020-01-19r   r[   )r   r+   r   )r  r±   r  r   )r	   r   r   rF   ÚconcatÚ_consolidaterH   r3   r™   r_   rÒ   rG   rp   Únanr   rJ   )r  ÚdatesÚdf1rà   rL   rN   ÚidxrM   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>   )rK   r?   rd   r,   re   r@   )ç      @g      @g      @g      @r   ú
2016-01-03r
   ú
2016-01-05ú
2016-01-07©r?   r,   ©rK   r]   r²   )	r   r	   rH   r3   rR   r   r   r   rJ   rç   r&   r&   r'   Ú'test_groupby_resample_with_list_of_keysÕ  s(   
ýÿÿ



üùür  c                 C   sª   t g g d¢d}t |d ¡|d< | d¡}| | ¡jt d¡d ¡ }t g d¢dj| dd}t |d ¡|d< |jdddd	}t| ƒd
krM| d |j	_
t ||¡ d S )N)r³   r´   r,   r/   r,   rû   rü   Frþ   T)r   rÿ   r
   r   )r   rF   rG   r2   rH   r3   r  rR   rs   r   r]   r   rJ   r  r&   r&   r'   Útest_resample_empty_Dataframeð  s   
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   r1   z
2000-12-31z
2001-01-01r[   )r   rp   Úaranger	   rH   r3   r›   r   rF   r_   r`   r   r   rV   rç   r&   r&   r'   Ú)test_groupby_resample_size_all_index_same   s"   2þ



üùþr  c               	   C   s˜   t g d¢g d¢dœttddddd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 )Nr  ©r   r
   r:   r
   r+   ræ   r   r=   ©r?   r@   r9   r   r  r,   rÄ   r²   r?   rd   r@   ©g       @g      @g      @r  r   r  r
   r  r  r  r  ©
r   r   r	   rH   r3   rR   r   r   r   rJ   rç   r&   r&   r'   Ú0test_groupby_resample_on_index_with_list_of_keys  s.   þ
þû
ÿ



üùür   c               	   C   s¬   t g d¢g d¢g d¢g d¢dœttdddd	d
d} |  d¡ d¡ddg  ¡ }t g d¢g d¢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   r*   r
   r   r   r   r
   r   )r
   r:   r
   r:   r   r
   r   r+   )r?   Ú	first_valÚ
second_valÚ	third_valr9   r   r  r,   rÄ   r²   r?   rd   r!  r"  r  )ç      @r$  g      @r$  )r!  r"  r   r  r
   r  r  r  r  r  rç   r&   r&   r'   Ú>test_groupby_resample_on_index_with_list_of_keys_multi_columns4  s4   ü
þùþ



üùûr%  c                  C   sx   t g d¢g d¢dœttdddddd	} tjtd
d |  d¡ d¡dg  ¡  W d   ƒ d S 1 s5w   Y  d S )Nr  r  r  r9   r   r  r,   rÄ   r²   zColumns not foundrm   r?   rd   Úval_not_in_dataframe)	r   r   r	   rv   rw   ÚKeyErrorrH   r3   rR   )rL   r&   r&   r'   Ú?test_groupby_resample_on_index_with_list_of_keys_missing_columnU  s   þ
þû
"ÿr(  )2Útextwrapr   Únumpyrp   rv   Úpandas.util._test_decoratorsr   ÚpandasrF   r   r   r   r   r   Úpandas._testingÚ_testingr   Úpandas.core.indexes.datetimesr	   r  rU   r(   rO   rX   rb   ri   rŠ   r“   ÚmarkÚparametrizer£   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`    (þ
*
)þ
		
$


!