a
    é´«jd�  ã                   @   s8	  d dl Z d dlZd dlmZ d dlZd dlZd dlm	Z	 d dl
mZ d dlmZ d dlZd dl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
dg¡ej dg d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢ej ej ej gg¡dd„ ƒƒZ!dd„ Z"ej dd
dg¡dd„ ƒZ#ej dd
dg¡ej d g d¢g d¢ej$ej$ej$gd!ej$d!gd"ej$d"gd"ej$d!gg¡d#d$„ ƒƒZ%ej d%d&d'ej&d"ge'd(�ej&ej$gd)d(�fd*d&ej&ej$gd)d(�ej&d"ge'd(�fd*d*ej&ej$gd)d(�ej&ej$gd)d(�fd'd)ej&ej$gd)d(�ej&ej$gd)d(�fg¡d+d,„ ƒZ(ej dd
dg¡ej d-g d.¢¡d/d0„ ƒƒZ)ej d1d
ej$ej gd!fd
ej$d2ej gd"fdej$ej*gd"fdej$d!ej*gd!fg¡d3d4„ ƒZ+ej dd
dg¡d5d6„ ƒZ,ej dd
dg¡d7d8„ ƒZ-ej d9d:d;g¡d<d=„ ƒZ.ej d9d:d;g¡d>d?„ ƒZ/ej d@d:d dAgd2dBgd2dAgdCœfd;d2dBgd dAgd dBgdCœfg¡ej dDd"d!g¡dEdF„ ƒƒZ0ej d edGƒedHƒfdIg¡ej dJg dK¢¡dLdM„ ƒƒZ1ej d9dNdOg¡dPdQ„ ƒZ2dRdS„ Z3dTdU„ Z4dVdW„ Z5dXdY„ Z6dZd[„ Z7d\d]„ Z8d^d_„ Z9d`da„ Z:dbdc„ Z;ddde„ Z<ej dfdgdhg¡didj„ ƒZ=ej dfdgdhg¡dkdl„ ƒZ>dmdn„ Z?ej dfdgdhg¡e@doœdpdq„ƒZAej d-g dr¢¡dsdt„ ƒZBdudv„ ZCej dfg dw¢¡dxdy„ ƒZDej dfdgdhg¡dzd{„ ƒZEej d|d d2g¡ej d}d"d!g¡d~d„ ƒƒZFej d|d d2g¡d€d�„ ƒZGd‚dƒ„ ZHejjIej d„d!d"g¡ej d…d!d"g¡ej d†d"d!g¡ej d‡d"d!g¡ej dˆd‰gd‰dŠgg¡d‹dŒ„ ƒƒƒƒƒƒZJd�dŽ„ ZKd�d�„ ZLd‘d’„ ZMd“d”„ ZNej d•g d–¢ed—ƒej*ed—ƒgd"ed2gejOd˜gd™dš�d d›�fg d–¢e Pdœd2d2¡ej*e Pdœd2d2¡gd"ed2gejOd˜gd™dš�d d›�fg d�¢e Pdœd2d2¡ej*e Pdœd2d2¡ej*e Pdœd2d2¡gd!edAdAgejOd˜džgd™dš�d d›�fg dŸ¢e Pdœd2d2¡ej*e Pdœd2d2¡ej*e Pdœd2d2¡gd!edAd2gejOd˜džgd™dš�d d›�fg¡d d¡„ ƒZQd¢d£„ ZRd¤d¥„ ZSd¦d§„ ZTd¨d©„ ZUej d|d dªg¡d«d¬„ ƒZVd­d®„ ZWd¯d°„ ZXej d-g d±¢¡ej d²dNd³d2d2d´œdAdBd´œgifdOd³d2dAd´œdAdµd´œgifdgd³d2d2d´œdAdBd´œgifdhd³d2dAd´œdAdµd´œgifd¶d2dAd´œdAdAd´œgd·d¸œfg¡d¹dº„ ƒƒZYd»d¼„ ZZej d½d¾ej[fd¿ej\fdÀej]fdÁej^fdÂej_fdÃej`fdgejafdhejbfdNdÄdÅ„ fdOdÆdÅ„ fd¶ejcfejddÇeZe edÈ¡dÉ�g¡dÊdË„ ƒZfej dÌg dÍ¢d2ej$dAd2ej$dAd2ej$dAg	d´œg dÎ¢g dÏ¢d´œg¡ej dÐg dÑ¢¡dÒdÓ„ ƒƒZgej dÔg dÕ¢¡ej dÖd d2g¡ej d×d"d!g¡ej d„d"d!g¡dØdÙ„ ƒƒƒƒZhdÚdÛ„ ZidS )Üé    N)Úascii_lowercase)ÚiNaT)Úpandas_dtype)Úna_value_for_dtype)Ú	DataFrameÚ
MultiIndexÚSeriesÚ	TimestampÚ
date_rangeÚisna)Úget_groupby_method_args)Ú_test_decoratorsÚagg_funcÚanyÚallÚvals)ÚfooÚbarÚbaz)r   Ú r   )r   r   r   ©é   é   é   )r   r   r   ©r   r   r   )ç      ð?ç       @ç      @)r   ç        r   )r   r   r   )TTT)TFF)FFFc                 C   s–   t dgd dgd  |d dœƒ}tt|ƒ|ƒ}| rLtt|ƒƒrL|dkrLd}t |gd dgtjddgd	d
�d�}t| d	¡|ƒ| d�}t 	||¡ d S )NÚar   Úbr   )ÚkeyÚvalr   Fr"   r!   ©Úname©ÚcolumnsÚindex©Úskipna)
r   ÚgetattrÚbuiltinsr   r   ÚpdÚIndexÚgroupbyÚtmÚassert_frame_equal)r)   r   r   ÚdfÚexpÚexpectedÚresult© r5   úc/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/pandas/tests/groupby/test_reductions.pyÚtest_groupby_bool_aggs   s    "ÿr7   c                  C   sr   t g d¢dtjdgdtjdggg d¢d�} t ddgd	dggd
dgddgd�}d|j_|  d¡ ¡ }t ||¡ d S )N)r   r   r   r   r   r   r   ©ÚAÚBÚC©r&   TFr:   r;   r%   r9   )	r   ÚnpÚnanr'   r$   r.   r   r/   r0   ©r1   r3   r4   r5   r5   r6   Útest_any?   s    þÿr@   Úbool_agg_funcc                 C   sP   t ddggddgd�}| dg¡}t|| ƒƒ }| t dg¡¡}t ||¡ d S )NTr   r<   r   )r   r.   r*   Zset_axisr=   Úarrayr/   r0   )rA   r1   Zgrp_byr4   r3   r5   r5   r6   Ú test_bool_aggs_dup_column_labelsL   s
    rC   ÚdataFTc                 C   sZ   t |dd�}t|| ƒ|d�}t |t dg¡dd�}| g d¢¡j| |d�}t ||¡ d S )NÚboolean©Údtyper(   r   ©r'   rG   r   )r   r*   r=   rB   r.   Úaggr/   Úassert_series_equal)rA   r)   rD   ÚserZexpected_datar3   r4   r5   r5   r6   Útest_masked_kleene_logicW   s
    rL   zdtype1,dtype2,exp_col1,exp_col2ÚfloatÚFloat64rF   rE   ÚInt64c                 C   sn   dt jg}ttj|| d�tj||d�dœƒ}| ddg¡jddd�}t||dœt  dg¡d�}t ||¡ d S )	Nr   rF   )Úcol1Úcol2r   r   Fr(   ©r'   )	r=   r>   r   r,   rB   r.   rI   r/   r0   )Zdtype1Zdtype2Zexp_col1Zexp_col2rD   r1   r4   r3   r5   r5   r6   Útest_masked_mixed_typesp   s    
ÿrS   rG   )rO   rN   rE   c                 C   sh   |t jdg|d�}d}|s(| dkr(t j}||gt dg¡dd�}| ddg¡j| |d�}t ||¡ d S )Nr   rF   Tr   rE   rH   r(   )r,   ÚNAr=   rB   r.   rI   r/   Úassert_equal)rA   rG   r)   Úframe_or_seriesÚobjÚexpected_resr3   r4   r5   r5   r6   Útest_masked_bool_aggs_skipna™   s    rY   zbool_agg_func,data,expected_resr   c                 C   sN   ||t d�}| dgt|ƒ ¡ | ¡}||gt dg¡dd�}t ||¡ d S )NrF   r   ÚboolrH   )Úobjectr.   ÚlenrI   r=   rB   r/   rU   )rA   rD   rX   rV   rW   r4   r3   r5   r5   r6   Útest_object_type_missing_vals§   s    r]   c                 C   sX   t tjgtd�}tjtdd��& | dg¡j| dd� W d   ƒ n1 sJ0    Y  d S )NrF   z boolean value of NA is ambiguous©Úmatchr   Fr(   )	r   r,   rT   r[   ÚpytestÚraisesÚ	TypeErrorr.   rI   )rA   rK   r5   r5   r6   Ú'test_object_NA_raises_with_skipna_false¸   s    rc   c                 C   sj   | t u rddginddi}| f i |¤dti¤Ž}t| |j¡|ƒƒ }| f i |¤dti¤Ž}t ||¡ d S )Nr&   r   r$   rG   )r   r[   r*   r.   r'   rZ   r/   rU   )rV   rA   ÚkwargsrW   r4   r3   r5   r5   r6   Ú
test_emptyÀ   s
    re   ÚhowÚidxminÚidxmaxc           	      C   s¤   |t u s|tu rd S d|v r"tjntj}||ƒj}||ƒj}tg d¢||||gdœ|d�}| d¡}t	|| ƒƒ }tdddgit
jdd	gd|d
�d�}t ||¡ d S )NÚint)r   r   r   r   ©r   r    rF   r   r    r   r   r   ©r$   rG   rR   )ri   rM   r=   ZiinfoÚfinfoÚminÚmaxr   r.   r*   r,   r-   r/   r0   )	rf   Zany_real_numpy_dtypeÚinfoÚ	min_valueÚ	max_valuer1   Úgbr4   r3   r5   r5   r6   Útest_idxmin_idxmax_extremesÊ   s    

þ
ÿrs   c                 C   s  t  |¡j}t  |¡j}ttt jtddƒdd�dd�tt j|t j||t j|t jt jt jg
|d�dœƒ}| 	d¡}| rxd nt
}d	|› d
�}tj||d��  t||ƒ| d�}	W d   ƒ n1 s¼0    Y  | rÜddddt jg}
nt j}
td|
itjtddƒddd�d�}t |	|¡ d S )Nr   é   r   )ZrepeatsZintprF   rj   r   z!The behavior of DataFrameGroupBy.z with all-NA valuesr^   r(   r   é   r    rk   rR   )r=   rl   rm   rn   r   r   ÚrepeatÚranger>   r.   ÚFutureWarningr/   Úassert_produces_warningr*   r,   r-   r0   )r)   rf   Zfloat_numpy_dtyperp   rq   r1   rr   ÚwarnÚmsgr4   Úvaluesr3   r5   r5   r6   Ú"test_idxmin_idxmax_extremes_skipnaß   s@    öóþÿ
.ÿr}   zfunc, valuesr   r   )Úc_intÚc_floatÚc_dateÚnumeric_onlyc                 C   s*  t g d¢g d¢g d¢g d¢dœƒ}t |d ¡|d< |d j d¡|d< |d |d jd	  |d
< |d j d¡|d< |d  d¡|d< |d  d¡|d< t| 	d¡| ƒ|d�}t |tj
ddgdd�d�}|rÞ|jdgd�}n$|d |d< |d |d
< |d |d< |d |d< |d |d< t ||¡ d S )N©r9   r9   r:   r:   ©r   r   r   ru   )g®Gáz@g=
×£p=@gR¸…ëQ @gÍÌÌÌÌÌð?)Z2019Z2018Z2016Z2017)r$   r~   r   r€   r€   z
US/PacificZ	c_date_tzr   Zc_timedeltaÚWZc_periodr~   rO   Z	c_Integerr   rN   Z
c_Floatingr$   ©r�   r9   r:   r#   rR   r<   )r   r,   Úto_datetimeÚdtZtz_localizeÚilocZ	to_periodÚastyper*   r.   r-   Údropr/   r0   )Úfuncr|   r�   r1   r4   r3   r5   r5   r6   Ú$test_idxmin_idxmax_returns_int_types  s.    
üÿrŒ   z2011-01-15 12:50:28.502376z2011-01-20 12:50:28.593448)l    m;-L¼l    m;-L¼Úmethod)Úcountrm   rn   ÚfirstÚlastc                 C   s˜   t ddg|dœƒ}| d¡}t|| ƒƒ }| dkr6d}n4| dkrH|d }n"| dkrZ|d }nt|d	 | ƒƒ }t d	|gitjdgdd
�d�}t ||¡ d S )Nr   rj   r   rŽ   r   r�   r   r�   r    r#   rR   )r   r.   r*   r,   r-   r/   r0   )r�   rD   r1   Úgroupedr4   Úexpected_valuer3   r5   r5   r6   Ú2test_groupby_non_arithmetic_agg_int_like_precision0  s    


r“   r�   r�   c              	   C   s¸   t t| ƒƒ}tg d¢|d|dtjtjg|d|dtjtjgdœ| d�}|jd|d�}t||ƒ}||d�}g d	¢g d
¢g d¢g d¢dœ||f }	|j|	  d¡}
|r¨|
 	¡ }
t
 ||
¡ d S )N)r   r   r   r   r   r   r   ç      @©r   r    ÚcrF   r   )Úsortr(   )r   r   ru   )r   r   ru   )r   r   é   )r   r   r˜   ))r�   T)r�   F)r�   T)r�   F)r   r   r   r=   r>   r.   r*   rˆ   Ú	set_indexÚ
sort_indexr/   r0   )Zany_real_nullable_dtyper—   r)   rf   Úna_valuer1   rr   r�   r4   Zilocsr3   r5   r5   r6   Útest_first_last_skipnaN  s,    ýú

üûrœ   c               	   C   s@  t tj d¡ d¡g d¢d�} g d¢| d< |  d¡}d}tjt|d�� |j	d	d
�}W d   ƒ n1 sh0    Y  | j
d d …d	d …f j	d	d
�}|j d	¡}t || | d¡¡ tddd�| d< |  d¡}d}tjt|d��L tjt|d�� |j	d	d
� W d   ƒ n1 �s0    Y  W d   ƒ n1 �s20    Y  d S )Nr   )é
   ru   )r9   r:   r;   ÚDr<   )
r   r   r   r   r   r   r   r   r   ru   r9   z1DataFrameGroupBy.idxmax with axis=1 is deprecatedr^   r   ©Úaxisz
2016-01-01r�   ©ÚperiodsÚEz>'>' not supported between instances of 'Timestamp' and 'float')r   r=   ÚrandomÚdefault_rngÚstandard_normalr.   r/   ry   rx   rh   rˆ   r'   Zget_level_valuesrJ   Z	droplevelr
   r`   ra   rb   )r1   rr   Zwarn_msgÚresZaltZindexerÚgb2r{   r5   r5   r6   Útest_idxmin_idxmax_axis1j  s"    ÿ
*
r©   c                  C   s8   t g d¢g d¢dœƒ} |  d¡d  ¡ d dks4J ‚d S )N)r9   r9   r9   r9   r9   )ij  i�  io  i`  l    @Ü~ÿÿ )ÚuserÚconnectionsrª   r«   r9   l    ,fÌL™ )r   r.   Úmean)r1   r5   r5   r6   Útest_groupby_mean_no_overflow„  s    þÿr­   c                  C   sh   t t tdƒ¡ddgd dœƒ} |  d¡d  ¡ }tt ddg¡dtjddgdd	�d
�}t 	||¡ d S )Nr�   r9   r:   r˜   )ÚtimeÚcatr¯   r®   ru   r#   ©r$   r'   )
r   r,   Zto_timedeltarw   r.   r¬   r   r-   r/   rJ   ©r1   r4   r3   r5   r5   r6   Útest_mean_on_timedelta�  s     ÿr²   c                  C   s0  t j d¡ d¡} t j| d d d…< t| ƒ}t j d¡jdddd� t¡}t j|d d d…< | 	|¡ 
¡ }d}tjt|d��" | 	|¡ t j¡}W d   ƒ n1 s 0    Y  t ||¡ tt j d¡ d	¡ƒ}d}tjt|d��" | 	|¡ t j
¡}W d   ƒ n1 �s0    Y  | 	|¡ 
¡ }t ||¡ d S )
Nr   éè  r   é2   ©Úsizeé   zusing DataFrameGroupBy.medianr^   )r³   r˜   )r=   r¤   r¥   r¦   r>   r   Úintegersr‰   rM   r.   Úmedianr/   ry   rx   rI   Z	nanmedianr0   )Úarrr1   Úlabelsr4   r{   r2   ÚrsZxpr5   r5   r6   Útest_cython_median™  s     02r½   c                 C   sp   t tj d¡ ddd¡ƒ}tdddƒ}t |d |¡}|j|| d� 	¡ }|j|| d� 
dd	„ ¡}t ||¡ d S )
Nr   r   é,   éô  é7   r˜   ©Úobservedc                 S   s   |   ¡ S )N)r¹   ©Úxr5   r5   r6   Ú<lambda>¶  ó    z(test_median_empty_bins.<locals>.<lambda>)r   r=   r¤   r¥   r¸   rw   r,   Úcutr.   r¹   rI   r/   r0   )rÂ   r1   ZgrpsZbinsr4   r3   r5   r5   r6   Útest_median_empty_bins¯  s    rÈ   c                  C   s’   t g d¢g d¢ddg dœƒ} |  d¡ ¡ }d|v s8J ‚|  d¡jdd	�}d|v sVJ ‚|  d¡ ¡ }d|v spJ ‚|  d¡jdd	�}d|v sŽJ ‚d S )
N)é   rÉ   é   rÊ   rƒ   ru   Zmama)ÚnnÚiiÚssrË   rÍ   Fr…   )r   r.   rn   rm   )Zaar4   r5   r5   r6   Útest_max_min_non_numericº  s    rÎ   c                 C   sÔ   t g d¢g d¢g d¢dœƒ}| ¡  | sF|r>t|jjƒdksFndsFJ ‚| d¡}|dg  ¡ }tjg d	¢dd
�}t dg d¢i|d�}t	 
||¡ |dg  ¡ }tjg d	¢dd
�}t dg d¢i|d�}t	 
||¡ d S )N)r   r   r   r   r   )r   r   r   r   F)r   r    r–   ÚdÚer8   r   r   r9   r;   r   r#   )r    rÏ   rÐ   rR   )r   r–   rÐ   )r   Z_consolidate_inplacer\   Z_mgrÚblocksr.   rn   r,   r-   r/   r0   rm   )Zusing_array_managerZusing_infer_stringr1   rr   r4   Úeir3   r5   r5   r6   Ú$test_max_min_object_multiple_columnsË  s$    ýÿ
rÓ   c                  C   s¦   t jtg d¢ƒdd�jj} ttjdtjgg d¢| dœƒ}|jddd	�d
  	¡ d
 }t jtddgd
d�dd�jj}t
 ||¡ | d¡d
  	¡ }d|j_t
 ||¡ d S )N)ú
2019-05-09rÔ   rÔ   z%Y-%m-%d)ÚformatÚ1)r   r   r   r•   r    F©Úas_indexr–   rÔ   r#   )r,   r†   r   r‡   Údater   r=   r>   r.   rm   r/   rJ   r'   r$   )Údatesr1   r4   r3   r5   r5   r6   Útest_min_date_with_nansê  s    ÿ
ÿ
rÛ   c                  C   s´   t dtgƒ} tjddgtjd�}|  |¡}|jdd�}t dditjd�}tj||dd� |j	dd�}t dtitjd�}tj||dd� |j	dd�}t dtj
iƒ}tj||dd� d S )Nr   rF   r   ©Ú	min_countT©Zcheck_exactr   )r   r   r=   rB   Úint64r.   rn   r/   rJ   rm   r>   )rK   r!   rr   r4   r3   r5   r5   r6   Útest_max_inatü  s    
rà   c                  C   sh   t dtdtd gƒ} |  g d¢¡}|jdd�}t tjtjtd dœƒ}|j t¡|_t	j
||dd� d S )Nr   r   )r   r   r   r   rÜ   r   TrÞ   )r   r   r.   rm   r=   r>   r'   r‰   ri   r/   rJ   )rK   rr   r4   r3   r5   r5   r6   Útest_max_inat_not_all_na  s    rá   r‹   rm   rn   c                 C   sl   ddg}t jdddd�}t||dœƒ}t| d¡d | ƒƒ }t jddgdd	�}t||dd
�}t ||¡ d S )Nr   r   Ú2020ÚY©r¢   Úfreqrj   r   r    r#   ©r'   r$   )	r,   Úperiod_ranger   r*   r.   r-   r   r/   rJ   ©r‹   Úgroupsr¢   r1   r4   Úidxr3   r5   r5   r6   Ú$test_groupby_aggregate_period_column  s    rë   c                 C   sj   ddg}t jdddd�}t||dœƒ}t| d¡| ƒƒ }t jddgdd�}td	|i|d
�}t ||¡ d S )Nr   r   râ   rã   rä   rj   r   r#   r    rR   )r,   rç   r   r*   r.   r-   r/   r0   rè   r5   r5   r6   Ú#test_groupby_aggregate_period_frame,  s    rì   c                  C   sÔ   t g d¢tdƒtjgd dœƒ t¡} |  d¡ ¡ }t ddgdd	gtjtjgdœƒ d¡ t¡}t	 
||¡ t g d¢tdƒtdƒdœƒ t¡} |  d¡ ¡ }t ddgdd	gd
dgdœƒ d¡ t¡}t	 
||¡ d S )Nr‚   Úabcdru   )r!   rP   rQ   r!   r9   r:   r   r–   r   r   )r   Úlistr=   r>   r‰   r[   r.   rm   r™   r/   r0   rw   r±   r5   r5   r6   Ú#test_aggregate_numeric_object_dtype:  s8    ÿþÿýüÿÿþÿþÿrï   )r‹   c                 C   sz   t dgdd�j ¡ }tdg|dœƒ}| d¡ d| i¡}tddgitjdgdd�d	�}|d  |j	¡|d< t
 ||¡ d S )
Nr    ÚcategoryrF   iÍ  ©r9   r:   r9   r:   r#   rR   )r   r¯   Z
as_orderedr   r.   rI   r,   r-   r‰   rG   r/   r0   )r‹   Zdsr1   r4   r3   r5   r5   r6   Ú%test_aggregate_categorical_lost_indexX  s    rò   )rO   ZInt32rN   ZFloat32rE   c                 C   s„  | dkrd}n| dkrd}nd}t ddg||d gdœƒ}|d	  | ¡|d	< | d
¡}| ¡ }|jd d…  d
¡}t ||¡ | ¡ }|jdd …  d
¡}t ||¡ |jdd�}t d	t	j
gi|j| d�}	t ||	¡ |jdd�}
t |
|	¡ t g d¢|t	j
|d gdœƒ}|d	  | ¡|d	< | d
¡}| ¡ }t ||¡ | ¡ }t ||¡ |jdd�}t ||	¡ |jdd�}t ||	¡ d S )NrO   l   ².¿Dÿ²3 rE   r   r”   r   r   )ÚidÚtsrô   ró   r   rÜ   rH   )r   r   r   éd   )r   r‰   r.   rm   rˆ   r™   r/   r0   rn   r,   rT   r'   )rG   rô   r1   rr   r4   r3   Zres_maxZexpected_maxÚresult2Z	expected2Zres_max2Zdf2r¨   Zresult3Zres_max3Zresult4Zres_max4r5   r5   r6   Útest_groupby_min_max_nullablef  s<    

r÷   c                  C   s²   t jdgd ddgd�} t| t  tjdtjd�¡dœƒ}|jddd	�}| ¡ }t j	ddg| j
dd
�}tdt jdt jgdd�i|d�}t ||¡ | ¡ }d|jd< t ||¡ d S )Nr   r�   r   )Ú
categoriesrF   rñ   r9   FrÁ   ©rG   r$   r:   ZUInt64rR   é	   )r   r   )r,   ÚCategoricalr   rB   r=   ZarangeÚuint64r.   rm   ÚCategoricalIndexrG   rT   r/   r0   rn   rˆ   )r¯   r1   rr   r§   rê   r3   r5   r5   r6   Ú(test_min_max_nullable_uint64_empty_group–  s      
rþ   )r�   r�   rm   rn   c                 C   s˜   t tjdgtdƒdd�tjdgddgdd�ddœƒ}t|jd	d
d�| ƒƒ }tjddgd	dd�}t tjdd gddgdd�dd gdœ|d�}t ||¡ d S )Nr9   ZABT)rø   Úorderedr   r   gš™™™™™¹?)rP   rQ   ÚvaluerP   FrÁ   r:   )rD   r$   rÿ   )rQ   r   rR   )	r   r,   rû   rî   r*   r.   rý   r/   r0   )r‹   r1   r4   rê   r3   r5   r5   r6   Ú test_groupby_min_max_categorical§  s    ýÿþûr  c                 C   sd   |}t dgdddœ|d�jd d… }t| d¡| ƒƒ }t ddg|tjg |dd�d�}t ||¡ d S )	Nr   r•   rF   r   r    r–   rù   )r&   rG   r'   )r   rˆ   r*   r.   r,   r-   r/   r0   )r‹   Ústring_dtype_no_objectrG   r1   r4   r3   r5   r5   r6   Útest_min_empty_string_dtype¾  s     ÿr  rÝ   Útest_seriesc                 C   s  |dkrd S | }|dv ri }n(|dv r0d|i}n|dv r>i }nd|i}|t j }}|dv rpd}|dkrjd	nd
}nx|dv r¶|r |dkr |jdkr |jt ju r d}nd}|dkr°dnd}n2|dv rÌdtj }}n|dkrÜt j}n|dkrèd}tdgt jgdœ|d�}|�r|d n|}	t||	ƒ}
|	 |d ¡}t	||ƒ}|dv �r’d|› d|› d�}t
jt|d�� ||
i |¤Ž W d   ƒ n1 �s„0    Y  d S ||
i |¤Ž}t jdgd|d �}|�sÂ|dk�rì|�sÖ|dk�rÖd nd}t||||d!�}ntd|i||d"�}t ||¡ d S )#NZcorrwith)r   r   rg   rh   r¬   r¹   ÚstdÚvar)ÚkurtrÝ   )rŽ   ÚnuniqueÚquantileÚsemr¶   )r   r   rZ   r   FT)rŽ   r  r¶   r¶   ZpyarrowrO   rß   r   r   )rg   rh   Úfloat64Úsumr   rÄ   rj   rF   r    r   )	r¬   r¹   r  Úprodr	  r
  Úskewr  r  zdtype 'z' does not support operation 'ú'r^   rk   )r'   rG   r$   rH   )r,   rT   Zstorager›   r=   r>   r   r   r.   r*   r`   ra   rb   r-   r   r/   rU   )r  Zreduction_funcrÝ   r  rG   rd   Zexpected_dtyper’   r1   rW   Úargsrr   r�   r{   r4   r'   r$   r3   r5   r5   r6   Útest_string_dtype_all_naÊ  sb    

ÿþý
ü


.r  c                 C   st   | }t dgtjgdœ|d�}| d¡}|j|d�}|dkr>dntj}t d|itjdgd|d	�|d
�}t ||¡ d S )NrÄ   rj   rF   r   rÜ   r   r   r    rk   rH   )r   r,   rT   r.   r  r-   r/   r0   )r  rÝ   rG   r1   rr   r4   r   r3   r5   r5   r6   Útest_string_dtype_empty_sum!  s    
ÿr  c                  C   sx   t g d¢g d¢ttjtjdgƒg d¢dœƒ} |  d¡}|dg  ¡ }|d  ¡  ¡ }t ||¡ |d  	¡  
¡ rtJ ‚d S )N)z-04-23z-05-06z-05-07)z2013-04-23 00:00:00z2013-05-06 00:00:00z2013-05-07 00:00:00ZOE)zlog080001.logzlog.logZxlsx)z
Unnamed: 0ÚDateZappÚFiler  r  )r   r   r=   r>   r.   rn   Zto_framer/   r0   r   r   )r1   rr   ÚrrÐ   r5   r5   r6   Útest_max_nan_bug/  s    øÿ
r  r—   ÚdropnarØ   Úwith_nanÚkeysÚjoeÚjimc                 C   sf  d}d}t ddd�}ttj d¡ ttƒ|¡tj d¡ ||¡tj d¡ d||¡dœƒ}|rÐ| 	dt
i¡}d |jd	d d
…df< d |jdd d…df< d |jdd d…df< d |jdd d…df< d |jdd d…df< | ¡ }	|j||| d�}
|
d j|d�}|j||| d�}
|
d jtj|d�}|�s.|jdd�}|�rFtj||dd� ntj||dd� t ||	¡ d S )Nrõ   r�   z
2015-08-23r¡   r   r   )r  r  Újulier  r   r·   r  r   é%   r  é   é   é   rú   )rØ   r—   ©r  T)rŠ   F)Zcheck_names)r
   r   r=   r¤   r¥   Úchoicerî   r   r¸   r‰   rM   ÚlocÚcopyr.   r  Úapplyr   Úreset_indexr/   rJ   r0   )r—   r  rØ   r  r  ÚnÚmÚdaysr1   Zoriginal_dfÚgrÚleftÚrightr5   r5   r6   Útest_series_groupby_nuniqueC  s6    ýÿr-  c                  C   s  t tdƒtdƒtdƒdœƒ} t tdƒg d¢g d¢dœƒ}| jdd	d
