o
    i*o                    @   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   \/var/www/edux/Edux_v2/venv/lib/python3.10/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s6J q*|tj	}|d dksEJ t
||tj	 t
||	  t
|tj|  |d	d }|d
d }|d dksyJ 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 sw   Y  dddd | fdd}|d dksJ d}
tjt|
d |dd  W d    d S 1 sw   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 Nsumr*   r   r   r   r,   ?       c                 S   r1   r2   r3   r*   r   r   r   r,   @   r5         )check_index_typenested renamer is not supportedmatch)onetwo
         r   r0      c                    s    | j  |   S r2   )namemeanr*   group_constantsr   r   r,   Q          zMust produce aggregated valuec                 S   s   | d S NrB   r   r*   r   r   r   r,   X   r-   )r   nparangerandomshufflereindexgroupbylen	aggregaterD   tmassert_series_equalaggr4   apply	transformstdpytestraisesr   	Exception)r    datar(   groupedkvaggedr   transformedvalue_groupedmsgr   rE   r   
test_basic*   s@   


"rc   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 )Nre   )locidxmaxgroupr   r   r   	max_valueg      z/test_groupby_nonobject_dtype.<locals>.max_valuer   )r(   codesrO   r4   astyperR   assert_frame_equalcopyrangerP   rU   dtypesrS   )	mframedf_mixed_floatsr   r\   r   r   dfrj   appliedr   r   r   test_groupby_nonobject_dtype[   s   
rv   c                  C   sb  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 s2w   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 spw   Y  t|ts|J t ddgddggddgd}tt |jddd }W d    n1 sw   Y  t|t sJ d S )Nr0   r?   )val1val2   rB      r7   c                 S      | d | d    S Nrx   rD   datafr   r   r   func|      z&test_groupby_return_type.<locals>.funcrw   T)squeezec                 S   r{   r|   r}   r~   r   r   r   r      r   XYcolumnsF)	r	   rR   assert_produces_warningFutureWarningrO   rU   
isinstancer   count)df1r   r   df2rt   r   r   r   test_groupby_return_typep   s:   		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   r6   r!   r    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      | j dkrd S | jd S )Nr   r   rC   r   r   r   r   r   r         

r   c                 S   r   Nr   r   r   r   r   r   r   r      r   r   c                 S   r   r   r   r   r   r   r   r      r   r   c                 S   s   | j dkrd S | jd jd S )Nr   r   r   )rC   r   rf   r   r   r   r   r      s   
)r	   r   rJ   rK   r   rO   firstrU   rR   rn   ro   nanrf   pdNaTrC   rS   )rt   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 ]c}
|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 qpd S )Nr   c                 S   s   t j| ||dS )NaxisrJ   
percentile)r+   qr   r   r   r   r         z test_pass_args_kwargs.<locals>.fc                 S   s   t j| dddS )NP   r   r   r   r*   r   r   r   r,          z'test_pass_args_kwargs.<locals>.<lambda>c                 S      | j S r2   monthr*   r   r   r   r,          r   r   皙?)r   )TFc                 S   r   r2   r   r*   r   r   r   r,      r   as_indexFcheck_namesg?r   )rO   rT   rJ   r   rU   rV   quantilerR   rS   r	   rn   )tstsframer   g
ts_grouped
agg_resultapply_resulttrans_resultagg_expectedtrans_expectedr   
df_groupedr   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	}|s<t
td
|_t|| d S )N)r   r   r   r   c                 S   r   r2   r   r*   r   r   r   r,   	  r   z9test_pass_args_kwargs_duplicate_columns.<locals>.<lambda>r   r   r   r   r0   r   rB   r0   rB   )r   rO   rT   rJ   r   r(   r   r   r	   Tr   rp   rR   rn   )r   r   gbres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sJ | dd dd g}tdd | jD }t||ks9J ttjgd	 g d
d} t| ddksQJ t| dd	ks\J t| ddgd	ksiJ d S )Nc                 S   r   r2   yearr*   r   r   r   r,     r   ztest_len.<locals>.<lambda>c                 S   r   r2   r   r*   r   r   r   r,     r   c                 S   r   r2   dayr*   r   r   r   r,     r   c                 S   r   r2   r   r*   r   r   r   r,     r   c                 S   r   r2   r   r*   r   r   r   r,     r   c                 S   s   h | ]}|j |jfqS r   )r   r   .0r+   r   r   r   	<setcomp>  s    ztest_len.<locals>.<setcomp>r&   r0   rB   r&   abr   r   r   )rR   makeTimeDataFramerO   rP   r(   r	   rJ   r   )rt   r\   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>+      z)test_basic_regression.<locals>.<listcomp>r0   r>   iL  g      $@)r   listrp   rJ   rL   rO   rD   )r   r[   	groupingsr\   r   r   r   test_basic_regression)  s
    
r   )r#   r$   r!   r"   int16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(      rB   F)check_dtypec                 S   s   t t| S r2   )floatrP   r*   r   r   r   r   I  s   ztest_with_na_groups.<locals>.f      @       @)r   rJ   rK   r   onesr   rO   rT   rP   rR   rS   )r    r(   valueslabelsr\   r_   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 s\w   Y  tjt|d |d| W d    n1 s{w   Y  tjt|d |d| W d    n1 sw   Y  tjt|d |d| W d    d S 1 sw   Y  d S )Nc                 S   s^   | | j d dk d }|jr&tg gd g gd ddgd}tdg|d}|S |ddg}|S )NrB   r0   r   clevelsrl   namesr   r   r(   )r   emptyr   r	   	set_indexr+   y
multiindexr   r   r   r   f1V  s   z,test_indices_concatenation_order.<locals>.f1c                 S   s4   | | j d dk d }|jrt S |ddg}|S )NrB   r0   r   r   )r   r   r	   r   )r+   r   r   r   r   f2`  s
   z,test_indices_concatenation_order.<locals>.f2c                 S   sR   | | j d dk d }|jr'tg gd g gd ddgd}tddg|d}|S |S )	NrB   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   rB   rB   rB   r      r%   r   r   r   )r&   rB   rB   rB   r   z@Cannot concat indices that do not have the same number of levelsr:   )	r	   rp   rO   rU   rR   rn   rX   rY   AssertionError)r   r   r   rt   r   result1result2rb   r   r   r    test_indices_concatenation_orderR  s*   
"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    d S 1 sXw   Y  d S )
Nc                 S      |   S r2   weekdayr*   r   r   r   r,     r-   z#test_attr_wrapper.<locals>.<lambda>c                 S   s   t j| ddS )Nr0   )ddof)rJ   rW   r*   r   r   r   r,         c                 S   s   i | ]	\}}||  qS r   )describe)r   rC   gpr   r   r   
<dictcomp>      z%test_attr_wrapper.<locals>.<dictcomp>c                 S   r   r2   r   r*   r   r   r   r,     r   z-'SeriesGroupBy' object has no attribute 'foo'r:   r   )rO   rW   rT   rR   rS   r  r	   r   rn   r    rX   rY   AttributeErrorgetattr)r   r\   r   r   rb   r   r   r   test_attr_wrapper  s   
"r	  c                 C   sj  |  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sVJ t|jdks_J |dd }|D ]\}}| }|jD ]}	tj||	|dd	 qsqh|D ]\}
}|jd  |
ksJ q|j}|j}| D ]\}}| j|| }||k sJ qd S )Nc                 S   r   r2   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   r   r2   r   r*   r   r   r   r,     r-   c                 S      | |    S r2   r}   r*   r   r   r   r,     r5   c                 S   r   r2   r}   r*   r   r   r   r,     r-   r   )rO   rQ   rJ   rD   rP   r   ro   r(   rR   rn   headrV   rS   xsr   groupsindicesitemstakeall)r   r\   
aggregatedtscopystraggedr`   rC   ri   rD   idxr   r  r  r]   r^   	samethingr   r   r   test_frame_groupby  s4   
r  c                 C   s   ddddd}| j |dd}|tj}t|t| ksJ t|jdks'J dd }| jj |dd}t|	|j|	| |D ]\}}t|jdksOJ qBd S )Nr   r0   r   r   r   Dr   rB   c                 S   r
  r2   r}   r*   r   r   r   r,     r5   z,test_frame_groupby_columns.<locals>.<lambda>)
