a
    oÝEbÏ  ã                   @   sÈ   d Z ddlmZ ddlmZ ddlZddlZddlZddlm	  m
Z ddlZddlmZmZmZ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jdd	„ ƒZejd
d„ ƒZG dd„ dƒZ dS )z5 test with the TimeGrouper / grouping with datetimes é    )Údatetime)ÚStringION)Ú	DataFrameÚDatetimeIndexÚIndexÚ
MultiIndexÚSeriesÚ	TimestampÚ
date_rangeÚoffsets)ÚGrouper)Ú
BinGrouperc                  C   s`   t g d¢tdddddƒtdddddƒtdddd	dƒtddd
ddƒtjtdddddƒgdœƒ} | S )z®
    DataFrame used by groupby_with_truncated_bingrouper, made into
    a separate fixture for easier re-use in
    test_groupby_apply_timegrouper_with_nat_apply_squeeze
    ©é   é   é   é   é	   r   éÝ  r   r   é   r   r   é
   é   r   é   é   )ÚQuantityÚDate)r   r	   ÚpdÚNaT)Údf© r   úe/home/ja/django-apps/lartica_env/lib/python3.9/site-packages/pandas/tests/groupby/test_timegrouper.pyÚframe_for_truncated_bingrouper   s    úþÿr!   c                 C   s:   | }t ddd�}| |¡}t|jjƒt|jjƒks6J ‚|S )a+  
    GroupBy object such that gb.grouper is a BinGrouper and
    len(gb.grouper.result_index) < len(gb.grouper.group_keys_seq)

    Aggregations on this groupby should have

        dti = date_range("2013-09-01", "2013-10-01", freq="5D", name="Date")

    As either the index or an index level.
    r   Ú5D©ÚkeyÚfreq)r   ÚgroupbyÚlenÚgrouperZresult_indexZgroup_keys_seq)r!   r   ÚtdgÚgbr   r   r    Ú!groupby_with_truncated_bingrouper3   s
    
r+   c                   @   s
  e Zd Zdd„ Zej dddg¡dd„ ƒZdd	„ Zej d
g d¢¡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d*d+„ Zd,d-„ Zd.d/„ Zd0d1„ Zd2d3„ Zd4d5„ Zd6d7„ Ze  d8¡d9d:„ ƒZ!d;S )<ÚTestGroupByc           	      C   s6  t d ¡ g d¢tdddddƒtdddddƒtdd	dd
dƒtdd	dd	dƒtdddddƒtdddddƒgdœƒ}|jdd�}||fD ]°}| dg¡}t dditdddddd�d�}tjg d¢dd�|jg d¢df< | 	d¡ 
¡ }t ||¡ | ¡ }| tdd�¡ 
¡ }t ||¡ | tdd�¡ 
¡ }t ||¡ q€d S )NzCarl Carl Carl Carl Joe Carlr   r   r   r   r   r   r   r   r   r   é   r   r   ©ÚBuyerr   r   r   ©Úbyr   Z20130901Z20131205r"   Úleft)r%   ÚnameZ	inclusive©Úindex)é   é   r   Úint64©Údtype)r   r7   r   ©r%   )r   Úsplitr   Úsort_valuesÚ	set_indexr
   ÚnpÚarrayÚilocÚresampleÚsumÚtmÚassert_frame_equalÚ
sort_indexr&   r   )	ÚselfÚdf_originalÚdf_reorderedr   ÚexpectedÚresult1Ú	df_sortedÚresult2Zresult3r   r   r    Útest_groupby_with_timegrouperK   s:    úýÿ
ÿþ z)TestGroupBy.test_groupby_with_timegrouperÚshould_sortTFc                 C   sä   t d ¡ d ¡ g d¢tdddddƒtdddddƒtdd	dd
dƒtdd	dd	dƒtdddddƒtdddddƒgdœƒ}|r„|jddd�}|jddd�}| tdd�¡}|js¬J ‚t|j	t
ƒs¼J ‚|j}t|tƒsÐJ ‚t|ƒdksàJ ‚d S )NzA A A A A BzCarl Mark Carl Joe Joe Carl)r   r   r   é   r   r   r   r   r   r   r   r   r   r   r-   r   ©ZBranchr/   r   r   r   F©r1   Z	ascendingr   ©ZdropZ6Mr;   r   )r   r<   r   r=   r>   r&   r   Z
group_keysÚ
isinstancer(   r   ÚgroupsÚdictr'   )rG   rO   r   ÚgrU   r   r   r    Ú%test_groupby_with_timegrouper_methodsv   s,    úüÿ
z1TestGroupBy.test_groupby_with_timegrouper_methodsc                 C   s$  t d ¡ d ¡ g d¢tdddddƒtdddddƒtdd	dd
dƒtdd	dd	dƒtdd	dd
dƒtdd	dd	dƒtdddddƒtdddddƒgdœƒ d¡}|jddd�}||fD ]ò}t d ¡ g d¢tdddddƒtdddddƒtdddddƒgdœƒ ddg¡}| tdd�dg¡ ¡ }t 	||¡ t d ¡ g d¢tdddddƒtdddddƒtdddddƒtdddddƒgdœƒ ddg¡}| tdd�dg¡ ¡ }t 	||¡ qªt d ¡ d ¡ g d¢tdd	dddƒtdd	dddƒtdd	dd
dƒtdd	dd	dƒtdd	dd
dƒtdd	dd	dƒtdd	dddƒtdd	dddƒgdœƒ d¡}|jddd�}||fD �]Ô}t d ¡ g d¢tdd	dddƒtdd	dddƒtdd	dddƒtdd	dddƒtdd	dddƒgdœƒ ddg¡}| td d�dg¡ ¡ }t 	||¡ | td!d�dg¡ ¡ }t d ¡ g d¢tdd	dddƒtdd	dddƒtdd	dddƒgdœƒ ddg¡}t 	||¡ | 
¡ }| td!dd"�dg¡ ¡ }t 	||¡ tjtd#d$��* | td!d%d"�dg¡ ¡  W d   ƒ n1 �s¸0    Y  | d¡}| td!dd&�dg¡ ¡ }t 	||¡ | td!dd&�dg¡ ¡ }t 	||¡ tjtd'd$��* | td!d%d&�dg¡ ¡  W d   ƒ n1 �sX0    Y  | ¡ }|jt d¡ |d< | td!dd"�dg¡ ¡ }t d ¡ g d¢tdd(d)ddƒtdd(d)ddƒtdd(d)ddƒgdœƒ ddg¡}t 	||¡ d*}tjt|d$��, | td!ddd+�dg¡ ¡  W d   ƒ n1 �s60    Y  t dggdgttdd	dddƒgt ¡ dd,�d-�}| td!d�¡ ¡ }t 	||¡ | td!d�g¡ ¡ }t 	||¡ |j d¡|_|jjt ¡ k�sÖJ ‚| td!dd"�¡ ¡ }t 	||¡ | td!dd"�g¡ ¡ }t 	||¡ �qHd S ).NzA A A A A A A Bz$Carl Mark Carl Carl Joe Joe Joe Carl)r   r   r   r   rP   r   r   r   r   r   r   r   r   r   r   r   r-   r   rQ   r   r   FrR   zCarl Joe Mark)r   r   r   é   r.   r/   ÚAr;   zCarl Mark Carl Joe)r   r   r   r   é   Z6MSzCarl Joe Mark Carl Joe)r7   rP   r   é   r   Z1DZ1M©r%   r$   z#'The grouper name foo is not found'©ÚmatchÚfoo)r%   ÚlevelzThe level foo is not validé   é   z2The Grouper cannot specify both a key and a level!)r%   r$   ra   ©r%   r3   ©Úcolumnsr5   )r   r<   r   r>   r=   r&   r   rC   rD   rE   Úreset_indexÚpytestZraisesÚKeyErrorÚ
ValueErrorÚcopyr5   r   ZMonthEndr   Úshiftr%   )rG   rH   rL   r   rJ   ÚresultÚmsgr   r   r    Ú test_timegrouper_with_reg_groups—   s   øüÿðýýÿ
öüýÿõøüÿðûýÿôýýÿ
ö:
:ýýÿ
öÿ(ÿýz,TestGroupBy.test_timegrouper_with_reg_groupsr%   )ÚDÚMrZ   zQ-APRc                 C   sÀ   t t g d¢¡g d¢g d¢g d¢dœƒ d¡}| d¡d  |¡jd	d
� ¡  ddg¡ 	¡  
d¡}d|_| 	¡  t|d�dg¡d  ¡ }t ||¡ | t|d�dg¡d  ¡ }t ||¡ d S )N)Ú20121002Z20121007Ú20130130Ú20130202Ú20130305rr   Z20121207rs   rt   ru   rt   ru   )r   r   r   r   r   r   r   r   r   r   r   r   )iþ  il  i  i  éÉ   io  éZ   i8  ég  i-  rx   i!  )r-   é   r   r6   é'   r   r   rw   é-   é"   r   r-   )ÚdateÚuser_idÚ
whole_costZcost1r}   r~   r   r   )Z	min_countr8   r;   )r   r   Úto_datetimer>   r&   rB   rC   ÚdropnaZreorder_levelsrF   Zastyper3   r   rD   Úassert_series_equal)rG   r%   r   rJ   rK   rM   r   r   r    Ú%test_timegrouper_with_reg_groups_freqC  s6    ÿàÿ#Ý&ÿþ
üúÿ	ÿz1TestGroupBy.test_timegrouper_with_reg_groups_freqc                 C   s  t d ¡ g d¢tdddddƒtdddddƒtdd	dd
dƒtdd	dd	dƒtdddddƒtdddddƒgdœƒ}|jdd�}|jg d¢ |jddg |jdg g}g d¢}||fD ]H}| tddd�¡}t||ƒD ]&\}}t|ƒ}	| 	|	¡}
t
 |
|¡ qÎq®|jdg |jdg |jdg g}g d¢}||fD ]X}| dtddd�g¡}t||ƒD ]0\\}}}t|ƒ}	| 	||	f¡}
t
 |
|¡ �qN�q*| d¡}|jdd�}|jg d¢ |jddg |jdg g}||fD ]J}| tdd�¡}t||ƒD ](\}}t|ƒ}	| 	|	¡}
t
 |
|¡ �qæ�qÈd S )NzCarl Joe Joe Carl Joe Carlr   r   r   r   r   r   r   r   r   r   r-   r   r   r.   r   r0   )r   r   r   r\   )ú
2013-09-30ú
2013-10-31ú
2013-12-31rq   r   r]   ))ÚJoer„   )ZCarlr…   )r‡   r†   r/   r;   )r   r<   r   r=   rA   r&   r   Úzipr	   Ú	get_grouprD   rE   r>   )rG   rH   rI   Úexpected_listZdt_listr   ÚgroupedÚtrJ   Údtrm   Zg_listÚbr   r   r    Útest_timegrouper_get_group~  s^    úýÿ
ý



ý

ý
z&TestGroupBy.test_timegrouper_get_groupc                 C   s†   t ddgddgdœƒ}| ¡ }t |d ¡|d< dd„ }| tdd	�¡ |¡}| td
dd�¡ |¡}t |j	dd�|j	dd�¡ d S )Nú
10/10/2000ú
11/10/2000r   r   ©r}   Úvaluer}   c                 S   s   t | d  ¡ gdƒS )Nr“   )rC   )r   rC   ©Úxr   r   r    Úsumfunc_seriesÈ  s    zMTestGroupBy.test_timegrouper_apply_return_type_series.<locals>.sumfunc_series©r$   rq   r]   TrS   )
r   rk   r   r€   r&   r   ÚapplyrD   rE   rg   )rG   r   Údf_dtr–   rJ   rm   r   r   r    Ú)test_timegrouper_apply_return_type_seriesÀ  s    ÿz5TestGroupBy.test_timegrouper_apply_return_type_seriesc                 C   s†   t ddgddgdœƒ}| ¡ }t |d ¡|d< dd„ }| tdd	�¡ |¡}| td
dd�¡ |¡}t |j	dd�|j	dd�¡ d S )Nr�   r‘   r   r   r’   r}   c                 S   s
   | j  ¡ S ©N)r“   rC   r”   r   r   r    Úsumfunc_valueÙ  s    zKTestGroupBy.test_timegrouper_apply_return_type_value.<locals>.sumfunc_valuer—   rq   r]   TrS   )
r   rk   r   r€   r&   r   r˜   rD   r‚   rg   )rG   r   r™   rœ   rJ   rm   r   r   r    Ú(test_timegrouper_apply_return_type_valueÑ  s    ÿz4TestGroupBy.test_timegrouper_apply_return_type_valuec                 C   s&  d}t dd|d�}tt |¡t |¡dœ|d�}| dd„ ¡}|j}tt| ¡ ƒd	 t	ƒs^J ‚t d
ddd�}tg d¢g d¢dœ|d�}|jdd�j}g d¢}dd„ |D ƒ}	t
 ||	¡ |jdd�}|D ]Z}
| |
¡}|j|
df |j|
df gg}t|
gddd�}t|tdƒ|d�}	t
 ||	¡ qÆd S )Niè  z2012/1/1Z5min)Ústartr%   Úperiods)ÚhighÚlowr4   c                 S   s   t | j| j| jƒS r›   )r   ÚyearÚmonthÚdayr”   r   r   r    Ú<lambda>é  ó    z?TestGroupBy.test_groupby_groups_datetimeindex.<locals>.<lambda>r   z
2015/01/01r   r}   )rŸ   r3   )r   r7   r[   rP   r   )r   r   r   r\   r   ©rZ   ÚB©ra   )z
2015-01-05z
2015-01-04z
2015-01-03z
2015-01-02z
2015-01-01c                 S   s    i | ]}t |ƒt|gd d�“qS )r}   ©r3   )r	   r   )Ú.0r}   r   r   r    Ú
<dictcomp>ô  s   zATestGroupBy.test_groupby_groups_datetimeindex.<locals>.<dictcomp>rZ   r¨   rp   )r3   r%   ZABre   )r
   r   r?   Úaranger&   rU   rT   ÚlistÚkeysr   rD   Zassert_dict_equalr‰   Úlocr   rE   )rG   rŸ   Úindr   r‹   rU   r5   rm   ÚdatesrJ   r}   ÚdataZexpected_indexr   r   r    Ú!test_groupby_groups_datetimeindexâ  s.    ÿÿ
z-TestGroupBy.test_groupby_groups_datetimeindexc           	      C   s4  g d¢}t g d¢|tjddd�ddgd d	œƒ}|d
  dd„ ¡|d
< tg d¢dd
d�}tddgd dd�}t ||g¡}t g d¢g d¢dœ|ddgd�}| d
dg¡ 	¡ }t
 ||¡ t|dd�}t tjddd�g d¢dœ|d�}tg d¢dd�}t g d¢g d ¢dœ|ddgd�}|jd!d"� 	¡ }t
 ||¡ d S )#N©ú2011-07-19 07:00:00ú2011-07-19 08:00:00ú2011-07-19 09:00:00r¶   r·   r¸   ©Úarº   rº   rŽ   rŽ   rŽ   r7   r8   r9   r   r   r   )Úlabelr   Úvalue1Úvalue2r   c                 S   s   t | dd�S )Nú
US/Pacific©Útz)r	   )Údr   r   r    r¥     r¦   zBTestGroupBy.test_groupby_groups_datetimeindex_tz.<locals>.<lambda>©r¶   r¶   r·   r·   r¸   r¸   r¾   )rÀ   r3   rº   rŽ   r»   rª   ©r   r   r   r\   r   r   ©r   r   r   r   r   r   ©r¼   r½   r¼   r½   ©r5   rf   z
Asia/Tokyor¿   ©r   r   r   r   r   r   r4   ©r¶   r·   r¸   ©r   r   r[   ©r   r\   r7   r   r©   )r   r?   r­   r˜   r   r   r   Úfrom_arraysr&   rC   rD   rE   ©	rG   r²   r   Zexp_idx1Zexp_idx2Zexp_idxrJ   rm   Zdidxr   r   r    Ú$test_groupby_groups_datetimeindex_tz  sN    
üÿöýþþýz0TestGroupBy.test_groupby_groups_datetimeindex_tzc                 C   sR   t dt d¡fdt d¡fgddgd�}| d¡ ¡ }|d d tdƒksNJ ‚d S )Nr   z
2012-07-03z
2012-07-04rº   r}   )rf   )r   r?   Ú
datetime64r&   Úfirstr	   )rG   r   rm   r   r   r    Ú&test_frame_datetime64_handling_groupby@  s    þz2TestGroupBy.test_frame_datetime64_handling_groupbyc              	   C   sÞ   d}t jt|ƒd g d¢d�}| d¡j dd„ ¡}ttddd	�td
dd	�tddd	�tddd	�tddd	�gdtd�}t	 
||¡ d}| d¡j |¡}t  |¡j |¡}tg d¢g d¢dd�}t  |¡j |¡}t	 
||¡ d S )NzÂ0,2000-01-28 16:47:00,America/Chicago
1,2000-01-29 16:48:00,America/Chicago
2,2000-01-30 16:49:00,America/Los_Angeles
3,2000-01-31 16:50:00,America/Chicago
4,2000-01-01 16:50:00,America/New_York)r“   r}   rÀ   )ÚheaderÚnamesrÀ   c                 S   s   t  | ¡j | j¡S r›   )r   r€   r�   Útz_localizer3   r”   r   r   r    r¥   U  r¦   z9TestGroupBy.test_groupby_multi_timezone.<locals>.<lambda>z2000-01-28 16:47:00-0600zAmerica/Chicagor¿   z2000-01-29 16:48:00-0600z2000-01-30 16:49:00-0800zAmerica/Los_Angelesz2000-01-31 16:50:00-0600z2000-01-01 16:50:00-0500zAmerica/New_Yorkr}   )r3   r:   )z2000-01-28 16:47:00z2000-01-29 16:48:00z2000-01-31 16:50:00)r   r   r   ©r5   r3   )r   Zread_csvr   r&   r}   r˜   r   r	   ÚobjectrD   r‚   r‰   r€   r�   rÓ   )rG   r³   r   rm   rJ   rÀ   Z
res_valuesZ
exp_valuesr   r   r    Útest_groupby_multi_timezoneI  s4    ÿ




û÷ýz'TestGroupBy.test_groupby_multi_timezonec           	      C   s.  g d¢}t g d¢dd„ |D ƒtjddd�dd	gd
 dœƒ}tjg d¢ddd�}tddgd
 dd�}t ||g¡}t g d¢g d¢dœ|ddgd�}| ddg¡ 	¡ }t
 ||¡ tj|dd�}t tjddd�g d¢dœ|d�}tjg d¢dd�}t g d¢g d¢dœ|ddgd�}|jd d!� 	¡ }t
 ||¡ d S )"Nrµ   r¹   c                 S   s   g | ]}t j|d d�‘qS )ÚHr;   )r   ZPeriod)r«   rÁ   r   r   r    Ú
<listcomp>|  r¦   z;TestGroupBy.test_groupby_groups_periods.<locals>.<listcomp>r7   r8   r9   r   r   r   )r»   Úperiodr¼   r½   rÂ   r×   rÙ   rd   rº   rŽ   r»   rª   rÃ   rÄ   rÅ   r¼   r½   rÆ   r;   rÇ   r4   rÈ   rÉ   rÊ   r   r©   )r   r?   r­   r   ZPeriodIndexr   r   rË   r&   rC   rD   rE   rÌ   r   r   r    Útest_groupby_groups_periodsp  sL    
üÿ	öýþþýz'TestGroupBy.test_groupby_groups_periodsc                 C   s’   t ddgƒ}|d  d¡|d< t|d jjtjƒs6J ‚|jdd� ¡ }|d j}t|jtjƒsbJ ‚|d jdd� ¡ }|j}t|jtjƒsŽJ ‚d S )N)r   ì     ö|>cþ )r   rÛ   r   zM8[ns]r   r©   )	r   ÚviewÚ
issubclassr:   Útyper?   rÎ   r&   rÏ   )rG   r   rm   Zgot_dtr   r   r    Útest_groupby_first_datetime64­  s    
z)TestGroupBy.test_groupby_first_datetime64c                 C   sR   t tdƒt d¡dœƒ}| d¡d  dd„ ¡}| d¡d  ¡ }t ||¡ d S )NZ20130101r   r§   rZ   c                 S   s   |   ¡ S r›   )Úmaxr”   r   r   r    r¥   ¿  r¦   z9TestGroupBy.test_groupby_max_datetime64.<locals>.<lambda>)	r   r	   r?   r­   r&   r˜   rà   rD   r‚   )rG   r   rJ   rm   r   r   r    Útest_groupby_max_datetime64»  s    z'TestGroupBy.test_groupby_max_datetime64c                 C   sV   t tdƒtdƒgd dœƒ}| d¡d  t¡}ttdƒgd dd�}t ||¡ d S )Nr   z	2000-01-1r§   rZ   r¨   rª   )	r   Úranger	   r&   Z	transformÚminr   rD   r‚   ©rG   r   rm   rJ   r   r   r    Útest_groupby_datetime64_32_bitÃ  s    z*TestGroupBy.test_groupby_datetime64_32_bitc                 C   sh   t j d¡ tt jjdddd�tddddd	�d
œƒ}| d¡ ¡ d }| d¡d  ¡ }t 	||¡ d S )Né*   r   r   é<   )Úsizez01/01/2000 00:00ÚsÚUTC)rŸ   r%   rÀ   )ÚfactorÚtimerë   rì   )
r?   ÚrandomÚseedr   Úrandintr
   r&   rà   rD   r‚   )rG   r   Zdf1Zdf2r   r   r    Ú$test_groupby_with_timezone_selectionÌ  s    þÿz0TestGroupBy.test_groupby_with_timezone_selectionc                 C   sn   t dgt tj¡gdœƒ}|d d jtjks2J ‚t dg d¢iƒ}t tj¡|d< |d d jtjksjJ ‚d S )Nr   )rº   rŽ   rŽ   r   rº   ©r   r   r   )r   r   ÚnowÚpytzÚutcÚtzinfo)rG   r   r   r   r    Útest_timezone_infoÚ  s
    zTestGroupBy.test_timezone_infoc                 C   s^   t g d¢d tdddd�dœƒ}| d¡j ¡ }tg d	¢tg d¢dd
�dd�}t ||¡ d S )Nrñ   r   rò   r7   ÚT)rŸ   r%   )rº   r²   rº   )r   r   r   rª   r²   rÔ   )	r   r
   r&   r²   Úcountr   r   rD   r‚   rä   r   r   r    Útest_datetime_countä  s    ÿzTestGroupBy.test_datetime_countc                 C   sÔ   ddl m} ttjdddtjgtj|dd�|dd�|d	d�tjgd
œƒ}t |j¡|_d|d< ||j ¡  }| 	d¡}| 	d¡}t
 | ¡ | ¡ ¡ t
 | ¡ | ¡ ¡ t
 | ¡ | ¡ ¡ t
 | ¡ | ¡ ¡ d S )Nr   )Ú	timedeltaz2015-07-24 10:10z2015-07-25 11:11z2015-07-23 12:12r   )Údaysr   r   )r�   ÚtdrZ   Úgroup)r   rú   r   r?   Únanr   r€   r�   Znotnar&   rD   rE   rà   rã   rÏ   Úlast)rG   rü   Zdf_testZdf_refZgrouped_testZgrouped_refr   r   r    Ú$test_first_last_max_min_on_time_dataì  s(    û"øÿ

z0TestGroupBy.test_first_last_max_min_on_time_datac                 C   sz   t tdƒtjtdƒgg d¢dœƒ}tddd�}| |¡d  ¡ }||j ¡   |¡d  ¡ }|j	 
d ¡|_	t ||¡ d S )	Nz2016-06-28 09:35:35z2016-06-28 16:46:28)Ú1Ú2Ú3)rì   r³   rì   Úhr#   r³   )r   r	   r   r   r   r&   Znuniquerì   Znotnullr5   Ú
_with_freqrD   r‚   )rG   Útestr(   rm   rJ   r   r   r    Ú%test_nunique_with_timegrouper_and_nat
  s    ýúÿz1TestGroupBy.test_nunique_with_timegrouper_and_natc                 C   sn   g d¢t g d¢dd�g d¢dœ}t|ƒ d¡}tdd	�}| |¡}| ¡ }| |g¡}| ¡ }t ||¡ d S )
N)ÚshanghaiZbeijingr  )z2017-08-09 13:32:23z2017-08-11 23:23:15z2017-08-11 22:23:15zdatetime64[ns]r9   rñ   )Úlocationrì   r“   rì   rp   r;   )r   r   r>   r   r&   rø   rD   rE   )rG   Z
data_framer(   r‹   rm   rJ   r   r   r    Ú!test_scalar_call_versus_list_call  s    þú

z-TestGroupBy.test_scalar_call_versus_list_callc                 C   sn   d}t jd|ddd�}tt|ƒ|d�}| |jj¡ ¡ }ttd|ƒttd|d ƒ|j	d	�d�}t
 ||¡ d S )
Nr   z2018-01rq   ZMonth)rž   rŸ   r%   r3   r4   r   r   rª   )r   Zperiod_ranger   râ   r&   r5   r£   rC   r   r3   rD   r‚   )rG   rŸ   r5   Zperiod_seriesrm   rJ   r   r   r    Útest_grouper_period_index1  s    ÿÿz%TestGroupBy.test_grouper_period_indexc                 C   s`   |}|d   dd„ ¡}tddddd�}t |d	gt|ƒ g¡}tg d
¢|dd�}t ||¡ d S )Nr   c                 S   s   dt | ƒiS )Nr`   )r'   r”   r   r   r    r¥   G  r¦   zRTestGroupBy.test_groupby_apply_timegrouper_with_nat_dict_returns.<locals>.<lambda>ú
2013-09-01ú
2013-10-01r"   r   rd   r`   )r   r   r   r   r   r   r   rÔ   )r˜   r
   r   rË   r'   r   rD   r‚   )rG   r+   r*   ÚresÚdtiÚmirJ   r   r   r    Ú4test_groupby_apply_timegrouper_with_nat_dict_returns?  s    z@TestGroupBy.test_groupby_apply_timegrouper_with_nat_dict_returnsc                 C   sb   |}|d   dd„ ¡}tddddd�}td	tjtjtjtjtjd
