o
    �¨Êhá�  ã                   @   sæ  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 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.d/„ ƒƒZ'ej d0d	ej"ejgd fd	ej"d1ejgd!fd
ej"ej(gd!fd
ej"d ej(gd fg¡d2d3„ ƒZ)ej dd	d
g¡d4d5„ ƒZ*ej dd	d
g¡d6d7„ ƒZ+ej d8d9d:g¡d;d<„ ƒZ,ej d8d9d:g¡d=d>„ ƒZ-ej d?d9d d@gd1dAgd1d@gdBœfd:d1dAgd d@gd dAgdBœfg¡ej dCd!d g¡dDdE„ ƒƒZ.ej dedFƒedGƒfdHg¡ej dIg dJ¢¡dKdL„ ƒƒZ/ej d8dMdNg¡dOdP„ ƒZ0dQdR„ Z1dSdT„ Z2dUdV„ Z3dWdX„ Z4dYdZ„ Z5d[d\„ Z6d]d^„ Z7d_d`„ Z8dadb„ Z9dcdd„ Z:ej dedfdgg¡dhdi„ ƒZ;ej dedfdgg¡djdk„ ƒZ<dldm„ Z=ej dedfdgg¡dee>fdndo„ƒZ?ej d,g dp¢¡dqdr„ ƒZ@dsdt„ ZAej deg du¢¡dvdw„ ƒZBej dedfdgg¡dxdy„ ƒZCdzd{„ ZDejjEe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„„ ƒƒƒƒƒƒZFd…d†„ ZGd‡dˆ„ ZHd‰dŠ„ ZId‹dŒ„ ZJej d�g dŽ¢ed�ƒej(ed�ƒgd!ed1gejKd�gd‘d’�dd“�fg dŽ¢e Ld”d1d1¡ej(e Ld”d1d1¡gd!ed1gejKd�gd‘d’�dd“�fg d•¢e Ld”d1d1¡ej(e Ld”d1d1¡ej(e Ld”d1d1¡gd ed@d@gejKd�d–gd‘d’�dd“�fg d—¢e Ld”d1d1¡ej(e Ld”d1d1¡ej(e Ld”d1d1¡gd ed@d1gejKd�d–gd‘d’�dd“�fg¡d˜d™„ ƒZMdšd›„ ZNdœd�„ ZOdždŸ„ ZPd d¡„ ZQej d¢d d£g¡d¤d¥„ ƒZRd¦d§„ ZSd¨d©„ ZTej d,g dª¢¡ej d«dMd¬d1d1d­œd@dAd­œgifdNd¬d1d@d­œd@d®d­œgifdfd¬d1d1d­œd@dAd­œgifdgd¬d1d@d­œd@d®d­œgifd¯d1d@d­œd@d@d­œgd°d±œfg¡d²d³„ ƒƒZUd´dµ„ ZVej d¶d·ejWfd¸ejXfd¹ejYfdºejZfd»ej[fd¼ej\fdfej]fdgej^fdMd½d¾„ fdNd¿d¾„ fd¯ej_fej`dÀeVe adÁ¡dÂ�g¡dÃdÄ„ ƒZbej dÅg dÆ¢d1ej"d@d1ej"d@d1ej"d@g	d­œg dÇ¢g dÈ¢d­œg¡ej dÉg dÊ¢¡dËdÌ„ ƒƒZcej dÍg dÎ¢¡ej dÏd d1g¡ej dÐd!d g¡ej d|d!d g¡dÑdÒ„ ƒƒƒƒZddÓdÔ„ ZedS )Õé    N)Úascii_lowercase)ÚiNaT)Úpandas_dtype)Úna_value_for_dtype)Ú	DataFrameÚ
MultiIndexÚSeriesÚ	TimestampÚ
date_rangeÚisna)Ú_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© r4   úV/var/www/html/env/lib/python3.10/site-packages/pandas/tests/groupby/test_reductions.pyÚtest_groupby_bool_aggs   s   "ÿr6   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%   TFr9   r:   r$   r8   )	r   ÚnpÚnanr&   r#   r-   r   r.   r/   ©r0   r2   r3   r4   r4   r5   Ú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.   r/   )r@   r0   Úgrp_byr3   r2   r4   r4   r5   Ú test_bool_aggs_dup_column_labelsK   s
   rD   Ú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&   rH   r   )r   r)   r<   rB   r-   Úaggr.   Úassert_series_equal)r@   r(   rE   ÚserÚexpected_datar2   r3   r4   r4   r5   Útest_masked_kleene_logicV   s
   rN   zdtype1,dtype2,exp_col1,exp_col2ÚfloatÚFloat64rG   rF   Ú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   rG   )Úcol1Úcol2r   r   Fr'   ©r&   )	r<   r=   r   r+   rB   r-   rJ   r.   r/   )Údtype1Údtype2Úexp_col1Úexp_col2rE   r0   r3   r2   r4   r4   r5   Útest_masked_mixed_typeso   s   
