o
    թZh                     @   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ddgddggdd ZFdd ZGdd ZHdd ZIdd ZJejdg dedej(edgd!ed1gejKdgddddfg deLdd1d1ej(eLdd1d1gd!ed1gejKdgddddfg deLdd1d1ej(eLdd1d1ej(eLdd1d1gd ed@d@gejKddgddddfg deLdd1d1ej(eLdd1d1ej(eLdd1d1gd ed@d1gejKddgddddfgdd ZMdd ZNdd ZOdd ZPdd ZQejdd dgdd ZRdd ZSdd ZTejd,g dejddMdd1d1dd@dAdgifdNdd1d@dd@ddgifdfdd1d1dd@dAdgifdgdd1d@dd@ddgifdd1d@dd@d@dgddfgdd ZUdd ZVejddejWfdejXfdejYfdejZfdej[fdej\fdfej]fdgej^fdMdd fdNdd fdej_fej`deVeaddgddĄ Zbejdg dƢd1ej"d@d1ej"d@d1ej"d@g	dg dǢg dȢdgejdg dʢdd̄ Zcejdg d΢ejdd d1gejdd!d gejd|d!d gdd҄ ZdddԄ 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   [/var/www/html/lang_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)   Zset_axisr<   arrayr.   r/   )r@   r0   Zgrp_byr3   r2   r4   r4   r5    test_bool_aggs_dup_column_labelsK   s
   rB   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&   rF   r   )r   r)   r<   rA   r-   aggr.   assert_series_equal)r@   r(   rC   serZexpected_datar2   r3   r4   r4   r5   test_masked_kleene_logicV   s
   rK   zdtype1,dtype2,exp_col1,exp_col2floatFloat64rE   rD   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   rE   )col1col2r   r   Fr'   r&   )	r<   r=   r   r+   rA   r-   rH   r.   r/   )Zdtype1Zdtype2Zexp_col1Zexp_col2rC   r0   r3   r2   r4   r4   r5   test_masked_mixed_typeso   s   
rR   rF   )rN   rM   rD   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   rE   Tr   rD   rG   r'   )r+   NAr<   rA   r-   rH   r.   assert_equal)r@   rF   r(   frame_or_seriesobjexpected_resr2   r3   r4   r4   r5   test_masked_bool_aggs_skipna   s   rX   zbool_agg_func,data,expected_resr   c                 C   sN   ||t d}|dgt| | }||gtdgdd}t|| d S )NrE   r   boolrG   )objectr-   lenrH   r<   rA   r.   rT   )r@   rC   rW   rU   rV   r3   r2   r4   r4   r5   test_object_type_missing_vals   s   r\   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 )NrE   z boolean value of NA is ambiguousmatchr   Fr'   )	r   r+   rS   rZ   pytestraises	TypeErrorr-   rH   )r@   rJ   r4   r4   r5   'test_object_NA_raises_with_skipna_false   s   "rb   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#   rF   r4   )r   rZ   r)   r-   r&   rY   r.   rT   )rU   r@   kwargsrV   r3   r2   r4   r4   r5   
test_empty   s
   rd   howZ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   rE   r   r   r   r   r   r#   rF   rQ   )rg   rL   r<   Ziinfofinfominmaxr   r-   r)   r+   r,   r.   r/   )	re   Zany_real_numpy_dtypeinfo	min_value	max_valuer0   gbr3   r2   r4   r4   r5   test_idxmin_idxmax_extremes   s   


rq   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   )ZrepeatsZintprE   rh   r   z!The behavior of DataFrameGroupBy.z with all-NA valuesr]   r'   r      r   ri   rQ   )r<   rj   rk   rl   r   r   repeatranger=   r-   FutureWarningr.   assert_produces_warningr)   r+   r,   r/   )r(   re   Zfloat_numpy_dtypern   ro   r0   rp   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   rs   )gGz@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|   rN   Z	c_Integerr}   rM   Z
c_Floatingr#   r   r8   r9   r"   rQ   r;   )r   r+   to_datetimedtZtz_localizeilocZ	to_periodastyper)   r-   r,   dropr.   r/   )funcrz   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)countrk   rl   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   rh   r   r   r   r   r   r   r   r"   rQ   )r   r-   r)   r+   r,   r.   r/   )r   rC   r0   groupedr3   Z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   crE   r   )sortr'   )r   r   rs   )r   r   rs   )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/   )Zany_real_nullable_dtyper   r(   re   Zna_valuer0   rp   r   r3   Z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 sw   Y  W d    d S W d    d S 1 sw   Y  d S )Nr   )
   rs   )r8   r9   r:   Dr;   )
r   r   r   r   r   r   r   r   r   rs   r8   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.   rw   rv   rf   r   r&   Zget_level_valuesrI   Z	droplevelr
   r_   r`   ra   )r0   rp   Zwarn_msgresZaltZindexergb2ry   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    ,fL )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   rs   r"   r#   r&   )
r   r+   Zto_timedeltaru   r-   r   r   r,   r.   rI   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 sw   Y  |	|
 }t|| d S )
Nr     r   2   size   zusing DataFrameGroupBy.medianr]   )r   r   )r<   r   r   r   r=   r   integersr   rL   r-   medianr.   rw   rv   rH   Z	nanmedianr/   )arrr0   labelsr3   ry   r1   rsZ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   ru   r+   cutr-   r   rH   r.   r/   )r   r0   ZgrpsZ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   rs   Zmama)nniissr   r   Fr   )r   r-   rl   rk   )Z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   rQ   )r   r   r   )r   Z_consolidate_inplacer[   Z_mgrblocksr-   rl   r+   r,   r.   r/   rk   )Zusing_array_managerr0   rp   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-   rk   r.   rI   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   rE   r   	min_countTZcheck_exactr   )r   r   r<   rA   int64r-   rl   r.   rI   rk   r=   )rJ   r    rp   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-   rk   r<   r=   r&   r   rg   r.   rI   )rJ   rp   r3   r2   r4   r4   r5   test_max_inat_not_all_na  s   r   r   rk   rl   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   freqrh   r   r   r"   r&   r#   )	r+   period_ranger   r)   r-   r,   r   r.   rI   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   rh   r   r"   r   rQ   )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   abcdrs   )r    rO   rP   r    r8   r9   r   r   r   r   )r   listr<   r=   r   rZ   r-   rk   r   r.   r/   ru   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   categoryrE   i  r8   r9   r8   r9   r"   rQ   )r   r   Z
as_orderedr   r-   rH   r+   r,   r   rF   r.   r/   )r   Zdsr0   r3   r2   r4   r4   r5   %test_aggregate_categorical_lost_indexW  s   r   )rN   ZInt32rM   ZFloat32rD   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 )NrN   l   .D3 rD   r   r   r   r   )idtsr   r   r   r   rG   )r   r   r   d   )r   r   r-   rk   r   r   r.   r/   rl   r+   rS   r&   )rF   r   r0   rp   r3   r2   Zres_maxZexpected_maxresult2Z	expected2Zres_max2Zdf2r   Zresult3Zres_max3Zresult4Z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   )
categoriesrE   r   r8   Fr   rF   r#   r9   ZUInt64rQ   	   )r   r   )r+   Categoricalr   rA   r<   Zarangeuint64r-   rk   CategoricalIndexrF   rS   r.   r/   rl   r   )r   r0   rp   r   r   r2   r4   r4   r5   (test_min_max_nullable_uint64_empty_group  s     
r   )r   r   rk   rl   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   ZABT)r   orderedr   r   g?)rO   rP   valuerO   Fr   r9   )rC   r#   r   )rP   r   rQ   )	r   r+   r   r   r)   r-   r   r.   r/   )r   r0   r3   r   r2   r4   r4   r5    test_groupby_min_max_categorical  s   r   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 )NZpyarrowzstring[pyarrow_numpy]r   r   rE   r   r   r   r   )r%   rF   r&   )
r_   Zimportorskipr   r   r)   r-   r+   r,   r.   r/   )r   rF   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:00ZOE)zlog080001.logzlog.logZxlsx)z
Unnamed: 0DateZappFiler   r   )r   r   r<   r=   r-   rl   Zto_framer.   r/   r   r   )r0   rp   rr   r4   r4   r5   test_max_nan_bug  s   
r  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           r   )r   r   r  T)r   F)Zcheck_names)r
   r   r<   r   r   choicer   r   r   r   rL   loccopyr-   nuniqueapplyr   reset_indexr.   rI   r/   )r   r  r   r  r  nmdaysr0   Z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 )NZabbaccZabxaccZabbacxr7   abc)r   r   r   )r   r   r   r8   Fr   r;   r   r  r   r   )r9   r:   rQ   )