rO   rQ   rJ   rD   rP   r   r   rR   rn   rV   )r   mappingr\   r  tfgroupedTr]   r^   r   r   r   test_frame_groupby_columns  s   r  c                 C   s  |  d}d}tjt|d | }W d    n1 sw   Y  |jjdks*J tjt|d | j ddd }W d    n1 sEw   Y  |jjdksRJ d}tjt|d |tj}W d    n1 slw   Y  |jjdksyJ t	j
tdd |jtjdd	 W d    n1 sw   Y  |tjtjd
}|jjdksJ |d  }|jjdksJ |d tj}|jjdksJ |d tjtjg}|jjdksJ d}t	j
t|d |d tjtjd W d    d S 1 sw   Y  d S )Nr   !The default value of numeric_onlyr:   Fr   $The operation <function mean.*failed"got an unexpected keyword argumentTnumeric_onlyr   r  r   r9   r   r   )rO   rR   r   r   rD   r(   rC   rT   rJ   rX   rY   	TypeErrorrW   r   )rt   r\   rb   r   r   r   r   test_frame_set_name_single  s<   

"r&  c                 C   s   | d }| d }|  |j|jg}d}tjt|d | }|  ddg }W d    n1 s2w   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  r:   r   r  Fr      r   r   r   r   r   r   1r*  r*  2r+  r+  )v1v2k1k2)r<   r=   threefourfivesixr   r.  r/  )rO   getrR   r   r   rD   rn   rf   r	   rJ   rL   randnarrayrT   r4   )rt   col1col2r\   rb   r_   r   r   r   r   test_multi_func  s*   *


r9  c                 C   sR   |  ddgd }|tjtjg}t|tj|tjd}t|| d S )Nr   r   r   )rD   rW   )rO   rT   rJ   rD   rW   r	   rR   rn   )rt   r\   r_   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 sAw   Y  tj|d
 
||d 
||d 
|gg ddd}t|jtsjJ t|jtsrJ t|| d S )N)r   r   r   r   r   r   r   r   r   r   r   )r<   r<   r<   r=   r<   r<   r<   r=   r=   r=   r<   )dullr;  shinyr;  r;  r<  r<  r;  r<  r<  r<     )r   r   r   r  EFr   r   z&\['C'\] did not aggregate successfullyr:   r  r>  r?  )r  r>  r?  r0   )keysr   )r	   rJ   rL   r5  rO   rD   rW   rR   r   r   rT   r   concatr   r(   r   rn   )r[   r\   funcsr_   r   r   r   r   "test_frame_multi_key_function_list'  s0   


/&rC  opc                 C   r   r2   r3   r*   r   r   r   r,   g  r-   r,   c                 C   r   r2   r}   r*   r   r   r   r,   g  r-   c              	   C   s"  | }| ddg}||}g }g }| dD ]%\}}| dD ]\}	}
|||	f |||
jd d ddgf  qqtj|ddgd}tj|ddj}||_dD ]}||| }|| }|| }t	
|| t	
|| qR|d  |d |d g }| ddg d }t	
|| d S )	Nr   r   r   r  r   r0   r   r#  )rO   appendrf   r   from_tuplesr   rA  r   r(   rR   rS   rD   )rt   rD  r[   r\   r   r@  r   n1gp1n2gp2mir   col
result_colpivotedexpr   r   r   r   test_groupby_multiple_columnsg  s,   "rQ  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   rB   r   r   r'  r   r   r   Fr   rC   T)r   r/   c                 S   r   r2   )cumsumr*   r   r   r   r,     r-   z-test_as_index_select_column.<locals>.<lambda>)rB   r'  r'  ))r   r   )r   r0   r   rC   r(   )	r	   rO   	get_groupr   rR   rS   rU   r   rG  rt   r   r   r   r   r   test_as_index_select_column  s   "rW  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   alpharR  r   r   F)byr   r   r!  rB   r   r   )r	   r   rO   r4   r   rp   rR   rn   )rt   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 s%w   Y  t|| |tjtjd}tjt|d | }| d |d< W d    n1 sXw   Y  t|| | j ddd}d	}t	j
t|d |d
 dtji W d    n1 sw   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 ](}| j |	dd}
t|
| }| j |	jdd}
t|
| jdd}t|| qd S )Nr   Fr   r  r:   r#  r  Tr9   r   Qr   r   r   d   )2   r&   )jimjoejolier   r>   r^  r_  rR  )rD   maxr   rg   rS  r  drop)rO   rR   r   r   rT   rJ   rD   rn   r4   rX   rY   r   r	   renamerL   randintr   nthrU   r  r   reset_index)rt   r\   rb   r   r   r   	expected2	expected3result3r   grattrrZ  rightr   r   r   test_groupby_as_index_agg  sT   


