o
    vhd                     @   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 ZGdd ZHejjIejdd!d"gejdd!d"gejdd"d!gejdd"d!gejddgddggdd ZJdd ZKdd ZLdd ZMdd ZNejdg dedej*edgd"ed2gejOdgddd dfg dePdd2d2ej*ePdd2d2gd"ed2gejOdgddd dfg dePdd2d2ej*ePdd2d2ej*ePdd2d2gd!edAdAgejOddgddd dfg dePdd2d2ej*ePdd2d2ej*ePdd2d2gd!edAd2gejOddgddd dfgdd ZQdd ZRdd ZSdd ZTdd ZUejd{d dgdd ZVdd ZWdd ZXejd-g dejddNdd2d2ddAdBdgifdOdd2dAddAddgifdgdd2d2ddAdBdgifdhdd2dAddAddgifdd2dAddAdAdgddfgdd ZYdd ZZejddej[fdej\fdej]fdej^fdej_fdej`fdgejafdhejbfdNddĄ fdOddĄ fdejcfejddeZeedǡdȍgddʄ Zfejdg d̢d2ej$dAd2ej$dAd2ej$dAg	dg d͢g d΢dgejdg dТdd҄ Zgejdg dԢejdd d2gejdd"d!gejdd"d!gdd؄ Zhddڄ 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   b/var/www/html/hyperkenya/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Gz@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 sw   Y  W d    d S W d    d S 1 sw   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    ,fL )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 sw   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 rd| d| d}t
jt|d ||
i | W d    d S 1 sw   Y  d S ||
i |}t jdgd|d }|s|dkr|s|dkrd 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}|rt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)ipr   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  )Nr  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
"
)





 