� ¡ }t ||¡ tdƒ|_d|j_|jdd�}|  d¡ ¡ }t ||¡ |  	dd i¡ d¡jd	d�}t ||¡ t dgd dgd dœtdƒd�}d|j_|  	dd i¡ d¡ ¡ }t ||¡ d S )NZabbaccZabxaccZabbacxr8   Úabc)r   r   r   )r   r   r   r9   Fr×   r<   rÄ   r!  r   r   )r:   r;   rR   )
r   rî   r.   r  r/   r0   r'   r$   rŠ   Úreplacer?   r5   r5   r6   Útest_nuniquek  s    
"r0  c                  C   sz   t g d¢g d¢g d¢g d¢g d¢gg d¢d�} |  dd	g¡d
  ¡ }t | j| jg¡}tdgd d
|d�}t 	||¡ d S )N)rõ   r   ZAlice)éÈ   r   ZBob)i,  r   ZCharlie)ipþÿÿru   ZDan)r¿   r˜   ZEdith)Úamountró   r$   r<   ró   r2  r$   r   r˜   r°   )
r   r.   r  r   Zfrom_arraysró   r2  r   r/   rJ   )rD   r4   r'   r3   r5   r5   r6   Útest_nunique_with_object„  s    ûør3  c                  C   s8   t dtd�} | jdd� ¡ }t ddd�}t ||¡ d S )Nr$   rk   r   ©Úlevelrß   )r   r[   r.   r  r/   rJ   )rD   r4   r3   r5   r5   r6   Útest_nunique_with_empty_series—  s    r6  c                  C   sr   t tdƒtdƒtdƒgg d¢dœƒ d¡} |  tjdd�¡d	  ¡ }|  tjdd�¡d	  tj¡}t	 
||¡ d S )
Nz2016-06-28 09:35:35z2016-06-28 16:09:30z2016-06-28 16:46:28)rÖ   Ú2Ú3)r®   rD   r®   Úh)rå   rD   )r   r	   r™   r.   r,   ZGrouperr  r%  r   r/   rJ   ©Útestr4   r3   r5   r5   r6   Útest_nunique_with_timegrouperŸ  s    ýúÿ	÷
r<  zkey, data, dropna, expected)rÄ   rÄ   rÄ   z
2019-01-01rÄ   r!   r#   ræ   iã  )rÄ   rÄ   rÄ   Úyr=  r=  )rÄ   rÄ   rÄ   rÄ   r=  c                 C   s6   t | |dœƒ}| dg¡d j|d�}t ||¡ d S )N)r!   rD   r!   rD   r!  )r   r.   r  r/   rJ   )r!   rD   r  r3   r1   r4   r5   r5   r6   Útest_nunique_with_NaT°  s    +r>  c                  C   sX   t g d¢tjdgdd�d�} |  g d¢¡ ¡ }t dgt dg¡| jd	�}t 	||¡ d S )
N)r   r   r   r9   Zlevel_0r#   r<   r   r   r   )r'   r&   )
r   r,   r-   r.   r  r=   rB   r&   r/   r0   r:  r5   r5   r6   Ú)test_nunique_preserves_column_level_namesà  s    r?  c                  C   sL   t tddƒdgd�} |  g d¢¡d  d¡}tg d¢dd�}t ||¡ d S )	Nz
2008-12-31z
2009-01-02rÙ   r<   )r   r   r   r  )r   r   r   r#   )r   r
   r.   Z	transformr   r/   rJ   r±   r5   r5   r6   Ú$test_nunique_transform_with_datetimeè  s    r@  c                 C   sn   t dgƒ d¡}|d d… }|j|| d�}| ¡ }| rNt g |d d… dd�}nt dg|dd�}t ||¡ d S )Nr   rð   r   rÁ   rß   rH   )r   r‰   r.   r  r/   rJ   )rÂ   r¯   rK   rr   r4   r3   r5   r5   r6   Útest_empty_categoricalð  s    rA  c                  C   sÀ   t ddtjdgƒ} |  g d¢¡}d}tjt|d�� | tj	¡}W d   ƒ n1 sT0    Y  d}tjt|d�� | 