ÿrY   rH   )rQ   rP   rF   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   rG   Tr   rF   rI   r'   )r+   ÚNAr<   rB   r-   rJ   r.   Úassert_equal)r@   rH   r(   Úframe_or_seriesÚobjÚexpected_resr2   r3   r4   r4   r5   Ú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 )NrG   r   ÚboolrI   )Úobjectr-   ÚlenrJ   r<   rB   r.   r[   )r@   rE   r^   r\   r]   r3   r2   r4   r4   r5   Útest_object_type_missing_vals¦   s   rc   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 )NrG   z boolean value of NA is ambiguous©Úmatchr   Fr'   )	r   r+   rZ   ra   ÚpytestÚraisesÚ	TypeErrorr-   rJ   )r@   rL   r4   r4   r5   Ú'test_object_NA_raises_with_skipna_false·   s   "ÿri   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#   rH   r4   )r   ra   r)   r-   r&   r`   r.   r[   )r\   r@   Úkwargsr]   r3   r2   r4   r4   r5   Ú
test_empty¿   s
   rk   Ú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   rG   r   r   r   r   r   ©r#   rH   rT   )ro   rO   r<   ÚiinfoÚfinfoÚminÚmaxr   r-   r)   r+   r,   r.   r/   )	rl   Úany_real_numpy_dtypeÚinfoÚ	min_valueÚ	max_valuer0   Úgbr3   r2   r4   r4   r5   Ú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ÚintprG   rp   r   z!The behavior of DataFrameGroupBy.z with all-NA valuesrd   r'   r   é   r   rq   rT   )r<   rs   rt   ru   r   r   ÚrepeatÚranger=   r-   ÚFutureWarningr.   Úassert_produces_warningr)   r+   r,   r/   )r(   rl   Úfloat_numpy_dtyperx   ry   r0   rz   ÚwarnÚmsgr3   Úvaluesr2   r4   r4   r5   Ú"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©r8   r8   r9   r9   ©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‰   rQ   Ú	c_IntegerrŠ   rP   Ú
c_Floatingr#   ©rŒ   r8   r9   r"   rT   r;   )r   r+   Úto_datetimeÚdtÚtz_localizeÚilocÚ	to_periodÚastyper)   r-   r,   Údropr.   r/   )Úfuncr‡   rŒ   r0   r3   r2   r4   r4   r5   Ú$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)Úcountrt   ru   Ú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   rp   r   r¤   r   r¥   r   r¦   r   r"   rT   )r   r-   r)   r+   r,   r.   r/   )r£   rE   r0   Úgroupedr3   Úexpected_valuer2   r4   r4   r5   Ú2test_groupby_non_arithmetic_agg_int_like_precision/  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   ÚcrG   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.   r/   )Úany_real_nullable_dtyper­   r(   rl   Úna_valuer0   rz   r£   r3   Úilocsr2   r4   r4   r5   Útest_first_last_skipnaM  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   )r8   r9   r:   ÚDr;   )
r   r   r   r   r   r   r   r   r   r   r8   z1DataFrameGroupBy.idxmax with axis=1 is deprecatedrd   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‚   rn   r�   r&   Úget_level_valuesrK   Ú	droplevelr
   rf   rg   rh   )r0   rz   Úwarn_msgÚresÚaltÚindexerÚgb2r†   r4   r4   r5   Útest_idxmin_idxmax_axis1i  s,   ÿ
