a
    j=icl                    @   s	  d dl m 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mZ d dlZd dlmZmZmZmZmZ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   m!Z" d d	l#m$Z$ d d
l%m&Z& dd Z'ej()dg ddd Z*dd Z+dd Z,dd Z-dd Z.ej()dddgdd Z/dd Z0d d! Z1ej()dg d"d#d$ Z2d%d& Z3d'd( Z4d)d* Z5d+d, Z6d-d. Z7d/d0 Z8d1d2 Z9d3d4 Z:ej()d5d6d7 d8d7 gd9d: Z;d;d< Z<d=d> Z=d?d@ Z>dAdB Z?dCdD Z@dEdF ZAdGdH ZBdIdJ ZCdKdL ZDdMdN ZEdOdP ZFdQdR ZGej()dSdTdUgdVdW ZHej()dSg dXej()dYejIddgdZd[ ZJd\d] ZKd^d_ ZLd`da ZMdbdc ZNddde ZOdfdg ZPdhdi ZQdjdk ZRdldm ZSdndo ZTdpdq ZUdrds ZVdtdu ZWdvdw ZXdxdy ZYdzd{ ZZd|d} Z[d~d Z\dd Z]dd Z^ej(_ddd Z`dd Zadd Zbdd Zcdd Zddd Zedd Zfdd Zgdd Zhdd Zidd Zjdd Zkdd Zldd Zmdd Zndd Zodd Zpdd Zqej()ddddggdd Zrdd Zsdd Ztdd Zudd Zvdd Zwdd Zxdd Zydd Zzej()ddddddgddggej()dddddggddƄ Z{ddȄ Z|ej()dddggej()ddgddggej(j)ddgd gdgdged ged ged ddddэej}d gddӍej}d gddӍej}dgddӍg
g d֢d׍ej()dg d٢ej()d5g dڢej(_dۡej(_dܡddބ Z~dd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zej()dddggdd Zej()dddddededddgifddededededededgifddededededededgifgdd Zdd Zd d Zej(_ddd Zej()deddgddejddd	gd
gej(_ddd Zdd Zdd Zej()dg ddd Zdd Zej()deddfeddfeddfeddfeddfeddfeddfejeddej(jd d!d"eddfeddfeddfeddfeddfeddfeddfgej(_d#d$d% Zd&d' Zej()d(g d)d*d+ Zd,d- Zd.d/ Zej(je	 d0d!ej()d1d2d3d4gfd5d6d7gfgd8d9 Zej(je	 d0d!d:d; Zd<d= Zd>d? Zd@dA ZdBdC Zej()dYddgdDdE ZdFdG ZdHdI ZdJdK ZdLdM ZdNdO ZdPdQ ZdRdS ZdTdU ZdVdW ZdXdY ZdZd[ Zej()d(g d\d]d^ Zej()d_d`dagdbdc Zej()dddedfgdgdh Zej()didjdejfgdkdl ZdS (m      )datetime)DecimalN)lib)IS64)PerformanceWarningSpecificationError)Categorical	DataFrameGrouperIndex
MultiIndex
RangeIndexSeries	Timedelta	Timestamp
date_rangeto_datetime)BooleanArray)"maybe_normalize_deprecated_kernels)get_groupby_method_argsc                  C   s$   t tddd} d}| |ks J d S )NAB)keylevelz<Grouper(key='A', level='B', axis=0, sort=False, dropna=True))reprr
   )resultexpected r   r/home/droni/.local/share/virtualenvs/DPS-5Je3_V2c/lib/python3.9/site-packages/pandas/tests/groupby/test_groupby.py	test_repr#   s    r   dtype)int64int32float64float32c                    s  t tdd td| d}td}tj| ||}|jdd dd}|D ]\}}t|dksTJ qT|tj	}|d dksJ t
||tj	 t
||	  t
|tj|  |d	d }|d
d }|d dksJ t
|| ||}	t
j|	tj	|dd |tj	tjg}d}
tjt|
d$ |tj	tjd W d    n1 sp0    Y  dddd | fdd}|d dksJ d}
tjt|
d |dd  W d    n1 s0    Y  d S )N	      indexr    c                 S   s   | d S Nr&   r   xr   r   r   <lambda>3       ztest_basic.<locals>.<lambda>F
group_keys   c                 S   s   | |    S Nsumr*   r   r   r   r,   ?   r-   c                 S   s   | |    S r1   r2   r*   r   r   r   r,   @   r-         )Zcheck_index_typenested renamer is not supportedmatch)onetwo
         r   r0      c                    s    | j  |   S r1   )namemeanr*   Zgroup_constantsr   r   r,   Q   r-      zMust produce aggregated valuec                 S   s   | d S Nr?   r   r*   r   r   r   r,   X   r-   )r   nparangerandomshufflereindexgroupbylen	aggregaterA   tmassert_series_equalaggr3   apply	transformstdpytestraisesr   	Exception)r    datar(   groupedkvaggedr   transformedZvalue_groupedmsgr   rB   r   
test_basic*   s<    


4r]   c           	      C   s   | j jd }| |}| }| |d }t|| | }tt	||d< dd }|d
|}|j}|j}t|| d S )Nr   Ovaluec                 S   s   | j | d   S )Nr_   )locidxmaxgroupr   r   r   	max_valueg   s    z/test_groupby_nonobject_dtype.<locals>.max_valuer   )r(   codesrJ   r3   astyperM   assert_frame_equalcopyrangerK   rP   dtypesrN   )	mframeZdf_mixed_floatsr   rW   r   r   dfrd   Zappliedr   r   r   test_groupby_nonobject_dtype[   s    
rm   c                  C   sf  t ddddddddddddg} dd	 }tt$ | jd
dd|}W d    n1 sd0    Y  t|ts|J t ddddddddddddg}dd	 }tt$ |jd
dd|}W d    n1 s0    Y  t|tsJ t ddgddggddgd}tt" |jddd }W d    n1 sH0    Y  t|t sbJ d S )Nr0   r<   )val1val2   r?      r5   c                 S   s   | d | d    S Nro   rA   Zdatafr   r   r   func|   s    z&test_groupby_return_type.<locals>.funcrn   T)squeezec                 S   s   | d | d    S rr   rs   rt   r   r   r   ru      s    XYcolumnsF)	r	   rM   assert_produces_warningFutureWarningrJ   rP   
isinstancer   count)df1ru   r   df2rl   r   r   r   test_groupby_return_typep   s4    	2	22r   c                  C   s~  t g dttdddtdddd} dd	 }| d
 dg }| d
|dg }t	|| dd	 }| d
|dg }|
 }tj|jd< t	|| dd	 }| d
|dg }|
 }tj|jd< t	|| dd	 }| d
|dg }| d
 dg }tj|jd< t	|| dd	 }| d
|}| d
 d 
 }tj|jd< d |_t|| d S )N)Tigerr   r   Lambr   Ponyr   r4   r!   r    Z20130101periodsr   r   Cc                 S   s
   | j d S Nr   )ilocgrpr   r   r   f   s    z(test_inconsistent_return_type.<locals>.fr   r   c                 S   s   | j dkrd S | jd S )Nr   r   r@   r   r   r   r   r   r      s    
r   c                 S   s   | j dkrd S | jd S Nr   r   r   r   r   r   r   r      s    
r   c                 S   s   | j dkrd S | jd S r   r   r   r   r   r   r      s    
r   c                 S   s   | j dkrd S | jd jd S )Nr   r   r   )r@   r   r`   r   r   r   r   r      s    
)r	   r   rE   rF   r   rJ   firstrP   rM   rg   rh   nanr`   pdNaTr@   rN   )rl   r   r   r   er   r   r   test_inconsistent_return_type   s>    
r   c                 C   s  ddd}dd }|  dd }|jtjddd}|jtjddd}|jtjddd}|d	}||}	t|| t|| t||	 |j|dd
}|j|dd
}|j|dd
}t|| t|| t||	 dD ]}
|j dd |
d}|jtjddd}|t	jd	}|d	}tj
||dd t
|| |t	jdd	g}|dd	g}tj
||dd |j|dd
}|jt	jd	d
}t
|| tj
||dd qd S )Nr   c                 S   s   t j| ||dS )NaxisrE   
percentile)r+   qr   r   r   r   r      s    z test_pass_args_kwargs.<locals>.fc                 S   s   t j| dddS )NP   r   r   r   r*   r   r   r   r,      r-   z'test_pass_args_kwargs.<locals>.<lambda>c                 S   s   | j S r1   monthr*   r   r   r   r,      r-   r   r   皙?)r   )TFc                 S   s   | j S r1   r   r*   r   r   r   r,      r-   as_indexFZcheck_namesg?)Nr   )rJ   rO   rE   r   rP   rQ   quantilerM   rN   r	   rg   )tstsframer   gZ
ts_groupedZ
agg_resultZapply_resultZtrans_resultZagg_expectedZtrans_expectedr   
df_groupedr   Zexpected_seqr   r   r   test_pass_args_kwargs   s>    



r   r   TFc                 C   s   g d| _ | jdd |d}|jtjddd}| | jjdk d	| | jjd
k d	d}t|j	}|sxt
td
|_t|| d S )N)r   r   r   r   c                 S   s   | j S r1   r   r*   r   r   r   r,   	  r-   z9test_pass_args_kwargs_duplicate_columns.<locals>.<lambda>r   r   r   r   r0   r   r?   r0   r?   )rz   rJ   rO   rE   r   r(   r   r   r	   Tr   ri   rM   rg   )r   r   gbresZex_datar   r   r   r   'test_pass_args_kwargs_duplicate_columns  s    

r   c                  C   s   t  } | dd dd dd g}t|t| ks8J | dd dd g}tdd | jD }t||ksrJ ttjgd	 g d
d} t| ddksJ t| dd	ksJ t| ddgd	ksJ d S )Nc                 S   s   | j S r1   yearr*   r   r   r   r,     r-   ztest_len.<locals>.<lambda>c                 S   s   | j S r1   r   r*   r   r   r   r,     r-   c                 S   s   | j S r1   dayr*   r   r   r   r,     r-   c                 S   s   | j S r1   r   r*   r   r   r   r,     r-   c                 S   s   | j S r1   r   r*   r   r   r   r,     r-   c                 S   s   h | ]}|j |jfqS r   )r   r   .0r+   r   r   r   	<setcomp>  r-   ztest_len.<locals>.<setcomp>r&   r0   r?   r&   abr   r   r   )rM   makeTimeDataFramerJ   rK   r(   r	   rE   r   )rl   rW   r   r   r   r   test_len  s    r   c                  C   sN   t dd ttddd D } tjdd }t |}| |}|  d S )Nc                 S   s   g | ]}d | qS )      ?r   r   r   r   r   
<listcomp>+  r-   z)test_basic_regression.<locals>.<listcomp>r0   r;   iL  g      $@)r   listri   rE   rG   rJ   rA   )r   rV   	groupingsrW   r   r   r   test_basic_regression)  s
     