tj	¡}W d   ƒ n1 s’0    Y  | 	¡ }t ||¡ t ||¡ d S )Nr   r   r   )r   r   r   r   zusing SeriesGroupBy.sumr^   zusing np.sum)r   r=   r>   r.   r/   ry   rx   rI   r+   r  r%  rJ   )Úsr‘   r{   r4   rö   r3   r5   r5   r6   Útest_intercept_builtin_sumý  s    **rC  r�   c                 C   sÐ   d}d}t j}tj|||||||gdd�}tg d¢|dœƒ}| d¡j| d�}| d	kr�td
tjg d¢dd�itjg d¢dd�d�}t 	||¡ n<td
tjtj
gd dd�itjg d¢dd�d�}t 	||¡ d S )NTFrE   rF   )r   r   r   r   r   r   r   rñ   r9   rÜ   r   r:   )r   r   r   rO   r   r#   rR   r   )r=   r>   r,   rB   r   r.   r  r-   r/   r0   rT   )rÝ   r    r   ÚnaZdfgr1   r4   r3   r5   r5   r6   Ú!test_groupby_sum_mincount_boolean  s"    þþrE  c                  C   s²   t g d¢g d¢g d¢dœdd�} |  d¡}tjg d¢ddd�}|d jdd	�}ttjgd
 d|dd�}t ||¡ |jdd	�}t tjgd
 tjgd
 dœd|d�}t 	||¡ d S )N)r   r   r   r•   rO   rF   r   rk   r    r   rÜ   r   )rG   r'   r$   )r    r–   )rG   r'   )