ÿ
ÿÿ"ÿrÆ   c                  C   s8   t g d¢g d¢dœƒ} |  d¡d  ¡ d dksJ ‚d S )N)r8   r8   r8   r8   r8   )ij  i�  io  i`  l    @Ü~ÿÿ )ÚuserÚconnectionsrÇ   rÈ   r8   l    ,fÌL™ )r   r-   Úmean)r0   r4   r4   r5   Ú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µ   r8   r9   r®   )ÚtimeÚcatrÌ   rË   r   r"   ©r#   r&   )
r   r+   Úto_timedeltar�   r-   rÉ   r   r,   r.   rK   ©r0   r3   r2   r4   r4   r5   Ú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.medianrd   )rÑ   r®   )r<   r¼   r½   r¾   r=   r   ÚintegersrŸ   rO   r-   Úmedianr.   rƒ   r‚   rJ   Ú	nanmedianr/   )Úarrr0   Úlabelsr3   r†   r1   ÚrsÚxpr4   r4   r5   Ú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×   ©Úxr4   r4   r5   Ú<lambda>µ  s    z(test_median_empty_bins.<locals>.<lambda>)r   r<   r¼   r½   rÖ   r�   r+   Úcutr-   r×   rJ   r.   r/   )râ   r0   ÚgrpsÚbinsr3   r2   r4   r4   r5   Ú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-   ru   rt   )Úaar3   r4   r4   r5   Útest_max_min_non_numeric¹  s   rñ   c                 C   sÊ   t g d¢g d¢g d¢dœƒ}| ¡  | s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Úer7   r   r8   r:   r   r"   )r   rò   ró   rT   )r   r¬   ró   )r   Ú_consolidate_inplacerb   Ú_mgrÚblocksr-   ru   r+   r,   r.   r/   rt   )Úusing_array_managerr0   rz   r3   Úeir2   r4   r4   r5   Ú$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-   rt   r.   rK   r&   r#   )Údatesr0   r3   r2   r4   r4   r5   Ú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   rG   r   ©Ú	min_countT©Úcheck_exactr   )r   r   r<   rB   Úint64r-   ru   r.   rK   rt   r=   )rL   r    rz   r3   r2   r4   r4   r5   Ú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-   rt   r<   r=   r&   rŸ   ro   r.   rK   )rL   rz   r3   r2   r4   r4   r5   Útest_max_inat_not_all_na  s   r  r¡   rt   ru   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º   Úfreqrp   r   r   r"   ©r&   r#   )	r+   Úperiod_ranger   r)   r-   r,   r   r.   rK   ©r¡   Úgroupsrº   r0   r3   Úidxr2   r4   r4   r5   Ú$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  rp   r   r"   r   rT   )r+   r  r   r)   r-   r,   r.   r/   r  r4   r4   r5   Ú#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    rR   rS   r    r8   r9   r   r¬   r   r   )r   Úlistr<   r=   rŸ   ra   r-   rt   r¯   r.   r/   r�   rÏ   r4   r4   r5   Ú#test_aggregate_numeric_object_dtype9  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   ÚcategoryrG   iÍ  ©r8   r9   r8   r9   r"   rT   )r   rÌ   Ú
as_orderedr   r-   rJ   r+   r,   rŸ   rH   r.   r/   )r¡   Údsr0   r3   r2   r4   r4   r5   Ú%test_aggregate_categorical_lost_indexW  s   r  )rQ   ÚInt32rP   ÚFloat32rF   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 )NrQ   l   ².¿Dÿ²3 rF   r   rª   r   r   )ÚidÚtsr  r  r   r  rI   )r   r   r   éd   )r   rŸ   r-   rt   r�   r¯   r.   r/   ru   r+   rZ   r&   )rH   r  r0   rz   r3   r2   Úres_maxÚexpected_maxÚresult2Ú	expected2Úres_max2Údf2rÅ   Úresult3Úres_max3Úresult4Úres_max4r4   r4   r5   Útest_groupby_min_max_nullablee  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   )Ú
categoriesrG   r  r8   Frá   ©rH   r#   r9   ÚUInt64rT   é	   )r   r   )r+   ÚCategoricalr   rB   r<   ÚarangeÚuint64r-   rt   ÚCategoricalIndexrH   rZ   r.   r/   ru   r�   )rÌ   r0   rz   rÂ   r  r2   r4   r4   r5   Ú(test_min_max_nullable_uint64_empty_group•  s     
r4  )r¥   r¦   rt   ru   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 )Nr8   ÚABT)r,  Úorderedr   r   gš™™™™™¹?)rR   rS   ÚvaluerR   Frá   r9   )rE   r#   r6  )rS   r7  rT   )	r   r+   r0  r  r)   r-   r3  r.   r/   )r¡   r0   r3   r  r2   r4   r4   r5   Ú test_groupby_min_max_categorical¦  s   ýÿþûr8  c                 C   sn   t  d¡ d}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 )NÚpyarrowzstring[pyarrow_numpy]r   r«   rG   r   r   r¬   r-  )r%   rH   r&   )
rf   Úimportorskipr   r�   r)   r-   r+   r,   r.   r/   )r¡   rH   r0   r3   r2   r4   r4   r5   Útest_min_empty_string_dtype½  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  	¡  
¡ 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ÚFiler>  r@  )r   r   r<   r=   r-   ru   Úto_framer.   r/   r   r   )r0   rz   Úrró   r4   r4   r5   Útest_max_nan_bugÊ  s   øÿ
rC  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   )rH  rG  ÚjulierI  r   rÕ   rH  r   é%   rG  é   é   é   r/  )rþ   r­   ©rD  T)r    F)Úcheck_names)r
   r   r<   r¼   r½   Úchoicer  r   rÖ   rŸ   rO   ÚlocÚcopyr-   ÚnuniqueÚapplyr   Úreset_indexr.   rK   r/   )r­   rD  rþ   rE  rF  ÚnÚmÚdaysr0   Úoriginal_dfÚgrÚleftÚrightr4   r4   r5   Útest_series_groupby_nuniqueÞ  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 )NÚabbaccÚabxaccÚabbacxr7   Úabc)r   r   r   )r   r   r   r8   Frý   r;   rä   rN  r   r   )r9   r:   rT   )