r   )r#   r$   r!   r"   int16Zint8c                 C   s   t td}ttd|| d}ttjdddtjtjddtjdg
|d}||}|t}tddgddgd}t	j
||dd	 d
d }||}tddgddgd}t	
|| d S )Nr;   r   foobarr(      r?   F)Zcheck_dtypec                 S   s   t t| S r1   )floatrK   r*   r   r   r   r   I  s    ztest_with_na_groups.<locals>.f      @       @)r   rE   rF   r   onesr   rJ   rO   rK   rM   rN   )r    r(   valueslabelsrW   rZ   r   r   r   r   r   test_with_na_groups4  s    


r   c                  C   s  dd } dd }dd }t g dtdtd	d
d}t g dtdtd	d
d}|d| }|d| }t|| d}tjt|d  |d| W d    n1 s0    Y  tjt|d  |d| W d    n1 s0    Y  tjt|d  |d| W d    n1 s60    Y  tjt|d  |d| W d    n1 sv0    Y  d S )Nc                 S   sb   | | j d dk d }|jrLtg gd g gd ddgd}tdg|d}|S |ddg}|S d S )Nr?   r0   r   clevelsre   namesr   rz   r(   )r   emptyr   r	   	set_indexr+   yZ
multiindexr   r   r   r   f1V  s    z,test_indices_concatenation_order.<locals>.f1c                 S   s8   | | j d dk d }|jr"t S |ddg}|S d S )Nr?   r0   r   r   )r   r   r	   r   )r+   r   r   r   r   f2`  s
    z,test_indices_concatenation_order.<locals>.f2c                 S   sV   | | j d dk d }|jrNtg gd g gd ddgd}tddg|d}|S |S d S )	Nr?   r0   r   r   r   r   r   r   )r   r   r   r	   r   r   r   r   f3h  s    z,test_indices_concatenation_order.<locals>.f3)r0   r?   r?   r?   r      r%   r   r   r   )r&   r?   r?   r?   r   z@Cannot concat indices that do not have the same number of levelsr7   )	r	   ri   rJ   rP   rM   rg   rS   rT   AssertionError)r   r   r   rl   r   result1result2r\   r   r   r    test_indices_concatenation_orderR  s"    
..0r   c                 C   s   |  dd }| }|dd }t|| | }dd |D }t|j}t|| |j	}|dd }t|| d}t
jt|d t|d	 W d    n1 s0    Y  d S )
Nc                 S   s   |   S r1   weekdayr*   r   r   r   r,     r-   z#test_attr_wrapper.<locals>.<lambda>c                 S   s   t j| ddS )Nr0   )Zddof)rE   rR   r*   r   r   r   r,     r-   c                 S   s   i | ]\}}||  qS r   )describe)r   r@   gpr   r   r   
<dictcomp>  r-   z%test_attr_wrapper.<locals>.<dictcomp>c                 S   s   | j S r1   r   r*   r   r   r   r,     r-   z-'SeriesGroupBy' object has no attribute 'foo'r7   r   )rJ   rR   rO   rM   rN   r   r	   r   rg   r    rS   rT   AttributeErrorgetattr)r   rW   r   r   r\   r   r   r   test_attr_wrapper  s    
r   c                 C   sr  |  dd }|tj}t|dks*J t|jdks<J |  }dd |jD |d< | dtj}tj	||dd	 | 
d
 dd }|dd }t|d
ksJ t|jdksJ |dd }|D ]2\}}| }|jD ]}	tj||	|dd	 qq|D ]"\}
}|jd  |
ksJ q|j}|j}| D ],\}}| j|| }||k s@J q@d S )Nc                 S   s   |   S r1   r   r*   r   r   r   r,     r-   z$test_frame_groupby.<locals>.<lambda>r   r   c                 S   s   g | ]}|  qS r   r   r   r   r   r   r     r-   z&test_frame_groupby.<locals>.<listcomp>r   Fr   r=   c                 S   s   |   S r1   r   r*   r   r   r   r,     r-   c                 S   s   | |    S r1   rs   r*   r   r   r   r,     r-   c                 S   s   |   S r1   rs   r*   r   r   r   r,     r-   r   )rJ   rL   rE   rA   rK   rz   rh   r(   rM   rg   headrQ   rN   Zxsr   groupsindicesitemstakeall)r   rW   
aggregatedZtscopyZstraggedr[   r@   rc   rA   idxr   r   r   rX   rY   Z	samethingr   r   r   test_frame_groupby  s0    
r   c                 C   s   ddddd}| j |dd}|tj}t|t| ks<J t|jdksNJ dd }| jj |dd}t|	|j|	| |D ]\}}t|jdksJ qd S )Nr   r0   r   r   r   Dr   r?   c                 S   s   | |    S r1   rs   r*   r   r   r   r,     r-   z,test_frame_groupby_columns.<locals>.<lambda>)
rJ   rL   rE   rA   rK   rz   r   rM   rg   rQ   )r   mappingrW   r   tfZgroupedTrX   rY   r   r   r   test_frame_groupby_columns  s    r   c                 C   s  |  d}d}tjt|d | }W d    n1 s:0    Y  |jjdksTJ tjt|d" | j ddd }W d    n1 s0    Y  |jjdksJ tjt|d |tj}W d    n1 s0    Y  |jjdksJ |tjtj	d}|jjdksJ |d  }|jjdks2J |d tj}|jjdksTJ |d tjtj	g}|jjdks|J d}t
jt|d( |d tjtj	d	 W d    n1 s0    Y  d S )
Nr   !The default value of numeric_onlyr7   Fr   r   r   r   r6   r   r   )rJ   rM   r{   r|   rA   r(   r@   rO   rE   rR   rS   rT   r   )rl   rW   r\   r   r   r   r   test_frame_set_name_single  s,    
&0*r   c                 C   s   | d }| d }|  |j|jg}d}tjt|d* | }|  ddg }W d    n1 sd0    Y  tj|jd d ddgf |jd d ddgf dd tt	j
d	t	j
d	t	g d
t	g ddg dd} |  ddg}|t	j d S )Nr   r   r   r7   r   r   Fr      r   r   r   r   r   r   1r   r   2r   r   )v1v2k1k2)r9   r:   threefourfivesixr   r   r   )rJ   getrM   r{   r|   rA   rg   r`   r	   rE   rG   randnarrayrO   r3   )rl   Zcol1Zcol2rW   r\   rZ   r   r   r   r   test_multi_func  s(    0*


r  c                 C   sR   |  ddgd }|tjtjg}t|tj|tjd}t|| d S )Nr   r   r   )rA   rR   )rJ   rO   rE   rA   rR   r	   rM   rg   )rl   rW   rZ   r   r   r   r   !test_multi_key_multiple_functions  s    r	  c               	   C   s   t g dg dg dtjdtjdtjdd} | ddg}tjtjg}tjt	dd	 |
|}W d    n1 s0    Y  tj|d
 
||d 
||d 
|gg ddd}t|jtsJ t|jtsJ t|| d S )N)r   r   r   r   r   r   r   r   r   r   r   )r9   r9   r9   r:   r9   r9   r9   r:   r:   r:   r9   )dullr
  shinyr
  r
  r  r  r
  r  r  r     )r   r   r   r   EFr   r   z&\['C'\] did not aggregate successfullyr7   r   r  r  )r   r  r  r0   )keysr   )r	   rE   rG   r  rJ   rA   rR   rM   r{   r|   rO   r   concatr}   r(   r   rg   )rV   rW   funcsrZ   r   r   r   r   "test_frame_multi_key_function_list"  s.    


/(&r  opc                 C   s   |   S r1   r2   r*   r   r   r   r,   b  r-   r,   c                 C   s   |   S r1   rs   r*   r   r   r   r,   b  r-   c              	   C   s"  | }| ddg}||}g }g }| dD ]J\}}| dD ]6\}	}
|||	f |||
jd d ddgf  q>q,tj|ddgd}tj|ddj}||_dD ]8}||| }|| }|| }t	
|| t	
|| q|d  |d |d g }| ddg d }t	
|| d S )	Nr   r   r   r   r   r0   r   r   )rJ   appendr`   r   from_tuplesr   r  r   r(   rM   rN   rA   )rl   r  rV   rW   r   r  r   Zn1Zgp1Zn2Zgp2mir   colZ
result_colZpivotedexpr   r   r   r   test_groupby_multiple_columnsb  s*    $r  c                  C   s   t ddgddgddggddgd} | jdd	d
d d}tddgdd}t|| | jdd	ddd dd }tg ddtg dd}t|| d S )Nr0   r?   r   r   r   r   r   ry   Fr   r@   T)r   r/   c                 S   s   |   S r1   )cumsumr*   r   r   r   r,     r-   z-test_as_index_select_column.<locals>.<lambda>)r?   r   r   ))r   r   )r   r0   r   r@   r(   )	r	   rJ   	get_groupr   rM   rN   rP   r   r  rl   r   r   r   r   r   test_as_index_select_column  s    "r   c                  C   sZ   t tg dddd} | jdddd jdd	}t | jd d
 tdd}t|| d S )Nr   alphar  ry   r   F)byr   r   numeric_onlyr?   r   r   )r	   r   rJ   r3   rz   ri   rM   rg   )rl   leftr   r   r   r   0test_groupby_as_index_select_column_sum_empty_df  s    r&  c                 C   s  | j ddd}d}tjt|d$ |tj}| }W d    n1 sJ0    Y  t|| |tjtjd}tjt|d( | }| d |d< W d    n1 s0    Y  t|| | j ddd}d	}t	j
t|d$ |d
 dtji W d    n1 s0    Y  | j ddgdd}|tj}| }t|| |tjtjd}| }| d |d< t|| |d
  }t|jd
