U
    ÎZj…  ã                   @   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   sh   t ddddddg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   é
   é   é   é   )ÚQuantityÚDate)r   r	   ÚpdÚNaT)Údf© r   úh/var/www/html/TRUCKING_PROJECT/venv/lib/python3.8/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s6t‚|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ÚAssertionError)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
ddddg¡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/d0„ Zd1d2„ Zd3d4„ Zd5d6„ Zd7d8„ Zd9d:„ Ze  d;¡d<d=„ ƒZ!d>S )?ÚTestGroupByc           
      C   s–  t d ¡ ddddddg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dddgdd�|jd	ddgd	f< d}t	j
t|d�� | d¡ ¡ }W 5 Q R X t	 ||¡ | ¡ }t	j
t|d�� | tdd�¡ ¡ }W 5 Q R X t	 ||¡ t	j
t|d�� | tdd�¡ ¡ }	W 5 Q R X 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é   é   Úint64©Údtypeú!The default value of numeric_only©Úmatch©r$   )r   Úsplitr   Úsort_valuesÚ	set_indexr
   ÚnpÚarrayÚilocÚtmÚassert_produces_warningÚFutureWarningÚresampleÚsumÚassert_frame_equalÚ
sort_indexr%   r   )
ÚselfÚdf_originalÚdf_reorderedr   ÚexpectedÚmsgÚresult1Ú	df_sortedÚresult2Zresult3r   r   r   Útest_groupby_with_timegrouperK   sJ    úýÿ    ÿþ$z)TestGroupBy.test_groupby_with_timegrouperÚshould_sortTFc                 C   sì   t d ¡ d ¡ ddddddg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´t‚t	|j
tƒsÄt‚|j}t	|tƒsØt‚t|ƒdksèt‚d S )NzA A A A A BzCarl Mark Carl Joe Joe Carlr   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@   rA   r%   r   Ú
group_keysr(   Ú
isinstancer'   r   ÚgroupsÚdictr&   )rL   rU   r   Úgr\   r   r   r   Ú%test_groupby_with_timegrouper_methodsz   s,    úüÿ
z1TestGroupBy.test_groupby_with_timegrouper_methodsc                 C   sL  t d ¡ d ¡ ddddddddg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 �]0}t d ¡ dddgtdddd
d
ƒtdddd
d
ƒtdddd
d
ƒgdœƒ ddg¡}d}tjt|d�� | t	dd�dg¡ 
¡ }W 5 Q R X t ||¡ t d ¡ ddddg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jt|d�� | t	d d�dg¡ 
¡ }W 5 Q R X t ||¡ q¶t d ¡ d ¡ ddddddddg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! ¡ d"ddd#dg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¡}d}tjt|d�� | t	d$d�dg¡ 
¡ }W 5 Q R X t ||¡ tjt|d�� | t	d%d�dg¡ 
¡ }W 5 Q R X t d ¡ dddg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jt|d��  | t	d%dd&�dg¡ 
¡ }W 5 Q R X t ||¡ tjtd'd��  | t	d%d(d&�dg¡ 
¡  W 5 Q R X | d¡}tjt|d��  | t	d%dd)�dg¡ 
¡ }W 5 Q R X t ||¡ tjt|d��  | t	d%d
d)�dg¡ 
¡ }W 5 Q R X t ||¡ tjtd*d��  | t	d%d(d)�dg¡ 
¡  W 5 Q R X | ¡ }|jt d¡ |d< tjt|d��  | t	d%dd&�dg¡ 
¡ }W 5 Q R X t d ¡ dddg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 5 Q R X t dggdgttdddd
d
ƒgt ¡ dd/�d0�}tjt|d�� | t	d%d�¡ 
¡ }W 5 Q R X t ||¡ tjt|d�� | t	d%d�g¡ 
¡ }W 5 Q R X t ||¡ |j d¡|_|jjt ¡ k�sÊt‚tjt|d�� | t	d%dd&�¡ 
¡ }W 5 Q R X t ||¡ tjt|d�� | t	d%dd&�g¡ 
¡ }W 5 Q R X t ||¡ �q d S )1NzA A A A A A A Bz$Carl Mark Carl Carl Joe Joe Joe Carlr   r   r   rV   r   r   r   r   r   r   r   r-   r   rW   r   r   FrX   zCarl Joe Markr   é   r.   r/   r;   r<   ÚAr>   zCarl Mark Carl Joeé   Z6MSzCarl Joe Mark Carl Joer7   é   Z1DZ1M©r$   r#   z#'The grouper name foo is not found'Úfoo)r$   ÚlevelzThe level foo is not validé   é   z2The Grouper cannot specify both a key and a level!)r$   r#   rf   ©r$   r3   ©Úcolumnsr5   )r   r?   r   rA   r@   rE   rF   rG   r%   r   rI   rJ   Úreset_indexÚpytestZraisesÚKeyErrorÚ
ValueErrorÚcopyr5   r   ZMonthEndr   Úshiftr$   r(   )rL   rM   rR   r   rO   rP   ÚresultZwarn_msgr   r   r   Ú test_timegrouper_with_reg_groups›   s<   øüÿðýýÿ
ö"
üýÿõ"øüÿðûýÿô""ýýÿ
ö$$
$$$$ýýÿ
öÿ  ÿý  "z,TestGroupBy.test_timegrouper_with_reg_groupsr$   ÚDÚMra   zQ-APRc                 C   s  t t ddddddddddddg¡ddddddddd	d	d	d	gd
dddddddddddgddddddddddddg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 )$NZ20121002Z20121007Z20130130Z20130202Z20130305Z20121207r   r   r   iþ  il  i  i  éÉ   io  éZ   i8  ig  i-  i!  r-   é   r   r6   é'   r   é-   é"   )ÚdateÚuser_idÚ
whole_costZcost1r|   r}   r~   )Z	min_countr8   r>   )r   r   Úto_datetimerA   r%   rH   rI   ÚdropnaZreorder_levelsrK   Zastyper3   r   rE   Úassert_series_equal)rL   r$   r   rO   rQ   rS   r   r   r   Ú%test_timegrouper_with_reg_groups_freqU  sf    ôÿôàÿ#Ý&ÿþ
üúÿ	ÿz1TestGroupBy.test_timegrouper_with_reg_groups_freqc                 C   s(  t d ¡ ddddddg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d	ddg |jddg |jdg g}dddg}||fD ]H}| tddd�¡}t||ƒD ]&\}}t|ƒ}	| 	|	¡}
t
 |