g| d ¡dd�}t ||¡ d S )Nr   c                 S   s   t | ƒr| jd S tjS )Nr   )r'   rA   r?   rþ   r”   r   r   r    r¥   U  r¦   zTTestGroupBy.test_groupby_apply_timegrouper_with_nat_scalar_returns.<locals>.<lambda>r  r  r"   r   rd   r   r   rÔ   )r˜   r
   r   r?   rþ   r  rD   r‚   )rG   r+   r*   r  r  rJ   r   r   r    Ú6test_groupby_apply_timegrouper_with_nat_scalar_returnsN  s    ýzBTestGroupBy.test_groupby_apply_timegrouper_with_nat_scalar_returnsc                 C   sä   |}t ddd�}tjtdd�� |j|dd�}W d   ƒ n1 sB0    Y  |jdksZJ ‚|j |j¡j	dksrJ ‚| 
d	d
„ ¡}tdƒ}|d  ¡  ¡ j}tj|g|gdd gd�}|d  |¡jd }	t|	|dd�}
t ||
¡ d S )Nr   Z100Yr#   z`squeeze` parameterr^   T)Zsqueezer   c                 S   s   | d d S )Nr   r   r   r”   r   r   r    r¥   r  r¦   zSTestGroupBy.test_groupby_apply_timegrouper_with_nat_apply_squeeze.<locals>.<lambda>r†   )rÒ   r   r   rÔ   )r   rD   Zassert_produces_warningÚFutureWarningr&   ZngroupsZ_selected_objZ	_get_axisZaxisZnlevelsr˜   r	   r=   r�   r5   r   Zfrom_productZtakeÚvaluesr   r‚   )rG   r!   r   r)   r*   r  r$   Zorderingr  Z	ex_valuesrJ   r   r   r    Ú5test_groupby_apply_timegrouper_with_nat_apply_squeeze`  s    ,zATestGroupBy.test_groupby_apply_timegrouper_with_nat_apply_squeezeÚnumbac                 C   sp   |}|d j dd„ dd�}|d   tj¡}t ||¡ |dg j dd„ dd�}|dg   tj¡}t ||¡ d S )Nr   c                 S   s
   t  | ¡S r›   ©r?   Únanmean©r  r5   r   r   r    r¥   „  r¦   zITestGroupBy.test_groupby_agg_numba_timegrouper_with_nat.<locals>.<lambda>r  )Zenginec                 S   s
   t  | ¡S r›   r  r  r   r   r    r¥   ‹  r¦   )Z	aggregater?   r  rD   r‚   rE   )rG   r+   r*   rm   rJ   Z	result_dfZexpected_dfr   r   r    Ú+test_groupby_agg_numba_timegrouper_with_nat|  s    ÿ
ÿz7TestGroupBy.test_groupby_agg_numba_timegrouper_with_natN)"Ú__name__Ú
__module__Ú__qualname__rN   rh   ÚmarkZparametrizerX   ro   rƒ   r�   rš   r�   r´   rÍ   rÐ   rÖ   rÚ   rß   rá   rå   rð   rö   rù   r   r  r
  r  r  r  r  rü   Z
skip_if_nor  r   r   r   r    r,   J   s<   +
  -
:B?	'=	
r,   )!Ú__doc__r   Úior   Únumpyr?   rh   ró   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsrü   Zpandasr   r   r   r   r   r   r	   r
   r   Zpandas._testingZ_testingrD   Zpandas.core.groupby.grouperr   Zpandas.core.groupby.opsr   Zfixturer!   r+   r,   r   r   r   r    Ú<module>   s    (