did}|d
 dtji}t|| ttjdddg dd} ttjddddd}	|  |	}
|
d t|
t|  |	t dD ]P}| j |	dd}
t|
| }| j |	jdd}
t|
| jdd}t|| q0d S )Nr   Fr   r   r7   r   r   Tr6   r   Qr   ry   r   d   )2   r&   )jimZjoeZjolier   r;   r)  r*  r  )rA   maxr~   ra   r  r   Zdrop)rJ   rM   r{   r|   rO   rE   rA   rg   r3   rS   rT   r   r	   renamerG   randintr   nthrP   r   r   reset_index)rl   rW   r\   r   r   r   	expected2Z	expected3Zresult3r   grattrr%  rightr   r   r   test_groupby_as_index_agg  sL    &.4

r5  c                 C   s  | dv rt d|   | dkr$tnd }ttjjdddddd	gd
}tj|dd" t	|
d|  }W d    n1 s|0    Y  | dkr|d}| }| dkr|d |d j|d< |j
ddd}tj|dd t	||  }W d    n1 s0    Y  t|| tj|dd || }W d    n1 sD0    Y  t|| tj|dd  t	|d	 |  }W d    n1 s0    Y  t|| tj|dd |d	 | }W d    n1 s0    Y  t|| d S )N)Zcorrwithr/  ngroupz!GH 5755: Test not applicable for madr   r   )r(  r?   )sizer   r   ry   The 'mad' method is deprecatedr7   r8  Fr   )rS   skipr|   r	   rE   rG   r.  rM   r{   r   rJ   r-  r0  rf   r    rg   rO   )Zreduction_funcwarnrl   r   r   r   r   r   r   test_ops_not_as_index  s0    0
**0.r<  c                 C   s  | j ddd}| j ddgdd}d}tjt|d> |d tj}|tjjd d ddgf }W d    n1 sv0    Y  t|t	sJ t
|| |d tj}|tjjd d g df }t|t	sJ t
|| |d  }tjt|d* | jd d ddgf }W d    n1 s.0    Y  t|t	sHJ t
|| |d  }| jd d g df }t|t	sJ t
|| d S )	Nr   Fr   r   r   r7   r   r   )rJ   rM   r{   r|   rO   rE   r3   r`   r}   r	   rg   )rl   rW   Zgrouped2r\   r   r   r   r1  r   r   r   !test_as_index_series_return_frame  s*    <:r=  c                 C   sR   | j ddd}d}tjt|d |d d W d    n1 sD0    Y  d S )Nr   Fr   zColumn\(s\) C already selectedr7   r   r   )rJ   rS   rT   
IndexError__getitem__)rl   rW   r\   r   r   r   (test_as_index_series_column_slice_raises  s    r@  c                 C   s  | }|j ddd}d}tjt|d( | }| dg }W d    n1 sR0    Y  |dd|j tt	||_t
|| |j ddgdd}| }| ddg }tt|jj }|dd|d  |dd|d  tt	||_t
|| d S )	Nr   Fr   r   r7   r   r   r0   )rJ   rM   r{   r|   rA   insertr(   rE   rF   rK   rg   r   zipr   )rl   rV   rW   r\   r   r   Zarraysr   r   r   test_groupby_as_index_cython"  s"    .rC  c                 C   sL   | j ddgdd}|d t}|tjd d g df }t|| d S )Nr   r   Fr   r   r   )rJ   rO   rK   r`   rM   rg   rl   rW   r   r   r   r   r   #test_groupby_as_index_series_scalar;  s    rE  c                 C   s   d}t jt|d" |jdd dd W d    n1 s:0    Y  d}t jt|d$ | jdd dd	d
 W d    n1 s0    Y  d S )Nz(as_index=False only valid with DataFramer7   c                 S   s   |   S r1   r   r*   r   r   r   r,   H  r-   z.test_groupby_as_index_corner.<locals>.<lambda>Fr   z$as_index=False only valid for axis=0c                 S   s   |   S r1   )lowerr*   r   r   r   r,   L  r-   r0   )r   r   )rS   rT   	TypeErrorrJ   
ValueError)rl   r   r\   r   r   r   test_groupby_as_index_cornerE  s    0rI  c                  C   s   t  } | dd dd dd g}| }t | j|j | jjdd dd dd gdd	}|d
d }t |j	| j
 t | jj|j |dd }t | jj|j d S )Nc                 S   s   | j S r1   r   r*   r   r   r   r,   Q  r-   z+test_groupby_multiple_key.<locals>.<lambda>c                 S   s   | j S r1   r   r*   r   r   r   r,   Q  r-   c                 S   s   | j S r1   r   r*   r   r   r   r,   Q  r-   c                 S   s   | j S r1   r   r*   r   r   r   r,   V  r-   c                 S   s   | j S r1   r   r*   r   r   r   r,   V  r-   c                 S   s   | j S r1   r   r*   r   r   r   r,   V  r-   r0   r   c                 S   s   |   S r1   r2   r*   r   r   r   r,   Y  r-   c                 S   s   |   S r1   r2   r*   r   r   r   r,   ]  r-   )rM   r   rJ   r3   Zassert_almost_equalr   r   rO   assert_index_equalr(   rz   )rl   rW   rZ   r   r   r   test_groupby_multiple_keyO  s    rK  c                 C   sP   |   } tj| d< | ddg }| ddg }tj|d< t|| d S )Nbadr   r   )rh   rE   r   rJ   rA   rM   rg   )rl   rZ   r   r   r   r   test_groupby_multi_cornera  s    

