o
    Û­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¡dfe@fdodp„ƒZAej d-g dq¢¡drds„ ƒZBdtdu„ ZCej dfg dv¢¡dwdx„ ƒZDej dfdgdhg¡dydz„ ƒ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|ƒ|ƒ}| r&tt|ƒƒr&|dkr&d}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   úa/var/www/html/CropPilot/venv/lib/python3.10/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*   Úset_axisr=   Úarrayr/   r0   )rA   r1   Úgrp_byr4   r3   r5   r5   r6   Ú test_bool_aggs_dup_column_labelsL   s
   rE   Ú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'   rI   r   )r   r*   r=   rC   r.   Úaggr/   Úassert_series_equal)rA   r)   rF   ÚserÚexpected_datar3   r4   r5   r5   r6   Útest_masked_kleene_logicW   s
   rO   zdtype1,dtype2,exp_col1,exp_col2ÚfloatÚFloat64rH   rG   Ú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   rH   )Úcol1Úcol2r   r   Fr(   ©r'   )	r=   r>   r   r,   rC   r.   rK   r/   r0   )Údtype1Údtype2Úexp_col1Úexp_col2rF   r1   r4   r3   r5   r5   r6   Útest_masked_mixed_typesp   s   
ÿrZ   rI   )rR   rQ   rG   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   rH   Tr   rG   rJ   r(   )r,   ÚNAr=   rC   r.   rK   r/   Úassert_equal)rA   rI   r)   Úframe_or_seriesÚobjÚexpected_resr3   r4   r5   r5   r6   Útest_masked_bool_aggs_skipna™   s   r`   zbool_agg_func,data,expected_resr   c                 C   sN   ||t d�}| dgt|ƒ ¡ | ¡}||gt dg¡dd�}t ||¡ d S )NrH   r   ÚboolrJ   )Úobjectr.   ÚlenrK   r=   rC   r/   r\   )rA   rF   r_   r]   r^   r4   r3   r5   r5   r6   Útest_object_type_missing_vals§   s   rd   c                 C   sZ   t tjgtd�}tjtdd�� | dg¡j| dd� W d   ƒ d S 1 s&w   Y  d S )NrH   z boolean value of NA is ambiguous©Úmatchr   Fr(   )	r   r,   r[   rb   ÚpytestÚraisesÚ	TypeErrorr.   rK   )rA   rM   r5   r5   r6   Ú'test_object_NA_raises_with_skipna_false¸   s   "ÿrj   c                 C   sj   | t u r	ddginddi}| di |¤dti¤Ž}t| |j¡|ƒƒ }| di |¤dti¤Ž}t ||¡ d S )Nr&   r   r$   rI   r5   )r   rb   r*   r.   r'   ra   r/   r\   )r]   rA   Úkwargsr^   r4   r3   r5   r5   r6   Ú
test_emptyÀ   s
   rl   Ú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    rH   r   r    r   r   r   ©r$   rI   rU   )rp   rP   r=   ÚiinfoÚfinfoÚminÚmaxr   r.   r*   r,   r-   r/   r0   )	rm   Úany_real_numpy_dtypeÚinfoÚ	min_valueÚ	max_valuer1   Úgbr4   r3   r5   r5   r6   Útest_idxmin_idxmax_extremesÊ   s   

þ
ÿr|   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¡}| r<d nt
}d	|› d
�}tj||d�� t||ƒ| d�}	W d   ƒ n1 s^w   Y  | rnd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   )ÚrepeatsÚintprH   rq   r   z!The behavior of DataFrameGroupBy.z with all-NA valuesre   r(   r   é   r    rr   rU   )r=   rt   ru   rv   r   r   ÚrepeatÚranger>   r.   ÚFutureWarningr/   Úassert_produces_warningr*   r,   r-   r0   )r)   rm   Úfloat_numpy_dtypery   rz   r1   r{   ÚwarnÚmsgr4   Úvaluesr3   r5   r5   r6   Ú"test_idxmin_idxmax_extremes_skipnaß   sB   öóþÿ
ÿÿ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�}|ro|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   r€   )g®Gáz@g=
×£p=@gR¸…ëQ @gÍÌÌÌÌÌð?)Ú2019Ú2018Ú2016Ú2017)r$   rŠ   r‹   rŒ   rŒ   z
US/PacificÚ	c_date_tzr   Úc_timedeltaÚWÚc_periodrŠ   rR   Ú	c_Integerr‹   rQ   Ú
c_Floatingr$   ©r�   r9   r:   r#   rU   r<   )r   r,   Úto_datetimeÚdtÚtz_localizeÚilocÚ	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)Úcountru   rv   ÚfirstÚlastc                 C   s˜   t ddg|dœƒ}| d¡}t|| ƒƒ }| dkrd}n| dkr$|d }n| dkr-|d }nt|d	 | ƒƒ }t d	|gitjdgdd
�d�}t ||¡ d S )Nr   rq   r   r¥   r   r¦   r   r§   r    r#   rU   )r   r.   r*   r,   r-   r/   r0   )r¤   rF   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¡}
|rT|
 	¡ }
t
 ||
¡ d S )N)r   r   r   r   r   r   r   ç      @©r   r    ÚcrH   r   )Úsortr(   )r   r   r€   )r   r   r€   )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   )Úany_real_nullable_dtyper®   r)   rm   Úna_valuer1   r{   r¤   r4   Úilocsr3   r5   r5   r6   Útest_first_last_skipnaN  s,   ýú

üûrµ   c               	   C   sN  t tj d¡ d¡g d¢d�} g d¢| d< |  d¡}d}tjt|d�� |j	d	d
�}W d   ƒ n1 s4w   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��. tjt|d�� |j	d	d
� W d   ƒ n1 sˆw   Y  W d   ƒ d S W d   ƒ d S 1 s w   Y  d S )Nr   )é
   r€   )r9   r:   r;   ÚDr<   )
r   r   r   r   r   r   r   r   r   r€   r9   z1DataFrameGroupBy.idxmax with axis=1 is deprecatedre   r   ©Úaxisz
2016-01-01r¶   ©ÚperiodsÚEz>'>' not supported between instances of 'Timestamp' and 'float')r   r=   ÚrandomÚdefault_rngÚstandard_normalr.   r/   r„   rƒ   ro   rž   r'   Úget_level_valuesrL   Ú	droplevelr
   rg   rh   ri   )r1   r{   Úwarn_msgÚresÚaltÚ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sJ ‚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Ì   r€   r#   ©r$   r'   )
r   r,   Úto_timedeltar‚   r.   rÊ   r   r-   r/   rL   ©r1   r4   r3   r5   r5   r6   Útest_mean_on_timedelta�  s    ÿrÑ   c                  C   s.  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 sPw   Y  t ||¡ tt j d¡ d	¡ƒ}d}tjt|d�� | 	|¡ t j
¡}W d   ƒ n1 sƒw   Y  | 	|¡ 
¡ }t ||¡ d S )
Nr   éè  r   é2   ©Úsizeé   zusing DataFrameGroupBy.medianre   )rÒ   r¯   )r=   r½   r¾   r¿   r>   r   Úintegersr    rP   r.   Úmedianr/   r„   rƒ   rK   Ú	nanmedianr0   )Úarrr1   Úlabelsr4   r‡   r2   ÚrsÚxpr5   r5   r6   Útest_cython_median™  s$   ÿÿ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>¶  s    z(test_median_empty_bins.<locals>.<lambda>)r   r=   r½   r¾   r×   r‚   r,   Úcutr.   rØ   rK   r/   r0   )rã   r1   ÚgrpsÚ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 sJ ‚|  d¡jdd	�}d|v s+J ‚|  d¡ ¡ }d|v s8J ‚|  d¡jdd	�}d|v sGJ ‚d S )
N)é   rë   é   rì   r�   r€   Úmama)ÚnnÚiiÚssrî   rð   Frš   )r   r.   rv   ru   )Úaar4   r5   r5   r6   Útest_max_min_non_numericº  s   rò   c                 C   sÐ   t g d¢g d¢g d¢dœƒ}| ¡  | s!|r t|jjƒdks!J ‚	 | 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ô   rU   )r   r­   rô   )r   Ú_consolidate_inplacerc   Ú_mgrÚblocksr.   rv   r,   r-   r/   r0   ru   )Úusing_array_managerÚusing_infer_stringr1   r{   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.   ru   r/   rL   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   rH   r   ©Ú	min_countT©Úcheck_exactr   )r   r   r=   rC   Úint64r.   rv   r/   rL   ru   r>   )rM   r!   r{   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.   ru   r=   r>   r'   r    rp   r/   rL   )rM   r{   r4   r3   r5   r5   r6   Útest_max_inat_not_all_na  s   r
  r¢   ru   rv   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»   Úfreqrq   r   r    r#   ©r'   r$   )	r,   Úperiod_ranger   r*   r.   r-   r   r/   rL   ©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  rq   r   r#   r    rU   )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Ž   Úabcdr€   )r!   rS   rT   r!   r9   r:   r   r­   r   r   )r   Úlistr=   r>   r    rb   r.   ru   r°   r/   r0   r‚   rÐ   r5   r5   r6   Ú#test_aggregate_numeric_object_dtype:  s0   ÿþÿûÿþý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    ÚcategoryrH   iÍ  ©r9   r:   r9   r:   r#   rU   )r   rÍ   Ú
as_orderedr   r.   rK   r,   r-   r    rI   r/   r0   )r¢   Údsr1   r4   r3   r5   r5   r6   Ú%test_aggregate_categorical_lost_indexX  s   r  )rR   ÚInt32rQ   ÚFloat32rG   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 )NrR   l   ².¿Dÿ²3 rG   r   r«   r   r   )ÚidÚtsr!  r   r   r  rJ   )r   r   r   éd   )r   r    r.   ru   rž   r°   r/   r0   rv   r,   r[   r'   )rI   r!  r1   r{   r4   r3   Úres_maxÚexpected_maxÚresult2Ú	expected2Úres_max2Údf2rÆ   Úresult3Úres_max3Úresult4Ú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   )Ú
categoriesrH   r  r9   Frâ   ©rI   r$   r:   ÚUInt64rU   é	   )r   r   )r,   ÚCategoricalr   rC   r=   ÚarangeÚuint64r.   ru   ÚCategoricalIndexrI   r[   r/   r0   rv   rž   )rÍ   r1   r{   rÃ   r  r3   r5   r5   r6   Ú(test_min_max_nullable_uint64_empty_group–  s     
r6  )r¦   r§   ru   rv   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   ÚABT)r.  Úorderedr   r   gš™™™™™¹?)rS   rT   ÚvaluerS   Frâ   r:   )rF   r$   r8  )rT   r9  rU   )	r   r,   r2  r  r*   r.   r5  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¬   rH   r   r    r­   r/  )r&   rI   r'   )r   rž   r*   r.   r,   r-   r/   r0   )r¢   Ústring_dtype_no_objectrI   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 rd|i}n|dv ri }nd|i}|t j}}|dv r8d}|dkr5d	nd
}n<|dv r[|rP|dkrP|jdkrP|jt ju rPd}nd}|dkrXdnd}n|dv rfdtj}}n|dkrnt j}n|dkrtd}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   ƒ d S 1 sÀw   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 )#NÚcorrwith)r   r   rn   ro   rÊ   rØ   ÚstdÚvar)Úkurtr  )r¥   ÚnuniqueÚquantileÚsemrÕ   )r   r   ra   r   FT)r¥   rB  rÕ   rÕ   ÚpyarrowrR   r  r   r   )rn   ro   Úfloat64Úsumr   rå   rq   rH   r    r   )	rÊ   rØ   rA  ÚprodrC  rD  Úskewr?  r@  zdtype 'z' does not support operation 'ú're   rr   )r'   rI   r$   rJ   )r,   r[   Ústorager³   r=   r>   r   r   r.   r*   rg   rh   ri   r-   r   r/   r\   )r;  Úreduction_funcr  r=  rI   rk   Úexpected_dtyper©   r1   r^   Úargsr{   r¤   r‡   r4   r'   r$   r3   r5   r5   r6   Útest_string_dtype_all_naÊ  sb   

ÿ



ÿþrO  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å   rq   rH   r   r  r   r   r    rr   rJ   )r   r,   r[   r.   rG  r-   r/   r0   )r;  r  rI   r1   r{   r4   r9  r3   r5   r5   r6   Útest_string_dtype_empty_sum!  s   
ÿrP  c                  C   sx   t g d¢g d¢ttjtjdgƒg d¢dœƒ} |  d¡}|dg  ¡ }|d  ¡  ¡ }t ||¡ |d  	¡  
¡ r:J ‚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:00ÚOE)zlog080001.logzlog.logÚxlsx)z
Unnamed: 0ÚDateÚappÚFilerS  rU  )r   r   r=   r>   r.   rv   Úto_framer/   r0   r   r   )r1   r{   Úrrô   r5   r5   r6   Útest_max_nan_bug/  s   øÿ
rX  r®   Údropnar   Úwith_nanÚkeysÚjoeÚjimc                 C   sb  d}d}t ddd�}ttj d¡ ttƒ|¡tj d¡ ||¡tj d¡ d||¡dœƒ}|rh| 	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�}|r¡t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\  é   é   é   r1  )r   r®   ©rY  T)r¡   F)Úcheck_names)r
   r   r=   r½   r¾   Úchoicer  r   r×   r    rP   ÚlocÚcopyr.   rB  Úapplyr   Úreset_indexr/   rL   r0   )r®   rY  r   rZ  r[  ÚnÚmÚdaysr1   Úoriginal_dfÚgrÚleftÚrightr5   r5   r6   Útest_series_groupby_nuniqueC  s6   ýÿrq  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 )NÚabbaccÚabxaccÚabbacxr8   Úabc)r   r   r   )r   r   r   r9   Frÿ   r<   rå   rc  r   r   )r:   r;   rU   )
r   r  r.   rB  r/   r0   r'   r$   r¡   Úreplacer?   r5   r5   r6   Útest_nuniquek  s   
"rw  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   ÚAlice)éÈ   r   ÚBob)i,  r   ÚCharlie)ipþÿÿr€   ÚDan)rà   r¯   ÚEdith)Úamountr   r$   r<   r   r~  r$   r   r¯   rÎ   )
r   r.   rB  r   Úfrom_arraysr   r~  r   r/   rL   )rF   r4   r'   r3   r5   r5   r6   Útest_nunique_with_object„  s   ûør€  c                  C   s8   t dtd�} | jdd� ¡ }t ddd�}t ||¡ d S )Nr$   rr   r   ©Úlevelr  )r   rb   r.   rB  r/   rL   )rF   r4   r3   r5   r5   r6   Útest_nunique_with_empty_series—  s   rƒ  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Ì   rF   rÌ   Úh)r  rF   )r   r	   r°   r.   r,   ÚGrouperrB  rh  r   r/   rL   ©Ú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!   rF   r!   rF   rc  )r   r.   rB  r/   rL   )r!   rF   rY  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   Úlevel_0r#   r<   r   r   r   )r'   r&   )
r   r,   r-   r.   rB  r=   rC   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   rB  )r   r   r   r#   )r   r
   r.   Ú	transformr   r/   rL   rÐ   r5   r5   r6   Ú$test_nunique_transform_with_datetimeè  s   r�  c                 C   sn   t dgƒ d¡}|d d… }|j|| d�}| ¡ }| r't g |d d… dd�}nt dg|dd�}t ||¡ d S )Nr   r  r   râ   r  rJ   )r   r    r.   rB  r/   rL   )rã   rÍ   rM   r{   r4   r3   r5   r5   r6   Útest_empty_categoricalð  s   r‘  c                  C   sÀ   t ddtjdgƒ} |  g d¢¡}d}tjt|d�� | tj	¡}W d   ƒ n1 s*w   Y  d}tjt|d�� | 
tj	¡}W d   ƒ n1 sIw   Y  | 	¡ }t ||¡ t ||¡ d S )Nr   r   r   )r   r   r   r   zusing SeriesGroupBy.sumre   zusing np.sum)r   r=   r>   r.   r/   r„   rƒ   rK   r+   rG  rh  rL   )Úsr¨   r‡   r4   r%  r3   r5   r5   r6   Útest_intercept_builtin_sumý  s   þþr“  r¶   c                 C   sÒ   d}d}t j}tj|||||||gdd�}tg d¢|dœƒ}| d¡j| d�}| d	krItd
tjg d¢dd�itjg d¢dd�d�}t 	||¡ d S td
tjtj
gd dd�itjg d¢dd�d�}t 	||¡ d S )NTFrG   rH   )r   r   r   r   r   r   r   r  r9   r  r   r:   )r   r   r   rR   r   r#   rU   r   )r=   r>   r,   rC   r   r.   rG  r-   r/   r0   r[   )r  r    r   ÚnaÚdfgr1   r4   r3   r5   r5   r6   Ú!test_groupby_sum_mincount_boolean  s"   þþr–  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¬   rR   rH   r   rr   r    r   r  r   )rI   r'   r$   )r    r­   )rI   r'   )
r   r.   r,   r-   rG  r   r[   r/   rL   r0   )r1   r¨   r  r4   r3   r5   r5   r6   Ú0test_groupby_sum_below_mincount_nullable_integer%  s    
$r—  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   Ú1dÚ2dÚ3drq   r   )rl  r   r    r   r   r#   rU   r  zm8[ns])rI   r$   r'   )r   r,   Ú	TimedeltaÚNaTr.   rG  r-   r/   r0   rL   r   r'   )r1   Útd3r{   rÃ   r3   r5   r5   r6   Ú#test_groupby_sum_timedelta_with_nat4  s   þÿ
"rž  )Úint8Úint16Úint32r  Úfloat32rF  r4  zmethod,datar1   rq   r€   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r$g |d< d|v r-|d }n| }|d	 }t |ƒ}|j |¡|d< |jd
dd� | d
¡}t||ƒ|d Ž }t ||¡ d S )Nr   rq   r   r   r€   r    rN  r£  r1   r   T)Úinplace)r   r    r    r°   r.   r*   r/   r0   )	rI   r¤   rF   r1   r£  r2   Údf_outÚgrpdÚtr5   r5   r6   Ú%test_groupby_non_arithmetic_agg_typesL  s    "ÿ

r¨  c                  O   s   ddl m} || ddi|¤ŽS )Nr   )rD  Úddofr   )Úscipy.statsrD  )rN  rk   rD  r5   r5   r6   Ú	scipy_semt  s   r«  z	op,targoprÊ   rØ   r?  r@  rG  rH  c                 C   ó
   | j d S )Nr   ©rž   rä   r5   r5   r6   ræ   …  ó   
 ræ   c                 C   r¬  )Néÿÿÿÿr­  rä   r5   r5   r6   ræ   †  r®  rD  Úscipy)Úmarksc                 C   s®   t tj d¡ d¡ƒ}tj d¡jdddd� t¡}t| 	|¡| ƒƒ }| dv r)d nt
}d| › �}tj||d�� | 	|¡ |¡}W d   ƒ n1 sJw   Y  t ||¡ d S )	Nr   rÒ   r   rÓ   rÔ   )r¦   r§   r¥   rD  zusing DataFrameGroupBy.re   )r   r=   r½   r¾   r¿   r×   r    rP   r*   r.   rƒ   r/   r„   rK   r0   )ÚopÚtargopr1   rÛ   r4   r†   r‡   r3   r5   r5   r6   Útest_ops_generalz  s   
ÿr´  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   rH   r   r   rR   rr   r    rU   rQ   )r=   rC   rP   r,   r-   r   r    r.   r*   r/   r0   rK   r   Úfrom_tuplesr&   )rˆ   rµ  ÚoutputrÚ   r  r3   r  r4   r5   r5   r6   Ú,test_apply_to_nullable_integer_returns_float—  s   
r¸  r²  )
rG  rH  ru   rv   rØ   rÊ   rI  r?  r@  rD  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 s-w   Y  ˆdkr]t|ˆƒˆd�}|jdd� ‡ ‡‡fd	d
„¡}	|rU|	jˆ d�}	t 	||	¡ d S t|ˆƒƒ }|jdd� ‡ ‡fdd
„¡}	|ry|	jˆ d�}	t 	||	¡ d S )Nr   zAThe 'axis' keyword in DataFrame.groupby is deprecated and will bez+DataFrame.groupby with axis=1 is deprecatedre   )r‚  r¹   r®   rI  r(   r�  c                    s   t | ˆƒˆ ˆd�S )N)r¹   r)   ©r*   ©r†  ©r¹   r²  r)   r5   r6   ræ   Û  s    z3test_regression_allowlist_methods.<locals>.<lambda>r¸   c                    s   t | ˆƒˆ d�S )Nr¸   r¹  rº  )r¹   r²  r5   r6   ræ   â  s    )
r   ÚTr/   r„   rƒ   r.   r*   rh  r±   r0   )
r²  r¹   r)   r®   Ú	raw_frameÚframer‡   r¨   r4   r3   r5   r»  r6   Ú!test_regression_allowlist_methods¶  s,   
ÿÿr¿  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¯   é/   ra  éX   r9   r:   r  )r&   rI   l   �N+R@r  rH   )r   r.   rH  ri  r/   r0   )rF   r1   r4   r3   r5   r5   r6   Ú"test_groupby_prod_with_int64_dtypeè  s&   òrÆ  )jr+   Údatetimerœ   Ústringr   Únumpyr=   rg   Úpandas._libs.tslibsr   Úpandas.core.dtypes.commonr   Úpandas.core.dtypes.missingr   Úpandasr,   r   r   r   r	   r
   r   Úpandas._testingÚ_testingr/   Úpandas.tests.groupbyr   Úpandas.utilr   ÚtdÚmarkÚparametrizer>   r7   r@   rE   r[   rO   rC   ra   rZ   r`   rœ  rd   rj   rl   r|   r‰   r£   rª   rµ   rÇ   rË   rÑ   rÞ   rê   rò   rû   r  r	  r
  r  r  r  Ústrr  r-  r6  r:  r<  rO  rP  rX  Úslowrq  rw  r€  rƒ  rŠ  r-   r  rŒ  rŽ  r�  r‘  r“  r–  r—  rž  r¨  r«  rÊ   rØ   r?  r@  rG  rH  ru   rv   rÕ   ÚparamÚ
skip_if_nor´  r¸  r¿  rÆ  r5   r5   r5   r6   Ú<module>   sì    óþ




úþüüüüíþ
üþ
	

	

(þþ þûþ





/

U
"üüûöûöçþ
)
ÿûþ


ôþ
þûþ
þ 