|¡ qÚqº|jdg |jdg |jdg g}dddg}||fD ]X}| dtddd�g¡}t||ƒD ]0\\}}}t|ƒ}	| 	||	f¡}
t
 |
|¡ �q\�q8| d¡}|jdd�}|jd	ddg |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   rc   ú
2013-09-30ú
2013-10-31ú
2013-12-31ru   r   rd   )ÚJoerƒ   )ZCarlr„   )r†   r…   r/   r>   )r   r?   r   r@   rD   r%   r   Úzipr	   Ú	get_grouprE   rJ   rA   )rL   rM   rN   Zexpected_listZdt_listr   ÚgroupedÚtrO   Údtrr   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‘   )rI   )r   rI   ©Úxr   r   r   Úsumfunc_seriesÚ  s    zMTestGroupBy.test_timegrouper_apply_return_type_series.<locals>.sumfunc_series©r#   ru   rd   TrY   )
r   rp   r   r   r%   r   ÚapplyrE   rJ   rl   )rL   r   Údf_dtr”   rO   rr   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‘   rI   r’   r   r   r   Úsumfunc_valueë  s    zKTestGroupBy.test_timegrouper_apply_return_type_value.<locals>.sumfunc_valuer•   ru   rd   TrY   )
r   rp   r   r   r%   r   r–   rE   r�   rl   )rL   r   r—   rš   rO   rr   r   r   r   Ú(test_timegrouper_apply_return_type_valueã  s    
 
ÿz4TestGroupBy.test_timegrouper_apply_return_type_valuec                 C   s8  d}t dd|d�}tt |¡t |¡dœ|d�}| dd„ ¡}|j}tt| ¡ ƒd	 t	ƒs^t
‚t d
ddd�}tdddddgdddddgdœ|d�}|jdd�j}dddddg}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   r7   rb   rV   r   r   r   r   rc   ©ra   ÚB©rf   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>ra   r¦   rt   )r3   r$   ZABrj   )r
   r   rB   Úaranger%   r\   r[   ÚlistÚkeysr   r(   rE   Zassert_dict_equalrˆ   Úlocr   rJ   )rL   r�   Úindr   r‰   r\   r5   rr   ÚdatesrO   r|   ÚdataZexpected_indexr   r   r   Ú!test_groupby_groups_datetimeindexô  s0     ÿ&ÿ
z-TestGroupBy.test_groupby_groups_datetimeindexc           	      C   sj  ddddddg}t ddddddg|tjddd�d	d
gd dœƒ}|d  dd„ ¡|d< tddddddgddd�}tddgd dd�}t ||g¡}t ddd	dd
dgd	d
d
d	d	d
gdœ|ddgd�}| ddg¡ 	¡ }t
 ||¡ t|dd�}t tjddd�d	d
