
    d[                       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	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c mZ  d dl!m"Z" d	 Z#d
 Z$ej%        &                    dg d          d             Z'd Z(d Z)d Z*ej%        &                    dddg          d             Z+d Z,d Z-ej%        &                    dg d          d             Z.d Z/d Z0d Z1d Z2d Z3d Z4d Z5d  Z6d! Z7ej%        &                    d"d# d$ g          d%             Z8d& Z9d' Z:d( Z;d) Z<d* Z=d+ Z>d, Z?d- Z@d. ZAd/ ZBd0 ZCd1 ZDej%        &                    d2d3d4g          d5             ZEej%        &                    d2g d6          ej%        &                    d7ddg          d8                         ZFd9 ZGd: ZHd; ZId< ZJd= ZKd> ZLd? ZMd@ ZNdA ZOdB ZPdC ZQdD ZRdE ZSdF ZTdG ZUdH ZVdI ZWdJ ZXdK ZYdL ZZdM Z[dN Z\dO Z]dP Z^dQ Z_dR Z`dS ZadT ZbdU ZcdV ZddW ZedX ZfdY ZgdZ Zhd[ Zid\ Zjd] Zkd^ Zlej%        &                    d_d`d`dagg          db             Zmdc Zndd Zode Zpdf Zqdg Zrdh Zsdi Ztdj Zuej%        &                    dkdldmdndldmgdldngg          ej%        &                    dodpdqdpdqgg          dr                         Zvds Zwej%        &                    dtdudugg          ej%        &                    dvd`gd`dagg          ej%        &                    dwdgd gdxgdyg ed g           ed           g ed dzdzd{|           ejx        d}d~d           ejy        d gd           ejy        d gd           ejy        dgd          gg d          ej%        &                    dg d          ej%        &                    d"g d          d                                                             Zzd Z{d Z|d Z}d Z~d Zd Zd Zd Zej%        &                    dddgg          d             Zej%        &                    ddddd ed           ed          ddgifdd ed           ed           ed           ed           ed           ed          gifdd ed           ed           ed           ed           ed           ed          gifg          d             Zd Zd Zd Zej%        &                    d edydygd           ej        dddg          g          d             Zd Zd Zej%        &                    dg d          d             Zd Zej%        &                    deddyfeddfeddfeddfeddfeddfeddyfeddfeddfeddfeddfeddfg          d             Zd Zej%        &                    dg d          d             Zd Zd Zej%                            e d          ej%        &                    ddddgfdddgfg          dƄ                         Zej%                            e d          dǄ             ZdȄ ZdɄ Zdʄ Zd˄ Zej%        &                    d7ddg          d̄             Zd̈́ Zd΄ Zdτ ZdЄ Zdф Zd҄ Zdӄ ZdԄ ZdՄ Zdք Zej%        &                    dg dע          d؄             Zej%        &                    dddg          d܄             Zej%        &                    dddg          d             Zej%        &                    dddej        fg          d             Zej%        &                    dg dg dg dfg dg dg dfg          d             Zej%        &                    dg d          d             Zej%                            d          ej%        &                    dg d          d                         Zd Zd ZdS )    )datetime)DecimalN)IS64)PerformanceWarningSpecificationError)Categorical	DataFrameGrouperIndex
MultiIndex
RangeIndexSeries	Timedelta	Timestamp
date_rangeto_datetime)BooleanArray)get_groupby_method_argsc                  V    t          t          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expecteds     ]/var/www/html/t/fyr/venv311/lib/python3.11/site-packages/pandas/tests/groupby/test_groupby.py	test_reprr   !   s8    'c---..FMHX    c                     t          j        dd          } t          |           }|d d dxx         dz  cc<   |                    d          }|t	          d          z   |d<   |t	          dd	
          z   |d<   t           j        |j        d<   |                    t          t          d                    dz            }|
                                }t          d          }t          d          }t          |dz  ||||gt          j        d                    }t          |||d          }t          j        ||           d S )Nz1 Day'  periods      r   r   r   UTCtzCi  z2887 days 11:21:02.326710176z2886 days 00:42:34.664668096indexr   r   r)   )pdtimedelta_ranger   to_framer   NaTilocgroupbylistrangestdr   nparanger	   tmassert_frame_equal)	tdiserdfgbr   td1td4exp_serr   s	            r   test_groupby_std_datetimelikerB   (   s0   

We
4
4
4C
++C!HHHMHHH	c		BIaLL BsGIaE****BsG&BGBK	DqNNT)	*	*BVVXXF 2
3
3C
2
3
3CcAgsCc2")A,,GGGGwW7CCDDH&(+++++r   dtype)int64int32float64float32c                 @   t          t          j        d          dz  t          j        d          |           }t          j        d          }t          j                            |           |                    |          }|                    d d          }|D ]\  }}t          |          dk    sJ |                    t          j	                  }|d         dk    sJ t          j        ||                    t          j	                             t          j        ||	                                           t          j        |                    t          j                  |                                           |                    d           }|                    d	           }|d
         dk    sJ t          j        ||           |                    |          }	t          j        |	                    t          j	                  |d           |                    t          j	        t          j        g          }d}
t#          j        t&          |
          5  |                    t          j	        t          j        d           d d d            n# 1 swxY w Y   dddd|                    fd          }|d         dk    sJ d}
t#          j        t(          |
          5  |                    d            d d d            d S # 1 swxY w Y   d S )N	      r,   rC   c                     | dz  S NrJ    xs    r   <lambda>ztest_basic.<locals>.<lambda>K   s
    Q!V r   F
group_keys   c                 0    | |                                  z  S NsumrO   s    r   rQ   ztest_basic.<locals>.<lambda>W   s    q15577{ r   c                 0    | |                                  z  S rV   rW   rO   s    r   rQ   ztest_basic.<locals>.<lambda>X   s    a!%%''k r         check_index_typenested renamer is not supportedmatch)onetwo
         r   rT   r%   c                 H    | j                  |                                 z   S rV   )namemean)rP   group_constantss    r   rQ   ztest_basic.<locals>.<lambda>i   s    /!&"9AFFHH"D r      zMust produce aggregated valuec                     | dz  S Nr%   rN   rO   s    r   rQ   ztest_basic.<locals>.<lambda>p   s
    AE r   )r   r7   r8   randomshufflereindexr3   len	aggregateri   r9   assert_series_equalaggrX   apply	transformr6   pytestraisesr   	Exception)rC   datar,   groupedkvaggedr   transformedvalue_groupedmsgrj   s              @r   
test_basicr   C   sC   ")A,,!#29Q<<uEEEDIaLLEIe<<Dll++l>>G  11vv{{{{{bg&&E8q====5'++bg"6"67775',,..1117;;rv..>>>}}2233H##$9$9::Kq>R;111LL&&M((%%   
 rw/00E
,C	)	5	5	5 ; ;"'"&99:::; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ++OKKDDDDEEE8r>>>> *C	y	,	,	, + +//***+ + + + + + + + + + + + + + + + + +s$   "-JJ"J/LLLc                    | j         j        d         }|                     |          }|                                }|                     |                    d                                                    }|j         j        t          j        k    sJ |j         j        t          j        k    sJ t          j
        ||d           |                                }t          t          |                    |d<   d }|                    d                              |          }|j        }|j        }t          j        ||           d S )Nr   OFr\   valuec                 L    | j         | d                                                  S )Nr   )locidxmaxgroups    r   	max_valuez/test_groupby_nonobject_dtype.<locals>.max_value   s    yw..0011r   r   )r,   codesr3   rX   astyperC   r7   int8rD   r9   r:   copyr5   rq   ru   dtypesrs   )	mframedf_mixed_floatsr   r{   r   r   r=   r   applieds	            r   test_groupby_nonobject_dtyper   s   s   
,
Q
CnnS!!G[[]]F~~cjjoo..2244H<((((>28++++&(UCCCC 
				BB..BwK2 2 2 jjoo##I..G^FyH68,,,,,r   c                  |   t          g dt          t          j        d          d          t	          dd          d          } d }|                     d	                                          d
g         }|                     d	                              |          d
g         }t          j	        ||           d }|                     d	                              |          d
g         }|
                                }t          j        |j        d<   t          j	        ||           d }|                     d	                              |          d
g         }|
                                }t          j        |j        d<   t          j	        ||           d }|                     d	                              |          dg         }|                     d	                                          dg         }t          j        |j        d<   t          j	        ||           d }|                     d	                              |          }|                     d	                                          d         
                                }t          j        |j        d<   d |_        t          j        ||           d S )N)Tigerr   r   Lambr   Ponyr   rZ   rD   rC   20130101r"   r-   c                     | j         d         S Nr   )r2   grps    r   f_0z*test_inconsistent_return_type.<locals>.f_0   s    x{r   r   r   c                 6    | j         dk    rd S | j        d         S )Nr   r   rh   r2   r   s    r   f_1z*test_inconsistent_return_type.<locals>.f_1   s     8w4x{r   r   c                 6    | j         dk    rd S | j        d         S Nr   r   r   r   s    r   f_2z*test_inconsistent_return_type.<locals>.f_2        8v4x{r   r   c                 6    | j         dk    rd S | j        d         S r   r   r   s    r   f_3z*test_inconsistent_return_type.<locals>.f_3   r   r   r)   c                 L    | j         dk    rd S | j        d         j        d         S )Nr   r   r)   )rh   r2   r   r   s    r   f_4z*test_inconsistent_return_type.<locals>.f_4   s'    8v4x{s##r   )r	   r   r7   r8   r   r3   firstru   r9   r:   r   nanr   r.   r1   rh   rs   )	r=   r   r   r   r   er   r   r   s	            r   test_inconsistent_return_typer      sz    
LLL	!G444J222	
 	

 
B   zz#$$&&u-HZZ__""3''.F&(+++  
 ZZ__""3''.FAVAE'N&!$$$  
 ZZ__""3''.FAFAE&M&!$$$  
 ZZ__""3''.F


3&AFAE&M&!$$$$ $ $
 ZZ__""3''F


3$))++AFAE&MAF61%%%%%r   c                    dd}d }|                      d           }|                    t          j        dd          }|                    t          j        dd          }|                    t          j        dd          }|                    d          }|                    |          }	t          j        ||           t          j        ||           t          j        ||	           |                    |d          }|                    |d          }|                    |d          }t          j        ||           t          j        ||           t          j        ||	           d	D ]R}
|                     d
 |
          }|                    t          j        dd          }|                    t          j        d          }|                    d          }t          j
        ||d           t          j
        ||           |                    t          j        ddg          }|                    ddg          }t          j
        ||d           |                    |d          }|                    t          j        d          }t          j
        ||           t          j
        ||d           Td S )Nr   c                 0    t          j        | ||          S )Naxisr7   
percentile)rP   qr   s      r   fz test_pass_args_kwargs.<locals>.f   s    }Q----r   c                 0    t          j        | dd          S )NP   r   r   r   rO   s    r   rQ   z'test_pass_args_kwargs.<locals>.<lambda>   s    "-2A... r   c                     | j         S rV   monthrO   s    r   rQ   z'test_pass_args_kwargs.<locals>.<lambda>   s    ag r   r   r   皙?)r   )TFc                     | j         S rV   r   rO   s    r   rQ   z'test_pass_args_kwargs.<locals>.<lambda>   s    qw r   as_indexFcheck_namesg?r   )r3   rt   r7   r   ru   rv   quantiler9   rs   r	   r:   )tstsframer   g
ts_grouped
agg_resultapply_resulttrans_resultagg_expectedtrans_expectedr   
df_groupedr   expected_seqs                 r   test_pass_args_kwargsr      s   . . . . 	/.A --..Jr::J##BM2A#>>L''r'BBL&&s++L))!,,N<666:|444<888R((J##A#,,L''R'00L:|444<666<888 " I I__%6%6_JJ
^^BM2A^>>
!''	(:C@@&&s++
lH%HHHH
j(333!''	(:S#JGG!**C:66
lLeLLLL^^A^,,
!''	(:c'BB
j(333
lH%HHHHHI Ir   r   TFc                    g d| _         |                     d |          }|                    t          j        dd          }| | j        j        dk                                 d          | | j        j        d	k                                 d          d
}t          |          j	        }|j        
                    t          j                  |_        |s!t          t          d	                    |_        t          j        ||           d S )N)r   r   r   r)   c                     | j         S rV   r   rO   s    r   rQ   z9test_pass_args_kwargs_duplicate_columns.<locals>.<lambda>   s    17 r   r   r   r   r   rT   r   r%   rT   r%   )columnsr3   rt   r7   r   r,   r   r   r	   Tr   rE   r   r5   r9   r:   )r   r   r>   resex_datar   s         r   'test_pass_args_kwargs_duplicate_columnsr      s     +**GO	**X	>	>B
&&&
+
+C 7=&!+,55c::7=&!+,55c:: G !!#H^**2844HN )uQxx#x(((((r   c                  v   t          j                    } |                     d d d g          }t          |          t          |           k    sJ |                     d d g          }t          d | j        D                       }t          |          |k    sJ t          t          j        gdz  g dd	          } t          |                     d
                    dk    sJ t          |                     d                    dk    sJ t          |                     d
dg                    dk    sJ d S )Nc                     | j         S rV   yearrO   s    r   rQ   ztest_len.<locals>.<lambda>      AF r   c                     | j         S rV   r   rO   s    r   rQ   ztest_len.<locals>.<lambda>      ag r   c                     | j         S rV   dayrO   s    r   rQ   ztest_len.<locals>.<lambda>       r   c                     | j         S rV   r   rO   s    r   rQ   ztest_len.<locals>.<lambda>  r   r   c                     | j         S rV   r   rO   s    r   rQ   ztest_len.<locals>.<lambda>  r   r   c                 *    h | ]}|j         |j        fS rN   )r   r   .0rP   s     r   	<setcomp>ztest_len.<locals>.<setcomp>  s!    888!QVQW%888r   rJ   rT   r%   rJ   abr   r   r   )r9   makeTimeDataFramer3   rq   r,   r	   r7   r   )r=   r{   r   s      r   test_lenr   
  s:   				Bjj**,=,=OPPGw<<3r77""""jj**,=,=>??G88rx88899Hw<<8#### 
"&AIII66	7	7Brzz#1$$$$rzz#1$$$$rzz3*%%&&!++++++r   c            	      (   t          d t          t          dd                    dz  D                       } t          j                            d          dz  }t          |          }|                     |          }|                                 d S )Nc                     g | ]}d |z  S )      ?rN   r   s     r   
<listcomp>z)test_basic_regression.<locals>.<listcomp>  s    >>>S1W>>>r   rT   rc   iL  g      $@)r   r4   r5   r7   rn   r3   ri   )r   rz   	groupingsr{   s       r   test_basic_regressionr     sz    >>d5B<<&8&82&=>>>??F9D!!D(DtInnY''GLLNNNNNr   )rF   rG   rD   rE   int16r   c                 P   t          t          j        d                    }t          t          j        d          ||           }t          t          j        dddt          j        t          j        ddt          j        dg
|          }|                    |          }|                    t                    }t          ddgddg          }t          j
        ||d	           d
 }|                    |          }t          ddgddg          }t          j
        ||           d S )Nrc   r   foobarr+      r%   F)check_dtypec                 :    t          t          |                     S rV   )floatrq   rO   s    r   r   ztest_with_na_groups.<locals>.f:  s    SVV}}r         @       @)r   r7   r8   r   onesr   r3   rt   rq   r9   rs   )rC   r,   valueslabelsr{   r~   r   r   s           r   test_with_na_groupsr  %  s    ")B--  EBGBKKe444F	ubfbfeUBFER  F nnV$$GKKEq!fUEN333H5(>>>>
   KKNNEsCj777H5(+++++r   c                     d } d }d }t          g dt          d          t          dd          d          }t          g d	t          d          t          dd          d          }|                    d
                              |           }|                    d
                              |           }t	          j        ||           d}t          j        t          |          5  |                    d
                              |           d d d            n# 1 swxY w Y   t          j        t          |          5  |                    d
                              |           d d d            n# 1 swxY w Y   t          j        t          |          5  |                    d
                              |           d d d            n# 1 swxY w Y   t          j        t          |          5  |                    d
                              |           d d d            d S # 1 swxY w Y   d S )Nc                     | | j         dz  dk             dz  }|j        r0t          g gdz  g gdz  ddg          }t          dg|          }|S |                    ddg          }|S )Nr%   rT   r   clevelsr   namesr   r   r,   )r   emptyr   r	   	set_indexrP   y
multiindexr   s       r   f1z,test_indices_concatenation_order.<locals>.f1F  s}    qsQw1n"7 	#B4!8B4!8CQT:VVVJSE<<<CJS#J''AHr   c                     | | j         dz  dk             dz  }|j        rt                      S |                    ddg          }|S )Nr%   rT   r   r  )r   r	  r	   r
  )rP   r  s     r   f2z,test_indices_concatenation_order.<locals>.f2P  sI    qsQw1n"7 	;;S#J''AHr   c                     | | j         dz  dk             dz  }|j        r1t          g gdz  g gdz  ddg          }t          ddg|          }|S |S )	Nr%   rT   r   r   r  r   r   r  )r   r	  r   r	   r  s       r   f3z,test_indices_concatenation_order.<locals>.f3X  sr    qsQw1n"7 	#taxtaxu~  J S#JjAAACJHr   )rT   r%   r%   r%   r   r$   rI   r   r   r  )rJ   r%   r%   r%   r   z@Cannot concat indices that do not have the same number of levelsr_   )	r	   r5   r3   ru   r9   r:   rw   rx   AssertionError)r  r  r  r=   df2result1result2r   s           r    test_indices_concatenation_orderr  C  s       	 	 	 
E!HH5A;;GG	H	HB
,,,U1XXE!QKKHH
I
IC jjoo##B''Gkk#$$R((G'7+++ MC	~S	1	1	1 " "


3b!!!" " " " " " " " " " " " " " "	~S	1	1	1 # #Cr"""# # # # # # # # # # # # # # # 
~S	1	1	1 " "


3b!!!" " " " " " " " " " " " " " "	~S	1	1	1 # #Cr"""# # # # # # # # # # # # # # # # # #sH   ,)D!!D%(D%)E<<F F ")GGG=)H33H7:H7c                 2   |                      d           }|                                }|                    d           }t          j        ||           |                                }d |D             }t          |          j        }t          j        ||           |j	        }|                    d           }t          j        ||           d}t          j        t          |          5  t          |d           d d d            d S # 1 swxY w Y   d S )Nc                 *    |                                  S rV   weekdayrO   s    r   rQ   z#test_attr_wrapper.<locals>.<lambda>{  s    199;; r   c                 .    t          j        | d          S )NrT   )ddof)r7   r6   rO   s    r   rQ   z#test_attr_wrapper.<locals>.<lambda>~  s    RVAA%6%6%6 r   c                 >    i | ]\  }}||                                 S rN   )describe)r   rh   gps      r   
<dictcomp>z%test_attr_wrapper.<locals>.<dictcomp>  s&    <<<bbkkmm<<<r   c                     | j         S rV   r   rO   s    r   rQ   z#test_attr_wrapper.<locals>.<lambda>      QW r   z-'SeriesGroupBy' object has no attribute 'foo'r_   r   )r3   r6   rt   r9   rs   r   r	   r   r:   rC   rw   rx   AttributeErrorgetattr)r   r{   r   r   r   s        r   test_attr_wrapperr'  z  sV   jj..//G[[]]F{{6677H68,,, F<<G<<<H""$H&(+++ ]F{{,,--H68,,, :C	~S	1	1	1                                       s   .DDDc                 v   |                      d           }|                    t          j                  }t	          |          dk    sJ t	          |j                  dk    sJ |                                 }d |j        D             |d<   |                     d                              t          j                  }t          j	        ||d           | 
                    d                               d	           }|                    d
           }t	          |          dk    sJ t	          |j                  dk    sJ |                    d           }|D ]M\  }}|                                }|j        D ],}	t          j        |                    |	          |d           -N|D ]*\  }
}|j        d                                         |
k    sJ +|j        }|j        }|                                D ]?\  }}| j                            ||                   }||k                                    sJ @d S )Nc                 *    |                                  S rV   r  rO   s    r   rQ   z$test_frame_groupby.<locals>.<lambda>  s    		 r   r$   r   c                 6    g | ]}|                                 S rN   r  r   s     r   r   z&test_frame_groupby.<locals>.<listcomp>  s     ;;;;;;r   r  Fr   re   c                 *    |                                  S rV   r  rO   s    r   rQ   z$test_frame_groupby.<locals>.<lambda>  s     r   c                 0    | |                                  z
  S rV   ri   rO   s    r   rQ   z$test_frame_groupby.<locals>.<lambda>  s    a!&&((l r   c                 *    |                                  S rV   r-  rO   s    r   rQ   z$test_frame_groupby.<locals>.<lambda>  s    affhh r   r   )r3   rr   r7   ri   rq   r   r   r,   r9   r:   headrv   rs   xsr  groupsindicesitemstakeall)r   r{   
aggregatedtscopystraggedr   rh   r   ri   idxr  r1  r2  r|   r}   	samethings                   r   test_frame_groupbyr;    sW   oo3344G ""27++Jz??az!""a'''' \\^^F;;fl;;;F9~~i((2227;;H(JEBBBB ll2&&'<'<==G##$:$:;;K{r!!!!{"##q(((( ##$6$677K Q Qezz||; 	Q 	QC";>>##6#6%PPPPP	Q " 3 3{1~%%''722222 ^FoG & &1M&&wqz22	Q##%%%%%%& &r   c                    ddddd}|                      |d          }|                    t          j                  }t	          |          t	          |           k    sJ t	          |j                  dk    sJ d }| j                             |d          }t          j        |	                    |          j        |	                    |                     |D ]\  }}t	          |j                  dk    sJ  d S )Nr   rT   r   r   r)   Dr   r%   c                 0    | |                                  z
  S rV   r-  rO   s    r   rQ   z,test_frame_groupby_columns.<locals>.<lambda>  s    1qvvxx< r   )
r3   rr   r7   ri   rq   r   r   r9   r:   rv   )r   mappingr{   r6  tfgroupedTr|   r}   s           r   test_frame_groupby_columnsrC    s	   AAA..GoogAo..G ""27++Jz??c'll****z!""a'''' 
 	By  q 11H(,,R002G4E4Eb4I4IJJJ  # #119~~"""""# #r   c                    |                      d          }|                    d          }|j        j        dk    sJ |                      dd                              d          }|j        j        dk    sJ |ddg                             t
          j                  }|j        j        dk    sJ |                    t
          j        t
          j        d          }|j        j        dk    sJ |d                                         }|j        j        dk    sJ |d                             t
          j                  }|j        j        dk    sJ |d                             t
          j        t
          j        g          }|j        j        dk    sJ d	}t          j        t          |
          5  |d                             t
          j        t
          j        d           d d d            d S # 1 swxY w Y   d S )Nr   Tnumeric_onlyFr   r)   r>  r)   r>  r^   r_   r   r   )
r3   ri   r,   rh   rt   r7   r6   rw   rx   r   )r=   r{   r   r   s       r   test_frame_set_name_singlerI    s   jjooG\\t\,,F<####ZZeZ,,11t1DDF<####c3Z $$RW--F<####[[rwRV4455F<####S\  F<####S\bg&&F<####S\rw/00F<####
,C	)	5	5	5 : :88999: : : : : : : : : : : : : : : : : :s   53G55G9<G9c           	         | d         }| d         }|                      |j        |j        g          }|                    d          }|                      ddg                                          }t          j        |j        d d ddgf         |j        d d ddgf         d           t          t          j        	                    d	          t          j        	                    d	          t          j
        g d
          t          j
        g d          dg d          } |                      ddg          }|                    t          j                   d S )Nr   r   TrE  r)   r>  Fr      r   r   r   r   r   r   1rN  rN  2rO  rO  )v1v2k1k2)ra   rb   threefourfivesixr+   rR  rS  )r3   getri   r9   r:   r   r	   r7   rn   randnarrayrt   rX   )r=   col1col2r{   r~   r   s         r   test_multi_funcr]    sQ   c7Dc7Djj$(DH-..GLLdL++Ezz3*%%**,,H 	!!!c3Z- (,qqq3*}"=5   
 
)//!$$)//!$$(999::(999::		
 	
 =<<
 
 
B jj$&&GKKr   c                 X   |                      ddg          d         }|                    t          j        t          j        g          }t          |                    t          j                  |                    t          j                  d          }t          j        ||           d S )Nr   r   r)   )ri   r6   )r3   rt   r7   ri   r6   r	   r9   r:   )r=   r{   r~   r   s       r   !test_multi_key_multiple_functionsr_    s    jj#s$$S)GKK"&)**E'++bg"6"6w{{26?R?RSSTTH%*****r   c            	         t          g dg dt          j                            d          t          j                            d          t          j                            d          d          } |                     ddg          }t          j        t          j        g}|                    |          }t          j	        |d                             |          |d                             |          |d	                             |          gg d
d          }t          |j        t                    sJ t          |j        t                    sJ t          j        ||           d S )Nr   r   r   r   r   r   r   r   r   r   r   ra   ra   ra   rb   ra   ra   ra   rb   rb   rb   ra      )r   r   r>  EFr   r   r>  rd  re  )r>  rd  re  rT   )keysr   )r	   r7   rn   rY  r3   ri   r6   rt   r.   concat
isinstancer,   r   r9   r:   )rz   r{   funcsr~   r   s        r   "test_frame_multi_key_function_listrj    sP        $$$$$$;	
 	
   DD llC:&&GWbfEKKEy			%	 	 '#,"2"25"9"973<;K;KE;R;RS__  H
 ek:.....hnj11111%*****r   c            
         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	          5  |
                    |           d d d            d S # 1 swxY w Y   d S )
Nra  rb  )dullrl  shinyrl  rl  rm  rm  rl  rm  rm  rm  rc  )r   r   r)   r>  rd  re  r   r   z+Could not convert dullshinyshiny to numericr_   )r	   r7   rn   rY  r3   ri   r6   rw   rx   	TypeErrorrt   )rz   r{   ri  s      r   2test_frame_multi_key_function_list_partial_failurero  <  s0          $$$$$$U+	
 +	
- -D^ llC:&&GWbfE	y(U	V	V	V  E                 s   >C!!C%(C%opc                 *    |                                  S rV   rW   rO   s    r   rQ   rQ   r  s    !%%'' r   c                 *    |                                  S rV   r-  rO   s    r   rQ   rQ   r  s    QVVXX r   c           
      `   | }|                     ddg          } ||          }g }g }|                     d          D ]f\  }}|                     d          D ]K\  }	}