ro  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>w   Y  | dkrL|d}| }| dkr`|d |d j|d< |j
ddd}tj|dd t	||  }W d    n1 sw   Y  t|| tj|dd || }W d    n1 sw   Y  t|| tj|dd t	|d	 |  }W d    n1 sw   Y  t|| tj|dd |d	 | }W d    n1 sw   Y  t|| d S )N)corrwithrg  ngroupz!GH 5755: Test not applicable for madr   r   )r]  rB   )sizer   r   r   The 'mad' method is deprecatedr:   rs  Fr   )rX   skipr   r	   rJ   rL   rf  rR   r   r  rO   re  rh  rm   r    rn   rT   )reduction_funcwarnrt   r   r   r   r   r   r   test_ops_not_as_index  s:   
rx  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 s;w   Y  t|t	sGJ t
|| tjtdd |jtjd	d
 W d    n1 sgw   Y  |d tj}|tjjd d g df }t|t	sJ t
|| |d  }d}tjt|d | jd d ddgf }W d    n1 sw   Y  t|t	sJ t
|| |d  }| jd d g df }t|t	sJ t
|| d S )Nr   Fr   r   z#The operation <function sum.*failedr:   r   r   Tr!  r   r  )rO   rR   r   r   rT   rJ   r4   rf   r   r	   rn   rX   rY   r%  rD   )rt   r\   grouped2rb   r   r   r   ri  r   r   r   !test_as_index_series_return_frame  s6    rz  c                 C   sT   | j ddd}d}tjt|d |d d W d    d S 1 s#w   Y  d S )Nr   Fr   zColumn\(s\) C already selectedr:   r   r  )rO   rX   rY   
IndexError__getitem__)rt   r\   rb   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 s)w   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  r:   r   r   r0   )rO   rR   r   r   rD   insertr(   rJ   rK   rP   rn   r   zipr   )rt   r[   r\   rb   r   r   arraysr   r   r   test_groupby_as_index_cython,  s$   r  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   )rO   rT   rP   rf   rR   rn   rt   r\   r   r   r   r   r   #test_groupby_as_index_series_scalarE  s   r  c                 C   s   d}t jt|d |jdd dd W d    n1 sw   Y  d}t jt|d | jdd dd	d
 W d    d S 1 sAw   Y  d S )Nz(as_index=False only valid with DataFramer:   c                 S   r   r2   r   r*   r   r   r   r,   R  r-   z.test_groupby_as_index_corner.<locals>.<lambda>Fr   z$as_index=False only valid for axis=0c                 S   r   r2   )lowerr*   r   r   r   r,   V  r-   r0   )r   r   )rX   rY   r%  rO   
ValueError)rt   r   rb   r   r   r   test_groupby_as_index_cornerO  s   "r  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   r   r2   r   r*   r   r   r   r,   [  r   z+test_groupby_multiple_key.<locals>.<lambda>c                 S   r   r2   r   r*   r   r   r   r,   [  r   c                 S   r   r2   r   r*   r   r   r   r,   [  r   c                 S   r   r2   r   r*   r   r   r   r,   `  r   c                 S   r   r2   r   r*   r   r   r   r,   `  r   c                 S   r   r2   r   r*   r   r   r   r,   `  r   r0   r   c                 S   r   r2   r3   r*   r   r   r   r,   c  r-   c                 S   r   r2   r3   r*   r   r   r   r,   g  r-   )rR   r   rO   r4   assert_almost_equalr   r   rT   assert_index_equalr(   r   )rt   r\   r_   r   r   r   test_groupby_multiple_keyY  s   r  c                 C   sP   |   } tj| d< | ddg }| ddg }tj|d< t|| d S )Nbadr   r   )ro   rJ   r   rO   rD   rR   rn   )rt   r_   r   r   r   r   test_groupby_multi_cornerk  s   