dd	d
dgdœ|d�}tdddgdd�}t dddgd
ddg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:00ÚarŒ   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¼   r3   r·   r¨   r   rc   r   ©r¸   r¹   r¸   r¹   ©r5   rk   z
Asia/Tokyor»   r4   rb   r§   )r   rB   r«   r–   r   r   r   Úfrom_arraysr%   rI   rE   rJ   ©	rL   r°   r   Zexp_idx1Zexp_idx2Zexp_idxrO   rr   Zdidxr   r   r   Ú$test_groupby_groups_datetimeindex_tz  sf    ú
üÿúö ýþþý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sNt‚d S )Nr   z
2012-07-03z
2012-07-04r¶   r|   )rk   )r   rB   Ú
datetime64r%   Úfirstr	   r(   )rL   r   rr   r   r   r   Ú&test_frame_datetime64_handling_groupbyR  s    þz2TestGroupBy.test_frame_datetime64_handling_groupbyc              	   C   sè   d}t jt|ƒd dddgd�}|j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dddgdddg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_Yorkr‘   r|   r¼   )ÚheaderÚnamesF)rZ   c                 S   s   t  | ¡j | j¡S r™   )r   r   r‹   Útz_localizer3   r’   r   r   r   r£   g  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_York)r3   r:   z2000-01-28 16:47:00z2000-01-29 16:48:00z2000-01-31 16:50:00r   r   r   ©r5   r3   )r   Zread_csvr   r%   r|   r–   r   r	   ÚobjectrE   r�   rˆ   r   r‹   rÈ   )rL   r±   r   rr   rO   r¼   Z
res_valuesZ
exp_valuesr   r   r   Útest_groupby_multi_timezone[  s4    ÿ




û÷ýz'TestGroupBy.test_groupby_multi_timezonec           	      C   sd  ddddddg}t ddddddgdd„ |D ƒtjdd	d
�ddgd dœƒ}tjddddddgddd�}tddgd dd�}t ||g¡}t ddddddgddddddgdœ|ddgd�}| ddg¡ 	¡ }t
 ||¡ tj|dd�}t tjdd	d
�ddddddgdœ|d�}tjdddgdd�}t dddgdddgdœ|ddgd�}|jdd� 	¡ }t
 ||¡ d S )Nr³   r´   rµ   r¶   rŒ   c                 S   s   g | ]}t j|d d�‘qS )ÚHr>   )r   ZPeriod)r©   r½   r   r   r   Ú
<listcomp>Ž  s     z;TestGroupBy.test_groupby_groups_periods.<locals>.<listcomp>r7   r8   r9   r   r   r   )r·   Úperiodr¸   r¹   rÌ   rÎ   ri   r·   r¨   r   rc   r   r¾   r¸   r¹   r¿   r>   r4   rb   r§   )r   rB   r«   r   ZPeriodIndexr   r   rÀ   r%   rI   rE   rJ   rÁ   r   r   r   Útest_groupby_groups_periods‚  sd    ú
üÿ	úö ýþþýz'TestGroupBy.test_groupby_groups_periodsc                 C   s’   t ddgƒ}|d  d¡|d< t|d jjtjƒs6t‚|jdd� 	¡ }|d j}t|jtjƒsbt‚|d jdd� 	¡ }|j}t|jtjƒsŽt‚d S )N)r   ì     ö|>cþ )r   rÐ   r   zM8[ns]r   r§   )
r   ÚviewÚ
issubclassr:   ÚtyperB   rÃ   r(   r%   rÄ   )rL   r   rr   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¥   ra   c                 S   s   |   ¡ S r™   )Úmaxr’   r   r   r   r£   Ñ  r¤   z9TestGroupBy.test_groupby_max_datetime64.<locals>.<lambda>)	r   r	   rB   r«   r%   r–   rÕ   rE   r�   )rL   r   rO   rr   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¥   ra   r¦   r¨   )	r   Úranger	   r%   Z	transformÚminr   rE   r�   ©rL   r   rr   rO   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á   )
rB   ÚrandomÚseedr   Úrandintr
   r%   rÕ   rE   r�   )rL   r   Zdf1Zdf2r   r   r   Ú$test_groupby_with_timezone_selectionÞ  s    þÿz0TestGroupBy.test_groupby_with_timezone_selectionc                 C   sp   t dgt tj¡gdœƒ}|d d jtjks2t‚t ddddgiƒ}t tj¡|d< |d d jtjkslt‚d S )Nr   )r¶   rŒ   rŒ   r   r¶   r   r   )r   r   ÚnowÚpytzÚutcÚtzinfor(   )rL   r   r   r   r   Útest_timezone_infoì  s
    zTestGroupBy.test_timezone_infoc                 C   sd   t dddgd tdddd�dœƒ}| d	¡j ¡ }tdddgtdddgd	d