|                    ||	f           |                     ||
j        d d ddgf                              Lgt          j        |ddg          }t          j        |d          j        }||_        dD ]M} |||                   }||         }||         }t          j
        ||           t          j
        ||           N|d                              |d         |d         g                                          }|                     ddg                                          d         }t          j
        ||           d S )	Nr   r   r)   r>  r  rT   r   rG  )r3   appendr   r   from_tuplesr.   rg  r   r,   r9   rs   ri   )r=   rp  rz   r{   r  rf  r   n1gp1n2gp2mir   col
result_colpivotedexpr   s                     r   test_groupby_multiple_columnsr  r  s   DllC:&&GbkkGDF<<$$ 6 6C{{3'' 	6 	6GBKKR!!!MM""SWQQQc
]3445555	6 
	S#J	7	7	7Bya(((*HHN  - -R%%
#,sm
z3///
w,,,, #YS	49566;;==F||S#J'',,..s3H68,,,,,r   c                     t          ddgddgddggddg          } |                     dd	
          d                             d          }t          ddgd          }t	          j        ||           |                     dd	d          d                             d           }t          g ddt          j        g d                    }t	          j        ||           d S )NrT   r%   r   r$   rK  r   r   r   Fr   rh   T)r   rS   c                 *    |                                  S rV   )cumsumrO   s    r   rQ   z-test_as_index_select_column.<locals>.<lambda>  s    !((** r   )r%   rK  rK  ))r   r   )r   rT   r   rh   r,   )	r	   r3   	get_groupr   r9   rs   ru   r   rv  r=   r   r   s      r   test_as_index_select_columnr    s    	QFQFQF+c3Z	@	@	@BZZeZ,,S1;;A>>Fq!f3'''H68,,,ZZeZ==cBHH F 		:#9:R:R:R#S#S  H 68,,,,,r   c                  D   t          t          g dd                    } |                     dd          d                             d	          }t          | j        d d
         t          d                    }d g|j        _        t          j        ||           d S )Nr-   alphar  r  r   F)byr   r   rE  r%   r   r  )	r	   r   r3   rX   r   r5   r  r9   r:   )r=   leftr   s      r   0test_groupby_as_index_select_column_sum_empty_dfr    s    	5w???	@	@	@B::u:--c266E6JJDBQBuQxx@@@H"VH$)))))r   c                 ,   |                      dd          }|ddg                             t          j                  }|                    d          }t	          j        ||           |                    t          j        t          j        d          }|                    d          }|                                d         |d<   t	          j        ||           |                      dd          }d	}t          j        t          |
          5  |d                             dt          j        i           d d d            n# 1 swxY w Y   |                      ddgd          }|                    t          j                  }|                                }t	          j        ||           |                    t          j        t          j        d          }|                                }|                                d         |d<   t	          j        ||           |d                                         }t          |                              ddi          }|d                             dt          j        i          }t	          j        ||           t          t          j                            ddd          g d          } t          t          j                            ddd          d          }	|                      |	          }
|
                    d           t	          j        |
                    t                    |                      |	                              t                               dD ]}|                      |	d          }
 t#          |
|                      }|                      |	j        d          }
 t#          |
|                                          d          }t	          j        ||           d S )Nr   Fr   r)   r>  TrE  rG  r^   r_   Qr   r  r   d   )2   rJ   )jimjoejolier$   rc   r  r  r  )ri   maxcountr   r  r5  drop)r3   rt   r7   ri   r9   r:   rX   rw   rx   r   r	   renamern   randintr   nthru   r&  r   reset_index)r=   r{   r   r   r  	expected2r   	expected3result3r   grattrr  rights                 r   test_groupby_as_index_aggr    s   jjuj--G c3Z $$RW--F|||..H&(+++kkbf5566G$//I[[]]3'IcN'9---jjtj,,G
,C	)	5	5	5 ( (#rv'''( ( ( ( ( ( ( ( ( ( ( ( ( ( (
 jj#sej44G[[!!F||~~H&(+++kkbf5566GI[[]]3'IcN'9---  ""I)$$++S#J+??IclRV}--G'9--- 
29$$QW55?V?V?V	W	W	WB		!!!R,,5	9	9	9B	BBFF1III"((3--B)=)=c)B)BCCCC + +ZZUZ++ wr4  ""ZZ	DZ11!D!!##//T/::
dE****+ +s   (EE
E
c                 V   | dv rt          j        d|             t          t          j                            ddd          ddg	          } t          |                    d          |                       }| d
k    r|                    d
          }|	                                }| d
k    r)|d         
                    |d         j                  |d<   |                    dd          } t          ||                       }t          j        ||           |                    |           }t          j        ||            t          |d         |                       }t          j        ||           |d                             |           }t          j        ||           d S )N)corrwithr  ngroupz!GH 5755: Test not applicable for r   r$   )r  r%   )sizer   r   r  r  Fr   )rw   skipr	   r7   rn   r  r&  r3   r  r  r   rC   r9   r:   rt   )reduction_funcr=   r   r   r   s        r   test_ops_not_as_indexr    s    666HHHIII	29$$Q$99C:	N	N	NB7wrzz#7799H??6**##%%H ,,RW];;