rM  c                 C   s4  |  d}d}tjt|d$ |tj}| }W d    n1 sF0    Y  t|| | jd d g df } t	
 | d< |  d}tjt|d$ |tj}| }W d    n1 s0    Y  t|| | j ddddddd	}d
}tjt|d |dd  W d    n1 s&0    Y  d S )Nr   r   r7   r   r   r   r  r   r0   )r   r   r   r  r   z does not support reduction 'sum'c                 S   s   | j dddS )Nr   Fr#  r2   r*   r   r   r   r,     r-   z$test_omit_nuisance.<locals>.<lambda>)rJ   rM   r{   r|   rO   rE   rA   rg   r`   r   nowr3   rS   rT   rG  )rl   rW   r\   rZ   r  r   r   r   r   r   test_omit_nuisancem  s"    
&
&rP  agg_functionr+  minc                 C   sv   |  d}t|| }| }t| j| d dkdf | |jd< t| j| d dkdf | |jd< t|| d S )Nr   r   r   )r   r   r   )r   r   )rJ   r   rh   r`   rM   rg   )rl   rQ  rW   r   r   r   r   r   test_keep_nuisance_agg  s    
$$rS  )r3   rA   prodrR   varsemmedianr$  c           
      C   s  |t ju s|s|dkrt}nd }| d}|dv r|du r|dkrFtnt}tj|dd  t|||d W d    n1 s~0    Y  n |t ju rd	| }nd
}t	j
||d  t|||d}W d    n1 s0    Y  |t ju s|s|dvrg d}ng d}|dkr*|du r*d }n|dv rD|durDt}nd }d}t	j
||d4 t| jd d |f d||d}	W d    n1 s0    Y  t	||	 d S )Nr3   r   )rU  rR   rV  FrU  z!could not convert string to floatr7   r#  z6The default value of numeric_only in DataFrameGroupBy.Dropping invalid columns)rA   rT  rW  r   rN  )r3   rR   rU  rV  Tr   )r   
no_defaultr|   rJ   rG  rH  rS   rT   r   rM   r{   r`   rg   )
rl   rQ  r$  r;  rW   klassr\   r   rz   r   r   r   r   test_omit_nuisance_agg  sB    
2
.
&r[  c                 C   sp   t jtddN | d}| }| jd d g df d }t || W d    n1 sb0    Y  d S )Nalways)Zfilter_levelr   rN  )rM   r{   r|   rJ   skewr`   rg   rD  r   r   r   test_omit_nuisance_warnings  s
    
 r^  c                 C   sd   |  ddg}d}tjt|d$ |tj}| }W d    n1 sJ0    Y  t|| d S )Nr   r   r   r7   )rJ   rM   r{   r|   rO   rE   rA   rg   )Zthree_grouprW   r\   rZ   r  r   r   r   "test_omit_nuisance_python_multiple  s    &r_  c                 C   s   t tg dtg dddgd tjdtjdd}|dd	g}d
}tjt|d$ |	tj
}|
 }W d    n1 s0    Y  t|| | dd jdd}|dd }|d tj
}t|d | |jjdksJ d S )Nr   r   r   r   r&   r   )r   r   Zk3r   r   r   r   r   r7   r   r   r   c                 S   s   |   S r1   rs   r*   r   r   r   r,     r-   z*test_empty_groups_corner.<locals>.<lambda>r   r   )r	   rE   r  rG   r  rJ   rM   r{   r|   rO   rA   rg   rP   rN   r(   r@   )rk   rl   rW   r\   r   r   rZ   Zagged_Ar   r   r   test_empty_groups_corner  s&    



&ra  c                  C   sN   t dg} d}tjt|d | dd  W d    n1 s@0    Y  d S )Nr   z5unsupported operand type\(s\) for \+: 'int' and 'str'r7   c                 S   s   | d S )Nr   r   r*   r   r   r   r,     r-   z$test_nonsense_func.<locals>.<lambda>)r	   rS   rT   rG  rJ   )rl   r\   r   r   r   test_nonsense_func  s    
rb  c                 C   s   | j }d|d< tg dtg dg}d}tjt|d" ||tj}W d    n1 sd0    Y  t	|j
ts~J dd }tjtdd  |||}W d    n1 s0    Y  t|j
d	 t|j
ksJ d S )
NZpeekaboo)bazr:   r   r   r0   r   r7   c                 S   s   | j dkrtn|  S d S )N)r   r9   )r@   rG  r3   )serr   r   r   aggfun  s    
z5test_wrap_aggregated_output_multindex.<locals>.aggfunrX  r0   )r   rE   r  rM   r{   r|   rJ   rO   rA   r}   rz   r   rL   rK   )rk   rl   r  r\   rZ   rf  Zagged2r   r   r   %test_wrap_aggregated_output_multindex  s    0.rg  c                 C   sh   | j dd }|jjdks J | j dd }|jjdks@J | d j dd }|jjdksdJ d S )Nr   r`  r   r0   secondr   )rJ   r~   r(   r@   )rk   r   r   r   r   test_groupby_level_apply  s    ri  c                    s   |   }ddddd dddd| j dd }| jdd }t fdd|d D }tfd	d|d
 D }| | }| | }d\|j_|j_t|| t|| d S )Nr   r0   )r   r   rc  qux)r9   r:   r  r`  c                    s   g | ]}  |qS r   r  r   )mapper0r   r   r   $  r-   z-test_groupby_level_mapper.<locals>.<listcomp>r   c                    s   g | ]}  |qS r   rk  r   )mapper1r   r   r   %  r-   rh  )r   rh  )	r0  rJ   r3   rE   r  r(   r@   rM   rg   )rk   Z	deleveledZresult0r   Zmapped_level0Zmapped_level1Z	expected0Z	expected1r   )rl  rm  r   test_groupby_level_mapper  s    rn  c                  C   s.  t g dtg ddd} t g dttdddd}| jdd	 }t|| | jdgd	 }t|| | jd
d	 }t|| | jd
gd	 }t|| d}tjt	|d | jdd	 W d    n1 s0    Y  tjt	|d | jdd	 W d    n1 s0    Y  d}tjt	|d | jg d	 W d    n1 sZ0    Y  d}tjt	|d  | jddgd	 W d    n1 s0    Y  tjt	|d  | jddgd	 W d    n1 s0    Y  d}tjt	|d | jdgd	 W d    n1 s 0    Y  d S )N)r0   r?   r&   r;   r   r   r<   r   )r0   r?   r&   r0   r   r   r?   r   r   r  )r     r&   r   r   r   r0   r4   r   r`  z2level > 0 or level < -1 only valid with MultiIndexr7   zNo group keys passed!z*multiple levels only valid with MultiIndex)
r   r   ri   rJ   r3   rM   rN   rS   rT   rH  )sr   r   r\   r   r   r   test_groupby_level_nonmulti.  s4    *,,00rs  c                  C   s   t tdd g dd} t d}| jdd }t|| tt | jdd}W d    n1 sj0    Y  t|| d S )Nr         ?       @)r   r   r0   r0   rV   r(   )rt  y      @      $@r   r`  )	r   rE   rF   rJ   r3   rM   rN   r{   r|   )r   r   r   r   r   r   test_groupby_complexN  s    *rv  c                  C   s   t dddddddddg} t tjg dtjdtg dd	d
tdgddd}| jd	dd }t|| tg dd	d
|_	| jd	dd }t|| d S )Nr0         ?      ?r   rt  r   )r0   r0   r0   r   )rw  rt        ?        r   r  r   objectr(   rz   Fsort)rx  rw  rt  T)
r	   rE   r  r!   r   rJ   r~   rM   rg   r(   rl   r   r   r   r   r   test_groupby_complex_numbers[  s     r~  c                  C   sj   t g dtg dd} t g dtg dd}| |}| }| || jj }t|| d S )N)      @g      "r   g      Y@g      g     K@g@)r   r   r   dr   r   r   r   )r   r   r   r  r  g      @)r   r   r  r   r   h)	r   r   rJ   rA   rI   r(   r  rM   rN   )s1s2rW   rZ   r  r   r   r   'test_groupby_series_indexed_differentlyr  s    

r  c                  C   s  t tg dg dg } t| }tg d}ttjdd||d}|jdd	 }t
|j| |jdd	d
	 }t
|j|j |jddtj	}t
|j| |jdddd }t
|j| |jdd	d
dd }t
|jtddg t
|j|j |d\}}d|d< d}t
jt|d  |jdd	 }W d    n1 s\0    Y  t
|j|jd d  d S )N)r   r   rc  rc  r   r   rj  rj  )r9   r:   r9   r:   r9   r:   r9   r:   ))r   cat)r   dog)r   r  )r   r     r   rz  r   r`  r0   )r   r   c                 S   s   |   S r1   rs   r*   r   r   r   r,     r-   z0test_groupby_with_hier_columns.<locals>.<lambda>c                 S   s
   |  dS )Nr0   rs   r*   r   r   r   r,     r-   r   r   r   )r   r   r   r7   rp  )r   rB  r   r  r	   rE   rG   r  rJ   rA   rM   rJ  rz   r(   rO   rP   r   Z	sortlevelr{   r|   )Ztuplesr(   rz   rl   r   Zsorted_columns_r\   r   r   r   test_groupby_with_hier_columns  s:    
0r  c                 C   sl   |  | d j}d}tjt|d& | }|  d }W d    n1 sN0    Y  tj||dd d S )Nr   r   r7   Fr   )rJ   r   rM   r{   r|   r3   rg   )rl   rW   r\   r   r   r   r   r   test_grouping_ndarray  s    ,r  c                  C   sn   t g ddd} tg dg dg dg dg dd	| d
}|g d}|tj}| }t|| d S )Nr   r0   r?   r&   r   r(   r  )foo1r  Zfoo2r  Zfoo3)bar1bar2r  r  r  )baz1r  r  baz2r  )spam2Zspam3r  spam1r  )r<   r=   (   r)  <   )r   r   rc  spamrV   r   )r   r   rc  r  )r   r	   rJ   rO   rE   rA   rM   rg   )r(   rV   rW   r   r   r   r   r   test_groupby_wrong_multi_labels  s    r  c                 C   s   d}t jt|d8 | | d  }| j| d dd }W d    n1 sP0    Y  |jjdksjJ d|v svJ | | d | d g }| j| d | d gdd }|jjdksJ d|v sJ d|v sJ d S )Nr   r7   r   Fr   r   r   r   )rM   r{   r|   rJ   rA   r(   r@   r   )rl   r\   r   r   r   r   r   test_groupby_series_with_name  s    4r  c                 C   sR   |  dd }| jdks J | jdks2J dd }||jdksNJ d S )Nr   r   c                 S   s   t | d S rD   )rE   r3   r*   r   r   r   r,     r-   z.test_seriesgroupby_name_attr.<locals>.<lambda>)rJ   r~   r@   rA   rO   )rl   r   ZtestFuncr   r   r   test_seriesgroupby_name_attr  s
    r  c                  C   s`   t g dg dtjdd tdd} | dgj }| j| j }t	
|| d S )N)r   r   r   r   r   r   r   r   )r9   r9   r:   r:   r:   r:   r9   r:   r  r   r   r   )r	   rE   rG   r  rF   rJ   r   r~   r   rM   rN   r}  r   r   r   test_consistency_name  s    	r  c                 C   sx   ddd}dd }|  d|}|jjd u s2J |  d|d}|jjdksTJ |  d|}|jjd u stJ d S )Nc                 S   s   t dddd|dS )Nr0   r?   r&   r~   rA   Z	omissionsr  )r   )rl   r@   r   r   r   	summarize  s    z0test_groupby_name_propagation.<locals>.summarizec                 S   s   t dddd| jd d dS )Nr0   r?   r&   r  r   r   r  )r   r   rl   r   r   r   summarize_random_name  s    z<test_groupby_name_propagation.<locals>.summarize_random_namer   metrics)N)rJ   rP   rz   r@   )rl   r  r  r  r   r   r   test_groupby_name_propagation  s    
r  c                  C   sJ   t dd tdD } | d}| }| | d  }t|| d S )Nc                 S   s   g | ]}t d qS )r;   )rE   rF   r   r   r   r   r     r-   z2test_groupby_nonstring_columns.<locals>.<listcomp>r;   r   )r	   ri   rJ   rA   rM   rg   rD  r   r   r   test_groupby_nonstring_columns  s
    
r  c                  C   sp   t g dgg dd} t ddggddgtdgdd	d
}| d }t|| | d }t|| d S )Nr>   )r   r   r   ry   r0   r?   r   r   r   r  r   )r	   r   rJ   r   rM   rg   r3   r}  r   r   r   test_groupby_mixed_type_columns  s    "r  zignore:Mean of:RuntimeWarningc                  C   s`   t d} | t j t| d d df }t tdd}||tj	}|
  s\J d S )N)r(  r(  r   r;   )rE   r   fillr   r   Ztileri   rJ   rO   rW  Zisnar   )arrobjZindsr   r   r   r   (test_cython_grouper_series_bug_noncontig  s    
r  c                  C   s^   t tdd} ttjd| d d d d}tjddd}||}dd	 }|	| d S )
Nr;   r(  r)  r?   r   r   r   c                 S   s   t ttt| jS r1   )rK   setmapidr(   r*   r   r   r   r,   1  r-   z5test_series_grouper_noncontig_index.<locals>.<lambda>)
r   rM   Zrands_arrayr   rE   rG   r  r.  rJ   rO   )r(   r   r   rW   r   r   r   r   #test_series_grouper_noncontig_index'  s    
r  c                  C   s   t td} tjg ddd}dd }dd }| |}||}|jtjksRJ t|d	 t	sdJ ||}|jtjks~J t|d	 t	sJ d S )
Nr   )r   r   r   r  r   r^   r   c                 S   s   t t|  S r1   )r   strrA   r*   r   r   r   convert_fast:  s    z>test_convert_objects_leave_decimal_alone.<locals>.convert_fastc                 S   s$   t | jjdksJ tt|  S r   )rK   r   baser   r  rA   r*   r   r   r   convert_force_pure=  s    zDtest_convert_objects_leave_decimal_alone.<locals>.convert_force_purer   )
r   ri   rE   r  rJ   rO   r    Zobject_r}   r   )rr  r   r  r  rW   r   r   r   r   (test_convert_objects_leave_decimal_alone5  s    


r  c                  C   st   t g tjdddd} | d jtjks,J | d }tg dtjd}t dtg |ddi}t	j
||d	d
 d S )Nr   r!   r   )r+   ri   r+   r@   r    ri   r'   T)Z	by_blocks)r	   rE   rF   r    r#   rJ   r   r   r   rM   rg   )rl   r   Z	exp_indexr   r   r   r   "test_groupby_dtype_inference_emptyM  s    r  c                  C   sb   t dgdgdgd} | ddgd  }tdgtjdgdggddgddd}t|| d S )	Nr0   l    4;PU  )r   rh  r_   r   rh  r_   r  r  )r	   rJ   r+  r   r   from_productrM   rN   r  r   r   r   $test_groupby_unit64_float_conversionX  s    r  c                 C   s  d}t jt|d8 | t| d  }| | d  }W d    n1 sP0    Y  t j||dd tjt	dd* | t| d d d  W d    n1 s0    Y  t