r   r.   r,   r-   r  r   rT   r/   rJ   r0   )r1   r‘   rê   r4   r3   r5   r5   r6   Ú0test_groupby_sum_below_mincount_nullable_integer%  s     
$rF  c                  C   sÎ   t g d¢t d¡t d¡t d¡tjgdœƒ} tjdd�}|  d¡}| ¡ }t d	||gitjd
dgdd�d�}t ||¡ |d	  ¡ }t 	||d	 ¡ |d	 jdd�}t
|tjgdd	|jd�}t 	||¡ d S )N)r   r   r   r   Z1dZ2dZ3drj   r   )r)  r   r    r   r   r#   rR   rÜ   zm8[ns])rG   r$   r'   )r   r,   Z	TimedeltaÚNaTr.   r  r-   r/   r0   rJ   r   r'   )r1   Ztd3rr   r§   r3   r5   r5   r6   Ú#test_groupby_sum_timedelta_with_nat4  s    þÿ
"rH  )Zint8Zint16Zint32rß   Zfloat32r  rü   zmethod,datar1   rj   ru   rŽ   rß   )r1   Úout_typec           	      C   s¸   t dddœdddœdddœdddœgƒ}|j | ¡|d< d|vrHg |d< d|v rZ|d }n| }|d	 }t |ƒ}|j |¡|d< |jd
dd� | d
¡}t||ƒ|d Ž }t ||¡ d S )Nr   rj   r   r   ru   r    r  rI  r1   r   T)Zinplace)r   r    r‰   r™   r.   r*   r/   r0   )	rG   r�   rD   r1   rI  r2   Zdf_outZgrpdÚtr5   r5   r6   Ú%test_groupby_non_arithmetic_agg_typesL  s     "ÿ