3
''A'WQ''))F&(+++UU>""F&(+++,WQsV^,,..F&(+++sVZZ''F&(+++++r   c                    |                      dd          }|                      ddgd          }|d                             t          j                  }|                    t          j                  j        d d ddgf         }t          |t                    sJ t          j        ||           |d                             t          j                  }|                    t          j                  j        d d g df         }t          |t                    sJ t          j        ||           |d                                         }|                                j        d d ddgf         }t          |t                    sJ t          j        ||           |d                                         }|                                j        d d g df         }t          |t                    sJ t          j        ||           d S )Nr   Fr   r   r)   r-   )	r3   rt   r7   rX   r   rh  r	   r9   r:   )r=   r{   grouped2r   r   r  r  s          r   !test_as_index_series_return_framer    s   jjuj--Gzz3*uz55HS\bf%%F{{26""&qqq3*}5Hfi(((((&(+++sm''GRV$$(OOO);<Igy)))))'9---S\F{{}} S#J/Hfi(((((&(+++sm!!G"111ooo#56Igy)))))'9-----r   c                     |                      dd          }d}t          j        t          |          5  |d                             d           d d d            d S # 1 swxY w Y   d S )Nr   Fr   zColumn\(s\) C already selectedr_   r)   r>  )r3   rw   rx   
IndexError__getitem__r=   r{   r   s      r   (test_as_index_series_column_slice_raisesr    s    jjuj--G
+C	z	-	-	- & &  %%%& & & & & & & & & & & & & & & & & &s   AA"%A"c                 (   | }|                     dd          }|                    d          }|                     dg                              d          }|                    dd|j                   t	          t          |                    |_        t          j        ||           |                     ddgd          }|                                }|                     ddg                                          }t          t          |j        j
                   }|                    dd|d                    |                    dd|d                    t	          t          |                    |_        t          j        ||           d S )	Nr   Fr   TrE  r   r   rT   )r3   ri   insertr,   r   rq   r9   r:   r4   zipr   )r=   rz   r{   r   r   arrayss         r   test_groupby_as_index_cythonr  (  sW   D ll3l//G\\t\,,F||SE""''T'::HOOAsHN+++H..HN&(+++ llC:l66G\\^^F||S#J'',,..H#x~,-..FOOAsF1I&&&OOAsF1I&&&H..HN&(+++++r   c                     |                      ddgd          }|d                             t                    }|                    t                    j        d d g df         }t	          j        ||           d S )Nr   r   Fr   r)   r-   )r3   rt   rq   r   r9   r:   r=   r{   r   r   s       r   #test_groupby_as_index_series_scalarr  ?  ss    jj#sej44G S\c""F{{3#AAA$67H&(+++++r   c                 >   d}t          j        t          |          5  |                    d d           d d d            n# 1 swxY w Y   d}t          j        t          |          5  |                     d dd	           d d d            d S # 1 swxY w Y   d S )
Nz(as_index=False only valid with DataFramer_   c                 *    |                                  S rV   r  rO   s    r   rQ   z.test_groupby_as_index_corner.<locals>.<lambda>L  s    QYY[[ r   Fr   z$as_index=False only valid for axis=0c                 *    |                                  S rV   )lowerrO   s    r   rQ   z.test_groupby_as_index_corner.<locals>.<lambda>P  s    QWWYY r   rT   )r   r   )rw   rx   rn  r3   
ValueError)r=   r   r   s      r   test_groupby_as_index_cornerr  I  s;   
4C	y	,	,	, : :


((5
999: : : : : : : : : : : : : : : 1C	z	-	-	- @ @


&&Q
???@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @s#   AA
A+BBBc                  2   t          j                    } |                     d d d g          }|                                }t          j        | j        |j                   | j                            d d d gd          }|                    d	           }t          j        |j	        | j
                   t          j        | j        j        |j                   |                    d
           }t          j        | j        j        |j                   d S )Nc                     | j         S rV   r   rO   s    r   rQ   z+test_groupby_multiple_key.<locals>.<lambda>U  r   r   c                     | j         S rV   r   rO   s    r   rQ   z+test_groupby_multiple_key.<locals>.<lambda>U  r   r   c                     | j         S rV   r   rO   s    r   rQ   z+test_groupby_multiple_key.<locals>.<lambda>U  r   r   c                     | j         S rV   r   rO   s    r   rQ   z+test_groupby_multiple_key.<locals>.<lambda>Z  s    16 r   c                     | j         S rV   r   rO   s    r   rQ   z+test_groupby_multiple_key.<locals>.<lambda>Z  r$  r   c                     | j         S rV   r   rO   s    r   rQ   z+test_groupby_multiple_key.<locals>.<lambda>Z  s     r   rT   r   c                 *    |                                  S rV   rW   rO   s    r   rQ   z+test_groupby_multiple_key.<locals>.<lambda>]      !%%'' r   c                 *    |                                  S rV   rW   rO   s    r   rQ   z+test_groupby_multiple_key.<locals>.<lambda>a  r  r   )r9   r   r3   rX   assert_almost_equalr   r   rt   assert_index_equalr,   r   )r=   r{   r~   s      r   test_groupby_multiple_keyr  S  s    				Bjj**,=,=OPPGKKMME29el333dll		,,oo>Q   G KK))**E%+rz22224;555KK))**E24;55555r   c                 8   |                                  } t          j        | d<   |                     ddg                                          }|                     ddg                                          }t          j        |d<   t          j        ||           d S )Nbadr   r   )r   r7   r   r3   ri   r9   r:   )r=   r~   r   s      r   test_groupby_multi_cornerr  e  s    	BBuIJJSz""''))Ezz3*%%**,,HfHUO%*****r   c                    |                      d          }t          j        t          d          5  |                    t
          j                   d d d            n# 1 swxY w Y   t          j        t          d          5  |                                 d d d            n# 1 swxY w Y   | j        d d g df         } t          j	                    | d<   |                      d          }d}t          j        t          |          5  |                    t
          j
                   d d d            n# 1 swxY w Y   t          j        t          |          5  |
                                 d d d            n# 1 swxY w Y   |                      ddddd	d
          }d}t          j        t          |          5  |                    d            d d d            d S # 1 swxY w Y   d S )Nr   Could not convertr_   r   r)   r>  rd  z/datetime64 type does not support sum operationsr   rT   )r   r)   r>  rd  r   z does not support reduction 'sum'c                 0    |                      dd          S )Nr   FrE  rW   rO   s    r   rQ   z)test_raises_on_nuisance.<locals>.<lambda>  s    aeeAEe:: r   )r3   rw   rx   rn  rt   r7   ri   r   r   nowrX   r  s      r   test_raises_on_nuisancer  q  s   jjooG	y(;	<	<	<  BG              	y(;	<	<	<                 
???"	#BlnnBsGjjooG
;C	y	,	,	,  BF              	y	,	,	,                 jjqqqq99jBBG
,C	y	,	,	, < <::;;;< < < < < < < < < < < < < < < < < <sY    AA!$A!B$$B(+B(
 D66D:=D:E==FFG%%G),G)agg_functionr  minc                    |                      d          } t          ||                      }|                                } t          | j        | d         dk    df         |                      |j        d<    t          | j        | d         dk    df         |                      |j        d<   t	          j        ||           d S )Nr   r   r   )r   r   r   )r   r   )r3   r&  r   r   r9   r:   )r=   r  r{   r   r   s        r   test_keep_nuisance_aggr    s     jjooG+WWl++--F{{}}HSwrvbg.>.C'DlSSUUHLSwrvbg.>.C'DlSSUUHL&(+++++r   )rX   ri   prodr6   varsemmedianrF  c                     |                      d          }d}||v rv|st|dv rt          nt          }d                    ddg          }t	          j        ||          5   t          ||          |           d d d            d S # 1 swxY w Y   d S  t          ||          |          }|s|d	k    rg d
}ng d} t          | j        d d |f                              d          |          |          }	t          j	        ||	           d S )Nr   )r  r6   r  ri   r  r  )r6   r  |z[C|c]ould not convertzcan't multiply sequencer_   rE  rX   r=  r  )
r3   r  rn  joinrw   rx   r&  r   r9   r:   )
r=   r  rF  r{   no_drop_nuisanceklassr   r   r   r   s
             r   test_omit_nuisance_aggr    s    jjooGF'''' +n<<

)hh/1JKLL]5,,, 	F 	F*GG\**EEEE	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 0,//\JJJ 	& 5 5***GG%ooGI726!!!W*-55c::LII%
 
 
 	fh/////s   BB	B	c                     |                      d          }t          j        t          d          5  |                                 d d d            d S # 1 swxY w Y   d S )Nr   zcould not convertr_   )r3   rw   rx   rn  skew)r=   r{   s     r   $test_raise_on_nuisance_python_singler    s    jjooG	y(;	<	<	<                   s   AAAc                 h   |                      ddg          }t          j        t          d          5  |                    t
          j                   d d d            n# 1 swxY w Y   t          j        t          d          5  |                                 d d d            d S # 1 swxY w Y   d S )Nr   r   r  r_   )r3   rw   rx   rn  rt   r7   ri   )three_groupr{   s     r   &test_raise_on_nuisance_python_multipler    s   !!3*--G	y(;	<	<	<  BG              	y(;	<	<	<                   s#    AA#&A#B''B+.B+c           	         t          t          j        g d          t          j        g d          ddgdz  t          j                            d          t          j                            d          d          }|                    dd	g          }|d
dg                             t          j                  }|                    d          }t          j	        ||           | dd                             d          }|
                    d           }|d         
                    t          j                  }t          j        |d         |           |j        j        dk    sJ d S )NrL  rM  r   r   rJ   rK  )rR  rS  k3rP  rQ  rR  rS  rP  rQ  TrE  r$   r   r   c                 *    |                                  S rV   r-  rO   s    r   rQ   z*test_empty_groups_corner.<locals>.<lambda>  s    AFFHH r   r   r   )r	   r7   rZ  rn   rY  r3   rt   ri   r9   r:   ru   rs   r,   rh   )r   r=   r{   r   r   r~   agged_As          r   test_empty_groups_cornerr    sK   	(999::(999::%.1$)//!$$)//!$$	
 	

 
B jj$&&GdD\"&&rw//F|||..H&(+++QqSk!!!**GMM,,--Ecl  ))G5:w///;w&&&&&&r   c                      t          dg          } d}t          j        t          |          5  |                     d            d d d            d S # 1 swxY w Y   d S )Nr   z5unsupported operand type\(s\) for \+: 'int' and 'str'r_   c                     | dz   S )Nr   rN   rO   s    r   rQ   z$test_nonsense_func.<locals>.<lambda>  s
    QY r   )r	   rw   rx   rn  r3   )r=   r   s     r   test_nonsense_funcr    s    	A3B
BC	y	,	,	, ( (


&&'''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (s   AAAc                    | j         }d|d<   t          j        g d          t          j        g d          g}t          j        t
          d          5  |                    |                              t          j                   d d d            n# 1 swxY w Y   |	                    d                              |                              t          j                  }t          |j        t                    sJ d }t          j        t
          d          5  |                    |                              |           d d d            d S # 1 swxY w Y   d S )	Npeekaboo)bazrb   r   r   rT   r  r_   r  c                 ^    | j         dk    rt          d          |                                 S )N)r   ra   Test error message)rh   rn  rX   )r<   s    r   aggfunz5test_wrap_aggregated_output_multindex.<locals>.aggfun  s,    8~%%0111wwyyr   r  )r   r7   rZ  rw   rx   rn  r3   rt   ri   r  rh  r   r   rr   )r   r=   rf  r~   r  s        r   %test_wrap_aggregated_output_multindexr    s   	B!B|HYYY)))!4!45D	y(;	<	<	< & &


4RW%%%& & & & & & & & & & & & & & &GGNG++33D99==bgFFEemZ00000  
 