dd	gd
dgtjdd} | ddg }| | d | d g dg }d S )Nr   r7   r   Fr   z^'foo'$rp  r   r0   r&   r   r?   )r   r   valr   r   r  )rM   r{   r|   rJ   r   rA   rg   rS   rT   KeyErrorr	   rE   rG   r  )rl   r\   r   r   r   r   r   "test_groupby_list_infer_array_liked  s    08 r  c                  C   st   d} t tdd| d}tddgddggd	d
g|d}|td| dd	g }||jd	gt	}t
|| d S )Nrr  z2015-09-29T11:34:44-0700r?   )startr   freqr   r;   r      Zmetricr   r   r   )r   r  )r   r   r	   rJ   r
   rA   r   r(   rf   r   rM   rg   )r  r(   rl   r   r   r   r   r   $test_groupby_keys_same_size_as_indexu  s    
r  c                  C   s   d} t tjddtdd}tjt| d |d W d    n1 sL0    Y  t tjddtdd}tjt| d |d W d    n1 s0    Y  d S )	Nz^'Z'$r0   r   ABCDry   r7   Zr?   )	r	   rE   rG   r  r   rS   rT   r  rJ   )r\   r   r   r   r   r   test_groupby_one_row  s    (r  c                  C   s  t tjdtjtdtjtdtjtdtjtdgtjdtjdtjdtjdgd} | d}tdd	gtd
dgg}t|j	
 }t|dksJ t||D ]\}}t|j	| | qt|jjd j|  |jdksJ tdtjdd	gtjdtdtjd
dgtjdi}|jD ]}t|j| ||  qt|td| jdd	g  t|td| jd
dg  tjtdd |tj W d    n1 s0    Y  t tjtjtjgtjtjtjgd}|d jdksJ |d jdksJ dD ]}||}|j	i ks&J |jdks6J |ji ksFJ tjtdd |tj W d    n1 sx0    Y  tjtdd |tj W d    n1 s0    Y  qd S )Nr  z
2013-01-01z
2013-02-01r   r   )r   dtr  r  r0   r4   r&   r   r?   r   z2013-01-01 00:00:00r   z2013-02-01 00:00:00z^NaT$r7   )r   natr   r#   r  zdatetime64[ns]z^nan$) r	   rE   rG   r  r   r   rJ   r   sortedr   r  rK   rB  rM   rJ  rg   grouperr   r  Zngroupsr  Zintpr   assert_numpy_array_equalr  r   rS   rT   r  r   r   r    )rl   rW   r   r  rX   r   Znan_dfr   r   r   r   test_groupby_nat_exclude  sZ    



  , 
,r  c                  C   sD   t tjtjgtjtjgddgd} | ddgj}|i ks@J d S )Nr0   r?   r   r   r   )r	   rE   r   rJ   r   rl   r   r   r   r   #test_groupby_two_group_keys_all_nan  s    $r  c                  C   s   t tdd} ddg| d< ddg| d< ddg| d	< d
dg| d< d}tjt|d  | dg }W d    n1 sv0    Y  tddgddgg}t	|j
tdd	g t|j| d S )Nr?   r   g1g2rc   r   Zzerosr0   r   l1l2labelr   r7           r   )r	   ri   rM   r{   r|   rJ   rA   rE   r  rJ  rz   r   r  r   )r  r\   tmpZ
res_valuesr   r   r   test_groupby_2d_malformed  s    .r  c                  C   s   t t dt dt df} t d}t|| || t jdd}|g d }|g d }t|t|ksJ d S )Ni'  i  ia  )r   r   r   r   r  r   )r   r   r   r   )	rE   ZconcatenaterF   r	   rG   r  rJ   r3   rK   )r   r   rl   r%  r4  r   r   r   test_int32_overflow  s    "
r  c                  C   sn  t g dg dg dtjdd} dd | g d jD }t|}| jg dd	d
 }t	
|jj|g d  dd | g d jD }t|}| jg dd	d
 }t	
|jj| dd | g d jD }t|}| jg dd	d
 }t	
|jj|g d  t g dg dtjdd} | ddgd }| }dd fdd}|| |ddgd d S )Nr   r   rc  )r&   r?   r0   r>   r&   r   r   r   r  c                 S   s   g | ]}t |qS r   tupler   rowr   r   r   r     r-   z+test_groupby_sort_multi.<locals>.<listcomp>r   Tr{  )r0   r?   r   c                 S   s   g | ]}t |qS r   r  r  r   r   r   r     r-   )r   r   r   c                 S   s   g | ]}t |qS r   r  r   r   r   r   r     r-   )r   r   r   )r?   r0   r   )r   r0   r?   r   r0   r?   )r   r   r   r0   r0   r0   r   )r   r   r  r   r   r  c                 S   s   |   S r1   r2   r*   r   r   r   r,   
  r-   z)test_groupby_sort_multi.<locals>.<lambda>c           	      S   sV   dd | | j D }t|}|| || }| D ]\}}|| |ks8J q8d S )Nc                 S   s   g | ]}t |qS r   r  r  r   r   r   r     r-   zCtest_groupby_sort_multi.<locals>._check_groupby.<locals>.<listcomp>)r   comasarray_tuplesaferJ   r   )	rl   r   r  fieldr   tupsr   rX   rY   r   r   r   _check_groupby
  s
    
z/test_groupby_sort_multi.<locals>._check_groupby)r	   rE   rG   r  r   r  r  rJ   r3   rM   r  r(   )rl   r  r   rW   r  r   r   r   test_groupby_sort_multi  s4    
	


r  c                  C   sB   t g dg dd d} | jddddd	 }t||  d S )
N)r   r   r   r   r   r   r  r?   )r   r@   r   Fr.   c                 S   s   | S r1   r   r*   r   r   r   r,     r-   z/test_dont_clobber_name_column.<locals>.<lambda>)r	   rJ   rP   rM   rg   r  r   r   r   test_dont_clobber_name_column  s
    r  c                  C   s   t  } | jdd dd}|dd }dd |D }t|}t || | d jd	d dd}|d
d }dd |D }t|}t || d S )Nc                 S   s   | j S r1   r   r*   r   r   r   r,   !  r-   z&test_skip_group_keys.<locals>.<lambda>Fr.   c                 S   s   | j ddd d S )Nr   r"  r&   sort_valuesr*   r   r   r   r,   "  r-   c                 S   s$   g | ]\}}|j d ddd qS )r   r  Nr&   r  r   r   rc   r   r   r   r   $  r-   z(test_skip_group_keys.<locals>.<listcomp>r   c                 S   s   | j S r1   r   r*   r   r   r   r,   )  r-   c                 S   s   |   d d S r)   r  r*   r   r   r   r,   *  r-   c                 S   s    g | ]\}}|  d d qS r)   r  r  r   r   r   r   ,  r-   )rM   r   rJ   rP   r   r  rg   rN   )ZtsfrW   r   piecesr   r   r   r   test_skip_group_keys  s    

r  c                 C   s:   | d   }d |_|| d tj}|jd u s6J d S )Nr   r   )rh   r@   rJ   rO   rE   r3   )Zfloat_framerr  r   r   r   r   test_no_nonsense_name2  s    r  c                  C   s\   t tddd} d| d< g d| d< | d}|ddd	}|d jtjksXJ d S )
Nr%   r&   r   test)g?g      ?g?flr3   r8  )r  r?   )r	   rE   rF   reshaperJ   rO   r    r#   )r+   rW   r   r   r   r   test_multifunc_sum_bug;  s    
r  c                 C   sV   dd }dd }|  dd |}|  dd |}t|tsFJ t|| d S )Nc                 S   s   |   |  dS Nr+  rR  r  rb   r   r   r   r   G  s    z(test_handle_dict_return_value.<locals>.fc                 S   s   t |  |  dS r  )r   r+  rR  rb   r   r   r   r   J  s    z(test_handle_dict_return_value.<locals>.gr   r   )rJ   rP   r}   r   rM   rN   )rl   r   r   r   r   r   r   r   test_handle_dict_return_valueF  s    r  r  r   r   c                    s   dd }dd   fdd}| j |dd}|| |  |  d	 || |d
 | |d
   |d
  |g |d
 | d S )Nc                 S   s   | j d usJ | S r1   r  rb   r   r   r   r   V  s    ztest_set_group_name.<locals>.fc                 S   s   | j d usJ |  S r1   )r@   r3   rb   r   r   r   freduceZ  s    z$test_set_group_name.<locals>.freducec                    s    | S r1   r   r*   r  r   r   r   ^  s    z test_set_group_name.<locals>.fooFr.   r   r   )rJ   rP   rL   rQ   )rl   r  r   r   rW   r   r  r   test_set_group_nameT  s    