rK  c                  O   s   ddl m} || ddi|¤ŽS )Nr   )r
  Zddofr   )Zscipy.statsr
  )r  rd   r
  r5   r5   r6   Ú	scipy_semt  s    rL  z	op,targopr¬   r¹   r  r  r  r  c                 C   s
   | j d S )Nr   ©rˆ   rÃ   r5   r5   r6   rÅ   …  rÆ   rÅ   c                 C   s
   | j d S )NéÿÿÿÿrM  rÃ   r5   r5   r6   rÅ   †  rÆ   r
  Zscipy)Zmarksc                 C   s®   t tj d¡ d¡ƒ}tj d¡jdddd� t¡}t| 	|¡| ƒƒ }| dv rRd nt
}d| › �}tj||d��  | 	|¡ |¡}W d   ƒ n1 s”0    Y  t ||¡ d S )	Nr   r³   r   r´   rµ   )r�   r�   rŽ   r
  zusing DataFrameGroupBy.r^   )r   r=   r¤   r¥   r¦   r¸   r‰   rM   r*   r.   rx   r/   ry   rI   r0   )ÚopZtargopr1   r»   r4   rz   r{   r3   r5   r5   r6   Útest_ops_generalz  s    
.rP  r|   )	r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   Úfunction)r¬   r¹   r  c                 C   s¼   |dkrdnd}t j|gd td�}tjg d¢ddd	�}td
|i|d� d¡}t| dd� d¡}t||ƒƒ }t	 
||¡ | |¡}t	 
||¡ | |g¡}t d
|fg¡|_t	 
||¡ d S )Nr  g      à?g      ø?r   rF   r   r   rO   rk   r    rR   rN   )r=   rB   rM   r,   r-   r   r‰   r.   r*   r/   r0   rI   r   Úfrom_tuplesr&   )r|   rQ  Úoutputrº   rê   r3   ré   r4   r5   r5   r6   Ú,test_apply_to_nullable_integer_returns_float—  s    
rT  rO  )
r  r  rm   rn   r¹   r¬   r  r  r  r
  r    r)   c           
         s   t dgƒ}ˆ dkr|}d}n