y(<	=	=	= + +


4""6***+ + + + + + + + + + + + + + + + + +s$   3BBB)EEEc                 n   |                      d                                          }|j        j        dk    sJ |                      d                                          }|j        j        dk    sJ | d                              d                                          }|j        j        dk    sJ d S )Nr   r  r   rT   secondr   )r3   r  r,   rh   )r   r   s     r   test_groupby_level_applyr    s    ^^!^$$**,,F<''''^^!^$$**,,F<((((C[  q ))//11F<''''''r   c                   	 |                                  }ddddddddd	|                     d                                          }|                     	d                                          }t          j        fd|d         D             t          j                  }t          j        	fd	|d
         D             t          j                  }|                     |                                          }|                     |                                          }d\  |j        _        |j        _        t          j	        ||           t          j	        ||           d S )Nr   rT   )r   r   r  qux)ra   rb   rT  r  c                 :    g | ]}                     |          S rN   rX  )r   rP   mapper0s     r   r   z-test_groupby_level_mapper.<locals>.<listcomp>	  s#    444AQ444r   r   r   c                 :    g | ]}                     |          S rN   r  )r   rP   mapper1s     r   r   z-test_groupby_level_mapper.<locals>.<listcomp>  s#    555AQ555r   r  )r   r  )
r  r3   rX   r7   rZ  rD   r,   rh   r9   r:   )
r   	deleveledresult0r  mapped_level0mapped_level1	expected0	expected1r  r  s
           @@r   test_groupby_level_mapperr    sa   ""$$I!A66GA..GnnWAn..2244GnnWAn..2244GH44447!3444BH  M H55558!4555RX  M }--1133I}--1133I1B.IO)/.'9---'9-----r   c            	         t          g dt          g dd                    } t          g dt          t          dd          d                    }|                     d	                                          }t          j        ||           |                     dg	                                          }t          j        ||           |                     d
	                                          }t          j        ||           |                     d
g	                                          }t          j        ||           d}t          j        t          |          5  |                     d	           d d d            n# 1 swxY w Y   t          j        t          |          5  |                     d	           d d d            n# 1 swxY w Y   d}t          j        t          |          5  |                     g 	           d d d            n# 1 swxY w Y   d}t          j        t          |          5  |                     ddg	           d d d            n# 1 swxY w Y   t          j        t          |          5  |                     ddg	           d d d            n# 1 swxY w Y   d}t          j        t          |          5  |                     dg	           d d d            d S # 1 swxY w Y   d S )N)rT   r%   rJ   rc   r   r$   rd   rK  )rT   r%   rJ   rT   r   r$   r%   rK  r   r  )rc     rJ   r   r$   rK  rT   rZ   r   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   r5   r3   rX   r9   rs   rw   rx   r  )sr   r   r   s       r   test_groupby_level_nonmultir    sE   )))51I1I1IPU+V+V+VWWA***E%1++E,J,J,JKKHYYQY##%%F68,,,YYaSY!!%%''F68,,,YYRY  $$&&F68,,,YYbTY""&&((F68,,,
>C	z	-	-	-  				              	z	-	-	-  				              
!C	z	-	-	-  				              
6C	z	-	-	-    			A	                             	z	-	-	-    			A	                             
>C	z	-	-	-  				                 sl   &F		FF/GGG:HH!$H!I**I.1I.J55J9<J9LL	Lc                      t          t          j        d          dz  g d          } t          d          }|                     d                                          }t          j        ||           d S )Nr         ?       @)r   r   rT   rT   rz   r,   )r  y      @      $@r   r  )r   r7   r8   r3   rX   r9   rs   )r   r   r   s      r   test_groupby_complexr  6  sk    BIaLLF+<<<@@@A'((HYYQY##%%F68,,,,,r   c                  
   t          dddddddddg          } t          t          j        g dt          j                  t	          g dd	
          t	          dgd                    }|                     d	d                                          }t          j        ||           t	          g dd	
          |_	        |                     d	d                                          }t          j        ||           d S )NrT         ?      ?r   r  r   )rT   rT   rT   r   )r  r        ?        r   r  r   objectr,   r   Fsort)r  r  r  T)
r	   r7   rZ  rD   r   r3   r  r9   r:   r,   r=   r   r   s      r   test_groupby_complex_numbersr  ?  s   	&!!&!!!	

 
B 
"(+++222===se8,,,  H
 ZZ%Z((..00F&(+++ 999DDDHNZZ$Z''--//F&(+++++r   c                     t          g dt          g d                    } t          g dt          g d                    }|                     |          }|                                }|                     |                    | j                  j                                                  }t          j        ||           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   r3   ri   rp   r,   rX  r9   rs   )s1s2r{   r~   r  s        r   'test_groupby_series_indexed_differentlyr&  V  s    	00077788
 
 
B 
&&&e4R4R4R.S.S
 
 
B jjnnGLLNNE
**RZZ))-
.
.
3
3
5
5C5#&&&&&r   c                     t          t          g dg dg           } t          j        |           }t          j        g d          }t	          t
          j                            dd          ||          }|                    d          	                                }t          j        |j        |           |                    dd	
          	                                }t          j        |j        |j                   |                    d                              t
          j	                  }t          j        |j        |           |                    d                              d           }t          j        |j        |           |                    dd	
                              d           }t          j        |j        t!          ddg                     t          j        |j        |j                   |                    d          \  }}d|d<   |                    d          	                    d          }t          j        |j        |j        d d                    d S )N)r   r   r  r  r   r   r  r  )ra   rb   ra   rb   ra   rb   ra   rb   ))r   cat)r   dog)r   r(  )r   r)     r   r  r   r  rT   )r   r   c                 *    |                                  S rV   r-  rO   s    r   rQ   z0test_groupby_with_hier_columns.<locals>.<lambda>}  s     r   c                 ,    |                      d          S )NrT   r-  rO   s    r   rQ   z0test_groupby_with_hier_columns.<locals>.<lambda>  s    qvvayy r   r   r   r   )r   r   TrE  r*   )r4   r  r   rv  r	   r7   rn   rY  r3   ri   r9   r  r   r,   rt   ru   r   	sortlevel)tuplesr,   r   r=   r   sorted_columns_s          r   test_groupby_with_hier_columnsr1  e  s,   HHHHHH	
 F "6**E$@@@ G 
29??1a((w	G	G	GBZZaZ  %%''F&.'222ZZaaZ((--//F&,111ZZaZ  $$RW--F&.'222ZZaZ  &&'9'9::F&.'222ZZaaZ((,,-@-@AAF&.%c
*;*;<<<&,111  ))!,,NABzNZZaZ  %%4%88F&."*SbS/:::::r   c                    |                      | d         j                  }|                                }|                      | d                             d                                                     }t	          j        ||           d S )Nr   )r3   r   rX   r  r9   r:   r  s       r   test_grouping_ndarrayr3    sl    jjC((G[[]]Fzz"S'....//3355H&(+++++r   c                  ,   t          g dd          } t          g dg dg dg dg dd	| 
          }|                    g d          }|                    t          j                  }|                                }t          j        ||           d S )Nr   rT   r%   rJ   r   r,   r  )foo1r6  foo2r6  foo3)bar1bar2r:  r9  r9  )baz1r;  r;  baz2r<  )spam2spam3r=  spam1r?  )rd   re   (   r  <   )r   r   r  spamrz   r+   )r   r   r  rB  )r   r	   r3   rt   r7   ri   r9   r:   )r,   rz   r{   r   r   s        r   test_groupby_wrong_multi_labelsrC    s    ///000E;;;;;;;;;AAA(((	
 	
 	 	 	D ll88899G[[!!F||~~H&(+++++r   c                 
   |                      | d                                       d          }|                      | d         d                              d          }|j        j        dk    sJ d|v sJ |                      | d         | d         g                                          }|                      | d         | d         gd                                          }|j        j        dk    sJ d|v sJ d|v sJ d S )Nr   TrE  Fr   r   r   r   )r3   ri   r,   rh   r  )r=   r   r  s      r   test_groupby_series_with_namerF    s   ZZ3  %%4%88FjjC5j1166D6IIG<####'>>>>ZZC"S'*++0022Fjj"S'2c7+ej<<AACCG<++++'>>>>'>>>>>>r   c                     |                      d          d         }|                                j        dk    sJ |                                j        dk    sJ d }|                    |          j        dk    sJ d S )Nr   r)   c                 0    t          j        |           dz  S rm   )r7   rX   rO   s    r   rQ   z.test_seriesgroupby_name_attr.<locals>.<lambda>  s    Q r   )r3   r  rh   ri   rt   )r=   r   testFuncs      r   test_seriesgroupby_name_attrrJ    s|    ZZ__S!F<<>>#%%%%;;==$$$$&&H::h$++++++r   c                     t          g dg dt          j                            d          dz   t          j        d          d          } |                     dg          j                                        }| j                            | j                                                  }t          j
        ||           d S )N)r   r   r   r   r   r   r   r   )ra   ra   rb   rb   rb   rb   ra   rb   r*  r   r=  r   )r	   r7   rn   rY  r8   r3   r   r  r   r9   rs   r  s      r   test_consistency_namerL    s     
IIIIII##c)1		
 	

 
B zz3%  "((**HT\\"$%%''F68,,,,,r   c                 b   dd}d }|                      d                              |          }|j        j        J |                      d                              |d          }|j        j        dk    sJ |                      d                              |          }|j        j        J d S )Nc                 ,    t          dddd|          S )NrT   r%   rJ   r  ri   	omissionsr  )r   )r=   rh   s     r   	summarizez0test_groupby_name_propagation.<locals>.summarize  s    11==DIIIIr   c                 N    t          dddd| j        d         d                   S )NrT   r%   rJ   rO  r   r   r  )r   r2   r=   s    r   summarize_random_namez<test_groupby_name_propagation.<locals>.summarize_random_name  s+     11==BGAJsOTTTTr   r   metricsrV   )r3   ru   r   rh   )r=   rQ  rT  rU  s       r   test_groupby_name_propagationrV    s    J J J JU U U jjoo##I..G?'''jjoo##Iy99G?9,,,,jjoo##$9::G?'''''r   c                  (   t          d t          d          D                       } |                     d          }|                                }|                     | d                                                   }t	          j        ||           d S )Nc                 6    g | ]}t          j        d           S )rc   )r7   r8   r   s     r   r   z2test_groupby_nonstring_columns.<locals>.<listcomp>  s     555aBIbMM555r   rc   r   )r	   r5   r3   ri   r9   r:   r  s       r   test_groupby_nonstring_columnsrY    sz    	55599555	6	6BjjmmG\\^^Fzz"Q%  %%''H&(+++++r   c                  p   t          g dgg d          } t          ddggddgt          dgd	          
          }|                     d                                          }t	          j        ||           |                     d                                          }t	          j        ||           d S )Nrf   )r   r   r   r  rT   r%   r   r   r   r  r  )r	   r   r3   r   r9   r:   rX   r  s      r   test_groupby_mixed_type_columnsr[    s    	III;	6	6	6B1a&C85!3;O;O;OPPPHZZ__""$$F&(+++ZZ__  ""F&(+++++r   c                     t          j        d          } |                     t           j                   t	          | d d df                   }t          j        t          d          d          }|                    |                              t          j	                  }|
                                                                sJ d S )N)r  r  r   rc   )r7   r	  fillr   r   tiler5   r3   rt   r  isnar5  )arrobjindsr   s       r   (test_cython_grouper_series_bug_noncontigrc    s    
(:

CHHRV
QQQT

C7599b!!D[[""6=11F;;==r   c                  T   t          t          j        dd                    } t          t          j                            d          | d d d                   }t          j                            ddd          }|                    |          }d }|	                    |           d S )	Nrc   r  r  r%   r+   r   r$   c                 j    t          t          t          t          | j                                      S rV   )rq   setmapidr,   rO   s    r   rQ   z5test_series_grouper_noncontig_index.<locals>.<lambda>	  s"    #c#b!'**++,, r   )
r   r9   rands_arrayr   r7   rn   rY  r  r3   rt   )r,   r   r   r{   r   s        r   #test_series_grouper_noncontig_indexrj    s    ".S))**EBIOOB''uSSqSz:::FYq!R((F nnV$$G 	-,AKKNNNNNr   c                     t          t          d                    } t          j        g dd          }d }d }|                     |          }|                    |          }|j        t          j        k    sJ t          |d         t                    sJ |                    |          }|j        t          j        k    sJ t          |d         t                    sJ d S )Nr$   )r   r   r  r"  r   r   r   c                 ^    t          t          |                                                     S rV   )r   strri   rO   s    r   convert_fastz>test_convert_objects_leave_decimal_alone.<locals>.convert_fast  s    s16688}}%%%r   c                     t          | j        j                  dk    sJ t          t	          |                                                     S r   )rq   r   baser   rm  ri   rO   s    r   convert_force_purezDtest_convert_objects_leave_decimal_alone.<locals>.convert_force_pure  s;    18=!!A%%%%s16688}}%%%r   r   )
r   r5   r7   rZ  r3   rt   rC   object_rh  r   )r  r   rn  rq  r{   r   s         r   (test_convert_objects_leave_decimal_aloners    s    uQxxAX///s;;;F& & && & &
 iiG[[&&F<2:%%%%fQi)))))[[+,,F<2:%%%%fQi)))))))r   c                     t          g t          j        dd          d          } | d         j        t          j        k    sJ |                     d                                          }t          g dt          j                  }t          dt          g |d          i          }t          j
        ||d	
           d S )Nr   rD   r   )rP   r5   rP   rh   rC   r5   rK   T)	by_blocks)r	   r7   r8   rC   rF   r3   r   r   r   r9   r:   )r=   r   	exp_indexr   s       r   "test_groupby_dtype_inference_emptyrx  $  s    	bi&A&A&ABB	C	CBc7=BJ&&&&ZZ__""$$Fbs"*555I'6"IW#M#M#MNOOH&(d;;;;;;r   c                     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          }t          j        ||           d S )	NrT   l    4;PU  )r   r  r   r   r  r   rt  r  )r	   r3   r  r   r   from_productr9   rs   r  s      r   $test_groupby_unit64_float_conversionr{  /  s    	aSQC;O:PQQ	R	RBZZ(+,,W599;;F	!qc
7H2EFFF  H
 68,,,,,r   c                    |                      t          | d                                                 d          }|                      | d                                       d          }t          j        ||d           t          j        t          d          5  |                      t          | d         d d                              d d d            n# 1 swxY w Y   t          d	d
gddgt          j
                            d          d          } |                      ddg                                          }|                      | d         | d         g                                          dg         }d S )Nr   TrE  Fr   z^'foo'$r_   r*   r   rT   rJ   r   r%   )r   r   valr   r   r}  )r3   r4   ri   r9   r:   rw   rx   KeyErrorr	   r7   rn   rY  r  s      r   "test_groupby_list_infer_array_liker  ;  s   ZZRW&&+++>>Fzz"S'""''T'::H&(>>>>	xz	2	2	2 ' '


43%%&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 
Aq61a&9K9KLL	M	MBZZ'',,..Fzz2e9bi0116688%AHHHs   1CC"Cc                  ~   d} t          t          d          d|           }t          ddgddggd	d
g|          }|                    t	          d|           d	g                                          }|                    |j        d	g                              t                    }t          j        ||           d S )Nr  z2015-09-29T11:34:44-0700r%   )startr#   freqr   rc   r      metricr   r  r   )r   r  )r   r   r	   r3   r
   ri   r
  r,   r   r   r9   r:   )r  r,   r=   r   r   s        r   $test_groupby_keys_same_size_as_indexr  J  s    D233QT  E 