r  c                     sV   t g dtdd} g   fdd}| jdddd| g d	} |ksRJ d S )
N)r   r   r0   r0   r?   r?   r   r   c                    s     | j |  S r1   )r  r@   rh   rb   r  r   r   r   u  s    z6test_group_name_available_in_inference_pass.<locals>.fr   F)r|  r/   r>   )r	   rE   rF   rJ   rP   )rl   r   Zexpected_namesr   r  r   +test_group_name_available_in_inference_passo  s    r  c                 C   s   d}t jt|d$ | | d j }W d    n1 s<0    Y  |jjd u sVJ t jt|d. | | d j| d jg }W d    n1 s0    Y  |jjdksJ d S )Nr   r7   r   r   )NN)	rM   r{   r|   rJ   r   r3   r(   r@   r   )rl   r\   r   r   r   r   test_no_dummy_key_names  s    2<r  c                  C   s   t ddgddggg dg dgddgd} tg d| d	}t ddgddggg d
g dgddgd} tg d| d	}|jddgdd }t|| |jddgdd }t||  d S )Nr0   r?   )r   r   r   r   r0   r0   )r0   r0   r   r   r   r   r   r   r   )r   r0   r?   r&   r   r   r   rd  )r0   r   r   )r   r?   r   Fr   r|  T)r   r   rJ   r   rM   rN   
sort_index)r(   ZmseriesZmseries_resultr   r   r   r   #test_groupby_sort_multiindex_series  s    "r  c                  C   s   d} t dd| d}tt| t| d|d}ddd	}|d
d }|d|tji}|d|tjdi}t|| d S )Ni  z2012/1/1Z5min)r  r  r   )highlowr   Fc                    s    fdd}|S )z>
        Run an aggregate func on the subset of data.
        c                    sD   | j | jdd   } r,| | jd   t|dkr<d S |S )Nc                 S   s
   | j dk S )Nr  )hourr*   r   r   r   r,     r-   zYtest_groupby_reindex_inside_function.<locals>.agg_before.<locals>._func.<locals>.<lambda>r   )r`   r(   r  dropnarK   )rV   r  fixru   r   r   _func  s    zGtest_groupby_reindex_inside_function.<locals>.agg_before.<locals>._funcr   )ru   r  r  r   r  r   
agg_before  s    z8test_groupby_reindex_inside_function.<locals>.agg_beforec                 S   s   t | j| j| jS r1   )r   r   r   r   r*   r   r   r   r,     r-   z6test_groupby_reindex_inside_function.<locals>.<lambda>r  T)F)	r   r	   rE   rF   rJ   rO   r+  rM   rg   )r   indrl   r  rW   Zclosure_badZclosure_goodr   r   r   $test_groupby_reindex_inside_function  s    
r  c                  C   s   t g dg dg dd} | ddg} | jddgdd}|d	}tjg d
ddgd}t dgdgdgg|dgd}t|| d S )N)r   r   r   r   )r   r   r  r   )r0   r0   r0   r   )group1group2r_   r  r  Tr  r3   ))r   r   )r   r  r   r   r  r?   r0   r   r_   rz  )r	   r   rJ   rO   r   r  rM   rg   )rl   r   r   r   r  r   r   r   $test_groupby_multiindex_missing_pair  s    
r  c                  C   s  t jg dddgd} tg dg| d}|j s6J tg dg dg d	gd
}|jdddgdd}| }|j r|J t|| |	d
 }tt |	d
 }W d    n1 s0    Y  t|| tg dg dg ddddg}|j rJ ddddgfD ]j}dD ]^}|j	||ddtj}|}t|| | j	||ddtj}| }t|| q&qd S )N))r    )b1c1)b2c2r   r   r  r0   r&   r   ry   r  )r0   r  r  r&   )r0   r  r  r   )rz   rV   r   r  )r(   rz   r   )r   r   r   r   r0   r0   r?   r?   r0   r?   r&   r   r+   r   zr+   r   r   r0   )FTF)r   r|  r/   )r   r  r	   rz   Z_is_lexsortedpivot_tabler0  rM   rg   rJ   rA   r{   r   r   r(   rP   Zdrop_duplicatesr  )Zlexsorted_miZlexsorted_dfZnot_lexsorted_dfr   r   rl   r   r|  r   r   r   %test_groupby_multiindex_not_lexsorted  sN    
,r  c                  C   s  t tdg dd} | td}|dd }| jg d }t|| | d }|td}|d	d }|g d}t|| | j	
t| _	| td}|d
d }| jg d }t|| | d }|td}|dd }|g d}t|| d S )NZABCDE)r?   r   r?   r0   r0   r   Zababbc                 S   s   t | dkS rD   rK   r*   r   r   r   r,   
  r-   z4test_index_label_overlaps_location.<locals>.<lambda>r  r   c                 S   s   t | dkS rD   r  r*   r   r   r   r,     r-   c                 S   s   t | dkS rD   r  r*   r   r   r   r,     r-   c                 S   s   t | dkS rD   r  r*   r   r   r   r,     r-   )r	   r   rJ   filterr   rM   rg   r   rN   r(   rf   r   )rl   r   actualr   re  r   r   r   "test_index_label_overlaps_location  s(    r  c                  C   s   d} t | }t|d d| d| d}t|d d d| d| d}|d}|d}|d}|d}t|| d S )	Nr   r?   r         @r   r   r   rA   )rE   rF   r	   rJ   rQ   rM   rg   )nr+   rl   r   r   r   gb2r   r   r   r   "test_transform_doesnt_clobber_ints"  s    
 



r  sort_columnintsfloatsstringsgroup_column
int_groupsstring_groupsc                    sX   t g dg dg dg dg dd}|j d}||} fdd	}|| d S )
N)r&   r0   r   r0   r   r&   r&   r&   )r	  r   r	  r   r   r   r   r   )r  r4   r   r   r?   r%   r0   r0   )gffffff@g333333@g@g333333g@皙?r  r   )r	  r  r   r   wordZword2Z42Z47)r  r  r  r  r  r  c                    s   t | | j d d S )Nr  )rM   rg   r  r*   r  r   r   	test_sortK  s    z.test_groupby_preserves_sort.<locals>.test_sort)r	   r  rJ   rP   )r  r  rl   r   r  r   r  r   test_groupby_preserves_sort1  s    
r  c                  C   s   t tt ddd tddd} | djj| d< | djj	| d< t
jtd	d
& |  jddddd W d    n1 s0    Y  d S )Nr<   M)r   r  r   )	eventDateZthenamer!  r   r   z	'badname'r7   Zbadnamer~   )r(   rz   r   Zaggfunc)r	   r   r   todaytolistri   r   r(   r   r   rS   rT   r  r0  r
  r  r   r   r   !test_pivot_table_values_key_errorQ  s    r$  rz   r   r  r   r  r   r0   z
US/EasterntzInt64r   Float64boolean)
boolintr   r  r  Zdt64Zdt64tzr'  r(  r)  )Zidsmethod)r3  rO   rP   )ra   idxminr7  rR  r+  r3   rT  r]  z-ignore:Dropping invalid columns:FutureWarningz(ignore:.*Select only valid:FutureWarningc                    s:  d }t |trXt | tsXdv rX|rTdkrTd}d| }	tjjt|	d}
|j|
 nnt |trt	|dkrdv rtjjt
dd}
|j|
 n0t |trt	|dkrt | tstjjtd	d}
|j|
 nt |trt	|dkrd
v rtjjtdd}
|j|
 nt |trXt	|dkrXdv rXtjjtdd}
|j|
 nndkrt | tst |tjr|jd ur|rtjjtdd}
|j|
 nt |trƈd
v rd}t |d trdv rd}t|||dtdd}t|dr|j|jk sJ |jd d }|j|dd|    fdd}| dkrBdv r|jd jdkrdkrd}	nd }	tjt|	d! |  W d    n1 s0    Y  d S d"v rt |trdkrd#}	ndkr d$ d%}	nd&}	tjt|	d! |  W d    n1 s00    Y  d S ndv r2|jd jdkr| }||g  }t|| d S t |tr| }||g  }t	|dkrd'krtdg|jd(}tj||gd)d*gd+}tg g |d,}t|| d S |jd tkr2| }||g  }t|| d S d-v rt |trt	|dkr| }||g  }t	|dkrtdg|jd(}tj||g|d+}tg g |d,}n.tdg|jd(}t ||d d.}tg g |d,}t|| d S | }|||  }|d ur|!|}t	|dkr*|d |j"_#t|| d S )/N)r3   rT  r]  r7  r7  z3Cannot interpret 'CategoricalDtype.* as a data typez1Regex pattern "'Categorical' does not implement.*)rT   r8   r0   )ra   r-  z0attempt to get arg(min|max) of an empty sequencez 'Categorical' does not implement)r3   rT  z (DataFrame|Series) are differentr?   )rR  r+  r3   z>Cannot interpret 'datetime64\[ns, US/Eastern\]' as a data typer'  r   )rT  r3   r!   r   ABCry   r    Fr.   c                     s   dkrt nd } tj| dddN dkrDt  W  d    S t W  d    S W d    n1 st0    Y  d S )Nr7  r9  F)r8   Zraise_on_extra_warningsr3  )r|   rM   r{   r   )r;  r   r,  r  r   r   
get_result  s    z&test_empty_groupby.<locals>.get_resultr   )rT  r3   r]  r   r]  z!does not support reduction 'skew'z datetime64 type does not supportr7   )rT  r3   r]  r7  z!does not support reduction 'mean'zdoes not support reduction ''zcategory type does not supportrT  r   r   r   r  r   )r7  rR  r+  r]  r  )$r}   r   r   rS   markxfailr   node
add_markerrK   rH  rG  r   ZDatetimeIndexr&  r   r*  r	   hasattrrj   r    r   r   rJ   kindrT   r   rM   assert_equalr   r  ry  r   rf   r(   r@   )rz   r  r   r,  r  requestZusing_array_managerZoverride_dtypeZ	right_msgr\   r2  rl   r0  r   r   Zlevr  cir   r/  r   test_empty_groupbyc  s   %

$





&


&



r;  c                  C   sh   t tjdd} | d tj| d< g d| _| j| d dd}|dd	 }|j	| j	k
 sdJ d S )
Nr   r   r&   )r   r0   r?   r   r0   Fr.   c                 S   s   | S r1   r   r*   r   r   r   r,   S  r-   z<test_empty_groupby_apply_nonunique_columns.<locals>.<lambda>)r	   rE   rG   r  rf   r!   rz   rJ   rP   rj   r   )rl   r   r   r   r   r   *test_empty_groupby_apply_nonunique_columnsM  s    
r<  c                  C   s   t g dg dg dg dd} tjtdd" | g d d W d    n1 sX0    Y  | dd  }td	gdtd
gddd}t	|| d S )N)r0   r0   r0   r0   )r?   r?   r?   r?   )r   r   r   r   z
('a', 'b')r7   r   r   r   r   r0   r  r  )
r	   rS   rT   r  rJ   r3   r   r   rM   rN   r  r   r   r   test_tuple_as_groupingW  s    	0r=  c                  C   sd   t dtdtddgddggd} tjtdd | d  W d    n1 sV0    Y  d S )	Nr0   r&   r?   r   rz  z
^\(7, 8\)$r7   )r4   r  )	r	   ri   r   r  rS   rT   r  rJ   rA   r  r   r   r   test_tuple_correct_keyerrorj  s    $r>  c               	   C   s   t dgdggtdgddtddddd	d
} t g dg dgtjdg ddtddddd	d
}| tddddg}t	|| d S )Nr0   r   mycolsr  
2018-01-01r?   r   dti)r   r  r@   r   )r0   r0   r0   r0   r0   ))r   r3   r   )r   ohlcopen)r   rB  r  )r   rB  r  )r   rB  close)r?  NNr  )r  r3   rB  )
r	   r   r   r   r  rJ   r
   rO   rM   rg   r}  r   r   r   test_groupby_agg_ohlc_non_firstq  s    

rE  c                  C   s   t jdftddddftddddftddddfg} tj| dd gd}tg d	|d
}|jdd }tddgddgd
}t	|| d S )Nr   i  r0   r?   r   r&   dater  )r&   r?         @r   r   r`  r  rG  )
r   r   r   r   r  r   rJ   rA   rM   rN   )r   r  re  r   r   r   r   r   test_groupby_multiindex_nat  s    rH  c                  C   sd   t tdtd} t| ddgd}d}tjt|d |g g W d    n1 sV0    Y  d S )Nr;   appler   ry   z$Grouper and axis must be same lengthr7   )rB  ri   r	   rS   rT   rH  rJ   )r   rl   r\   r   r   r   test_groupby_empty_list_raises  s
    rJ  c                  C   s   ddgddgddgg} g d}t j| |d}tddg|d	}|d