|j}d}tjt|d��  |jdˆ |d�}W d   ƒ n1 sZ0    Y  ˆdkr¸t|ˆƒˆd�}|jdd� ‡ ‡‡fd	d
„¡}	|rª|	jˆ d�}	t 	||	¡ nDt|ˆƒƒ }|jdd� ‡ ‡fdd
„¡}	|rð|	jˆ d�}	t 	||	¡ d S )Nr   zAThe 'axis' keyword in DataFrame.groupby is deprecated and will bez+DataFrame.groupby with axis=1 is deprecatedr^   )r5  r    r—   r  r(   r4  c                    s   t | ˆƒˆ ˆd�S )N)r    r)   ©r*   ©r9  ©r    rO  r)   r5   r6   rÅ   Û  rÆ   z3test_regression_allowlist_methods.<locals>.<lambda>rŸ   c                    s   t | ˆƒˆ d�S )NrŸ   rU  rV  )r    rO  r5   r6   rÅ   â  rÆ   )
r   ÚTr/   ry   rx   r.   r*   r%  rš   r0   )
rO  r    r)   r—   Z	raw_frameÚframer{   r‘   r4   r3   r5   rW  r6   Ú!test_regression_allowlist_methods¶  s*    
.ÿrZ  c                  C   s¤   ddgddgddgddgddgddgddgdd	gdd
gddgddgddgddgddgg} t | ddgdd�}| dg¡ ¡  ¡ }t dgdgdœdd�}t ||¡ d S )Nr   rÉ   é)   r·   r  r  é   é   r   r   é+   r˜   é/   r  éX   r9   r:   rß   )r&   rG   l   �N+R@rñ   rF   )r   r.   r  r&  r/   r0   )rD   r1   r4   r3   r5   r5   r6   Ú"test_groupby_prod_with_int64_dtypeè  s&    òra  )jr+   Údatetimer‡   Ústringr   Únumpyr=   r`   Zpandas._libs.tslibsr   Zpandas.core.dtypes.commonr   Zpandas.core.dtypes.missingr   Zpandasr,   r   r   r   r	   r
   r   Zpandas._testingZ_testingr/   Zpandas.tests.groupbyr   Zpandas.utilr   ÚtdÚmarkZparametrizer>   r7   r@   rC   rT   rL   rB   rZ   rS   rY   rG  r]   rc   re   rs   r}   rŒ   r“   rœ   r©   r­   r²   r½   rÈ   rÎ   rÓ   rÛ   rà   rá   rë   rì   rï   Ústrrò   r÷   rþ   r  r  r  r  r  Zslowr-  r0  r3  r6  r<  r-   rÙ   r>  r?  r@  rA  rC  rE  rF  rH  rK  rL  r¬   r¹   r  r  r  r  rm   rn   r¶   ÚparamZ
skip_if_norP  rT  rZ  ra  r5   r5   r5   r6   Ú<module>   sê   óþ




úþüüüüíþ
üþ	


	

(þþ þûþ





/

U
"üüûöûöçþ)

ÿûþ


ôþ
þûþ
þ 