r   r   r-   r  r.   r/   r&   r#   r   replacer>   r4   r4   r5   test_nunique  s   
"r  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)iprs   ZDan)r   r   ZEdith)amountr   r#   r;   r   r  r#   r   r   r   )
r   r-   r  r   Zfrom_arraysr   r  r   r.   rI   )rC   r3   r&   r2   r4   r4   r5   test_nunique_with_object  s   r  c                  C   s8   t dtd} | jdd }t ddd}t|| d S )Nr#   ri   r   levelr   )r   rZ   r-   r  r.   rI   )rC   r3   r2   r4   r4   r5   test_nunique_with_empty_series2  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   rC   r   h)r   rC   )r   r	   r   r-   r+   ZGrouperr  r  r   r.   rI   testr3   r2   r4   r4   r5   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    rC   r    rC   r  )r   r-   r  r.   rI   )r    rC   r  r2   r0   r3   r4   r4   r5   test_nunique_with_NaTK  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   r8   Zlevel_0r"   r;   r   r   r   )r&   r%   )
r   r+   r,   r-   r  r<   rA   r%   r.   r/   r&  r4   r4   r5   )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.   rI   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   rG   )r   r   r-   r  r.   rI   )r   r   rJ   rp   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.sumr]   zusing np.sum)r   r<   r=   r-   r.   rw   rv   rH   r*   sumr  rI   )sr   ry   r3   r   r2   r4   r4   r5   test_intercept_builtin_sum  s   r0  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 )NTFrD   rE   )r   r   r   r   r   r   r   r   r8   r   r   r9   )r   r   r   rN   r   r"   rQ   r   )r<   r=   r+   rA   r   r-   r.  r,   r.   r/   rS   )r   r   r   naZdfgr0   r3   r2   r4   r4   r5   !test_groupby_sum_mincount_boolean  s"   r2  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   rN   rE   r   ri   r   r   r   r   )rF   r&   r#   )r   r   )rF   r&   )
r   r-   r+   r,   r.  r   rS   r.   rI   r/   )r0   r   r   r3   r2   r4   r4   r5   0test_groupby_sum_below_mincount_nullable_integer  s    
$r3  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3drh   r   )r  r   r   r   r   r"   rQ   r   zm8[ns])rF   r#   r&   )r   r+   Z	TimedeltaNaTr-   r.  r,   r.   r/   rI   r   r&   )r0   Ztd3rp   r   r2   r4   r4   r5   #test_groupby_sum_timedelta_with_nat  s   
"r5  )Zint8Zint16Zint32r   Zfloat32Zfloat64r   zmethod,datar0   rh   rs   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   rh   r   r   rs   r   argsr6  r0   r   T)Zinplace)r   r   r   r   r-   r)   r.   r/   )	rF   r   rC   r0   r6  r1   Zdf_outZgrpdtr4   r4   r5   %test_groupby_non_arithmetic_agg_types  s    "