dg }dgdgg} d
dg}t j| |d}tdg|d}t|| d S )Nr+   r   r   rX   )r   rh  thirdr  r0   r?   ru  r   rK  r&   r   )r   from_arraysr   rJ   r3   rM   rN   )Zindex_arrayZindex_namesrirr  r   eir   r   r   r   8test_groupby_multiindex_series_keys_len_equal_group_axis  s    rO  c                  C   s   t jddgddggddgd} tg dg d	d
| d}|tdddg}|ddg}|j|jksjJ |dtddg}|ddg}|j|jksJ d S )Nr   r   r   r   r!  betar  )r0   r?   r0   r?   r  r   r   r`  )r   r  r	   rJ   r
   r   )r  rl   r   r   r   r   r   "test_groupby_groups_in_BaseGrouper  s    rQ  
group_namer+   c                 C   s   t tdddg dg dd}d|j_d|j_|j| d	d
 }|j	|  j	}t
|| g dddgg}tj|ddgd}t tdddg d|d}|j| d	d
 }|j	|  j	}t
|| d S )Nr5   r&   r   )r   r0   r   )r;   r<   r;   r<   rz  r   r+   r0   r   )r   rc  r   r9   r:   x1)	iterablesr      r   )r	   rE   rF   r  r(   r@   rz   rJ   r3   r   rM   rg   r   r  )rR  rl   resultsr   rT  r  r   r   r   test_groupby_axis_1  s     rW  zop, expectedshifttime2019-01-01 12:00:002019-01-01 12:30:00Zbfill2019-01-01 14:00:002019-01-01 14:30:00ffillc                    s   |  g dt dt dd d t dt dgd}t|j fddd	}|d
}t|| }t|j fddd	}t|| d S )N)r   r   r   r   r   r   rZ  r[  r\  r]  )r  rY  c                    s   | j j S r1   rY  r  Ztz_localizer*   r%  r   r   r,   	  r-   z+test_shift_bfill_ffill_tz.<locals>.<lambda>)rY  r  c                    s   | j j S r1   r_  r*   r%  r   r   r,   	  r-   )r   r	   ZassignrJ   r   rM   rg   )Ztz_naive_fixturer  r   rV   rl   rW   r   r   r%  r   test_shift_bfill_ffill_tz  s    .
r`  c                  C   sD   t d gdd} | dd d}ttjgdd}t|| d S )Nr0   )r   r+   r   r+   r3   r  )r	   rJ   rQ   r   rE   r   rM   rN   )rl   r  r   r   r   r   test_groupby_only_none_group	  s    ra  c                  C   sL   t g dg dd} | jdd}| }t g dg dd}t|| d S )N)r?   r   r   r  )r   r   r   r  r   r   r`  )r?   g      @r  )r   r   r  )r   rJ   rA   rM   rN   )re  r   r   r   r   r   r   test_groupby_duplicate_index&	  s
    rb  z&ignore:.*is deprecated.*:FutureWarningc                 C   sl  | dkr"t jjtd}|j| tdtdddggg dd}|d	 t	|d	< |d
 t	|d
< |
ddg}| dkrd}n| dkrd}nd}|jd d dgj| g|R  }|dgj| g|R  jd d }| dv r|t	}t|| |d	 jd d dgj| g|R  }|d	 dgj| g|R  jd d }| dv r\|t	}t|| d S )Ntshift)rT   r0   r"  r&   r   )col_1col_2col_3col_4rV   rz   rf  rg  rd  re  Zfillna)r^  )r0   r   r   r   )diffrX  )rS   r2  r3  NotImplementedErrorr4  r5  r	   r   rf   r+  r   r   rJ   rQ   rM   r8  )Ztransformation_funcr9  r2  rl   argsr   r   r   r   r   test_group_on_empty_multiindex0	  s6    $$
&&

rl  r   r   r  )r   r   rm  r   r  z)ignore:tshift is deprecated:FutureWarningc                 C   s   | dv rt d|   t| } | dv r,tnd }tddgg|d}|dg}| dkrbtdg|_t| |}t	j
|d	d
 t|| | }W d    n1 s0    Y  |jdksJ t	|j| d S )N>   r8  r6  ZcumcountzNot applicable for )r7  rc  r0   ry   r   rc  r"  zis deprecatedr7   r   )rS   r:  r   r|   r	   rJ   r   r(   r   rM   r{   r   shaperJ  rz   )Zgroupby_funcr   r;  rl   Zgrp_byrk  r   r   r   r   test_dup_labels_output_shapeU	  s    	
,ro  c           
      C   s   t dddd}tddgddgddgd}d	|j_||_|| }|sL|j}|j|dd
}| }tddgddgd|d}d|j_	|s|j}t
|| |dkr|g  j|dd
}|g  }n&|jg  j|dd
}|jg  tj}| }	t
|	| d S )N
2016-01-01r?   r   )r   r@   r0   r&   r   )r  )r   r   )r   r   )r   rc  )r   r   )r   r   r   r   )r   r	   rz   r   r(   Z_get_axis_numberr   rJ   Znuniquer@   rM   rg   r`   rf   rE   r#   )
r   rA  rl   Zaxis_numberr   r   r   r  r  r   r   r   r   test_groupby_crash_on_nuniques	  s*    

rq  c                  C   s>   t tddddtd} | jdgd }t||  d S )Nr   r%   r&   r   r`  )	r	   rE   rF   r  r   rJ   rA   rM   rg   )r   r   r   r   r   test_groupby_list_level	  s    rr  zmax_seq_items, expected))r   z({0: [0], 1: [1], 2: [2], 3: [3], 4: [4]})r   z%{0: [0], 1: [1], 2: [2], 3: [3], ...})r0   z{0: [0], ...}c                 C   s   t tjdd}|j|d< td| P |dj	 }||ksFJ |t
|jj	 }||ksjJ W d    n1 s~0    Y  d S )Nr   r0   r   zdisplay.max_seq_items)r	   rE   rG   r  r(   r   Zoption_contextrJ   r   __repr__r  r   )Zmax_seq_itemsr   rl   r   r   r   r   test_groups_repr_truncates	  s    

rt  c                  C   s   t ddddddddg} | ddg} | ddg}|j}dtjd	dgtjd
i}t|dksfJ d}|| || k sJ d S )Nr0   r?   c   r   X   r   r   r   r   r   )	r	   r   rJ   r   rE   r  r!   rK   r   )rl   r   r   r   r   r   r   r   6test_group_on_two_row_multiindex_returns_one_tuple_key	  s    rw  zklass, attr, valuer   r|  r/   rv   Zobservedr  r   z5GH 35443: Attribute currently not passed on to series)reason)Zmarksz:ignore:The `squeeze` parameter is deprecated:FutureWarningc                 C   sr   t dgdgdgd}|dkr(|d}|jdi ||i}| t u rN|dg n|d }t||t||ksnJ d S )	Nr0   r?   r&   r   r   r   r   )r   )r	   r   rJ   r   )rZ  r3  r_   rl   r   r   r   r   r   #test_subsetting_columns_keeps_attrs	  s     
ry  c                  C   sj   t dgdgdgdjg ddd} d}tjt|d  | d	d
g   W d    n1 s\0    Y  d S )Nr0   r?   r&   r   rd  r   z'Cannot subset columns when using axis=1r7   r   r   )r	   rJ   rS   rT   rH  r3   )r   r8   r   r   r   test_subsetting_columns_axis_1	  s    $rz  ru   )r3   anyrX  c                 C   sH   t dgdd}tdgg|d}|dg}t||  j}t|| d S )Nr   r   r  r0   ry   )r   r	   rJ   r   rz   rM   rJ  )ru   r   rl   r   r   r   r   r   #test_groupby_column_index_name_lost	  s
    r|  c                  C   sd   t g dg dg ddt} g d| _| g d }t g dgg dd}t|| d S )	N)r   r   r   r  r  r  r   )r   r   r   )r   r   r   r   )r   r   r0   ry   )r	   rf   ry  rz   rJ   rR  rM   rg   r  r   r   r   test_groupby_duplicate_columns	  s    
r}  c                  C   s\   t g dg ddd} d| j_| jdd }t dd	gd
dgdd}d|j_t|| d S )Nr  r  rm  )r(   r@   )r   r   r   r`  r?   r   r0   )r   r(   r@   rJ   lastrM   rN   )re  r   r   r   r   r   #test_groupby_series_with_tuple_name
  s    r  zGH#38778: fail on 32-bit systemzfunc, valuesr3        @X@     X@rA   g     @8@g     8@c                 C   s`   g d}t ddgd ||d}t|d|  }t ||dtddgddd	}t|| d S )
N 7yACr  a   b    7y1r  r  r  r0   r?   r   rc   r   r   rc   r   r  r   )r	   r   rJ   r   rM   rg   )ru   r   rV   rl   r   r   r   r   r   )test_groupby_numerical_stability_sum_mean
  s
    r  c                  C   sr   g d} t ddgd | | d}|d }dgd dd	g d