r  c                 C   s4  |  d}d}tjt|d |tj}| }W d    n1 s#w   Y  t|| | jd d g df } t	
 | d< |  d}tjt|d |tj}| }W d    n1 s`w   Y  t|| | j ddddddd	}d
}tjt|d |dd  W d    d S 1 sw   Y  d S )Nr   r  r:   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!  r3   r*   r   r   r   r,     r  z$test_omit_nuisance.<locals>.<lambda>)rO   rR   r   r   rT   rJ   rD   rn   rf   r   nowr4   rX   rY   r%  )rt   r\   rb   r_   rP  r   r   r   r   r   test_omit_nuisancew  s(   



"r  agg_functionrb  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   )rO   r  ro   rf   rR   rn   )rt   r  r\   r   r   r   r   r   test_keep_nuisance_agg  s   
$$r  )r4   rD   prodrW   varsemmedianr"  c           
      C   s  |t ju s|s|dkrt}nd }| d}|dv rG|du rG|dkr#tnt}tj|dd t|||d W d    d S 1 s@w   Y  d S |t ju rRd	| }nd
}t	j
||d t|||d}W d    n1 snw   Y  |t ju sz|s|dvrg d}ng d}|dkr|du rd }n|dv r|durt}nd }d}t	j
||d t| jd d |f d||d}	W d    n1 sw   Y  t	||	 d S )Nr4   r   )r  rW   r  Fr  z!could not convert string to floatr:   r!  z6The default value of numeric_only in DataFrameGroupBy.Dropping invalid columns)rD   r  r  r  r  )r4   rW   r  r  Tr  )r   
no_defaultr   rO   r%  r  rX   rY   r  rR   r   rf   rn   )
rt   r  r"  rw  r\   klassrb   r   r   r   r   r   r   test_omit_nuisance_agg  s@   
"

r  c                 C   sr   t jtdd( | d}| }| jd d g df d }t || W d    d S 1 s2w   Y  d S )Nalways)filter_levelr   r  )rR   r   r   rO   skewrf   rn   r  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 s%w   Y  t|| d S )Nr   r   r  r:   )rO   rR   r   r   rT   rJ   rD   rn   )three_groupr\   rb   r_   rP  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 sEw   Y  t|| | dd jdd}|dd }|d tj
}t|d | |jjdksyJ d S )Nr(  r)  r   r   r&   r'  )r.  r/  k3r,  r-  r.  r/  r  r:   r   r   r   c                 S   r   r2   r}   r*   r   r   r   r,     r-   z*test_empty_groups_corner.<locals>.<lambda>r   r   )r	   rJ   r6  rL   r5  rO   rR   r   r   rT   rD   rn   rU   rS   r(   rC   )rr   rt   r\   rb   r   r   r_   agged_Ar   r   r   test_empty_groups_corner  s(   




r  c                  C   sP   t dg} d}tjt|d | dd  W d    d S 1 s!w   Y  d S )Nr   z5unsupported operand type\(s\) for \+: 'int' and 'str'r:   c                 S   s   | d S )Nr   r   r*   r   r   r   r,     r-   z$test_nonsense_func.<locals>.<lambda>)r	   rX   rY   r%  rO   )rt   rb   r   r   r   test_nonsense_func  s
   
"r  c                 C   s(  | j }d|d< tg dtg dg}d}tjt|d ||tj}W d    n1 s2w   Y  t	|j
ts?J tjtdd ||jtjdd W d    n1 s\w   Y  d	d
 }tjtdd |||}W d    n1 sw   Y  t|j
d t|j
ksJ d S )Npeekaboo)bazr=   r   r   r0   r  r:   r   Tr!  c                 S   s   | j dkrt|  S )N)r   r<   )rC   r%  r4   )serr   r   r   aggfun  s   
z5test_wrap_aggregated_output_multindex.<locals>.aggfunr  r0   )r   rJ   r6  rR   r   r   rO   rT   rD   r   r   r   rX   rY   r%  rQ   rP   )rr   rt   r@  rb   r_   r  agged2r   r   r   %test_wrap_aggregated_output_multindex  s     r  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s2J d S )Nr   r  r   r0   secondr   )rO   r   r(   rC   )rr   r   r   r   r   test_groupby_level_apply  s   r  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   r  qux)r<   r=   r0  r  c                       g | ]}  |qS r   r4  r   )mapper0r   r   r   2      z-test_groupby_level_mapper.<locals>.<listcomp>r   c                    r  r   r  r   )mapper1r   r   r   3  r  r  )r   r  )	rh  rO   r4   rJ   r6  r(   rC   rR   rn   )rr   	deleveledresult0r   mapped_level0mapped_level1	expected0	expected1r   )r  r  r   test_groupby_level_mapper)  s   r  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 sow   Y  tjt	|d | jdd	 W d    n1 sw   Y  d}tjt	|d | jg d	 W d    n1 sw   Y  d}tjt	|d | jddgd	 W d    n1 sw   Y  tjt	|d | jddgd	 W d    n1 sw   Y  d}tjt	|d | jdgd	 W d    d S 1 sw   Y  d S )N)r0   rB   r&   r>   r   r   r?   r'  )r0   rB   r&   r0   r   r   rB   r'  r   rR  )r=     r&   r   r   r'  r0   r6   r   r  z2level > 0 or level < -1 only valid with MultiIndexr:   zNo group keys passed!z*multiple levels only valid with MultiIndex)
r   r   rp   rO   r4   rR   rS   rX   rY   r  )sr   r   rb   r   r   r   test_groupby_level_nonmulti<  s@   $r  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 s5w   Y  t|| d S )Nr         ?       @)r   r   r0   r0   r[   r(   )r  y      @      $@r   r  )	r   rJ   rK   rO   r4   rR   rS   r   r   )r   r   r   r   r   r   test_groupby_complex\  s   r  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   r  r   )r0   r0   r0   r   )r  r        ?        r   rR  r   objectr(   r   Fsort)r  r  r  T)
r	   rJ   r6  r!   r   rO   r   rR   rn   r(   rt   r   r   r   r   r   test_groupby_complex_numbersi  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   rO   rD   rN   r(   r4  rR   rS   )s1s2r\   r_   rP  r   r   r   'test_groupby_series_indexed_differently  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 sw   Y  t
|j|jd d  d S )N)r   r   r  r  r   r   r  r  )r<   r=   r<   r=   r<   r=   r<   r=   ))r   cat)r   dog)r   r  )r   r     r   r  r   r  r0   )r   r   c                 S   r   r2   r}   r*   r   r   r   r,     r-   z0test_groupby_with_hier_columns.<locals>.<lambda>c                 S   s
   |  dS )Nr0   r}   r*   r   r   r   r,        
 r   r   r   )r   r   r  r:   r  )r   r  r   rG  r	   rJ   rL   r5  rO   rD   rR   r  r   r(   rT   rU   r   	sortlevelr   r   )tuplesr(   r   rt   r   sorted_columns_rb   r   r   r   test_groupby_with_hier_columns  s<   
r  c                 C   sl   |  | d j}d}tjt|d | }|  d }W d    n1 s'w   Y  tj||dd d S )Nr   r  r:   Fr   )rO   r   rR   r   r   r4   rn   )rt   r\   rb   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   rB   r&   r   r(   rR  )foo1r  foo2r  foo3)bar1bar2r  r  r  )baz1r  r  baz2r  )spam2spam3r  spam1r  )r?   r@   (   r^  <   )r   r   r  spamr[   r   )r   r   r  r  )r   r	   rO   rT   rJ   rD   rR   rn   )r(   r[   r\   r   r   r   r   r   test_groupby_wrong_multi_labels  s   r  c                 C   s   d}t jt|d | | d  }| j| d dd }W d    n1 s(w   Y  |jjdks5J d|v s;J | | d | d g }| j| d | d gdd }|jjdks_J d|v seJ d|v skJ d S )Nr  r:   r   Fr   r   r   r   )rR   r   r   rO   rD   r(   rC   r   )rt   rb   r   r   r   r   r   test_groupby_series_with_name  s   r  c                 C   sR   |  dd }| jdksJ | jdksJ dd }||jdks'J d S )Nr   r   c                 S   s   t | d S rI   )rJ   r4   r*   r   r   r   r,     r  z.test_seriesgroupby_name_attr.<locals>.<lambda>)rO   r   rC   rD   rT   )rt   r   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   )r<   r<   r=   r=   r=   r=   r<   r=   r  r   r  r   )r	   rJ   rL   r5  rK   rO   r   r   r   rR   rS   r  r   r   r   test_consistency_name  s   	r  c                 C   sx   ddd}dd }|  d|}|jjd u sJ |  d|d}|jjdks*J |  d|}|jjd u s:J d S )Nc                 S   s   t dddd|dS )Nr0   rB   r&   r   rD   	omissionsrR  )r   )rt   rC   r   r   r   	summarize  r   z0test_groupby_name_propagation.<locals>.summarizec                 S   s   t dddd| jd d dS )Nr0   rB   r&   r  r   r   rR  )r   r   rt   r   r   r   summarize_random_name  s   z<test_groupby_name_propagation.<locals>.summarize_random_namer   metricsr2   )rO   rU   r   rC   )rt   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>   )rJ   rK   r   r   r   r   r     r  z2test_groupby_nonstring_columns.<locals>.<listcomp>r>   r   )r	   rp   rO   rD   rR   rn   r  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 )NrA   )r   r   r   r   r0   rB   r   r   r   rR  r   )r	   r   rO   r   rR   rn   r4   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>   )rJ   r   fillr   r   tilerp   rO   rT   r  isnar  )arrobj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^  rB   r   r   r   c                 S   s   t ttt| jS r2   )rP   setmapidr(   r*   r   r   r   r,   ?  r   z5test_series_grouper_noncontig_index.<locals>.<lambda>)
r   rR   rands_arrayr   rJ   rL   r5  rf  rO   rT   )r(   r   r   r\   r   r   r   r   #test_series_grouper_noncontig_index5  s   
r  c                  C   s   t td} tjg ddd}dd }dd }| |}||}|jtjks)J t|d	 t	s2J ||}|jtjks?J t|d	 t	sHJ d S )
Nr   )r   r   r   r  r   rd   r   c                 S   s   t t|  S r2   )r   strrD   r*   r   r   r   convert_fastH  r   z>test_convert_objects_leave_decimal_alone.<locals>.convert_fastc                 S   s$   t | jjdks
J tt|  S r   )rP   r   baser   r  rD   r*   r   r   r   convert_force_pureK  s   zDtest_convert_objects_leave_decimal_alone.<locals>.convert_force_purer   )
r   rp   rJ   r6  rO   rT   r    object_r   r   )r  r   r  r  r\   r   r   r   r   (test_convert_objects_leave_decimal_aloneC  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+   rp   r+   rC   r    rp   r'   T)	by_blocks)r	   rJ   rK   r    r#   rO   r   r   r   rR   rn   )rt   r   	exp_indexr   r   r   r   "test_groupby_dtype_inference_empty[  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   r  re   r   r  re   rE  rR  )r	   rO   rb  r   r   from_productrR   rS   rV  r   r   r   $test_groupby_unit64_float_conversionf  s   r  c                 C   s  d}t jt|d | t| d  }| | d  }W d    n1 s(w   Y  t j||dd tjt	dd | t| d d d  W d    n1 sTw   Y  t
dd	gd
dgtjdd} | ddg }| | d | d g dg }d S )Nr  r:   r   Fr   z^'foo'$r  r   r0   r&   r   rB   )r   r   valr   r   r  )rR   r   r   rO   r   rD   rn   rX   rY   KeyErrorr	   rJ   rL   r5  )rt   rb   r   r   r   r   r   "test_groupby_list_infer_array_liker  s    $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 )Nr  z2015-09-29T11:34:44-0700rB   )startr   freqr   r>   r      metricr   r   r   )r   r  )r   r   r	   rO   r
   rD   r   r(   rm   r   rR   rn   )r  r(   rt   r   r   r   r   r   $test_groupby_keys_same_size_as_index  s   
r  c                  C   s   d} t tjddtdd}tjt| d |d W d    n1 s&w   Y  t tjddtdd}tjt| d |d W d    d S 1 sPw   Y  d S )	Nz^'Z'$r0   r   ABCDr   r:   ZrB   )	r	   rJ   rL   r5  r   rX   rY   r  rO   )rb   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sLJ t||D ]\}}t|j	| | qQt|jjd j|  |jdksqJ 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| ||  qt|td| jdd	g  t|td| jd
dg  tjtdd |tj W d    n1 sw   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sJ dD ]\}||}|j	i ksJ |jdksJ |ji ksJ tjtdd |tj W d    n	1 s8w   Y  tjtdd |tj W d    n	1 sVw   Y  q d S )Nr  z
2013-01-01z
2013-02-01r   r   )r   dtr  r  r0   r6   r&   r   rB   r   z2013-01-01 00:00:00r   z2013-02-01 00:00:00z^NaT$r:   )r   natr   r#   r  zdatetime64[ns]z^nan$) r	   rJ   rL   r5  r   r   rO   r   sortedr  r@  rP   r  rR   r  rn   grouperr   r  ngroupsr6  intpr  assert_numpy_array_equalrU  r   rX   rY   r  r   r   r    )rt   r\   r   r@  r]   r   nan_dfr   r   r   r   test_groupby_nat_exclude  sd   



   
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   rB   r   r   r   )r	   rJ   r   rO   r  rt   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 s;w   Y  tddgddgg}t	|j
tdd	g t|j| d S )NrB   r   g1g2ri   r   zerosr0   r   l1l2labelr  r:           r   )r	   rp   rR   r   r   rO   rD   rJ   r6  r  r   r   r!  r   )r  rb   tmp
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s@J d S )Ni'  i  ia  )r   r   r   r  r>  r  )r  r   r   r   )	rJ   concatenaterK   r	   rL   r5  rO   r4   rP   )r   r   rt   rZ  rn  r   r   r   test_int32_overflow  s   "
r1  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   r  )r&   rB   r0   rA   r&   r   r   r   r  c                 S      g | ]}t |qS r   tupler   rowr   r   r   r     r   z+test_groupby_sort_multi.<locals>.<listcomp>r   Tr  )r0   rB   r   c                 S   r4  r   r5  r7  r   r   r   r     r   )r   r   r   c                 S   r4  r   r5  r   r   r   r   r     r   )r   r   r   )rB   r0   r   )r   r0   rB   r   r0   rB   )r   r   r   r0   r0   r0   r'  )r   r   r  r   r   r  c                 S   r   r2   r3   r*   r   r   r   r,     r-   z)test_groupby_sort_multi.<locals>.<lambda>c           	      S   sV   dd | | j D }t|}|| || }| D ]\}}|| |ks(J qd S )Nc                 S   r4  r   r5  r7  r   r   r   r     r   zCtest_groupby_sort_multi.<locals>._check_groupby.<locals>.<listcomp>)r   comasarray_tuplesaferO   r  )	rt   r   r@  fieldr   tupsr   r]   r^   r   r   r   _check_groupby  s   
z/test_groupby_sort_multi.<locals>._check_groupby)r	   rJ   rL   r5  r   r9  r:  rO   r4   rR   r!  r(   )rt   r<  r   r\   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   r2  rB   )r   rC   r   Fr.   c                 S      | S r2   r   r*   r   r   r   r,   '      z/test_dont_clobber_name_column.<locals>.<lambda>)r	   rO   rU   rR   rn   r$  r   r   r   test_dont_clobber_name_column"  s
   rA  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   r   r2   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   rY  r&   sort_valuesr*   r   r   r   r,   0  r   c                 S   s$   g | ]\}}|j d ddd qS )r   rB  Nr&   rC  r   r   ri   r   r   r   r   2  s   $ z(test_skip_group_keys.<locals>.<listcomp>r   c                 S   r   r2   r   r*   r   r   r   r,   7  r   c                 S   s   |   d d S r)   rC  r*   r   r   r   r,   8  r   c                 S   s    g | ]\}}|  d d qS r)   rC  rE  r   r   r   r   :  s     )rR   r   rO   rU   r   rA  rn   rS   )tsfr\   r   piecesr   r   r   r   test_skip_group_keys+  s   

rH  c                 C   s:   | d   }d |_|| d tj}|jd u sJ d S )Nr   r   )ro   rC   rO   rT   rJ   r4   )float_framer  r   r   r   r   test_no_nonsense_name@  s   rJ  c                  C   s\   t tddd} d| d< g d| d< | d}|ddd	}|d jtjks,J d S )
Nr%   r&   r   test)g?g      ?g?flr4   rs  )rL  rB   )r	   rJ   rK   reshaperO   rT   r    r#   )r+   r\   r   r   r   r   test_multifunc_sum_bugI  s   
rN  c                 C   sV   dd }dd }|  dd |}|  dd |}t|ts#J t|| d S )Nc                 S   s   |   |  dS Nrb  r  rP  rh   r   r   r   r   U  rk   z(test_handle_dict_return_value.<locals>.fc                 S   s   t |  |  dS rO  )r   rb  r  rh   r   r   r   r   X  s   z(test_handle_dict_return_value.<locals>.gr   r   )rO   rU   r   r   rR   rS   )rt   r   r   r   r   r   r   r   test_handle_dict_return_valueT  s   rQ  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 r2   rR  rh   r   r   r   r   d  s   ztest_set_group_name.<locals>.fc                 S   s   | j d usJ |  S r2   )rC   r4   rh   r   r   r   freduceh  s   z$test_set_group_name.<locals>.freducec                    s    | S r2   r   r*   rR  r   r   r   l  s   z test_set_group_name.<locals>.fooFr.   r#  r   )rO   rU   rQ   rV   )rt   r  r   r   r\   r   rS  r   test_set_group_nameb  s   


rT  c                     sV   t g dtdd} g   fdd}| jdddd| g d	} |ks)J d S )
N)r   r   r0   r0   rB   rB   r'  r   c                    s     | j |  S r2   )rF  rC   ro   rh   rE  r   r   r     s   z6test_group_name_available_in_inference_pass.<locals>.fr   F)r  r/   rA   )r	   rJ   rK   rO   rU   )rt   r   expected_namesr   rE  r   +test_group_name_available_in_inference_pass}  s   rV  c                 C   s   d}t jt|d | | d j }W d    n1 sw   Y  |jjd u s+J t jt|d | | d j| d jg }W d    n1 sLw   Y  |jjdksYJ d S )Nr  r:   r   r   )NN)	rR   r   r   rO   r   r4   r(   rC   r   )rt   rb   r   r   r   r   test_no_dummy_key_names  s    rW  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   rB   )r   r   r   r   r0   r0   )r0   r0   r   r   r   r   r   r   r   )r   r0   rB   r&   r   r   r   r  )r0   r   r   )r   rB   r   Fr   r  T)r   r   rO   r   rR   rS   
sort_index)r(   mseries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/1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   )rf   r(   r   dropnarP   )r[   r  fixr   r   r   _func  s   zGtest_groupby_reindex_inside_function.<locals>.agg_before.<locals>._funcr   )r   rc  rd  r   rb  r   
agg_before  s   z8test_groupby_reindex_inside_function.<locals>.agg_beforec                 S   s   t | j| j| jS r2   )r   r   r   r   r*   r   r   r   r,     rG   z6test_groupby_reindex_inside_function.<locals>.<lambda>r^  T)F)	r   r	   rJ   rK   rO   rT   rb  rR   rn   )r   indrt   re  r\   closure_badclosure_goodr   r   r   $test_groupby_reindex_inside_function  s   
ri  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group2re   rj  rk  TrX  r4   ))r   r   )r   r  r   r   rE  rB   r0   r   re   r  )r	   r   rO   rT   r   rG  rR   rn   )rt   r   r   r  rP  r   r   r   $test_groupby_multiindex_missing_pair  s   
rm  c                  C   s  t jg dddgd} tg dg| d}|j sJ 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 sbw   Y  t|| tg dg dg ddddg}|j rJ ddddgfD ]3}dD ].}|j	||ddtj}|}t|| | j	||ddtj}| }t|| qqd S )N))r    )b1c1)b2c2r   r   rE  r0   r&   r   r   r3  )r0   ro  rp  r&   )r0   rq  rr  r   )r   r[   r   r  )r(   r   r   )r   r   r   r   r0   r0   rB   rB   r0   rB   r&   r   r+   r   zr+   r   r   r0   )FTF)r   r  r/   )r   rG  r	   r   _is_lexsortedpivot_tablerh  rR   rn   rO   rD   r   r   r   r(   rU   drop_duplicatesrY  )lexsorted_milexsorted_dfnot_lexsorted_dfr   r   rt   r   r  r   r   r   %test_groupby_multiindex_not_lexsorted  sR   

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 )NABCDE)rB   r   rB   r0   r0   r   ababbc                 S      t | dkS rI   rP   r*   r   r   r   r,     r5   z4test_index_label_overlaps_location.<locals>.<lambda>rs  r   c                 S   r  rI   r  r*   r   r   r   r,     r5   c                 S   r  rI   r  r*   r   r   r   r,   %  r5   c                 S   r  rI   r  r*   r   r   r   r,   +  r5   )r	   r   rO   filterr   rR   rn   r  rS   r(   rm   r   )rt   r   actualr   r  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'  rB   r         @r   r   r   rD   )rJ   rK   r	   rO   rV   rR   rn   )nr+   rt   r   r   r   gb2r   r   r   r   "test_transform_doesnt_clobber_ints0  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&   )rw  r   rw  r   r   r   r   r   )r  r6   r   r   rB   r%   r0   r0   )gffffff@g333333@g@g333333g@皙?r  r   )rw  r  r   r   wordword24247)r  r  r  r  r  rB  c                    s   t | | j d d S )NrB  )rR   rn   rD  r*   r  r   r   	test_sortY  s   z.test_groupby_preserves_sort.<locals>.test_sort)r	   rD  rO   rU   )r  r  rt   r   r  r   r  r   test_groupby_preserves_sort?  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    d S 1 sCw   Y  d S )Nr?   M)r   r  r   )	eventDatethenamer  r   r   z	'badname'r:   badnamer   )r(   r   r   aggfunc)r	   r   r   todaytolistrp   r   r(   r   r   rX   rY   r  rh  ry  r  r   r   r   !test_pivot_table_values_key_error_  s   "r  r   r   r@  r   r,  r   r0   z
US/EasterntzInt64r   Float64boolean)
boolintr   r  r  dt64dt64tzr  r  r  )idsmethod)rm  rT   rU   )rg   idxminrr  r  rb  r4   r  r  z-ignore:Dropping invalid columns:FutureWarningz(ignore:.*Select only valid:FutureWarningc                    s  d }t |tr+t | ts+dv r+|r*dkr*d}d| }	tjjt|	d}
|j|
 nt |trIt	|dkrIdv rItjjt
dd}
|j|
 nt |trht	|dkrht | tshtjjtd	d}
|j|
 nlt |trt	|dkrd
v rtjjtdd}
|j|
 nNt |trt	|dkrdv rtjjtdd}
|j|
 n0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 sJ |jd d }|j|dd|    fdd}| dkrdv rO|jd jdkrOdkr/d}	nd }	tjt|	d! |  W d    d S 1 sHw   Y  d S d"v rt |trdkrbd#}	ndkrnd$ d%}	nd&}	tjt|	d! |  W d    d S 1 sw   Y  d S nӈdv r|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r| }||g  }t|| d S d-v rbt |trbt	|dkrb| }||g  }t	|dkrCt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rv|!|}t	|dkr|d |j"_#t|| d S )/N)r4   r  r  rr  rr  z3Cannot interpret 'CategoricalDtype.* as a data typez1Regex pattern "'Categorical' does not implement.*)rY   r;   r0   )rg   r  z0attempt to get arg(min|max) of an empty sequencez 'Categorical' does not implement)r4   r  z (DataFrame|Series) are differentrB   )r  rb  r4   z>Cannot interpret 'datetime64\[ns, US/Eastern\]' as a data typer  r   )r  r4   r!   r   ABCr   r    Fr.   c                     st   dkrt nd } tj| ddd  dkr"t  W  d    S t W  d    S 1 s3w   Y  d S )Nrr  rt  F)r;   raise_on_extra_warningsrm  )r   rR   r   r  )rw  r   r  rD  r   r   
get_result  s   
$z&test_empty_groupby.<locals>.get_resultr   )r  r4   r  r  r  z!does not support reduction 'skew'z datetime64 type does not supportr:   )r  r4   r  rr  z!does not support reduction 'mean'zdoes not support reduction ''zcategory type does not supportr  r   r   r   rE  r   )rr  r  rb  r  rR  )$r   r   r   rX   markxfailr   node
add_markerrP   r  r%  r   DatetimeIndexr  r   r  r	   hasattrrq   r    r  r   rO   kindrY   r   rR   assert_equalr   r  r  r   rm   r(   rC   )r   r@  r   r  rD  requestusing_array_manageroverride_dtype	right_msgrb   r  rt   r  r   r   levrL  cir   r  r   test_empty_groupbyq  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
 s2J d S )
Nr   r   r&   )r   r0   rB   r   r0   Fr.   c                 S   r?  r2   r   r*   r   r   r   r,   a  r@  z<test_empty_groupby_apply_nonunique_columns.<locals>.<lambda>)r	   rJ   rL   r5  rm   r!   r   rO   rU   rq   r  )rt   r   r   r   r   r   *test_empty_groupby_apply_nonunique_columns[  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 s,w   Y  | dd  }td	gdtd
gddd}t	|| d S )N)r0   r0   r0   r0   )rB   rB   rB   rB   )r   r   r   r   z
('a', 'b')r:   r   r   r   r   r0   rR  rT  )
r	   rX   rY   r  rO   r4   r   r   rR   rS   rV  r   r   r   test_tuple_as_groupinge  s   	r  c                  C   sf   t dtdtddgddggd} tjtdd | d  W d    d S 1 s,w   Y  d S )	Nr0   r&   rB   r   r  z
^\(7, 8\)$r:   )r6   r  )	r	   rp   r   r  rX   rY   r  rO   rD   r  r   r   r   test_tuple_correct_keyerrorx  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   mycolsrR  
2018-01-01rB   r  dti)r   r  rC   r   )r0   r0   r0   r0   r0   ))r   r4   r   )r   ohlcopen)r   r  r^  )r   r  r_  )r   r  close)r  NNrE  )r  r4   r  )
r	   r   r   r   rG  rO   r
   rT   rR   rn   r  r   r   r   test_groupby_agg_ohlc_non_first  s   

r  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   rB   r   r&   daterE  )r&   rB         @r   r   r  r  r  )
r   r   r   r   rG  r   rO   rD   rR   rS   )r   rL  r  r   r   r   r   r   test_groupby_multiindex_nat  s   r  c                  C   sf   t tdtd} t| ddgd}d}tjt|d |g g W d    d S 1 s,w   Y  d S )Nr>   appler   r   z$Grouper and axis must be same lengthr:   )r  rp   r	   rX   rY   r  rO   )r   rt   rb   r   r   r   test_groupby_empty_list_raises  s   "r  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   r]   )r   r  thirdrE  r0   rB   r  r   r  r&   r   )r   from_arraysr   rO   r4   rR   rS   )index_arrayindex_namesrir  r   eir   r   r   r   8test_groupby_multiindex_series_keys_len_equal_group_axis  s   r  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s5J |dtddg}|ddg}|j|jksNJ d S )Nr   r   r   r  rX  betarE  )r0   rB   r0   rB   ru  r$  r   r  )r   r  r	   rO   r
   r  )rL  rt   r   r   r   r   r   "test_groupby_groups_in_BaseGrouper  s   r  
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 )Nr7   r&   r   )r   r0   r   )r>   r?   r>   r?   r  r   r+   r0   r   )r   r  r   r<   r=   x1)	iterablesr      r'  )r	   rJ   rK   rM  r(   rC   r   rO   r4   r   rR   rn   r   r  )r  rt   resultsr   r  rL  r   r   r   test_groupby_axis_1  s    r  zop, expectedshifttime2019-01-01 12:00:002019-01-01 12:30:00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   r  r  r  r  )r  r  c                       | j j S r2   r  r  tz_localizer*   r  r   r   r,   "	  r  z+test_shift_bfill_ffill_tz.<locals>.<lambda>)r  r  c                    r  r2   r  r*   r  r   r   r,   &	  r  )r   r	   assignrO   r  rR   rn   )tz_naive_fixturerD  r   r[   rt   r\   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+   r4   rR  )r	   rO   rV   r   rJ   r   rR   rS   )rt   r  r   r   r   r   test_groupby_only_none_group*	  s   r  c                  C   sL   t g dg dd} | jdd}| }t g dg dd}t|| d S )N)rB   r   r'  r  )r   r   r   r  r   r   r  )rB   g      @r  )r   r   r  )r   rO   rD   rR   rS   )r  r   r   r   r   r   r   test_groupby_duplicate_index4	  s
   r  z&ignore:.*is deprecated.*:FutureWarningc                 C   sj  | 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r@d}n	| dkrGd}nd}|jd d dgj| g|R  }|dgj| g|R  jd d }| dv rv|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)rY   r0   r  r&   r   )col_1col_2col_3col_4r[   r   r  r  r  r  fillna)r  )r0   r  r   r   )diffr  )rX   r  r  NotImplementedErrorr  r  r	   r   rm   r  r   r   rO   rV   rR   r  )transformation_funcr  r  rt   argsr   r   r   r   r   test_group_on_empty_multiindex>	  s6   $$
&&
r  r  r   rR  )r   r   r  r   rE  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r1tdg|_t| |}t	j
|d	d
 t|| | }W d    n1 sOw   Y  |jdks[J t	|j| d S )N>   rs  rq  cumcountzNot applicable for )rr  r  r0   r   r   r  r  zis deprecatedr:   r   )rX   ru  r   r   r	   rO   r   r(   r   rR   r   r  shaper  r   )groupby_funcr  rw  rt   grp_byr  r   r   r   r   test_dup_labels_output_shapec	  s   	
r   c           
      C   s   t dddd}tddgddgddgd}d	|j_||_|| }|s&|j}|j|dd
}| }tddgddgd|d}d|j_	|sG|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-01rB   r   )r   rC   r0   r&   r   )r  )r   r   )r  r   )r   r  )r   r   )r   r  r   r   )r   r	   r   r   r(   _get_axis_numberr   rO   nuniquerC   rR   rn   rf   rm   rJ   r#   )
r   r  rt   axis_numberr   r   r   r  rP  r   r   r   r   test_groupby_crash_on_nunique	  s*   

r  c                  C   s>   t tddddtd} | jdgd }t||  d S )Nr   r%   r&   r   r  )	r	   rJ   rK   rM  r   rO   rD   rR   rn   )r   r   r   r   r   test_groupby_list_level	  s   r  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| ) |dj	 }||ks#J |t
|jj	 }||ks5J W d    d S 1 s@w   Y  d S )Nr   r0   r   zdisplay.max_seq_items)r	   rJ   rL   r5  r(   r   option_contextrO   r  __repr__r6  r   )max_seq_itemsr   rt   r   r   r   r   test_groups_repr_truncates	  s   

"r
  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s3J d}|| || k sAJ d S )Nr0   rB   c   r   X   r   r   r   r   r   )	r	   r   rO   r  rJ   r6  r!   rP   r  )rt   r   r   r   r   r   r   r   6test_group_on_two_row_multiindex_returns_one_tuple_key	  s   r  zklass, attr, valuer   r  r/   r   observedra  r   z5GH 35443: Attribute currently not passed on to series)reason)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 r'|dg n|d }t||t||ks7J d S )	Nr0   rB   r&   r   r   r   r   )r   )r	   r   rO   r  )r  rm  re   rt   r   r   r   r   r   #test_subsetting_columns_keeps_attrs	  s    
r  c                  C   sl   t dgdgdgdjg ddd} d}tjt|d | d	d
g   W d    d S 1 s/w   Y  d S )Nr0   rB   r&   r   r  r   z'Cannot subset columns when using axis=1r:   r   r   )r	   rO   rX   rY   r  r4   )r   r;   r   r   r   test_subsetting_columns_axis_1	  s
   $"r  r   )r4   anyr  c                 C   sH   t dgdd}tdgg|d}|dg}t||  j}t|| d S )Nr   r  rR  r0   r   )r   r	   rO   r  r   rR   r  )r   r   rt   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  r3  ru  r   )r   r   r   )r   r   r   r   )r   r   r0   r   )r	   rm   r  r   rO   r  rR   rn   rV  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 )Nru  rt  r  )r(   rC   )r   r   r   r  rB   r   r0   )r   r(   rC   rO   lastrR   rS   )r  r   r   r   r   r   #test_groupby_series_with_tuple_name
  s   r  zGH#38778: fail on 32-bit systemzfunc, valuesr4        @X@     X@rD   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   rB   r   ri   r   r   ri   r   rR  r   )r	   r  rO   r   rR   rn   )r   r   r[   rt   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   rB   r   r  ri   r  g07yACg17yACga7y1Cgb7y1Cr  r  r   T)check_exact)r	   rO   rS  rR   rn   )r[   rt   r   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  )rJ   rL   r5  r	   rp   r   r   rO   rS  rR   rn   )r  rt   ir   r   r   r   r   r    test_groupby_cumsum_skipna_false8
  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 )Nr  r   r   r   rB   r0   r  r   FT)r"  r%  r   r   )	r   r   r   r   r	   rO   rS  rR   rn   )r  r  rt   r   r   rP  r   r   r   test_groupby_cumsum_timedelta64H
  s   

,$r(  c                 C   s4   | }|j dd }| |j }t|| d S )Nr   r  )rO   rD   r(   rR   rS   )(rand_series_with_duplicate_datetimeindexdupsr   r   r   r   r   !test_groupby_mean_duplicate_indexZ
  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   rJ   r   rO   r(   r4   r   r#   r!   rR   rS   )r  r   r   r   r   r    test_groupby_all_nan_groups_dropa
  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}|s+dgng }ntd	}|s8g dnddg}t g ||d
}t|| d S )Nr   r  r   r   r   r!  rE  r   r   r   )r	   rO   r4   r   r   rR   rn   )r   r"  rt   r   r   r(   r   r   r   r   r   test_groupby_empty_multi_columni
  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?   MWr^   r   r  r    rC   r   rB  )r	   r   rO   r4   rR   rn   rt   r   r   r   r   r   r   *test_groupby_aggregation_non_numeric_dtypey
  s   (r2  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      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      g | ]	}t |d  dqS r>   r6  r7  r8  r   r   r   r   
  r  rv  c                 S   r4  r5  r7  r8  r   r   r   r   
  r  r6   r%   c                 S   r9  r:  r7  r8  r   r   r   r   
  r  )r   rw  r   r!   r+   r0  r   rB  )r	   rp   r   rO   r4   rR   rn   r1  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 sGw   Y  t	|| d S )Nr3  c                 S   r4  r5  r7  r8  r   r   r   r   
  r  zKtest_groupby_aggregation_numeric_with_non_numeric_dtype.<locals>.<listcomp>r0   r'  rv  rw  r6   r  r   r!   r+   r0  r   rB  r  r:   )
r	   rp   r   r   rO   rR   r   r   r4   rn   )rt   r   r   rb   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@  rR  r   )r	   rO   rW   r   rR   rn   )dictsrt   	df_filterdfgbr   r   r   r   r   test_groupby_filtered_df_std
  s   
rD  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sKJ d S )Nabc)r  z
2018-02-01z
2018-03-01categoryr   )r  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:00rB   )r	   r   r   r   r   
from_codesrO   r  r   rJ   r6  rV  r   r   r   2test_datetime_categorical_multikey_groupby_indices
  s   


rI  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    d S 1 sJw   Y  d S )NAlicer   Bobr0   rB   r&   r   rC   r  z<__init__\(\) got an unexpected keyword argument 'min_period'r:   )window
min_period)rJ   r   r	   r   r   rX   rY   r%  rO   rollingr4   )name_lval_ltest_dfresult_error_msgr   r   r   #test_rolling_wrong_param_min_period
  s   "
"rS  c                  C   s   t g d} tjtdd | jdd  W d    n1 s w   Y  tjtdd | jdd  W d    d S 1 s@w   Y  d S )Nr   backfillr:   r   r  pad)r   rR   r   r   rO   rT  rU  )r  r   r   r   test_pad_backfill_deprecation
  s   "rV  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)ThomasrW  Thomas John)i  i    )sadhappyr[  )NameCreditMoodr4   )r^  r]  r\  r[  rZ  i	  rY  rW  rX  )r^  r]  r\  )r	   r   moderO   rT   r   rR   rn   )rt   aggregate_detailsr   expected_resultr   r   r   .test_by_column_values_with_same_starting_value
  s"   
rb  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   )rB   r&   rB   r&   r0   r   r   rE  r   r   r  rB   )r,  rB   )r   r&   )r   r   r  rO   r4   rG  rR   rS   )r  r  r   r   r   r   r   #test_groupby_none_in_first_mi_level  s   rc  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 )Nrt  )r0   r0   rB   r&   )r   r   r'  r6   )Nr   r   rB  rB   r   r%      rl  r0   rR  r   )r	   rO   r4   r   rR   rn   rV  r   r   r   test_groupby_none_column_name  s   &re  c                  C   sz   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    d S 1 s6w   Y  d S )Nr0   r   rB   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.r:   r   )	r	   rJ   r   rR   r   r   nextiterrO   )rt   rb   r   r  r   r   r   !test_single_element_list_grouping   s   ""rh  )r4   rS  r  c                 C   sj   d}t d|gd}t|d|  | }t ddgitdgddd}| d	kr-|jd
d}t|| d S )Nl   L33ffr0   r   r   r   r   rR  r   rS  Trc  )r	   r  rO   r   rh  rR   rn   )r   r  rt   r   r   r   r   r   #test_groupby_avoid_casting_to_float0  s   ri  z	func, val)r4   r&   )r  rB   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   rB   r   r   r   r   r
  r'   )r	   r   NAr  rO   r   rR   rn   )any_numeric_ea_dtyper   r  rt   r   r   r   r   r   test_groupby_sum_support_mask<  s   rl  z
val, dtype)o   r  )   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   rB   64r
  r'   )r	   rO   r4   r   rR   rn   rS  r  )r  r    rt   r   r   r   r   r   test_groupby_overflowI  s$   rr  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   rB   r   r   r   r$  r   )r	   r   rj  rO   rS  rR   rn   )rk  r%  r  rt   r   r   r   r   r   test_groupby_cumsum_maskb  s   rs  )r   decimalr   numpyrJ   rX   pandas._libsr   pandas.compatr   pandas.errorsr   r   pandasr   r   r	   r
   r   r   r   r   r   r   r   r   pandas._testing_testingrR   pandas.core.arraysr   pandas.core.commoncorecommonr9  pandas.core.groupby.baser   pandas.tests.groupbyr   r   r  parametrizerc   rv   r   r   r   r   r   r   r   r   r	  r  r  r&  r9  r:  rC  rQ  rW  r[  ro  rx  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  filterwarningsr  r  r	  r  r  r  r  r  r#  r%  r/  r1  r>  rA  rH  rJ  rN  rQ  rT  rV  rW  r\  ri  rm  r~  r  r  r  r  r6  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rG  r   r  r  r
  r  paramr  r  r  r  r  r  r   r#  r'  r(  r+  r,  r-  r2  r;  r<  rD  rI  rS  rV  rb  rc  re  rh  ri  rl  rr  rj  rs  r   r   r   r   <module>   s0   4
0*>-

8($@
 	;&!	



0	
 (



?
)		
4

 H
	

,

$#











	
&		