r   r  r-   rS  r.   r/   r&   r#   r    Úreplacer>   r4   r4   r5   Útest_nunique  s   
"rc  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  rj  r#   r   r®   rÍ   )
r   r-   rS  r   Úfrom_arraysr  rj  r   r.   rK   )rE   r3   r&   r2   r4   r4   r5   Útest_nunique_with_object  s   ûørl  c                  C   s8   t dtd�} | jdd� ¡ }t ddd�}t ||¡ d S )Nr#   rq   r   ©Úlevelr  )r   ra   r-   rS  r.   rK   )rE   r3   r2   r4   r4   r5   Útest_nunique_with_empty_series2  s   ro  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Ë   rE   rË   Úh)r  rE   )r   r	   r¯   r-   r+   ÚGrouperrS  rT  r   r.   rK   ©Útestr3   r2   r4   r4   r5   Útest_nunique_with_timegrouper:  s   ýúÿ	÷
rv  zkey, data, dropna, expected)rä   rä   rä   z
2019-01-01rä   r    r"   r  iã  )rä   rä   rä   Úyrw  rw  )rä   rä   rä   rä   rw  c                 C   s6   t | |dœƒ}| dg¡d j|d�}t ||¡ d S )N)r    rE   r    rE   rN  )r   r-   rS  r.   rK   )r    rE   rD  r2   r0   r3   r4   r4   r5   Útest_nunique_with_NaTK  s   +rx  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   r8   Úlevel_0r"   r;   r   r   r   )r&   r%   )
r   r+   r,   r-   rS  r<   rB   r%   r.   r/   rt  r4   r4   r5   Ú)test_nunique_preserves_column_level_names{  s   rz  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   rS  )r   r   r   r"   )r   r
   r-   Ú	transformr   r.   rK   rÏ   r4   r4   r5   Ú$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  rI   )r   rŸ   r-   rS  r.   rK   )râ   rÌ   rL   rz   r3   r2   r4   r4   r5   Ú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.sumrd   zusing np.sum)r   r<   r=   r-   r.   rƒ   r‚   rJ   r*   ÚsumrT  rK   )Úsr§   r†   r3   r#  r2   r4   r4   r5   Útest_intercept_builtin_sum˜  s   þþr€  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 )NTFrF   rG   )r   r   r   r   r   r   r   r  r8   r  r   r9   )r   r   r   rQ   r   r"   rT   r   )r<   r=   r+   rB   r   r-   r~  r,   r.   r/   rZ   )r  r   r   ÚnaÚdfgr0   r3   r2   r4   r4   r5   Ú!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«   rQ   rG   r   rq   r   r   r  r   )rH   r&   r#   )r   r¬   )rH   r&   )