dg ddg }t ||d}tj||dd d S )Nr  r0   r?   r   r  rc   r  g07yACg17yACga7y1Cgb7y1Cr  r  r   T)Zcheck_exact)r	   rJ   r  rM   rg   )rV   rl   r   Zexp_datar   r   r   r   'test_groupby_numerical_stability_cumsum
  s     r  c                  C   sv   t jdd} t| }tdD ]}t j|j||f< qd|d< |d}|jdd}|g d jdd}t	
|| d S )Nr   r0   r   Fskipnar  )rE   rG   r  r	   ri   r   r   rJ   r  rM   rg   )r  rl   ir   r   r   r   r   r    test_groupby_cumsum_skipna_false*
  s    
r  c                  C   s   t ddd} t| | d  }tj|d< td|d}|d}|jd	d
d}td|d |d tj|d |d d gi}t|| |jd	d	d}td|d |d tjtjtjgi}t|| d S )Nrp  r   r   r   r?   r0   r  r   FT)r$  r  r   r   )	r   r   r   r   r	   rJ   r  rM   rg   )rA  re  rl   r   r   r  r   r   r   test_groupby_cumsum_timedelta64:
  s    

,$r  c                 C   s4   | }|j dd }| |j }t|| d S )Nr   r`  )rJ   rA   r(   rM   rN   )Z(rand_series_with_duplicate_datetimeindexZdupsr   r   r   r   r   !test_groupby_mean_duplicate_indexL
  s    r  c                  C   sT   t g dtjtjtjg} | | j }t g tg tjdtjd}t	
|| d S )Nr   r   r'   )r   rE   r   rJ   r(   r3   r   r#   r!   rM   rN   )rr  r   r   r   r   r    test_groupby_all_nan_groups_dropS
  s    r  c                 C   s   t g g dd}|jddg| d}|j|d}| r\tg g gg g gddgd}|sVdgng }ntd	}|spg dnddg}t g ||d
}t|| d S )Nr   rh  r   r   r   r#  r  r   r   r   )r	   rJ   r3   r   r   rM   rg   )r   r$  rl   r   r   r(   rz   r   r   r   r   test_groupby_empty_multi_column[
  s    r  c                  C   s   t ddggddggddggddgggddgd} t dddgddggitddgd	dd
d}| jdgd}| }t|| d S )Nr   r0   Wr;   r<   ZMWrY   ry   ry  r    r@   r   r  )r	   r   rJ   r3   rM   rg   rl   r   r   r   r   r   r   *test_groupby_aggregation_non_numeric_dtypek
  s    (r  c                  C   s   t g ddd tddD dd tddD d} t dd td	d
D dd td	d
D dtddgdddd}| jdgd}| }t|| d S )Nr0   r   r0   r0   r   c                 S   s   g | ]}t |d qS daysr   r   r  r   r   r   r   
  r-   zDtest_groupby_aggregation_multi_non_numeric_dtype.<locals>.<listcomp>r0   r   c                 S   s   g | ]}t |d  dqS r;   r  r  r  r   r   r   r   
  r-   r  c                 S   s   g | ]}t |d qS r  r  r  r   r   r   r   
  r-   r4   r%   c                 S   s   g | ]}t |d  dqS r  r  r  r   r   r   r   
  r-   )r   r	  r   r!   r+   r  r   r  )r	   ri   r   rJ   r3   rM   rg   r  r   r   r   0test_groupby_aggregation_multi_non_numeric_dtype}
  s    r  c                  C   s   t g ddd tddD ttddd} t ddd	gitd
dgdddd}| jdgd}d}tjt|d | }W d    n1 s0    Y  t	|| d S )Nr  c                 S   s   g | ]}t |d qS r  r  r  r   r   r   r   
  r-   zKtest_groupby_aggregation_numeric_with_non_numeric_dtype.<locals>.<listcomp>r0   r   r  r	  r4   r  r   r!   r+   r  r   r  r   r7   )
r	   ri   r   r   rJ   rM   r{   r|   r3   rg   )rl   r   r   r\   r   r   r   r   7test_groupby_aggregation_numeric_with_non_numeric_dtype
  s    
&r  c                  C   s   dddddddddddddddg} t | }||d dk }|d}| }t g d	gg d
tdgddd}t|| d S )NFTg      %@)
filter_colgroupby_colbool_col	float_colg     4@g     >@r  r  )r  r  g$+H@)r  r  r  r  r   )r	   rJ   rR   r   rM   rg   )Zdictsrl   Z	df_filterZdfgbr   r   r   r   r   test_groupby_filtered_df_std
  s    
r  c                  C   s   t ttdttg dddtjg dddgdd	} | d
dgj}d
tdft	
dgdtdft	
dgdtdft	
dgi}||ksJ d S )Nabc)r@  z
2018-02-01z
2018-03-01categoryr   )rp  r   r0   r   r0   )
categoriesr   r   r   z2018-01-01 00:00:00z2018-02-01 00:00:00r   z2018-03-01 00:00:00r?   )r	   r   r   r   r   Z
from_codesrJ   r   r   rE   r  r  r   r   r   2test_datetime_categorical_multikey_groupby_indices
  s    


r  c                  C   s   dgd dgd  } t jt jdddgt jddddg }t| |gj}dd	g|_d
}tjt|d, |dd	 j	ddd
  W d    n1 s0    Y  d S )NZAlicer   ZBobr0   r?   r&   r   r@   r  z<__init__\(\) got an unexpected keyword argument 'min_period'r7   )ZwindowZ
min_period)rE   r   r	   r   rz   rS   rT   rG  rJ   Zrollingr3   )Zname_lZval_lZtest_dfZresult_error_msgr   r   r   #test_rolling_wrong_param_min_period
  s    "
r  c                  C   s   t g d} tjtdd  | jdd  W d    n1 s@0    Y  tjtdd  | jdd  W d    n1 s~0    Y  d S )Nr   backfillr7   r   r`  pad)r   rM   r{   r|   rJ   r  r  )rr  r   r   r   test_pad_backfill_deprecation
  s
    .r  c                  C   sp   t g dg dg dd} tjdd}| dg|}t dd	gdgd
dgddgdd}t|| d S )N)Thomasr  Thomas John)i  i    )sadhappyr  )NameCreditMoodr3   )r  r  r  r  r  i	  r  r  r  )r  r  r  )r	   r   moderJ   rO   r   rM   rg   )rl   Zaggregate_detailsr   Zexpected_resultr   r   r   .test_by_column_values_with_same_starting_value
  s"    
r  c                  C   sn   g dg dg} t dtj| ddgdd}|jddgd	 }t dd
gtjddgddgd}t|| d S )N)Nr0   r   r0   )r?   r&   r?   r&   r0   r   r   r  r   r   r`  r?   )r  r?   )r   r&   )r   r   rL  rJ   r3   r  rM   rN   )r  re  r   r   r   r   r   #test_groupby_none_in_first_mi_level
  s    r  c                  C   sd   t g dg dg dd} | jd gd }t ddgdd	gd
tddgd dd}t|| d S )Nr  )r0   r0   r?   r&   )r   r   r   r4   )Nr   r   r  r?   r   r%      r  r0   r  r   )r	   rJ   r3   r   rM   rg   r  r   r   r   test_groupby_none_column_name
  s    &r  c                  C   sx   t tjdgtjdgtjdgdddgd} d}tjt|d	( tt| d
g\}}W d    n1 sj0    Y  d S )Nr0   r   r?   r   r+   r   r   zIn a future version of pandas, a length 1 tuple will be returned when iterating over a groupby with a grouper equal to a list of length 1. Don't supply a list with a single grouper to avoid this warning.r7   r   )	r	   rE   r   rM   r{   r|   nextiterrJ   )rl   r\   r   r  r   r   r   !test_single_element_list_grouping  s    "r  )r3   r  rT  c                 C   sj   d}t d|gd}t|d|  | }t ddgitdgddd}| d	krZ|jd
d}t|| d S )Nl   L33ffr0   r   r   r   r   r  r   r  Tr,  )r	   r   rJ   r   r0  rM   rg   )ru   r  rl   r   r   r   r   r   #test_groupby_avoid_casting_to_float"  s    r  z	func, val)r3   r&   )rT  r?   c                 C   s\   t dddtjgd| d}t|d| }t d|gitdgd| d| d}t|| d S )	Nr0   r?   r   r   r   r   r  r'   )r	   r   NAr   rJ   r   rM   rg   )any_numeric_ea_dtyperu   r  rl   r   r   r   r   r   test_groupby_sum_support_mask.  s    r  z
val, dtype)o   r+  )   Zuintc                 C   s   t d| | gd| dd}|d }t d| d gitdgd| dd	| dd
}t|| |d }t d| | d gi| dd}t|| |d }t d| |  gitdgd| dd	| dd
}t|| d S )Nr0   r   8r   r   r   r?   Z64r  r'   )r	   rJ   r3   r   rM   rg   r  rT  )r  r    rl   r   r   r   r   r   test_groupby_overflow;  s$    r  zskipna, val)Tr&   c                 C   sT   t ddtjdgd| d}|dj|d}t ddtj|gi| d}t|| d S )Nr0   r?   r   r   r   r  r   )r	   r   r  rJ   r  rM   rg   )r  r  r  rl   r   r   r   r   r   test_groupby_cumsum_maskT  s    r  )r   decimalr   numpyrE   rS   Zpandas._libsr   Zpandas.compatr   Zpandas.errorsr   r   Zpandasr   r   r	   r
   r   r   r   r   r   r   r   r   Zpandas._testingZ_testingrM   Zpandas.core.arraysr   Zpandas.core.commoncorecommonr  Zpandas.core.groupby.baser   Zpandas.tests.groupbyr   r   r2  Zparametrizer]   rm   r   r   r   r   r   r   r   r   r   r   r   r   r  r	  r  r  r   r&  r5  r<  r=  r@  rC  rE  rI  rK  rM  rP  rS  rY  r[  r^  r_  ra  rb  rg  ri  rn  rs  rv  r~  r  r  r  r  r  r  r  r  r  r  filterwarningsr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r$  r  r;  r<  r=  r>  rE  rH  rJ  rO  rQ  rW  r`  ra  rb  rl  r  ro  rq  rr  rt  rw  paramr3  ry  rz  r|  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r   r   <module>   s.  4
0*>-

8(@
 	;&	



0	
 (



?
)		
4

 H
	
,


$#











	
&		