S"IRy)Hh3Gu	U	U	UBZZqt444h?@@EEGGF||RXx01188??H&(+++++r   c                     d} t          t          j                            dd          t	          d                    }t          j        t          |           5  |                    d           d d d            n# 1 swxY w Y   t          t          j                            dd          t	          d                    }t          j        t          |           5  |                    d           d d d            d S # 1 swxY w Y   d S )	Nz^'Z'$rT   r   ABCDr  r_   Zr%   )	r	   r7   rn   rY  r4   rw   rx   r~  r3   )r   df1r  s      r   test_groupby_one_rowr  W  s^   
C
BIOOAq))4<<
@
@
@C	xs	+	+	+  C              
BIOOAq))4<<
@
@
@C	xs	+	+	+  C                 s$   A<<B B DDDc                     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    sJ t          ||          D ]%\  }}t          j        |j	        |         |           &t          j        |j        j        d         j        |            |j        dk    sJ t          d          t          j        dd	gt          j                  t          d          t          j        d
dgt          j                  i}|j        D ](}t          j        |j        |         ||                    )t          j        |                    t          d                    | j        dd	g                    t          j        |                    t          d                    | j        d
dg                    t5          j        t8          d          5  |                    t:          j                   d d d            n# 1 swxY w Y   t          t          j        t          j        t          j        gt:          j        t:          j        t:          j        gd          }|d         j        dk    sJ |d         j        dk    sJ dD ]}|                    |          }|j	        i k    sJ |j        dk    sJ |j        i k    sJ t5          j        t8          d          5  |                    t          j                   d d d            n# 1 swxY w Y   t5          j        t8          d          5  |                    t:          j                   d d d            n# 1 swxY w Y   d S )Nr*  z
2013-01-01z
2013-02-01r   r   )r   dtrm  r  rT   rZ   rJ   r$   r%   r   z2013-01-01 00:00:00r   z2013-02-01 00:00:00z^NaT$r_   )r   natr   rF   r  zdatetime64[ns]z^nan$) r	   r7   rn   rY  r   r   r3   r   sortedr1  rf  rq   r  r9   r  r:   grouperr   ra  ngroupsrZ  intpr2  assert_numpy_array_equalr  r2   rw   rx   r~  r.   r1   rC   )r=   r{   r   rf  r|   r   nan_dfr   s           r   test_groupby_nat_excluder  b  s   	iooa((,'','','',''	 FCbfc263G	
 	

 
B  jjGq!fuaV}}-H'.%%''((Dt99>>>>D(## 4 41 	gnQ/3333 '/3A6:B????a 	'(("(Aq6*I*I*I'(("(Aq6*I*I*IH
 _ E E
#GOA$6DDDD'++Il,C,CDDbgqRSfoVVV'++Il,C,CDDbgqRSfoVVV	xx	0	0	0 " ""&!!!" " " " " " " " " " " " " " " ("&"&"&1IJJ F %=)++++%="22222 & &..%%~####!####"$$$$]88444 	& 	&bf%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&]88444 	& 	&bf%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&& &s6    K??LL PP	P	1 QQ!	$Q!	c                      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 )NrT   r%   r  r   r   )r	   r7   r   r3   r2  r=   r   s     r   #test_groupby_two_group_keys_all_nanr    sX    	"&"&)0@1vNN	O	OBZZc
##+FR<<<<<<r   c                     t          t          d                    } ddg| d<   ddg| d<   ddg| d	<   d
dg| d<   |                     dg                              d          }t	          j        ddgddgg          }t          j        |j        t          dd	g                     t          j
        |j        |           d S )Nr%   r+   g1g2r   r   zerosrT   r   l1l2labelTrE          r   )r	   r5   r3   ri   r7   rZ  r9   r  r   r   r  r   )r"  tmp
res_valuess      r   test_groupby_2d_malformedr    s    a!!!AAgJQAgJAAfIAgJ
))WI


#
#
#
6
6CC:Sz233J#+ugv->'?'?@@@
J77777r   c            	         t          j        t          j        d          t          j        d          t          j        d          f          } t          j        d          }t          || || t           j                            d          d          }|                    g d                                          }|                    g d                                          }t          |          t          |          k    sJ d S )Nr!   i  ia  )r   r   r)   r>  rd  r=  )r>  r)   r   r   )	r7   concatenater8   r	   rn   rY  r3   rX   rq   )r   r   r=   r  r  s        r   test_int32_overflowr    s    
	%((")E*:*:BIdOOLMMA
	%A	9O9OPP	Q	QB::***++//11DJJ+++,,0022Et99E

""""""r   c                  T   t          g dg dg dt          j                            d          d          } d | g d         j        D             }t          j        |          }|                     g dd	                                          }t          j
        |j        j        |g d
                    d | g d         j        D             }t          j        |          }|                     g dd	                                          }t          j
        |j        j        |           d | g d         j        D             }t          j        |          }|                     g dd	                                          }t          j
        |j        j        |g d                    t          g dg dt          j                            d          d          } |                     ddg          d         }|                                }d fd} || |ddgd           d S )Nr   r   r  )rJ   r%   rT   rf   rJ   r   r   r  r"  c                 ,    g | ]}t          |          S rN   tupler   rows     r   r   z+test_groupby_sort_multi.<locals>.<listcomp>      ===3E#JJ===r   r  Tr  )rT   r%   r   c                 ,    g | ]}t          |          S rN   r  r  s     r   r   z+test_groupby_sort_multi.<locals>.<listcomp>  r  r   )r  r   r   c                 ,    g | ]}t          |          S rN   r  r   s     r   r   z+test_groupby_sort_multi.<locals>.<listcomp>  s    999E!HH999r   )r   r  r   )r%   rT   r   )r   rT   r%   r   rT   r%   )r   r   r   rT   rT   rT   rK  )r   r   r"  r   r   r"  c                 *    |                                  S rV   rW   rO   s    r   rQ   z)test_groupby_sort_multi.<locals>.<lambda>  s    AEEGG r   c                     d | |         j         D             }t          j        |          } ||                     |          |                   }|                                D ]\  }}||         |k    sJ d S )Nc                 ,    g | ]}t          |          S rN   r  r  s     r   r   zCtest_groupby_sort_multi.<locals>._check_groupby.<locals>.<listcomp>  s    666sc

666r   )r   comasarray_tuplesafer3   r3  )	r=   r   rf  fieldr   tupsr   r|   r}   s	            r   _check_groupbyz/test_groupby_sort_multi.<locals>._check_groupby  s    66bho666$T**1RZZ%%e,--NN$$ 	" 	"DAq!9>>>>>	" 	"r   )r	   r7   rn   rY  r   r  r  r3   rX   r9   r  r,   )r=   r  r   r{   r  s        r   test_groupby_sort_multir    s6   	&&&##		
 	

 
B >="___"5"<===D &&DZZdZ337799F 3T)))_EEE=="___"5"<===D &&DZZdZ337799F 3T:::99b18999D &&DZZdZ337799F 3T)))_EEE	   '9'9'9	PQ@R@RSS
 
B jj#s$$S)G[[]]F2C2C " " " " N2vSz3/////r   c                      t          g dg ddz  d          } |                     dd                              d           }t          j        ||            d S )	N)r   r   r   r   r   r   r  r%   )r   rh   r   FrR   c                     | S rV   rN   rO   s    r   rQ   z/test_dont_clobber_name_column.<locals>.<lambda>  s     r   )r	   r3   ru   r9   r:   r  s     r   test_dont_clobber_name_columnr    so    	...8M8M8MPQ8QRR
 
B ZZ%Z0066{{CCF&"%%%%%r   c                     t          j                    } |                     d d          }|                    d           }d |D             }t	          j        |          }t          j        ||           | d                             d d          }|                    d           }d	 |D             }t	          j        |          }t          j        ||           d S )
Nc                     | j         S rV   r   rO   s    r   rQ   z&test_skip_group_keys.<locals>.<lambda>  s    AG r   FrR   c                 >    |                      d          d d         S )Nr   r  rJ   sort_valuesrO   s    r   rQ   z&test_skip_group_keys.<locals>.<lambda>  s    Q]]c]%:%:2A2%> r   c                 P    g | ]#\  }}|                     d           dd         $S )r   r  NrJ   r  r   r   r   s      r   r   z(test_skip_group_keys.<locals>.<listcomp>  s6    FFF
Ue3''+FFFr   r   c                     | j         S rV   r   rO   s    r   rQ   z&test_skip_group_keys.<locals>.<lambda>  s     r   c                 :    |                                  d d         S rM   r  rO   s    r   rQ   z&test_skip_group_keys.<locals>.<lambda>  s    Q]]__RaR%8 r   c                 L    g | ]!\  }}|                                 d d         "S rM   r  r  s      r   r   z(test_skip_group_keys.<locals>.<listcomp>  s1    @@@*#ue!!"1"%@@@r   )r9   r   r3   ru   r.   rg  r:   rs   )tsfr{   r   piecesr   s        r   test_skip_group_keysr    s    


 
 Ckk++k>>G]]>>??FFFgFFFFy  H&(+++#h00UCCG]]8899F@@@@@Fy  H68,,,,,r   c                     | d                                          }d |_        |                    | d                                       t          j                  }|j        J d S )Nr)   r   )r   rh   r3   rt   r7   rX   )float_framer  r   s      r   test_no_nonsense_namer    sY    CAAFYY{3'((,,RV44F;r   c                     t          t          j        d                              dd                    } d| d<   g d| d<   |                     d          }|                    ddd	          }|d         j        t          j        k    sJ d S )
NrI   rJ   r   test)g?g      ?g?flrX   r  )r  r%   )r	   r7   r8   reshaper3   rt   rC   rF   )rP   r{   r   s      r   test_multifunc_sum_bugr    s    ")A,,&&q!,,--AAfIooAdGiiG[[&1122F$<++++++r   c                 "   d }d }|                      d          d                             |          }|                      d          d                             |          }t          |t                    sJ t	          j        ||           d S )Nc                 T    |                                  |                                 dS Nr  r  r  r   s    r   r   z(test_handle_dict_return_value.<locals>.f  s     yy{{599;;777r   c                 n    t          |                                 |                                 d          S r  )r   r  r  r   s    r   r   z(test_handle_dict_return_value.<locals>.g  s(    eiikk%))++>>???r   r   r)   )r3   ru   rh  r   r9   rs   )r=   r   r   r   r   s        r   test_handle_dict_return_valuer    s    8 8 8@ @ @ ZZ__S!''**Fzz#s#))!,,Hff%%%%%68,,,,,r   r  r   r   c                    d }d fd}|                      |d          }|                    |           |                               |                    d           |                    |           |d                             |           |d                                        |d                             |g           |d                             |           d S )Nc                     | j         J | S rV   r  r   s    r   r   ztest_set_group_name.<locals>.f(  s    z%%%r   c                 <    | j         J |                                 S rV   )rh   rX   r   s    r   freducez$test_set_group_name.<locals>.freduce,  s    z%%%yy{{r   c                      |           S rV   rN   )rP   r  s    r   freducexz%test_set_group_name.<locals>.freducex0  s    wqzzr   FrR   rG  r)   )r3   ru   rr   rv   )r=   r  r   r  r{   r  s        @r   test_set_group_namer  &  s            jjUj33G MM!gG'22333aCLqCL7###CLGX.///CL1r   c                      t          g dt          j        d          d          } g fd}|                     ddd                              |           g d}|k    sJ d S )	N)r   r   rT   rT   r%   r%   rK  r   c                 `                         | j                   |                                 S rV   )ru  rh   r   )r   r  s    r   r   z6test_group_name_available_in_inference_pass.<locals>.fG  s%    UZ   zz||r   r   F)r  rS   rf   )r	   r7   r8   r3   ru   )r=   r   expected_namesr  s      @r   +test_group_name_available_in_inference_passr  A  s    	+++")A,,??	@	@BE     JJs5J1177:::YYNN""""""r   c                 (   |                      | d         j                                                  }|j        j        J |                      | d         j        | d         j        g                                          }|j        j        dk    sJ d S )Nr   r   )NN)r3   r   rX   r,   rh   r  r  s     r   test_no_dummy_key_namesr  Q  s    ZZ3''++--F<$$$ZZCC899==??F<------r   c                     t          ddgddggg dg dgddg          } t          g d| 	          }t          ddgddggg d
g dgddg          } t          g d| 	          }|                    ddgd                                          }t	          j        ||           |                    ddgd                                          }t	          j        ||                                           d S )NrT   r%   )r   r   r   r   rT   rT   )rT   rT   r   r   r   r   r   r   r  )r   rT   r%   rJ   r   r$   r+   r  )rT   r   r   r   r%   r   Fr   r  T)r   r   r3   r   r9   rs   
sort_index)r,   mseriesmseries_resultr   s       r   #test_groupby_sort_multiindex_seriesr  Z  s2    AA!!!#5#5#56Cj  E
 '''u555GAA			999'=c3Z  E IIIU333N__C:E_::@@BBF6>222__C:D_99??AAF6>#<#<#>#>?????r   c                     d} t          dd|           }t          t          j        |           t          j        |           d|          }dd}|                    d	           }|                    d
 |t          j                  i          }|                    d
 |t          j        d          i          }t          j        ||           d S )N  z2012/1/15min)r  r  r#   )highlowr+   Fc                       fd}|S )z>
        Run an aggregate func on the subset of data.
        c                     | j         | j                            d                                                    }r| | j        d                   t	          |          dk    rd S  |          S )Nc                     | j         dk     S )Nrc  )hourrO   s    r   rQ   zYtest_groupby_reindex_inside_function.<locals>.agg_before.<locals>._func.<locals>.<lambda>z  s    !&2+ r   r   )r   r,   rg  dropnarq   )rz   r"  fixfuncs     r   _funczGtest_groupby_reindex_inside_function.<locals>.agg_before.<locals>._funcy  sg    (=(=>>?FFHHA $TZ]##1vv{{t477Nr   rN   )r  r  r  s   `` r   
agg_beforez8test_groupby_reindex_inside_function.<locals>.agg_beforet  s)    
	 	 	 	 	 	 r   c                 B    t          | j        | j        | j                  S rV   )r   r   r   r   rO   s    r   rQ   z6test_groupby_reindex_inside_function.<locals>.<lambda>  s    8AFAGQU#C#C r   r  T)F)	r   r	   r7   r8   r3   rt   r  r9   r:   )r#   indr=   r  r{   closure_badclosure_goods          r   $test_groupby_reindex_inside_functionr  o  s    G
:FG
D
D
DC	BIg..ry7I7IJJRU	V	V	VB    jjCCDDG++vzz"&'9'9:;;K;;

264(@(@ABBL+|44444r   c                  R   t          g dg dg dd          } |                     ddg          } |                     ddgd          }|                    d	          }t	          j        g d
ddg          }t          dgdgdgg|dg          }t          j        ||           d S )N)r   r   r   r   )r  r  r"  r  )rT   rT   rT   r$   )group1group2r   r  r  Tr  rX   ))r   r  )r   r"  r   r  rt  r%   rT   r$   r   r  )r	   r
  r3   rt   r   rv  r9   r:   )r=   r   r   r9  r  s        r   $test_groupby_multiindex_missing_pairr    s    	******!\\	
 	

 
B 
x*	+	+B8X"6TBBJ
..

C

 ,,,Xx4H  C aS1#sO3	
B
B
BC#s#####r   c                     t          j        g dddg          } t          g dg|           }|j                                        sJ t          g dg dg d	g
          }|                    dddgd          }|                                }|j                                        rJ t          j        ||           |	                    d          
                                }t          j        t                    5  |	                    d          
                                }d d d            n# 1 swxY w Y   t          j        ||           t          g dg dg dd                              ddg          }|j                                        rJ ddddgfD ]}dD ]}|	                    ||d                              t          j                  }|}t          j        ||           |                                	                    ||d                              t          j                  }|                                }t          j        ||           d S )N))r    )b1c1)b2c2r   r  rt  rT   rJ   r   r  r  )rT   r  r  rJ   )rT   r	  r
  r   )r   rz   r   r"  )r,   r   r   )r   r   r   r   rT   rT   r%   r%   rT   r%   rJ   r   rP   r  zrP   r  r   rT   )FTF)r   r  rS   )r   rv  r	   r   _is_lexsortedpivot_tabler  r9   r:   r3   ri   assert_produces_warningr   r
  r,   ru   drop_duplicatesr  )lexsorted_milexsorted_dfnot_lexsorted_dfr   r   r=   r   r  s           r   %test_groupby_multiindex_not_lexsortedr    s    )///Sz  L iii[,???L--///// !$$$,>,>,>@R@R@R+S   (33C:c 4   (3355'5577777 ,(8999##C((--//H		#$6	7	7 6 6!))#..33556 6 6 6 6 6 6 6 6 6 6 6 6 6 6(F+++ 
"""LLLII
 
ic
  x%%'''''QA 4 4! 	4 	4DZZe$5ZIIOO) F H!(F333 u4EBBy011 
 }}H!(F3333	44 4s   (D55D9<D9c                     t          t          d          g d          } |                     t          d                    }|                    d           }| j        g d         }t          j        ||           | d         }|                    t          d                    }|                    d           }|                    g d          }t          j        ||           | j	        
                    t                    | _	        |                     t          d                    }|                    d	           }| j        g d         }t          j        ||           | d         }|                    t          d                    }|                    d
           }|                    g d          }t          j        ||           d S )NABCDE)r%   r   r%   rT   rT   r+   ababbc                 (    t          |           dk    S rm   rq   rO   s    r   rQ   z4test_index_label_overlaps_location.<locals>.<lambda>      A
 r   r  r   c                 (    t          |           dk    S rm   r  rO   s    r   rQ   z4test_index_label_overlaps_location.<locals>.<lambda>  r  r   c                 (    t          |           dk    S rm   r  rO   s    r   rQ   z4test_index_label_overlaps_location.<locals>.<lambda>  r  r   c                 (    t          |           dk    S rm   r  rO   s    r   rQ   z4test_index_label_overlaps_location.<locals>.<lambda>  r  r   )r	   r4   r3   filterr2   r9   r:   r4  rs   r,   r   r   )r=   r   actualr   r<   s        r   "test_index_label_overlaps_locationr#    s    
4==	8	8	8B


4==!!AXX**++Fwyyy!H&(+++
Q%CDMM""AXX**++Fxx			""H68,,, xu%%BH


4==!!AXX**++Fwyyy!H&(+++
Q%CDMM""AXX**++Fxx			""H68,,,,,r   c                  z   d} t          j        |           }t          |dz  d|z  d|z  d          }t          |dz  dz  d|z  d|z  d          }|                    d          }|                    d          }|                    d          }|                    d          }t          j        ||           d S )	NrK  r%   r         @r  r   r   ri   )r7   r8   r	   r3   rv   r9   r:   )nrP   r=   r  r>   r   gb2r   s           r   "test_transform_doesnt_clobber_intsr(    s    	A
	!A	acAgC!G<<	=	=B