r9  c                  O   s   ddl m} || ddi|S )Nr   )semZddofr   )Zscipy.statsr:  )r7  rc   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?  )Nr@  r   r4   r4   r5   r   !  rA  r:  Zscipy)Z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.r]   )r   r<   r   r   r   r   r   rL   r)   r-   rv   r.   rw   rH   r/   )opZtargopr0   r   r3   rx   ry   r2   r4   r4   r5   test_ops_general  s   
rD  rz   )	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   rE   r   r   rN   ri   r   rQ   rM   )r<   rA   rL   r+   r,   r   r   r-   r)   r.   r/   rH   r   from_tuplesr%   )rz   rE  outputr   r   r2   r   r3   r4   r4   r5   ,test_apply_to_nullable_integer_returns_float2  s   
rH  rC  )
r.  r>  rk   rl   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 deprecatedr]   )r!  r   r   rI  r'   r   c                    s   t |  dS )N)r   r(   r)   r%  r   rC  r(   r4   r5   r   v  s    z3test_regression_allowlist_methods.<locals>.<lambda>r   c                    s   t |  dS )Nr   rJ  rK  )r   rC  r4   r5   r   }  s    )
r   Tr.   rw   rv   r-   r)   r  r   r/   )
rC  r   r(   r   Z	raw_frameframery   r   r3   r2   r4   rL  r5   !test_regression_allowlist_methodsQ  s,   
rO  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   r8   r9   r   )r%   rF   l   N+R@r   rE   )r   r-   r>  r  r.   r/   )rC   r0   r3   r2   r4   r4   r5   "test_groupby_prod_with_int64_dtype  s&   rV  )fr*   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.utilr   tdmarkZparametrizer=   r6   r?   rB   rS   rK   rA   rY   rR   rX   r4  r\   rb   rd   rq   r{   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   strr   r   r   r   r   r  Zslowr  r  r  r"  r(  r,   r   r*  r+  r,  r-  r0  r2  r3  r5  r9  r;  r   r   r<  r=  r.  r>  rk   rl   r   paramZ
skip_if_norD  rH  rO  rV  r4   r4   r4   r5   <module>   s    






	

	

( 





/

"
)





 