�dd�}t ||¡ d S )Nr   r   r   ræ   r7   ÚT)r�   r$   )r¶   r°   r¶   r¨   r°   rÉ   )	r   r
   r%   r°   Úcountr   r   rE   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‹   Útdra   Úgroup)r   rî   r   rB   Únanr   r   r‹   Znotnar%   rE   rJ   rÕ   rØ   rÄ   Úlast)rL   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   s|   t tdƒtjtdƒgdddg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_freqrE   r�   )rL   Útestr'   rr   rO   r   r   r   Ú%test_nunique_with_timegrouper_and_nat  s    ýúÿz1TestGroupBy.test_nunique_with_timegrouper_and_natc                 C   st   dddgt dddgdd�dd	d
gdœ}t|ƒ d¡}tdd�}| |¡}| ¡ }| |g¡}| ¡ }t ||¡ d S )NZshanghaiZbeijingz2017-08-09 13:32:23z2017-08-11 23:23:15z2017-08-11 22:23:15zdatetime64[ns]r9   r   r   r   )Úlocationrá   r‘   rá   rt   r>   )r   r   rA   r   r%   rì   rE   rJ   )rL   Z
data_framer'   r‰   rr   rO   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-01ru   ZMonth)rœ   r�   r$   r3   r4   r   r   r¨   )r   Zperiod_ranger   r×   r%   r5   r¡   rI   r   r3   rE   r�   )rL   r�   r5   Zperiod_seriesrr   rO   r   r   r   Útest_grouper_period_indexC  s       ÿ ÿz%TestGroupBy.test_grouper_period_indexc                 C   sj   |}|d   dd„ ¡}tddddd�}t |d	gt|ƒ g¡}td
ddddddg|dd�}t ||¡ d S )Nr   c                 S   s   dt | ƒiS )Nre   )r&   r’   r   r   r   r£   Y  r¤   zRTestGroupBy.test_groupby_apply_timegrouper_with_nat_dict_returns.<locals>.<lambda>ú
2013-09-01ú
2013-10-01r!   r   ri   re   r   r   r   rÉ   )r–   r
   r   rÀ   r&   r   rE   r�   )rL   r+   r*   ÚresÚdtiÚmirO   r   r   r   Ú4test_groupby_apply_timegrouper_with_nat_dict_returnsQ  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&   rD   rB   rò   r’   r   r   r   r£   g  r¤   zTTestGroupBy.test_groupby_apply_timegrouper_with_nat_scalar_returns.<locals>.<lambda>rÿ   r   r!   r   ri   r   r   rÉ   )r–   r
   r   rB   rò   rù   rE   r�   )rL   r+   r*   r  r  rO   r   r   r   Ú6test_groupby_apply_timegrouper_with_nat_scalar_returns`  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 5 Q R X |jdksFt‚|j |j	¡j
dks^t‚| 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¤   zSTestGroupBy.test_groupby_apply_timegrouper_with_nat_apply_squeeze.<locals>.<lambda>r…   )rÇ   r   r   rÉ   )r   rE   rF   rG   r%   Zngroupsr(   Z_selected_objZ	_get_axisZaxisZnlevelsr–   r	   r@   r€   r5   r   Zfrom_productZtakeÚvaluesr   r�   )rL   r    r   r)   r*   r  r#   Zorderingr  Z	ex_valuesrO   r   r   r   Ú5test_groupby_apply_timegrouper_with_nat_apply_squeezer  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™   ©rB   Ú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	aggregaterB   r
  rE   r�   rJ   )rL   r+   r*   rr   rO   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__rT   rm   ÚmarkZparametrizer_   rs   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   ÚnumpyrB   rm   rç   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsrð   Zpandasr   r   r   r   r   r   r	   r
   r   Zpandas._testingZ_testingrE   Zpandas.core.groupby.grouperr   Zpandas.core.groupby.opsr   Zfixturer    r+   r,   r   r   r   r   Ú<module>   s    (