!q&3,S1W37CC
D
DC	CB\\&!!F
++c

C}}V$$H&(+++++r   sort_columnintsfloatsstringsgroup_column
int_groupsstring_groupsc                      t          g dg dg dg dg dd          }|                               }|                    |          } fd}|                    |           d S )	N)rJ   rT   r   rT   r   rJ   rJ   rJ   )r  r   r  r   r   r   r   r   )r*  rZ   r   r$   r%   rI   rT   rT   )gffffff@g333333@g@g333333g@皙?r1  r$   )r  r"  r   r   wordword24247)r.  r/  r*  r+  r,  r  c                 Z    t          j        | |                                          d S )Nr  )r9   r:   r  )rP   r)  s    r   	test_sortz.test_groupby_preserves_sort.<locals>.test_sort  s*    
a+!>!>?????r   )r	   r  r3   ru   )r)  r-  r=   r   r7  s   `    r   test_groupby_preserves_sortr8    s     
222EEE,,,===HHH	
 	

 
B 
;	'	'B


<  A@ @ @ @ @ GGIr   c                     t          t          t          j                    dd                                          t          dd          d          } |                     d          j        j        | d<   |                     d          j        j	        | d<   t          j        t          d	
          5  |                                                     dddd           d d d            d S # 1 swxY w Y   d S )Nrd   Mr#   r  r   )	eventDatethenamer<  r   r   z	'badname'r_   badnamer  )r,   r   r   aggfunc)r	   r   r   todaytolistr5   r
  r,   r   r   rw   rx   r~  r  r  rS  s    r   !test_pivot_table_values_key_errorrB    s-   	#HN$4$4bsKKKRRTTQ||	
 	

 
B k**05BvJ,,{++17BwK	x{	3	3	3 
 

$$')W 	% 	
 	
 	

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
s   3,C,,C03C0r   r)   rf  r   r  r   rT   z
US/Easternr'   
2016-01-01rJ   r>  r;  Int64r   Float64boolean)boolintr   rm  r(  dt64dt64tzperiodrD  rE  rF  )idsmethod)r  rt   ru   )r   idxminr  r  rX   r  r  c                    d }t          t                    rWt                    dk    rDdv r@t          j                            t          d          }	|j                            |	           t          t                    rdv rd}t          d         t                    rdv rd	}t          d
t          d                    }
t          d          r$|
j        j        k                                    sJ |
j        d d         }
|
                    d|          |          fd}fd}t          |
j        d         t&          j                  }|
j        d         j        dk    }t          t                    }t          t                    rj        sdv rd d}t          j        t0          |          5   |             d d d            n# 1 swxY w Y   t          | t                    r+ |d          } |            }t3          j        ||           d S dv r|s|s|rdk    rd}n|rd}n|rd}nd}t          j        t0          |          5   |             d d d            n# 1 swxY w Y   t          | t                    sd S dk    rd S  |d          }|
                              g          }|r
 |            }t3          j        ||           d S  |            }|
                              |          }||                    |          }t                    dk    rd         |j        _        t3          j        ||           d S )NrT   )r   rN  z0attempt to get arg(min|max) of an empty sequence)rx   r`   )rX   r  rD  r   )r  rX   rD   r-   ABCr  rC   F)rS   r  c                  j    dk    r t                    di | S  t                    fi | S )Nr  rN   )r&  )kwargsr>   rM  rp  s    r   
get_resultz&test_empty_groupby.<locals>.get_resultv  sN    V"72r??,,V,,,&72v&&r44V444r   c                      t          dgj                  } t                    dk    rt          j        | | g          }nt          | d                   }t          g g |          }|S )Nr   r   rT   rt  r  r  )r   rC   rq   r   rz  r   r	   )levr9  r   rf  r   s      r    get_categorical_invalid_expectedz<test_empty_groupby.<locals>.get_categorical_invalid_expected|  sv    
 1#V\222t99>>)3*DAAACC $q'***CR3777r   r:  )r  r  zCannot perform z with non-ordered Categoricalr_   TrE  )r  rX   r  r  z!does not support reduction 'skew'z datetime64 type does not supportzPeriod type does not supportzcategory type does not support)rh  r   rq   rw   markxfailr  node
add_markerr   rG  r	   r4   hasattrr   rC   r5  r2   r3   r.   PeriodDtypekindorderedrx   rn  r9   assert_equalr
  r   r,   rh   )r   rf  r   rM  rp  requestusing_array_managerr  override_dtyperW  r=   rS  rV  is_peris_dt64is_catr   r   r   r>   s    ````              @r   test_empty_groupbyrf  1  si   N N 	6;''&IINN&&&{  %W ! 
 
 	%%%&,'' !B/,A,A &)T"" !r_'<'< 	f6::DKK	P	P	PBvw 1	V\)..00000	!B	DU6	:	:7	CB5 5 5 5 5 5 5       	!bn55Fil3&G,,F&+&& 
v~ 
"BVBVAAAA]9C000 	 	JLLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 gt$$ 	.ZT222F7799HOFH---	$$$ !	f !	 !	 V||9 78 746y444  
               gt,, v $666 <<--b1 B??AAH111Z\\F||D!!'*H!??>22
4yyA~~"1gOFH%%%%%s$   G((G,/G,/JJ
J
c                  p   t          t          j                            dd                    } | d                             t          j                  | d<   g d| _        |                     | d         d          }|                    d           }|j	        | j	        k    
                                sJ d S )	Nr   r   rJ   r   rT   r%   r   rT   FrR   c                     | S rV   rN   rO   s    r   rQ   z<test_empty_groupby_apply_nonunique_columns.<locals>.<lambda>  s    Q r   )r	   r7   rn   rY  r   rD   r   r3   ru   r   r5  )r=   r>   r   s      r   *test_empty_groupby_apply_nonunique_columnsrj    s    	29??1a((	)	)BqELL""BqEBJ	BqEe	,	,B
((;;

CJ")#((*******r   c                     t          g dg dg dg dd          } t          j        t          d          5  | g d                             d           d d d            n# 1 swxY w Y   |                     d          d                                         }t          d	gdt          d
gd                    }t          j	        ||           d S )N)rT   rT   rT   rT   )r%   r%   r%   r%   )r   r   r   r  z
('a', 'b')r_   r  r   r  r   rT   r  r  )
r	   rw   rx   r~  r3   rX   r   r   r9   rs   r  s      r   test_tuple_as_groupingrl    s"   	$		
 	

 
B 
x}	5	5	5 0 0
???##J///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ZZ
##C(,,..Fqc5!:+F+F+FGGGH68,,,,,s   A""A&)A&c            	      *   t          dt          d          t          j        ddgddgg                    } t	          j        t          d          5  |                     d                                           d d d            d S # 1 swxY w Y   d S )	NrT   rJ   r%   r   r  z
^\(7, 8\)$r_   )rZ   r*  )	r	   r5   r   rz  rw   rx   r~  r3   ri   rS  s    r   test_tuple_correct_keyerrorrn    s    	1E!HHj.E1vPQSTvFV.W.W	X	X	XB	x}	5	5	5 " "


6!!!" " " " " " " " " " " " " " " " " "s   (BBBc            
         t          dgdggt          dgd          t          dddd	          
          } t          g dg dgt          j        dg d          t          dddd	          
          }|                     t          d                                        ddg          }t          j	        ||           d S )NrT   r   mycolsr  
2018-01-01r%   r>  dti)r#   r  rh   r  )rT   rT   rT   rT   rT   ))r   rX   r   )r   ohlcopen)r   rs  r  )r   rs  r  )r   rs  close)rp  NNrt  )r  rX   rs  )
r	   r   r   r   rv  r3   r
   rt   r9   r:   r  s      r   test_groupby_agg_ohlc_non_firstrv    s    	
qc
ugH---qsGGG
 
 
B 	///*& )((	
 	
 	
 qsGGG  H ZZS)))**..v??F&(+++++r   c                     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          }t          g d	|
          }|                    d                                          }t          ddgddg
          }t          j	        ||           d S )Nr   i  rT   r%   r   rJ   datert  )rJ   r%         @r   r+   r  r%  ry  )