r   r-   r+   r,   r~  r   rZ   r.   rK   r/   )r0   r§   r  r3   r2   r4   r4   r5   Ú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Ú3drp   r   )rX  r   r   r   r   r"   rT   r  zm8[ns])rH   r#   r&   )r   r+   Ú	TimedeltaÚNaTr-   r~  r,   r.   r/   rK   r   r&   )r0   Útd3rz   rÂ   r2   r4   r4   r5   Ú#test_groupby_sum_timedelta_with_natÏ  s   þÿ
"r‹  )Úint8Úint16Úint32r  Úfloat32Úfloat64r2  zmethod,datar0   rp   r   r¤   r  )r0   Ú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   rp   r   r   r   r   Úargsr‘  r0   r   T)Úinplace)r   r   rŸ   r¯   r-   r)   r.   r/   )	rH   r£   rE   r0   r‘  r1   Údf_outÚgrpdÚtr4   r4   r5   Ú%test_groupby_non_arithmetic_agg_typesç  s    "ÿ

r—  c                  O   s   ddl m} || ddi|¤ŽS )Nr   )ÚsemÚddofr   )Úscipy.statsr˜  )r’  rj   r˜  r4   r4   r5   Ú	scipy_sem  s   r›  z	op,targoprÉ   r×   ÚstdÚvarr~  Úprodc                 C   ó
   | j d S )Nr   ©r�   rã   r4   r4   r5   rå      ó   
 rå   c                 C   rŸ  )Néÿÿÿÿr   rã   r4   r4   r5   rå   !  r¡  r˜  Ú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¤   r˜  zusing DataFrameGroupBy.rd   )r   r<   r¼   r½   r¾   rÖ   rŸ   rO   r)   r-   r‚   r.   rƒ   rJ   r/   )ÚopÚtargopr0   rÚ   r3   r…   r†   r2   r4   r4   r5   Útest_ops_general  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   rG   r   r   rQ   rq   r   rT   rP   )r<   rB   rO   r+   r,   r   rŸ   r-   r)   r.   r/   rJ   r   Úfrom_tuplesr%   )r‡   r¨  ÚoutputrÙ   r  r2   r  r3   r4   r4   r5   Ú,test_apply_to_nullable_integer_returns_float2  s   
r«  r¥  )
r~  rž  rt   ru   r×   rÉ   Úskewrœ  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 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 deprecatedrd   )rn  r¸   r­   r¬  r'   rm  c                    s   t | ˆƒˆ ˆd�S )N)r¸   r(   ©r)   ©rr  ©r¸   r¥  r(   r4   r5   rå   v  s    z3test_regression_allowlist_methods.<locals>.<lambda>r·   c                    s   t | ˆƒˆ d�S )Nr·   r­  r®  )r¸   r¥  r4   r5   rå   }  s    )
r   ÚTr.   rƒ   r‚   r-   r)   rT  r°   r/   )
r¥  r¸   r(   r­   Ú	raw_frameÚframer†   r§   r3   r2   r4   r¯  r5   Ú!test_regression_allowlist_methodsQ  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Õ   rJ  rK  é   é   r   r   é+   r®   é/   rL  éX   r8   r9   r  )r%   rH   l   �N+R@r  rG   )r   r-   rž  rU  r.   r/   )rE   r0   r3   r2   r4   r4   r5   Ú"test_groupby_prod_with_int64_dtypeƒ  s&   òrº  )fr*   Údatetimer›   Ústringr   Únumpyr<   rf   Úpandas._libs.tslibsr   Úpandas.core.dtypes.commonr   Úpandas.core.dtypes.missingr   Úpandasr+   r   r   r   r	   r
   r   Úpandas._testingÚ_testingr.   Úpandas.utilr   ÚtdÚmarkÚparametrizer=   r6   r?   rD   rZ   rN   rB   r`   rY   r_   r‰  rc   ri   rk   r{   rˆ   r¢   r©   r´   rÆ   rÊ   rÐ   rÝ   ré   rñ   rù   r  r  r  r  r  r  Ústrr  r+  r4  r8  r;  rC  Úslowr]  rc  rl  ro  rv  r,   rÿ   rx  rz  r|  r}  r€  rƒ  r„  r‹  r—  r›  rÉ   r×   rœ  r�  r~  rž  rt   ru   rÔ   ÚparamÚ
skip_if_nor§  r«  r³  rº  r4   r4   r4   r5   Ú<module>   sà    óþ




úþüüüüíþ
üþ
	

	

(þþ þûþ





/

"üüûöûöçþ
)
ÿûþ


ôþ
þûþ
þ 