r.   r1   r   r   rv  r   r3   ri   r9   rs   )r   r{  r<   r   r   s        r   test_groupby_multiindex_natrz  
  s     
	$1		s#	$1		s#	$1		s#	F 
	vtn	=	=	=B
r
*
*
*C[[q[!!&&((FsCjc
333H68,,,,,r   c                     t          t          d          t          d                    } t          | ddg          }d}t          j        t
          |          5  |                    g g           d d d            d S # 1 swxY w Y   d S )Nrc   appler   r  z$Grouper and axis must be same lengthr_   )r  r5   r	   rw   rx   r  r3   )r   r=   r   s      r   test_groupby_empty_list_raisesr}    s    rE"II&&F	6GS>	2	2	2B
0C	z	-	-	-  


B4                 s   A??BBc                  V   ddgddgddgg} g d}t          j        | |          }t          ddg|	          }|                    d
dg                                          }dgdgg} d
dg}t          j        | |          }t          dg|          }t          j        ||           d S )NrP   r   r   r|   )r   r  thirdrt  rT   r%   r  r   r  rJ   r+   )r   from_arraysr   r3   rX   r9   rs   )index_arrayindex_namesrir  r   eir   s          r   8test_groupby_multiindex_series_keys_len_equal_group_axisr  #  s    :SzC:6K...K		;	?	?	?BQF"%%%AYY)**..00F53%.KG$K		;	?	?	?Bqc$$$H68,,,,,r   c                     t          j        ddgddggddg          } t          g dg d	d
|           }|                    t	          d          dg          }|                    ddg          }|j        |j        k    sJ |                    dt	          d          g          }|                    ddg          }|j        |j        k    sJ d S )Nr   r   r)   r>  r  betart  )rT   r%   rT   r%   r  rH  r+   r  )r   rz  r	   r3   r
   r1  )r{  r=   r   r   s       r   "test_groupby_groups_in_BaseGrouperr  3  s     
	 3*sCj!9'6AR	S	S	SB	<<<==R	H	H	HBZZw///899Fzz7F+,,H=HO++++ZZw!7!7!7899Fzz67+,,H=HO++++++r   
group_namerP   c                    t          t          j        d                              dd          g dg d          }d|j        _        d|j        _        |                    | d	
                                          }|j	                            |                                           j	        }t          j        ||           g dddgg}t          j        |ddg          }t          t          j        d                              dd          g d|          }|                    | d	
                                          }|j	                            |                                           j	        }t          j        ||           d S )Nr[   rJ   r   )r   rT   r   )rc   rd   rc   rd   r  r  rP   rT   r   )r   r  r   ra   rb   x1)	iterablesr     rK  )r	   r7   r8   r  r,   rh   r   r3   rX   r   r9   r:   r   rz  )r  r=   resultsr   r  r{  s         r   test_groupby_axis_1r  A  sg    

	"a##999>N>N>N
 
 
B BHMBJOjj!j,,0022Gt||J''++--/H'8,,, '&&7I		 9S$K	H	H	HB	29R==((A..iii	L	L	LBjj!j,,0022Gt||J''++--/H'8,,,,,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           	         | g dt          d          t          d          d d t          d          t          d          gd}t          |                              fd          }|                    d	          } t	          ||                      }t          |                              fd
          }t          j        ||           d S )N)r   r   r   r   r   r   r  r  r  r  )rh  r  c                 B    | j         j                                      S rV   r  r  tz_localizerP   r(   s    r   rQ   z+test_shift_bfill_ffill_tz.<locals>.<lambda>  s    qvy/D/DR/H/H r   )r  rh  c                 B    | j         j                                      S rV   r  r  s    r   rQ   z+test_shift_bfill_ffill_tz.<locals>.<lambda>  s    9N9Nr9R9R r   )r   r	   assignr3   r&  r9   r:   )tz_naive_fixturerp  r   rz   r=   r{   r   r(   s          @r   test_shift_bfill_ffill_tzr  W  s    \ 
B,,,+,,+,,+,,+,,

 
D 
4		%H%H%H%H		I	IBjjG!WWb!!##F""))/R/R/R/R)SSH&(+++++r   c                      t          d gdd          } |                     d          d                             d          }t          t          j        gd          }t          j        ||           d S )NrT   )r   rP   r   rP   rX   r  )r	   r3   rv   r   r7   r   r9   rs   )r=   r"  r   s      r   test_groupby_only_none_groupr    sl     
$a((	)	)BZZ__S!++E22FrvhS)))H68,,,,,r   c                      t          g dg d          } |                     d          }|                                }t          g dg d          }t          j        ||           d S )N)r%   r$   rK  r*  )r   r   r   r!  r+   r   r  )r%   g      @r*  )r   r   r!  )r   r3   ri   r9   rs   )r<   r>   r   r   s       r   test_groupby_duplicate_indexr    sr    
%9%9%9
:
:
:C	1		BWWYYFkkk999H68,,,,,r   c                 |   t          dt          d          ddggg d          }|d                             t                    |d<   |d                             t                    |d<   |                    d	d
g          }| dk    rd}nd} |j        d d                             d	g          j        | g|R  } |                    d	g          j        | g|R  j        d d         }| dv r|                    t                    }t          j	        ||            |d         j        d d                             d	g          j        | g|R  } |d                             d	g          j        | g|R  j        d d         }| dv r|                    t                    }t          j	        ||           d S )NrT   r@  rJ   r   )col_1col_2col_3col_4rz   r   r  r  r  r  fillna)r  rN   r   )diffr  )
r	   r   r   rH  r
  r2   r3   rv   r9   r_  )transformation_funcr`  r=   argsr   r   s         r   test_group_on_empty_multiindexr    s    
)G$$a+,444
 
 
B W+$$S))BwKW+$$S))BwK	w(	)	)Bh&&5RWRaR[  '++56IQDQQQF.rzz7)$$./BJTJJJOPRQRPRSH///??3''OFH%%% 	:7!$$gY//9:MUPTUUU  	17WI&&01DLtLLLQRTSTRTU  ///??3''OFH%%%%%r   r9  r   r  )r   r   r  r   rt  c                 $   | dv rt          j        d|             t          ddgg|          }|                    dg          }t	          | |          } t          ||           | }|j        dk    sJ t          j        |j	        |           d S )N>   r  r  cumcountzNot applicable for rT   r  r   r   )
rw   r  r	   r3   r   r&  shaper9   r  r   )groupby_funcr9  r=   grp_byr  r   s         r   test_dup_labels_output_shaper    s     5558,88999	QF8S	)	)	)BZZ__F"<44D*WV\**D1F<6!!!!&.#.....r   c                    t          ddd          }t          ddgddgddgd          }d	|j        _        ||_        |                    |           }|s|j        }|                    |d
          }|                                }t          ddgddgd|          }d|j        _	        |s|j        }t          j        ||           |dk    r&|g                              |d
          }|g          }nL|j        g                              |d
          }|j        g                              t          j                  }|                                }	t          j        |	|           d S )NrC  r%   r   )r#   rh   rT   rJ   r   )rE  )r   r)   )r>  r   )r   r  )r   r   )r   r>  r+   r   )r   r	   r   r  r,   _get_axis_numberr   r3   nuniquerh   r9   r:   r   r   r7   rF   )
r   rr  r=   axis_numberr>   r   r   r'  r  r   s
             r   test_groupby_crash_on_nuniquer    sn   
\15
9
9
9C	AQFAOO	P	PB%BJBH%%d++K T	A	.	.BZZ\\F1vQF333???H!H :&(+++afnn+Qn77rl fRj  k ;;l2%%bj11
++--C#s#####r   c                      t          t          j        dd                              dd          t                    } |                     dg                                          }t          j        ||            d S )Nr   rI   rJ   r   r  )	r	   r7   r8   r  r   r3   ri   r9   r:   )r   r   s     r   test_groupby_list_levelr  	  sk    1a00A66eDDDHQC((--//F&(+++++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], ...})rT   z{0: [0], ...}c                    t          t          j                            dd                    }|j        |d<   t          j        d|           5  |                    d          j        	                                }||k    sJ |                    t          j
        |j                            j        	                                }||k    sJ 	 d d d            d S # 1 swxY w Y   d S )Nr$   rT   r   zdisplay.max_seq_items)r	   r7   rn   rY  r,   r.   option_contextr3   r1  __repr__rZ  r   )max_seq_itemsr   r=   r   s       r   test_groups_repr_truncatesr  	  s    
29??1a((	)	)BhBsG		2M	B	B " "C'0022!!!!BHRTNN++2;;==!!!!!" " " " " " " " " " " " " " " " " "s   B CC"Cc                  d   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        
          i}t          |          dk    sJ d}||         ||         k                                    sJ d S )NrT   r%   c   r  X   r   r   r   r   r   )	r	   r
  r3   r2  r7   rZ  rD   rq   r5  )r=   r   r   r   r   s        r   6test_group_on_two_row_multiindex_returns_one_tuple_keyr   	  s    	!!"--QQR/H/HI	J	JB	sCj	!	!B
**c3Z
 
 C[F!Qrx8889Hv;;!
C3K8C=(--///////r   zklass, attr, valuer   r  rS   observedr  c                    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    sJ d S )	NrT   r%   rJ   r  r   r   r   )r   )r	   r
  r3   r&  )r  r  r   r=   r   r   s         r   #test_subsetting_columns_keeps_attrsr  .	  s    & 
!A3aS11	2	2Bv~~\\#rz//$//H % 2 2Xse__F64  GHd$;$;;;;;;;r   c                     t          dgdgdgd                              g dd          } d}t          j        t          |          5  | d	d
g                                          d d d            d S # 1 swxY w Y   d S )NrT   r%   rJ   r-   r  r   z'Cannot subset columns when using axis=1r_   r   r   )r	   r3   rw   rx   r  rX   )r   r`   s     r   test_subsetting_columns_axis_1r  J	  s    1#QC001199)))!9LLA5E	z	/	/	/  	3*                 s   A55A9<A9r  )rX   anyr  c                     t          dgd          }t          dgg|          }|                    dg          } t          ||                       j        }t          j        ||           d S )Nr   r9  r  rT   r  )r   r	   r3   r&  r   r9   r  )r  r   r=   r   r   s        r   #test_groupby_column_index_name_lostr  R	  sr     cU'''H	QC5(	+	+	+BQCJ&WZ&&((0F&(+++++r   c                  V   t          g dg dg dd                              t                    } g d| _        |                     g d                                          }t          g dgt          j        dg          g dt          	          }t          j	        ||           d S )
N)r   r   r   r#  r  r  r-   )r   r   r   )r   r   r   r   )r   r   rT   r   )r,   r   rC   )
r	   r   r  r   r3   r  r7   rZ  r9   r:   r  s      r   test_groupby_duplicate_columnsr  \	  s    	""")=)=)=LLLQQ
 
fVnn  !BJZZ%%))++F	rx}}oooV  H &(+++++r   c                     t          g dg dd          } d| j        _        |                     d                                          }t          dd	gd
dgd          }d|j        _        t          j        ||           d S )Nr  r  r  )r,   rh   )r   r   r   r  r%   r   rT   )r   r,   rh   r3   lastr9   rs   )r<   r   r   s      r   #test_groupby_series_with_tuple_namer  i	  s    
\\\

C
C
CCCIN[[q[!!&&((Fq!fQF<<<H$HN68,,,,,r   zGH#38778: fail on 32-bit system)reasonzfunc, valuesrX        @X@     X@ri   g     @8@g     8@c                    g d}t          ddgdz  ||d          } t          |                    d          |                       }t          ||dt          ddgd          	          }t	          j        ||           d S )
N 7yACr  a   b    7y1r  r  r  rT   r%   r   r   r   r   r   r   r  r+   )r	   r&  r3   r   r9   r:   )r  r   rz   r=   r   r   s         r   )test_groupby_numerical_stability_sum_meanr  s	  s     <;;D	aVaZd>>	?	?B/WRZZ(($//11FvF335!Qg;V;V;VWWWH&(+++++r   c                     g d} t          ddgdz  | | d          }|                    d                                          }dgdz  dd	gz   d
dgz   ddgz   }t          ||d          }t          j        ||d           d S )Nr  rT   r%   r   r  r   r  g07yACg17yACga7y1Cgb7y1Cr  r  r   T)check_exact)r	   r3   r  r9   r:   )rz   r=   r   exp_datar   s        r   'test_groupby_numerical_stability_cumsumr  	  s     <;;D	aVaZd>>	?	?BZZ  ''))F	
i++y).DDd|S  xh7788H&(======r   c                  z   t           j                            dd          } t          |           }t	          d          D ]}t           j        |j        ||f<   d|d<   |                    d          }|                    d          }|g d                             d          }t          j
        ||           d S )Nr$   rT   r   Fskipnar5  )r7   rn   rY  r	   r5   r   r2   r3   r  r9   r:   )r`  r=   ir>   r   r   s         r    test_groupby_cumsum_skipna_falser  	  s    
)//!Q

C	3B1XX  1BsG	CB
))5)
!
!C///")))77H#x(((((r   c            	      j   t          dd          } t          |           | d         z
  }t          j        |d<   t	          d|d          }|                    d          }|                    d	d
          }t	          d|d         |d         t          j        |d         |d         dz  gi          }t          j        ||           |                    d	d	          }t	          d|d         |d         t          j        t          j        t          j        gi          }t          j        ||           d S )NrC  r$   r"   r   r%   rT   rE  r   FT)rF  r  r   r   )	r   r   r.   r1   r	   r3   r  r9   r:   )rr  r<   r=   r>   r   r  s         r   test_groupby_cumsum_timedelta64r  	  s   
\1
-
-
-C
++A
CVCF	%%	&	&B	CB
))t)
4
4C
S3q63q6263q63q6A:FG
H
HC#s###
))u)
5
5C
S3q63q6262626BC
D
DC#s#####r   c                     | }|                     d                                          }|                     |j                                                  }t          j        ||           d S )Nr   r  )r3   ri   r,   r9   rs   )(rand_series_with_duplicate_datetimeindexdupsr   r   s       r   !test_groupby_mean_duplicate_indexr  	  s^    3D\\\""''))F||DJ'',,..H68,,,,,r   c                  X   t          g dt          j        t          j        t          j        g          } |                     | j                                                  }t          g t          g t          j                  t          j                  }t          j
        ||           d S )Nr   r   rK   )r   r7   r   r3   r,   rX   r   rF   rD   r9   rs   )r  r   r   s      r    test_groupby_all_nan_groups_dropr  	  s    yyy262626233AYYqw##%%Fbb
 ; ; ;28LLLH68,,,,,r   c                 N   t          g g d          }|                    ddg|           }|                    |          }| r t          g g gg g gddg          }|sdgng }nt	          d	          }|sg dnddg}t          g ||
          }t          j        ||           d S )Nr-   r  r   r   r   rE  rt  r)   r   r  )r	   r3   rX   r   r   r9   r:   )r   rF  r=   r>   r   r,   r   r   s           r   test_groupby_empty_multi_columnr  	  s     
OOO	4	4	4B	S#J	2	2BVVV..F FB8b"Xc3Z@@@+33%%1)5E////C:WE:::H&(+++++r   c                  "   t          ddggddggddggddgggddg          } t          dddgddggit          ddgd	d
                    }|                     dg          }|                                }t	          j        ||           d S )Nr:  rT   Wrc   rd   MWr}   r  r  rC   rh   r+   r  )r	   r   r3   rX   r9   r:   r=   r   r>   r   s       r   *test_groupby_aggregation_non_numeric_dtyper  	  s    	
scA3Z#tsRDk:T3K
 
 
B 1a&2r(#	
 S#JhT:::	  H 
v		BVVXXF&(+++++r   c            	         t          g dd t          dd          D             d t          dd          D             d          } t          d t          dd	          D             d
 t          dd	          D             dt          ddgdd                    }|                     dg          }|                                }t          j        ||           d S )NrT   r   rT   rT   r   c                 .    g | ]}t          |d           S daysr   r   r  s     r   r   zDtest_groupby_aggregation_multi_non_numeric_dtype.<locals>.<listcomp>	  "    <<<1)Av&&<<<r   rT   rK  c                 4    g | ]}t          |d z  d          S rc   r  r  r  s     r   r   zDtest_groupby_aggregation_multi_non_numeric_dtype.<locals>.<listcomp>	  &    AAA)AFF++AAAr   r  c                 .    g | ]}t          |d           S r  r  r  s     r   r   zDtest_groupby_aggregation_multi_non_numeric_dtype.<locals>.<listcomp>	  r  r   rZ   rI   c                 4    g | ]}t          |d z  d          S r  r  r  s     r   r   zDtest_groupby_aggregation_multi_non_numeric_dtype.<locals>.<listcomp>	  r  r   r  r  r   rD   rP   r  r+   r  )r	   r5   r   r3   rX   r9   r:   r  s       r   0test_groupby_aggregation_multi_non_numeric_dtyper  	  s    	 <<a<<<AAU1a[[AAA	
 	

 
B <<a<<<AAU1a[[AAA	
 	
 QF'444  H 
u		BVVXXF&(+++++r   c            
         t          g dd t          dd          D             t          t          dd                    d          } t          t          dd          t          dd          gddgd	t	          d
dgdd                    }|                     dg          }|                                }t          j        ||           d S )Nr  c                 .    g | ]}t          |d           S r  r  r  s     r   r   zKtest_groupby_aggregation_numeric_with_non_numeric_dtype.<locals>.<listcomp>	  r  r   rT   rK  r  rZ   r  r*  r  r   rD   rP   r  r+   r  )	r	   r5   r4   r   r   r3   rX   r9   r:   r  s       r   7test_groupby_aggregation_numeric_with_non_numeric_dtyper	  	  s    	 <<a<<<eAqkk""	
 	

 
B F##Yq&%9%9:!QHHQF'444  H
 
u		BVVXXF&(+++++r   c                  :   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                    }t	          j        ||           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	   r3   r6   r   r9   r:   )dictsr=   	df_filterdfgbr   r   s         r   test_groupby_filtered_df_stdr  
  s     TtRVWWDdQUVVDdQUVVE
 
5		B2l#t+,I]++DXXZZF			777TF///  H
 &(+++++r   c            	         t          t          t          d                    t          t          g d          d          t	          j        g dddg          d	          } |                     d
dg          j        }d
t          d          ft          j
        dg          dt          d          ft          j
        dg          dt          d          ft          j
        dg          i}||k    sJ d S )Nabc)rq  z
2018-02-01z
2018-03-01categoryr   )r*   r   rT   r   rT   )
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   r4   r   r   
from_codesr3   r2  r   r7   rZ  r  s      r   2test_datetime_categorical_multikey_groupby_indicesr  
  s   	U$$FFFGG    '


1vFFF	
 	
	
 	
B ZZc
##+F	i-../1#	i-../1#	i-../1#H
 Xr   c                     dgdz  dgdz  z   } t           j        t           j        dddgt           j        ddddgz   }t          | |g          j        }dd	g|_        d
}t          j        t          |          5  |                    d          d	         	                    dd          
                                 d d d            d S # 1 swxY w Y   d S )NAlicer$   BobrT   r%   rJ   r   rh   r}  z<__init__\(\) got an unexpected keyword argument 'min_period'r_   )window
min_period)r7   r   r	   r   r   rw   rx   rn  r3   rollingrX   )name_lval_ltest_dfresult_error_msgs       r   #test_rolling_wrong_param_min_periodr#  4
  s'   Y]eWq[(FVRVQ1%Aq!(<<E((*GuoGOV	y(8	9	9	9 M M&..aA.FFJJLLLM M M M M M M M M M M M M M M M M Ms   7ACCCc                  .   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          j        ||           d S )N)Thomasr%  Thomas John)i  i    )sadhappyr)  )NameCreditMoodrX   )r,  r+  r*  r)  r(  i	  r'  r%  r&  )r,  r+  r*  )r	   r   moder3   rt   r
  r9   r:   )r=   aggregate_detailsr   expected_results       r   .test_by_column_values_with_same_starting_valuer0  @
  s    	777'''---	
 	

 
B "(>>ZZ!!%%&788Fu%w/Sk}-	
 	
  i  &/22222r   c                  6   g dg dg} t          dt          j        | ddg                    }|                    ddg	                                          }t          dd
gt          j        ddgddg                    }t          j        ||           d S )N)NrT   r   rT   )r%   rJ   r%   rJ   rT   r   r   rt  r+   r   r  r%   )r  r%   )r   rJ   )r   r   r  r3   rX   rv  r9   rs   )r`  r<   r   r   s       r   #test_groupby_none_in_first_mi_levelr2  W
  s    ??LLL
)C
*0S#JGGG
H
H
HC[[1v[&&**,,F	
A
&(';C:NNN H 68,,,,,r   c                     t          g dg dg dd          } |                     d g                                          }t          ddgdd	gd
t          ddgd                     }t	          j        ||           d S )Nr  )rT   rT   r%   rJ   )r   r$   rK  rZ   )Nr   r  r  r%   r$   rI      r  rT   r  r+   )r	   r3   rX   r   r9   r:   r  s      r   test_groupby_none_column_namer5  b
  s    	,,,\\\MM	N	NBZZD6Z""&&((F1vQG44E1a&t<T<T<TUUUH&(+++++r   c                      t          ddgt          j        dgt          j        dgdddg          } d |                     d	g          D             }d
dg}||k    sJ d S )NrT   r%   r$   r  rP   r  r+   c                     g | ]\  }}|S rN   rN   )r   r   r0  s      r   r   z5test_single_element_list_grouping.<locals>.<listcomp>m
  s    222fc1c222r   r   )rT   )r%   )r	   r7   r   r3   r  s      r   !test_single_element_list_groupingr8  j
  st    	!QrvqkDDSRUJ	W	W	WB22

C5 1 1222Fd|HXr   )rX   r  cumprodr  c                 2   d}t          d|gd          } t          |                    d          |                       |z
  }t          ddgit          dgd                    }| d	v r|                    d
          }t          j        ||           d S )Nl   L33ffrT   r   r   r   r   r  r+   )r  r9  Tr  )r	   r&  r3   r   r  r9   r:   )r  r}  r=   r   r   s        r   #test_groupby_avoid_casting_to_floatr;  r
  s     C	#''	(	(B+WRZZ__d++--3F#s5!3+?+?+?@@@H$$$''T'22&(+++++r   z	func, val)rX   rJ   )r  r%   c                    t          dddt          j        gd|           } t          |                    d          |                      }t          d|git          dgd|           |           }t          j        ||           d S )	NrT   r%   r   r   r   r   ru  rK   )r	   r.   NAr&  r3   r   r9   r:   )any_numeric_ea_dtyper  r}  r=   r   r   s         r   test_groupby_sum_support_maskr?  ~
  s     
!Q//7K	L	L	LB+WRZZ__d++--F	seQCc)=>>>"  H
 &(+++++r   z
val, dtype)o   rH  )   uintc           	         t          d| | gd| d          }|                    d                                          }t          d| dz  git          dgd| d          | d	
          }t	          j        ||           |                    d                                          }t          d| | dz  gi| d	          }t	          j        ||           |                    d                                          }t          d| | z  git          dgd| d          | d	
          }t	          j        ||           d S )NrT   r   8r   r   r   r%   ru  64rK   )r	   r3   rX   r   r9   r:   r  r  )r}  rC   r=   r   r   s        r   test_groupby_overflowrF  
  sk    
#s,,uKKK	@	@	@BZZ__  ""F	sQwiQCcE555lll  H
 &(+++ZZ__##%%F#S1W~.lllCCCH&(+++ZZ__!!##F	sSykQCcE555lll  H
 &(+++++r   zskipna, val)TrJ   c                    t          ddt          j        dgd|           }|                    d                              |          }t          ddt          j        |gi|           }t          j        ||           d S )NrT   r%   r   r   r   r  r   )r	   r.   r=  r3   r  r9   r:   )r>  r  r}  r=   r   r   s         r   test_groupby_cumsum_maskrH  
  s     
!RUA//7K	L	L	LBZZ__##6#22F	q"%o"  H &(+++++r   zval_in, index, val_out)r   r   r%  r   r!  )r   r   r   r  blah)r%  r   r!  r%  )r   r   r%  r   r!  g      @)r   r   r   r  rI  rI  )r%  r   g      &@r%  c                    t          | dt          |d                    }|                    d                                          }t          |dt          g dd                    }t	          j        ||           |                                                    d                                          }|                                }t	          j        ||           d S )Nr   rI  r  )rz   rh   r,   )r   r  rI  r   )r   r   r3   rX   r9   rs   r0   r:   )val_inr,   val_outseriesr   r   s         r   (test_groupby_index_name_in_index_contentrN  
  s    " heE6O6O6OPPPF^^F##''))F111???  H
 68,,,__&&v..2244F  ""H&(+++++r   r&  )rT   rc       r  r  c                 .   t          ddg| z  d          }|d                             d          |d<   |                    d                                          }t          d| git	          dgd                    }t          j        ||           d S )NrT   T)r  rG  rG  r  r  r+   )r	   eqr3   rX   r   r9   r:   )r&  r=   r   r   s       r   test_sum_of_booleansrR  
  s     
1tfqj99	:	:BFt$$BvJZZ&&**,,F&1#eQCm.L.L.LMMMH&(+++++r   z<ignore:invalid value encountered in remainder:RuntimeWarning)r/  tailr  r   r  c                 
   t          dt          j        dt          j        dgt          d          d          }| dk    r. t	          |                    d          |           d	          }n+ t	          |                    d          |                       }| d
v r8t          dg di                              t          g dd                    }nt          g dg ddg d          }t          j	        ||           d S )Nr   r   r  r$   rE  r  r   r   )r&  )r   r  r   r  r  r  r+   )
r	   r7   r   r5   r&  r3   r
  r   r9   r:   )rM  r=   r   r   s       r   test_groupby_method_drop_narU  
  s	    
#rvsBFC8uQxxHH	I	IB1C&11A6661C&1133"""c999-..88???---
 
 ???CC999UUU&(+++++r   c                  |   t          j        ddd          } t          t          d                    dz  }|                                 }|                    |          }t          j        t          d          5  |	                                 d d d            n# 1 swxY w Y   t          j        t          d          5  |
                                 d d d            n# 1 swxY w Y   t          j        t          d	          5  |                                 d d d            n# 1 swxY w Y   t          j        t          d
          5  |                                 d d d            n# 1 swxY w Y   |                                }|dd          }t          t          d          t          j                  |_        t%          j        ||           |                                }|d d         }t          t          d          t          j                  |_        t%          j        ||           d S )NrC  r  r>  r;  rc   z+Period type does not support sum operationsr_   z.Period type does not support cumsum operationsz,Period type does not support prod operationsz/Period type does not support cumprod operationsir   )r.   period_ranger4   r5   	to_seriesr3   rw   rx   rn  rX   r  r  r9  r  r   r7   int_r,   r9   rs   r  )pigrpsr<   r>   r   r   s         r   test_groupby_reduce_periodr\  
  s   	s	=	=	=Bb		??RD
,,..C	T		B	y(U	V	V	V  
              	I
 
 
   			               
y(V	W	W	W  
			              	J
 
 
   	

              
 &&((C344yH599BG444HN3)))
&&((C3B3xH599BG444HN3)))))sH   ;BB #B C##C'*C'	D**D.1D.E11E58E5c                      t          g dg          } g d| _        |                     | d                   }|j        }|                     g dd          }t          j        ||           d S )N)r   rT   r%   rJ   rh  rT   )r   r%   rJ   r   )r	   r   r3   _obj_with_exclusionsr4  r9   r:   )r=   r>   r   r   s       r   *test_obj_with_exclusions_duplicate_columnsr_    so    	LLL>	"	"BBJ	BqE		B$Fwwyyyqw))H&(+++++r   )r   decimalr   numpyr7   rw   pandas.compatr   pandas.errorsr   r   pandasr.   r   r	   r
   r   r   r   r   r   r   r   r   pandas._testing_testingr9   pandas.core.arraysr   pandas.core.commoncorecommonr  pandas.tests.groupbyr   r   rB   rW  parametrizer   r   r   r   r   r   r   r  r  r'  r;  rC  rI  r]  r_  rj  ro  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&  r1  r3  rC  rF  rJ  rL  rV  rY  r[  rc  rj  rs  rx  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r#  r(  r8  rB  rW  rZ  rf  rj  rl  rn  rv  rz  r}  r  r  r  r  r  r  r  rv  r  r  r  r  r  r  r  r  r  r  rX  r  r  r  r  r  r  r  r  r  r	  r  r  r#  r0  r2  r5  r8  r;  r?  rF  r=  rH  rN  rR  filterwarningsrU  r\  r_  rN   r   r   <module>rn     s^                                
                                    + + + + + +                   8 8 8 8 8 8  , , ,6 "J"J"JKK,+ ,+ LK,+^- - -.;& ;& ;&|*I *I *IZ dE]33) ) 43)(, , ,    FFF , , ,64# 4# 4#n     0%& %& %&P# # #&: : :6  8+ + +-+ -+ -+`3 3 3l  1 13E3EFGG- - HG-@- - - * * *5+ 5+ 5+p, , ,@. . .2& & &, , ,., , ,@ @ @6 6 6$	+ 	+ 	+< < <. 
EN , ,	 , :::  $770 0 87	 
02    ' ' '0( ( (+ + +&( ( (. . ..  @- - -, , ,.' ' '#; #; #;L, , ,, , ,(
 
 
, , ,- - -"( ( (&, , ,	, 	, 	,    * * *.< < <	- 	- 	-B B B
, 
, 
,  <& <& <&~  	8 	8 	8# # #&0 &0 &0R& & &- - -(  , , ,- - - S3*$566  764# # # . . .@ @ @*5 5 56$ $ $*14 14 14h- - -:, , , Xy68"4vy6IJ  \?\?4ST   	 2
 
 
$ S3%L113%#s!455		
		QC	Q
1a|,,,ac:::!G$$$!I&&&%	***	 	 	   : #;#;#;<<
C
C
C s& s&  =<;  65 21Fs&l+ + +- - -&" " ", , ,8- - -   - - - , , , cU|44- - 54-*  I344I344		
 I344I344I344I344I344I344		
 I344I344I344I344I344I344		
7(+ +X, ,Y+ +X,,- - -- - -& & &> 	sCju%%%
7u~NNN / / / $  $  $F, , ,    
" 
" 
"0 0 0 	GS!	J&	FE"	L%(	J%	He$	#	U#		u%	T"	5! "< <# "<   !8!8!899, , :9,
, 
, 
,- - - t8$EFFedD\*VeT],CD , ,  GF, t8$EFF	> 	> GF	>) ) ) $ $ $$- - -- - - $77, , 87,, , ,$, , ,., , ,(, , ,(  *	M 	M 	M3 3 3.- - -, , ,   !E!E!EFF, , GF, z;&?@@	, 	, A@	, m'DEE, , FE,0 UBEN(CDD, , ED,  &%%000   	
 +**888!!!	
 , , ,  44455, , 65, B  #K#K#KLL, , ML ,$* * *>, , , , ,r   