
    A>i`                        S r SSKrSSKrSSKJr  SSKrSSKrSSKJr  SSK	J
s  Jr  SSKJr  SSKrSSKJrJrJrJrJrJr  SSKJr  SSKJr  SSKJr  S	 rS
 rS r S r!S r"S r#S r$S r%S r&S r'\RP                  RS                  SS S S //5      S 5       r*S r+S r,S r-S r.S r/S r0S r1S r2S  r3S! r4S" r5S# r6S$ r7S% r8\RP                  RS                  S&S' S( S) S* S+ S, /5      S- 5       r9\RP                  RS                  S.S//\" S0/S/S194S/S2/\" S0/S3//S/S//S/S2/S494/5      \RP                  RS                  S5/ S6Q5      \RP                  RS                  S7/ S6Q5      \RP                  RS                  S8/ S9Q5      S: 5       5       5       5       r:\RP                  RS                  S.S//\" S0/S/S194S/S2/\" S0/S3//S/S//S/S2/S494/5      \RP                  RS                  S;/ S<Q5      \RP                  RS                  S=\;\<\=/5      \RP                  RS                  S8/ S9Q5      S> 5       5       5       5       r>S? r?S@ r@\RP                  RS                  S=\R                  \R                  /5      \RP                  RS                  SA/ SBQ5      SC 5       5       rCSD rD\RP                  RS                  SE\R                  " \F" SF5      5      \R                  " SSG5      \R                  " SHSGSISJ9\R                  " / SKQ5      /5      SL 5       rJSM rKSN rL " SO SP5      rM " SQ SR5      rN\RP                  RS                  SSSTSU\R                  4SVS0SG/SWSX/SYSZ/4SUS[ 4SUS\ 4S]\R                  4S0SG/S0S0/SYSZ/4\R                  " SUS^5      \R                  " S]\R                  5      \R                  " SUS_ 5      S0SG/SYSZ/S0S0/4/5      S` 5       rQSa rRSb rS\RP                  RS                  ScSdSe/0/ Se/Sf./5      Sg 5       rTSh rUSi rVSj rWSk rXSl rY\RP                  RS                  SmSn So Sp /5      Sq 5       rZSr r[\RP                  RS                  SmSs \[/5      St 5       r\Su r]\RP                  R                  SvSw9Sx 5       r_ " Sy Sz5      r`S{ raS| rb\RP                  RS                  S}SeSeS~.S0S/S/Sd/S~.4SSe0SS/Sd/04SSe0SS0S/04/5      S 5       rc\RP                  RS                  S}SeS^/SeS~.SS/4SeSeS^/S~.SS/4SSeS^/0SS/4/5      S 5       rdS reS rfS rgS rhS riS rjS rk\RP                  RS                  S/ SQS/4/ SQS/4/5      S 5       rl\RP                  RS                  SSSS/4SSS/4/5      S 5       rm\RP                  RS                  Sm/ SQ5      S 5       rn\RP                  RS                  SSS/SS/SS//SS/SSS//S.4SS/SS/SS//SS/SS/S/S.4S/S0/S/S0/S2S3/S2SG//S/S2/S0S3SG//S.4\R                  " S/S0/S/S3/S2SG/S2SG//S/S2/S0S3/SG/S.\RP                  R                  S9/5      S 5       rpS rqS rrS rsS rtS ruS rvS rwS rxS ryS rzS r{S r|\R                  " S5      \RP                  RS                  S=/ SQ5      S 5       5       r~\R                  " S5      S 5       r\R                  " S5      S 5       r\R                  " S5      S 5       rS rS rg)zN
test .agg behavior / note that .apply is tested generally in test_groupby.py
    N)partial)SpecificationError)is_integer_dtype)	DataFrameIndex
MultiIndexSeriesconcatto_datetime)ArrowExtensionArray)Groupingc                  x    [        / SQ/ SQS.5      n U R                  S5      S   nS nUR                  U5        g )Nabcr               )keyvaluer   r   c                 D    [        U 5      S:w  d   eU R                  5       $ Nr   )lensumxs    l/var/www/html/land-tabula/venv/lib/python3.13/site-packages/pandas/tests/groupby/aggregate/test_aggregate.py
dummy_func3test_groupby_agg_no_extra_calls.<locals>.dummy_func$   s    1v{{uuw    )r   groupbyagg)dfgbr!   s      r    test_groupby_agg_no_extra_callsr(      s8    	/,G	HB	E	7	#B FF:r#   c                     U R                  S S /5      nUR                  S5      nUR                  5       n[        R                  " X#5        g )Nc                     U R                   $ Nyearr   s    r    <lambda>&test_agg_regression1.<locals>.<lambda>,   s    r#   c                     U R                   $ r+   monthr   s    r    r.   r/   ,   s    177r#   meanr$   r%   r3   tmassert_frame_equal)tsframegroupedresultexpecteds       r    test_agg_regression1r;   +   s>    oo/1BCDG[[ F||~H&+r#   c                 D   U R                  S5      S   nSn[        R                  " [        US9   UR	                  S 5        S S S 5        [        R                  " [        US9   UR	                  S 5        S S S 5        g ! , (       d  f       NC= f! , (       d  f       g = f)NACzMust produce aggregated valuematchc                 "    U R                  5       $ r+   )describer   s    r    r.   #test_agg_must_agg.<locals>.<lambda>7   s
    ajjlr#   c                      U R                   S S $ Nr   indexr   s    r    r.   rC   9   s    aggbqkr#   )r$   pytestraises	Exceptionr%   )r&   r8   msgs      r    test_agg_must_aggrL   2   sl    jjoc"G
)C	y	,*+ 
-	y	,)* 
-	, 
-	,	,	,s   B $B 
B
Bc                     S nU R                   R                  U R                  U R                  /5      R	                  U5      nU R                  SS/5      R                  5       S   n[        R                  " X#5        g )Nc                 "    U R                  5       $ r+   r   r   s    r    r.   (test_agg_ser_multi_key.<locals>.<lambda>=   
    !%%'r#   r=   Br>   )r>   r$   r=   rR   	aggregater   r5   assert_series_equal)r&   fresultsr:   s       r    test_agg_ser_multi_keyrW   <   s^    AddllBDD"$$<(2215Gzz3*%))+C0H7-r#   c                     [        [        R                  [        R                  [        R                  [        R                  /[        R                  [        R                  [        R                  [        R                  /[        R
                  [        R
                  [        R
                  [        R
                  // SQ/ SQS.5      n U R                  SSSS9n[        [        R                  [        R                  [        R                  /[        R                  [        R                  [        R                  /[        R                  [        R                  S/S	./ SQS
9n[        R                  " X5        g )N)NNNNr   )nannanatnonevalues)rY   min)rZ   r^   )r]   r   r   yzg      $@)rY   rZ   r]   rF   )	r   nprY   pdNANaTr%   r5   r6   )
missing_dfr9   r:   s      r    test_agg_with_missing_valuesrg   C   s    FFBFFBFFBFF355"%%.FFBFFBFFBFF3,"	
J ^^nAR^SFFFBFFBFF+66266266*vvrvvt,	

 H &+r#   c                  d   [        SSS[        R                  SSSS/SSS[        R                  SSS	S
/S.[        R                  " / SQSS/S9S9n [        SSSSSSS[        R                  SSSS/S
SSSSSS[        R                  S	SSS/SSSS[        R                  SSSSS[        R                  S/SSSS[        R                  SSSSS[        R                  [        R                  /S.5      nUR                  SS/5      nUSS /   R                  5       n[        R                  " X05        g )!N      r   r   r   7   M   !   ,      )v1v2))r   _   )r   c   )r   rr   )r   rs   )bigdamp)bluedry)redrx   )rx   wetby1by2namesrF      	   X   rs   rx   rv   r   rt      ry   rw   rr   ru   )rp   rq   rz   r{   rp   rq   )	r   rb   rY   r   from_tuplesr$   r3   r5   r6   )r:   r&   gr9   s       r    $test_groupby_aggregation_mixed_dtyper   ]   sB   aBFFAq!Q/r2rvvr2r26	
 $$	 %.
H( 
aAq!Q1a;r2r2r2rvvr2r2F61a1eQPRS		

B, 	

E5>"Ad|_!!#F&+r#   c           
         U R                  U [        R                  -  SS9nU R                  [        R                  :X  d   e[        / [        R                  [        / [        R                  S9S9n[        R                  " UR                  5       U5        [        R                  " UR                  S5      U5        [        R                  " UR                  S5      USS9  UR                  US   [        R                  -  SS9n[        UR                  [        [        / S[        R                  S9S	9n[        R                  " UR                  5       U5        [        R                  " UR                  S5      U5        UR                  [        R                  S
S9nUR!                  SS9n[        R                  " XT5        g )NF
group_keysdtyper   rG   r   )check_index_typer=   )namer   )columnsr   rG   r   axisTdrop)r$   rb   rY   r   float64r	   r   r5   rT   r   r%   applyr   r   floatr6   reset_index)tsr7   r8   expexp_dfress         r    test_agg_apply_cornerr      sH   jjbffj7G88rzz!!! 2::U2RZZ-H
IC7;;=#.7;;u-s37==/uM oogclRVV3oFGBS

3F
 '++-0'++e,f5
--Q-
'CT*F#&r#   c                    [        [        R                  " S5      5      n[        [        R                  " S5      XS9n[        [        R
                  SSS[        R
                  [        R
                  SS[        R
                  S/
US9nUR                  U5      nUR                  [        5      n[        SS/SS/S9n[        R                  " XVSS	9  S
 nUR                  U5      n[        SS/SS/S9nUR                  [        R                  :X  a  UR                  [        R                  5      n[        R                  " XV5        g )N
   r   foobarrF   r   r   F)check_dtypec                 *    [        [        U 5      5      $ r+   )r   r   r   s    r    rU   test_with_na_groups.<locals>.f   s    SV}r#         @       @)r   rb   aranger	   onesrY   r$   r%   r   r5   rT   r   float32astype)any_real_numpy_dtyperG   r]   labelsr8   aggedr:   rU   s           r    test_with_na_groupsr      s    "))B- EBGGBKCF	ubffbffeUBFFERF nnV$GKKEq!fUEN3H5>
 KKNEsCj7H||rzz!??2::.5+r#   c           
         [        [        R                  R                  S5      R	                  S5      [        [        S5      [        S9[        R                  " SSSS9S	9nUR                  S
 5      nUR                  R                  S   R                  n[        U R                  [        U5      5      UR                  R                  S'   UR!                  S5      nUR#                  5       n[$        R&                  " XE5        [        U R                  [)        U5      5      UR                  R                  S'   UR!                  S5      nUR#                  5       n[$        R&                  " XE5        g )Nr   )   r   ABCDr   z
2000-01-01r   rR   periodsfreqr   rG   c                     U R                   $ r+   r,   r   s    r    r.   1test_agg_grouping_is_list_tuple.<locals>.<lambda>   s    166r#   r   r3   )r   rb   randomdefault_rngstandard_normalr   listobjectrc   
date_ranger$   _grouper	groupingsgrouping_vectorr   rG   r%   r3   r5   r6   tuple)r   r&   r8   grouperr9   r:   s         r    test_agg_grouping_is_list_tupler      s   	
		a 009d6l&1mmL"3?
B jj)*G((+;;G$,RXXtG}$EGq![[ F||~H&+$,RXXuW~$FGq![[ F||~H&+r#   c                     U R                  SS/5      nUR                  S5      nUR                  5       n[        R                  " X#5        g )Nr=   rR   r3   r4   ) multiindex_dataframe_random_datar8   r9   r:   s       r    test_agg_python_multiindexr      s=    .66SzBG[[ F||~H&+r#   groupbyfuncc                 "    U R                  5       $ r+   weekdayr   s    r    r.   r.      s
    aiikr#   c                     U R                   $ r+   r1   r   s    r    r.   r.      s    aggr#   c                 "    U R                  5       $ r+   r   r   s    r    r.   r.      s
    r#   c                    U R                  U5      nUS   R                  S5      nUS   R                  5       n[        R                  " X45        UR                  S5      nUR                  5       n[        R                  " X45        UR                  SSSSS.5      n[        US   R                  5       US   R                  5       US   R                  5       US	   R                  5       S.5      n[        R                  " X45        g )
Nr=   stdvarr3   sem)r=   rR   r>   DrR   r>   r   )r$   r%   r   r5   rT   rS   r   r6   r   r3   r   )r7   r   r8   r9   r:   s        r    test_aggregate_str_funcr      s     ook*G S\e$Fs|!H6, u%F{{}H&+ [[u5vEJKF!!#!!#""$!!#		
H &+r#   c                     [        / SQ[        [        R                  SSSSSS/SS9S.5      nUR	                  S5      R                  5       n[        SS	S
/0[        SS/SS9SS9n[        R                  " X#5        g )N)r   r   r   r   r   r   r   r   r   Float64r   r   r   r   r   g(y?r   r   rG   r   )	r   r	   rc   rd   r$   r   r   r5   r6   )any_numeric_ea_dtyper&   r9   r:   s       r    test_std_masked_dtyper      s~    	&1aAq1C	

B ZZ_  "F	wl5!Qc#:)H &+r#   c                     U R                  SS9nSU S3n[        R                  " [        US9   UR	                  USS9  S S S 5        g ! , (       d  f       g = f)Nr   levelz
Operation z does not support axis=1r?   r   r   )r$   rH   rI   
ValueErrorr%   )r&   reduction_funcr'   rK   s       r    %test_agg_str_with_kwarg_axis_1_raisesr     sL    	!	B~&&>
?C	z	-
~A& 
.	-	-s   A		
Ac                    U R                  S5      nS nUR                  U5      nU R                  S:H  R                  5       nU R                  S:H  R                  5       n[	        UR
                  5      n[        [        R                  " U/U-  5      [        S5      SS9n[        R                  " UR                  S5      U5        [        [        R                  " U/U-  5      [        S5      SS9n[        R                  " UR                  S5      U5        S n[        5       R                  U R                  5      R                  U5      n[        U[        5      (       d   e[	        U5      S:X  d   eg )	Nr=   c                     U R                   $ r+   sizesers    r    r.   -test_aggregate_item_by_item.<locals>.<lambda>  s    388r#   r   r   BCDrG   r   c                     U R                   $ r+   r   r   s    r    aggfun_1-test_aggregate_item_by_item.<locals>.aggfun_1&  s    xxr#   r   )r$   r%   r=   r   r   r   r	   rb   arrayr   r5   rT   xsassert_almost_equalr   
isinstance)	r&   r8   aggfun_0r9   foosumbarsumKr   r   s	            r    test_aggregate_item_by_itemr     s   jjoG#H[["Fddem  "Fddem  "FFNNA 6(Q,'tE{
GC699U+S1
6(Q,'tE{
GC699U+S1 [  &**84Ffi((((v;!r#   c                 ~   U R                  SS/5      nS n[        R                  " [        SS9   UR	                  U5        S S S 5        U/ SQ   R	                  U5      nU R
                  S S 2/ SQ4   nUR                  SS/5      R	                  U5      n[        R                  " X55        g ! , (       d  f       Nr= f)Nr=   rR   c                 d    U R                   [        S4;   a  [        S5      eU R                  5       $ )NstringTest error message)r   r   	TypeErrorr   r   s    r    functest_wrap_agg_out.<locals>.func1  s+    99**011wwyr#   r   r?   )r   EF)r=   rR   r   r   r   )r$   rH   rI   r   rS   locr5   r6   )three_groupr8   r   r9   exp_groupedr:   s         r    test_wrap_agg_outr   .  s    !!3*-G
 
y(<	=$ 
>_%//5F//!%>">?K""C:.88>H&+ 
>	=s   B..
B<c                    S[         R                  4S[         R                  4S[         R                  4/nU R	                  S5      S   R                  U5      n[        / SQ5      n[        R                  " UR                  U5        g )Nr3   maxr^   r=   r>   )r3   r   r^   )
rb   r3   r   r^   r$   r%   r   r5   assert_index_equalr   )r&   funcsr9   exp_colss       r    *test_agg_multiple_functions_maintain_orderr  >  sc    bgg%AEZZ_S!%%e,F+,H&..(3r#   c                     U R                   S S 2S/4   R                  U S   5      nUR                  S 5      nUR                  R                  S:X  d   eg )Nr>   r=   c                 "    U R                  5       $ r+   r3   r   s    r    r.   (test_series_index_name.<locals>.<lambda>I  s
    1668r#   )r   r$   r%   rG   r   )r&   r8   r9   s      r    test_series_index_namer	  G  sL    ffQX&&r#w/G[[+,F<<###r#   c            	         [        [        R                  R                  S5      R	                  S5      [
        R                  " SSSS9/ SQS9n U R                  S	5      R                  S
[        [        R                  SS9[        [        R                  SS9/05      n[
        R                  " SS	SS9n[        R                  " SS/5      n[        R                  " S Vs/ s H4  o@R                  S	5      R                  R                  US9R                  PM6     sn5      R                   n[        XSUS9n["        R$                  " X5        g s  snf )Nr     r   1/1/2012sr  )r   r   r=   rR   r>   rG   r   3minr=   H.?q镲q?   )r=   quantiler  r  r   )r   rb   r   r   r   rc   r   resampler%   r   r  r   r   r   r=   r]   Tr5   r6   )r&   r9   expected_indexexpected_columnsr  expected_valuesr:   s          r    %test_agg_multiple_functions_same_namer  M  s   	
		a 00;mmJS$?
B
 [[ $$	wr{{f-wr{{f/MNOF ]]:FAFN!--/@BS.TUhh=MN=MV				'	'!	'	,	3	3=MNa  H &+ 	Os    ;Ec            
      :   [        [        R                  R                  S5      R	                  S5      [
        R                  " SSSSS9[        / SQS	S
9S9n U R                  S5      R                  SS[        [        R                  SS9[        [        R                  SS9/05      n[
        R                  " SSSSS9n[        R                  " / SQ/ SQS9n[        R                  " S Vs/ s H4  o@R                  S5      R                  R                  US9R                   PM6     sn5      R"                  n[        R$                  " U R                  S5      R                  R'                  5       U/5      n[        XcUS9n[(        R*                  " X5        g s  snf )Nr   r  r  r  r  dti)r   r   r   r  alphar   r  r  r=   ohlcr  r  r  r  ))r=   r"  open)r=   r"  high)r=   r"  low)r=   r"  closer=   r  r=   r'  )r!  NNr|   r  r   )r   rb   r   r   r   rc   r   r   r  r%   r   r  r   r   r   r=   r]   r  hstackr"  r5   r6   )r&   r9   r  r  r  non_ohlc_expected_valuesr  r:   s           r    7test_agg_multiple_functions_same_name_with_ohlc_presentr*  b  s]    

		a 00;mmJS$UKoG4
B
 [[ $$	vwr{{f5wr{{f7UVWF ]]:FAERN!--	
 $
  "xx=MN=MV				'	'!	'	,	3	3=MN a  ii	V				#	#	%'?@O H &+ 	Os   ,;Fc                    U R                  SS/S9n SS/nSS/nU R                  S5      S   R                  U5      nU R                  S5      S   R                  U5      n[        R                  " X45        U R                  S5      R                  U5      nU R                  S5      R                  U5      n[        R                  " X45        g )	NrR   r>   r   )r   r3   r   )r   r   r=   r   )r   r$   r%   r5   r6   )r&   r  ex_funcsr9   r:   s        r    -test_multiple_functions_tuples_and_non_tuplesr.    s     
#s	$Be$E0HZZ_S!%%e,Fzz#s#''1H&+ZZ_  'Fzz#""8,H&+r#   c                    U R                  S5      nUR                  SSS.5      nUR                  SSS.5      n[        X#/SS/SS9nUR                  SSSS9R	                  SSS	9nSS/SS/S.nUR                  U5      n[        R                  " Xd5        UR                  SSS/S.5      nUR                  SSS/S.5      n[        R                  " Xd5        S
 nS nSn	SSSS.S.n[        R                  " [        U	S9   UR                  U5        S S S 5        S/Xx/S.nUR                  U5        g ! , (       d  f       N'= f)Nr=   r3   r>   r   r   r   )keysr   r   r   )r   r   c                 .    [         R                  " U 5      $ r+   rb   r3   r   s    r    	numpymean:test_more_flexible_frame_multi_function.<locals>.numpymean  s    wwqzr#   c                 ,    [         R                  " U SS9$ )Nr   )ddof)rb   r   r   s    r    numpystd9test_more_flexible_frame_multi_function.<locals>.numpystd  s    vvaa  r#   nested renamer is not supportedr   r   r?   )r$   r%   r
   	swaplevel
sort_indexrS   r5   r6   rH   rI   r   )
r&   r8   exmeanexstdr:   dr9   r4  r8  rK   s
             r    'test_more_flexible_frame_multi_functionrA    sL   jjoG[[vF34FKKe%01EvoVUO!DH!!!QQ!/:::KHuoVUO4Aq!F&+ V65/BCF  vVUO!DEH&+! -C6%89A	)	5! 
6 hi23Aa 
6	5s   D55
Ec                    U R                  S5      nSSS.SS0S.nSn[        R                  " [        US9   UR	                  U5        S S S 5        SSS.SS.n[        R                  " [        US9   UR	                  U5        S S S 5        SSS.SS.n[        R                  " [        US9   UR	                  U5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N[= f! , (       d  f       g = f)	Nr=   r3   r   r;  r   r0  r:  r?   )r$   rH   rI   r   rS   )r&   r8   r@  rK   s       r     test_multi_function_flexible_mixrC    s    jjoG U+5%.AA
,C	)	5! 
6 U+%8A	)	5! 
6 U+%8A	)	5! 
6	5 
6	5 
6	5 
6	5s#   C2C-C*
C
C'*
C8c                  H   [        / SQ/ SQ/ SQS.5      n U R                  S5      n[        SS/SS9nUS	   R                  S
 5      n[	        SS/US	S9n[
        R                  " X45        US   R                  S 5      n[	        SS/USS9n[
        R                  " X45        g )Nr   r   r   r   r   r   r   r   )NNr   r   r   r   r   r   r   r   r   r   c                 (    U S:g  R                  5       $ r   allr   s    r    r.   1test_groupby_agg_coercing_bools.<locals>.<lambda>  s    !q&r#   FTr   r   c                 >    U R                  5       R                  5       $ r+   )isnullrJ  r   s    r    r.   rK    s    )9r#   )r   r$   r   rS   r	   r5   rT   )datgprG   r9   r:   s        r    test_groupby_agg_coercing_boolsrP    s    
,\@RS
TC	S	B1a&s#EW78Fudm5s;H6,W9:FtUm5s;H6,r#   c                      [        / SQ/ SQS.5      n U R                  S5      S/   R                  SS05      n[        SSS/0SS/S	9R                  SS
S9n[        R
                  " X5        g )N)r=   r=   rR   rR   rR   )r   r   r   r   r   r=   rR   r=   rR   r   r   r   rF   r   r   )r   r$   r%   rename_axisr5   r6   )rN  r9   r:   s      r    "test_groupby_agg_dict_with_getitemrT    sm    
3/J
KC[[se$((#u6F#1vsCj9EEcPQERH&+r#   c                      [        / SQ/ SQ/ SQ// SQS9n U R                  S5      nUR                  SS05      n[        SS	S
/0[        SS/SS9S9n[        R
                  " X#5        g )Nr   r   r   r   ri   r   r   ri   r  r   r,  r   r   r   ri   r   r   r   r   rF   r   r$   r%   r   r5   r6   r&   r'   r9   r:   s       r    !test_groupby_agg_dict_dup_columnsrZ    sg    		|\2$
B 
CBVVS%L!F#1veQF.EFH&+r#   opc                 "    U R                  5       $ r+   rO   r   s    r    r.   r.     rQ   r#   c                 "    U R                  5       $ r+   )cumsumr   s    r    r.   r.     s
    !((*r#   c                 $    U R                  S5      $ Nr   	transformr   s    r    r.   r.     s    !++e$r#   c                 $    U R                  S5      $ Nr^  ra  r   s    r    r.   r.     s    !++h'r#   c                 $    U R                  S5      $ r`  r%   r   s    r    r.   r.     s    !%%,r#   c                 $    U R                  S5      $ rd  rf  r   s    r    r.   r.      s    !%%/r#   c                 "   [        SS/SS/S.5      nUR                  S5      S   nU " UR                  S5      5      S   R                  n[	        U5      (       d   eU " UR                  S5      5      R                  n[	        U5      (       d   eg )Nr   FTr   r   r   )r   	set_indexr$   r   r   )r[  r&   r  r9   s       r    test_bool_agg_dtyperj    s     
!Qudm4	5B
S#A

3 %++FF####		#%%FF####r#   zkeys, agg_indexr   r   r   r   r   r|   input_dtype)boolint32int64r   r   result_dtypemethod)r   rS   rb  c                   ^ [        S/S/S/S.5      nUS   R                  U5      US'   [        UR                  U 5      S/   U5      nU" U4S j5      nUS:X  a  [        R
                  " SS5      OUnUS	:X  a  US
:X  a  TS:X  a  S
mUS:X  a  TS:X  a  Sm[        SUS   R                  S   /0US9R                  T5      n	US:X  a  S/U	R                  l        [        R                  " Xy5        g )Nr   r   TrG  r   c                 @   > U R                  T5      R                  S   $ r   r   iloc)r   ro  s    r    r.   2test_callable_result_dtype_frame.<locals>.<lambda>%  s    !((<055a8r#   rb  r   rS   r   r   rm  rn  rF   r   )r   r   getattrr$   rc   
RangeIndexrt  r   r}   r5   r6   )
r1  	agg_indexrk  ro  rp  r&   r[  r9   r  r:   s
      `      r     test_callable_result_dtype_framery    s    $ 
!A3dV4	5Bgnn[)BsG	D!3%(&	1B89F,2k,AR]]1a(yN)#	(A$L'!lg&="L#3Q01HOOH "#&+r#   input)Tr         ?r   c                 >  ^ [        S/S/U/S.5      n[        UR                  U 5      S   U5      nU" U4S j5      nUS:X  a  [        R                  " SS5      OUn[        US   R                  S   /USS9R                  T5      n	[        R                  " Xy5        g )	Nr   r   rG  r   c                 @   > U R                  T5      R                  S   $ r   rs  )r   r   s    r    r.   3test_callable_result_dtype_series.<locals>.<lambda>E  s    !((5/..q1r#   rb  r   r   )
r   rv  r$   rc   rw  r	   rt  r   r5   rT   )
r1  rx  rz  r   rp  r&   r[  r9   r  r:   s
      `      r    !test_callable_result_dtype_seriesr  7  s     
!A3eW5	6B	D!#&	/B12F,2k,AR]]1a(yNr#w||A'~CHOOPUVH6,r#   c                      [        / SQ/ SQS.5      n U R                  S5      R                  / SQ5      nUR                  R                  S   n[        / SQ5      n[        R                  " X#5        g )NrE  r   rR  r=   )r   r   r3   r"  r^   r   )r   r$   r%   r   levelsr   r5   r  )r&   r   r9   r:   s       r    #test_order_aggregate_multiple_funcsr  K  sW    	L9	:B
**S/

C
DC[["F:;H&+r#   c           
          [        / SQSS[        R                  SS[        R                  /S.U S9nUR                  S5      nUR	                  5       n[        / S	Q[        R                  /S
-  S/S
-  S/S
-  /[
        R                  " S// SQ/5      [        / SQU SS9U S9n[        R                  " X45        UR                  SSS9nUR	                  5       nUR                  5       n[        R                  " Xg5        g )N)r   r   r   r   r   r      ro   r      r   r   r   )r  r  ro   ro   r   r   )r#  r$  r%  r&  r   r   r   )r   rG   r   Fas_index)r   rc   rd   r$   r"  r   from_productr   r5   r6   r   )r   r&   r'   r9   r:   gb2result2	expected2s           r    test_ohlc_ea_dtypesr  W  s    	 Br2ruu'EF"
B 
CBWWYF	BEE7Q;q2$(;''#0P(QRL(<3G"	H &+
**S5*
)ChhjG$$&I'-r#   how)firstlastr^   r   r3   medianc                 ~   [        SSS/S.5      nUR                  S5      R                  SU05      nUR                  R	                  U 5      Ul        UR                  S5      R                  SU05      nUS;  a.  UR                  R	                  [
        R                  5      Ul        [        R                  " XCSS	9  g )
Nl   &tLWHd~ r   r   r   r`   r`   r   )r3   r  T)check_exact)	r   r$   r%   r   r   rb   rn  r5   r6   )r   r  r&   r:   r9   s        r    test_uint64_type_handlingr  m  s     
,Aq6:	;Bzz#""C:.H44;;uBDZZ_  #s,F
$$88??288,&=r#   c                      Sn [        / SQ/ SQS.5      n[        R                  " [        U S9   UR	                  S5      R                  SS/5        S S S 5        g ! , (       d  f       g = f)NzFunction namesr   r   r   r   r   rR  r?   r=   r^   )r   rH   rI   r   r$   r%   )rK   r&   s     r    test_func_duplicates_raisesr  {  sK    
C	L9	:B	)	5


3UEN+ 
6	5	5s   #A
A(rG   abcr   2020r   r   ))r   r   )r   r   )r   r   c                     [        / SQ/ SQS.U S9nUR                  S5      R                  S[        R                  05      n[        SS/SS/S.5      R                  S5      n[        R                  " X#5        g )	Nr   r   r   )r   r   r   )groupr   rF   r  r   r   r   )r   r$   r%   r	   nuniqueri  r5   r6   )rG   r&   r9   r:   s       r    $test_agg_index_has_complex_internalsr    sg     
Y;5	IBZZ $$gv~~%>?FAq6QF;<FFwOH&+r#   c                      [        / SQ/ SQ/ SQS.5      n U R                  S5      R                  5       n[        SS/SS/S.[        S	S
/SS9S9n[        R
                  " X5        g )N)r   r   r   r   r   )onetwor  r  r  )threer  r  sixr  key1key2key3r  r  r  )r  r  r   r   r   rF   )r   r$   r^   r   r5   r6   r&   r9   r:   s      r    test_agg_split_blockr    sk    	-7=	

B ZZ##%F%8S#JV,H &+r#   c                     [        [        R                  " SSS9/ SQ/ SQ/ SQ[        R                  " SSS9/ SQS.5      R                  [        5      n U R                  / SQ5      R                  5       n[        [        R                  " S5      /S	/S
/S/[        R                  " S5      /S
/S.[        R                  " S/5      [        S9n[        R                  " X5        g )N2000r   )r   )r   r   r   r@  r   )r   r   r@  e)r=   rR   r>   r   r   r   r   r   r   r   r   r   r   r   r   )r   rc   r   r   r   r$   r^   	Timestamprb   r   r5   r6   r  s      r    #test_agg_split_object_part_datetimer    s    	vq1%%vq1	
	
 fVn  ZZ%))+F,,v&',,v&'	
 hhsmH &+r#   c                       \ rS rSrS rS rS rS r\R                  R                  S\R                  " SSS	9S
SS//5      S 5       rSrg)TestNamedAggregationSeriesi  c                 >   [        / SQ5      nUR                  / SQ5      nUR                  SSS9n[        SS/SS/S.S	S
/[        R
                  " SS/5      S9n[        R                  " X45        UR                  SSS9nUS
S	/   n[        R                  " X45        g )Nr   r  r   r^   r   r   rj   r   r   r   r   r   )r   r   r	   r$   r%   r   rb   r   r5   r6   )selfr&   grr9   r:   s        r    test_series_named_agg0TestNamedAggregationSeries.test_series_named_agg  s    L!ZZ%%5)a&1v&c
"((Aq6BR
 	f/%5)S#J'
f/r#   c                 &   [        SS/5      R                  SS/5      n[        R                  " [        SS9   UR                  5         S S S 5        UR                  / 5      n[        / S9n[        R                  " X#5        g ! , (       d  f       N?= f)Nr   r   r   Must provider?   r,  )	r	   r$   rH   rI   r   r%   r   r5   r6   r  r  r9   r:   s       r    test_no_args_raises.TestNamedAggregationSeries.test_no_args_raises  sj    QF^##QF+]]9N;FFH < R(
f/ <;s   B
Bc                     [        / SQ5      R                  / SQ5      nUR                  SSS9n[        SS/SS/S.[        R
                  " SS/5      S9n[        R                  " X25        g )	Nr   r   r   r   r   r   r   r   r   r   r   rF   r  )r  r  r8   r:   s       r    *test_series_named_agg_duplicates_no_raisesETestNamedAggregationSeries.test_series_named_agg_duplicates_no_raises  s]    I&&y1&&5E&*Aq6A7rxxA?OP
h0r#   c                     [        / SQ5      R                  / SQ5      nUR                  S S S9n[        SS/SS/S.[        R
                  " SS/5      S9n[        R                  " X#5        g )	Nr  r  c                     gr    r   s    r    r.   9TestNamedAggregationSeries.test_mangled.<locals>.<lambda>  s    Ar#   c                     gNr   r  r   s    r    r.   r    s    1r#   r   r   r   rF   r  r  s       r    test_mangled'TestNamedAggregationSeries.test_mangled  s]    I&&y1+5Aq6A7rxxA?OP
f/r#   inpanythingr^   columnaggfunc)r  r^   c                    [        / SQ5      nS[        U5      R                   3n[        R                  " [
        US9   UR                  UR                  5      R                  US9  S S S 5        g ! , (       d  f       g = f)N)r   r   r   r   r   r   r   ri   zfunc is expected but received r?   r   )	r	   type__name__rH   rI   r   r$   r]   r%   )r  r  r  rK   s       r    test_named_agg_nametuple3TestNamedAggregationSeries.test_named_agg_nametuple  s^     +,.tCy/A/A.BC]]9C0IIahh##c#* 100s   )A11
A?r  N)r  
__module____qualname____firstlineno__r  r  r  r  rH   markparametrizerc   NamedAggr  __static_attributes__r  r#   r    r  r    sZ    0010 [[KKz59	
++r#   r  c                   b    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rSrg)TestNamedAggregationDataFramei  c           	         [        / SQ/ SQ/ SQS.5      nUR                  S5      R                  SSS9n[        S	S
/SS/S.[        SS/SS9SS/S9n[        R
                  " X#5        [        R                  " [        R                  SS9nUR                  S5      R                  SSSSSSU4S9n[        SS/SS/SS/S	S
/SS/S S!/S.[        SS/SS9/ SQS9n[        R
                  " X#5        g )"Nr   r   r   r   rF  ri   r  rj   r~   r  r=   rR   r  r=   r   rR   r   )a_maxb_maxr   r   r  r~   r   r   r   r  r  r  b   r  rR   r^   r=   r^   )r=   r3   r=   )b_mina_mina_meanr  r  a_98ri   rj   r   r         ?      @g\(\?gףp=
@)
r   r$   r%   r   r5   r6   	functoolsr   rb   
percentile)r  r&   r9   r:   p98s        r    test_agg_relabel.TestNamedAggregationDataFrame.test_agg_relabel  s    *LQ
 G$((|<(P!f1v.c
1g&

 	f/ 4G$(( s ) 
 QQ*QQt c
1J
 	f/r#   c                     [        / SQ/ SQ/ SQS.5      nUR                  S5      R                  " S0 SS0D6n[        SSS	/0[        S
S/SS9S9n[        R
                  " X#5        g )Nr  rF  r  r  r  zmy colr  r   r   r   r   r   rF   r  rX  r  r&   r9   r:   s       r    test_agg_relabel_non_identifier=TestNamedAggregationDataFrame.test_agg_relabel_non_identifier  sg    *LQ
 G$((DHl+CDhA/uc3Zg7VW
f/r#   c                 <   [        / SQ/ SQS.5      nUR                  S5      R                  SSS9n[        SS/SS/S.[        S	S/SS
9S9n[        R
                  " X#5        [        R                  " [        R                  SS9n[        R                  " [        R                  SS9nSUl
        SUl
        [        / SQ/ SQS.5      nUR                  S5      R                  SU4SU4S9n[        SS/SS/S.[        SS/SS
9S9n[        R
                  " X#5        g )Nr  r   rR  r=   r  r   r   r   r   r   rF   2   r  F   quant50quant70)r   r   r   r   r   )r   r   r   r   ri   )col1col2r  r  )quantile_50quantile_70      ?r   g333333?g@r   r   )r   r$   r%   r   r5   r6   r  r   rb   r  r  )r  r&   r8   r:   r  r  tests          r    test_duplicate_no_raises6TestNamedAggregationDataFrame.test_duplicate_no_raises$  s    \=>**S/%%%EAq6A7uaVRU?VW
g0##BMMR8##BMMR8$$";_UV,,v&**)7H + 
  #JSzBc
0
 	g0r#   c                     [        / SQ/ SQS.[        R                  " SS/SS//5      S9nUR                  S	S
9R	                  SSSS9n[        S	S/S	S/SS/S.SS/S9n[
        R                  " X#5        g )Nr  r   rR  r=   rR   r   r   rF   r   r   r  r  )rR   r3   )aabbccr   r        @)r   r   r  r$   r%   r5   r6   r  s       r    test_agg_relabel_with_level9TestNamedAggregationDataFrame.test_agg_relabel_with_level=  s    \2))C:Sz*BC
 !$(( ) 
 q6!QSz:3*
 	f/r#   c                    [        / SQ/ SQS.5      nUR                  S5      nSn[        R                  " [        US9   UR                  SS9  S S S 5        [        R                  " [        US9   UR                  5         S S S 5        [        R                  " [        US9   UR                  S	SS
9  S S S 5        g ! , (       d  f       Ns= f! , (       d  f       NR= f! , (       d  f       g = f)Nr  r  rR  r=   r  r?   r   )r   r  r   )r   r$   rH   rI   r   r%   )r  r&   r8   r@   s       r    test_agg_relabel_other_raises;TestNamedAggregationDataFrame.test_agg_relabel_other_raisesJ  s    YY78**S/]]9E2KKAK 3 ]]9E2KKM 3 ]]9E2KK,)K4 32 32 32 32s#   B<0C"C<
C

C
C,c                     [        SS/SS/S.5      nSn[        R                  " [        US9   UR	                  S5      R                  SS	9  S S S 5        g ! , (       d  f       g = f)
Nr   r   r   rR  zLabel\(s\) \['C'\] do not existr?   r=   )r>   r   r   )r   rH   rI   KeyErrorr$   r%   )r  r&   rK   s      r    test_missing_raises1TestNamedAggregationDataFrame.test_missing_raisesW  sQ    aV1a&120]]83/JJsO,/ 0//s   A
A$c                     [        SS/SS/S.5      nUR                  S5      R                  [        R                  " SS5      [        R                  " SSS	9S
9nUR                  S5      R                  SSS
9n[
        R                  " X#5        g )Nr   r   r   rR  r=   rR   r   countr  r   r   )rR   r   )rR   r  r   r$   r%   rc   r  r5   r6   r  s       r    test_agg_namedtuple1TestNamedAggregationDataFrame.test_agg_namedtuple]  s~    aV1a&12C$$kk#u%C)Q % 
 ::c?&&&H
f/r#   c                 D    UR                   " X#40 UD6R                  5       $ r+   )betweenr   )r  r   r%  r$  kwargss        r    	n_between'TestNamedAggregationDataFrame.n_betweene  s    {{3//3355r#   c                    [        / SQ/ SQS.5      nUR                  S5      R                  [        R                  " SU R
                  SS5      S9n[        S	SS/0[        SS/SS
9S9n[        R                  " X#5        g )Nr  r   r   r   rR  r=   rR   r   r   )count_betweenr#  r   rF   	r   r$   r%   rc   r  r  r   r5   r6   r  s       r    test_namedagg_args0TestNamedAggregationDataFrame.test_namedagg_argsh  su    \>?C$$++c4>>1a@ % 
 o1v6eQFQT>UV
f/r#   c           
          [        / SQ/ SQS.5      nUR                  S5      R                  [        R                  " SU R
                  SSSS	9S
9n[        SSS/0[        SS/SS9S9n[        R                  " X#5        g )Nr  r!  rR  r=   rR   r   r   both	inclusive)count_between_kwr+  r   rF   r$  r  s       r    test_namedagg_kwargs2TestNamedAggregationDataFrame.test_namedagg_kwargsr  s{    \>?C$$[[dnnafU % 
 !Q(q!f30G
 	f/r#   c           
          [        / SQ/ SQS.5      nUR                  S5      R                  [        R                  " SU R
                  SSSS	9S
9n[        SSS/0[        SS/SS9S9n[        R                  " X#5        g )Nr  r!  rR  r=   rR   r   r   neitherr)  )count_between_mixr0  r   rF   r$  r  s       r    test_namedagg_args_and_kwargs;TestNamedAggregationDataFrame.test_namedagg_args_and_kwargs~  s~    \>?C$$ kkT^^QY % 

  1a&)1vC1H
 	f/r#   c           
         [        / SQ/ SQS.5      nUR                  S5      R                  [        R                  " SU R
                  SS5      [        R                  " SU R
                  SS5      [        R                  " SU R
                  SS	5      S
9n[        / SQ/ SQ/ SQS
.[        / SQSS9S9n[        R                  " X#5        g )NrF  r   rR  r=   rR   r   r   r   r   )n_between01n_between13n_between02)r   r   r   r   )r   r   r   r   )r   r   r   r   r   rF   r$  r  s       r    ,test_multiple_named_agg_with_args_and_kwargsJTestNamedAggregationDataFrame.test_multiple_named_agg_with_args_and_kwargs  s    \=>C$$CA>CA>CA> % 

 +++
 3/
 	f/r#   c                     [        SS/SS/SS/S.5      nUR                  S5      R                  SS	 4S
S 4S9n[        SS/SS/S.[        SS/SS9S9n[        R
                  " X#5        g )Nr   r   r   r   r   r  r=   rR   c                     gr   r  r   s    r    r.   <TestNamedAggregationDataFrame.test_mangled.<locals>.<lambda>  s    qr#   r>   c                     gr  r  r   s    r    r.   r;    s    Qr#   r  r   rF   rX  r  s       r    r  *TestNamedAggregationDataFrame.test_mangled  sy    aV1a&1v>?C$$['9c;=O$PAq6A7uaVRU?VW
f/r#   r  N)r  r  r  r  r  r  r  r  r  r  r  r  r%  r,  r1  r7  r  r  r  r#   r    r  r    sD    "0H012050060
000&0r#   r  zCagg_col1, agg_col2, agg_col3, agg_result1, agg_result2, agg_result3r`   r=   r   r?  )r`   rR   r3   r  r  g      @      @c                     [        U 5      $ r+   )r   r   s    r    r.   r.     s    3q6r#   c                     gr  r  r   s    r    r.   r.         1r#   r@  r   c                     gr  r  r   s    r    r.   r.     s    ar#   c                    [        / SQ/ SQ/ SQS.5      n[        R                  " / SQ5      Ul        [	        SS/SS	9nUR                  S5      R                  S
S9n[        SSS/0US9n	[        R                  " X5        UR                  S5      R                  XUS9n[        X4US.US9n	[        R                  " X5        g )Nr  rF  r  r  r   r  r?  r@  r   r   rH  r   r>  )r  r  r   r   rF   )col_1col_2col_3)	r   r   r   r   r   r$   r%   r5   r6   )
agg_col1agg_col2agg_col3agg_result1agg_result2agg_result3r&   idxr9   r:   s
             r    "test_agg_relabel_multiindex_columnrS    s    B 
&\M
B ''(PQBJ
c

0CZZ'++2E+FF'Aq6*#6H&+ZZ'++h , F kJRUH &+r#   c                  
   [        / SQ/ SQ/ SQS.5      n [        R                  " / SQ5      U l        [        R
                  " [        SS9   U R                  S5      R                  S	S
9  S S S 5        g ! , (       d  f       g = f)Nr  rF  r  r  rG  zdo not existr?   rH  ))Yr   r   r  )	r   r   r   r   rH   rI   r  r$   r%   )r&   s    r    ,test_agg_relabel_multiindex_raises_not_existrV    s`    	&\M
B ''(PQBJ	x~	6


>"&&)<&= 
7	6	6s   A44
Bc                     [        / SQ/ SQ/ SQS.5      n [        R                  " / SQ5      U l        U R	                  S5      R                  SSS9n[        S	S
/SS9n[        SS/SS/S.US9n[        R                  " X5        g )Nr  rF  r  r  rG  rH  )r?  r^   r   r   r   r   r   r   rF   )	r   r   r   r   r$   r%   r   r5   r6   )r&   r9   rR  r:   s       r    &test_agg_relabel_multiindex_duplicatesrX    s     
&\M
B ''(PQBJZZ'++
!4 , F c

0C1vQF33?H&+r#   r  r   r^   r  c           	          [        / SQ/ SQ/ SQS.5      nUR                  S5      R                  U 5      n[        SS/[        SS/S	SS
9[        R
                  " SS//5      S9n[        R                  " X#5        g )Nr  r  r   r   r   rG  r   r   r   r   rn  r  r   r^   r  )r   r$   r%   r   r   r   r5   r6   )r  r&   r9   r:   s       r     test_groupby_aggregate_empty_keyr[    sr     
C	DBZZ_  (F	
AQF'4&&e~6H
 &+r#   c                      [        / SQ/ SQ/ SQS.5      n U R                  S5      R                  S/ 05      n[        [        S// // / /S9S9n[        R
                  " X5        g )	Nr  r  rZ  rG  r   r   r  codesr,  r   r$   r%   r   r5   r6   r  s      r    -test_groupby_aggregate_empty_key_empty_returnr`    sX    	C	DBZZ_  #r+FSE2;r2h!OPH&+r#   c            	          [        / SQS9n U R                  SS/SS9R                  S[        4S9n[        S	/[	        / / // / /SS/S
9S9n[
        R                  " X5        g )NrG  r,  r   r   Fr   r   )r@  r@  r|   r   )r   r$   r%   r   r   r5   r6   r  s      r    2test_groupby_aggregate_empty_with_multiindex_framerb    sj    	?	+BZZc
uZ599S$K9HFZR2r(3*MH &+r#   c                      [        / SQ/ SQS.5      n U R                  SSS9nUR                  [        R                  " SSS	9S
9n[        / SQ/ SQS.5      n[
        R                  " X#5        g )N)r   r`   ra   r   r`   ra   r{  皙?r   g      @g@      ?)r   valr   Fr  rg  r^   r  min_valr_   )r{  re  rf  )r   ri  r  r&   r8   r9   r:   s       r    9test_grouby_agg_loses_results_with_as_index_false_relabelrk    sd     
.7VW
B jjj/G[[E5!I[JF=MNOH&+r#   c                      [        / SQ/ SQ/ SQS.5      n U R                  SS/SS9nUR                  [        R                  " S	S
S9S9n[        / SQ/ SQ/ SQS.5      n[
        R                  " X#5        g )N)r   r`   r   r`   r   r   )r   r   r   r   r   r   rd  )r   r  rg  r   r  Fr  rg  r^   r  rh  r   r   r`   )r   r   r   )r{  rf  re  )r   r  ri  r  rj  s       r    Dtest_grouby_agg_loses_results_with_as_index_false_relabel_multiindexrn  #  st    
 
122	

B jj%5j9G[[E5!I[JFEUVH &+r#   c                 (   U R                  SSS9nUSS/   R                  S5      nUR                  SS9n[        R                  " X#5        UR                  SS	S
.5      nUR                  SS9nUR                  5       S   US'   [        R                  " XE5        U R                  SSS9nSn[        R                  " [        US9   US   R                  SS	05        S S S 5        U R                  SS/SS9nUR                  S5      nUR                  5       n[        R                  " X#5        UR                  SS	S
.5      nUR                  5       nUR                  5       S   US'   [        R                  " XE5        US   R                  5       n[        U5      R                  SS0S9nSn[        R                  " [        US9   US   R                  SS	05        S S S 5        [        [        R                  R                  S5      R                  SSS5      / SQS9n [        [        R                  R                  S5      R                  SSS5      SS9nU R                  U5      n	U	R!                  S5        S Hp  n
U R                  USS9n	[#        X5      " 5       nU R                  UR$                  SS9n	[#        X5      " 5       R'                  SS9n[        R                  " X5        Mr     g ! , (       d  f       GN= f! , (       d  f       GN,= f)Nr=   Fr  r>   r   r3   T)numeric_onlyr   r0  r:  r?   QrR   r,  r   r   d   )r  r   )jimjoejolieri   r   r  rs  r   )r3   r   r  idxmaxr^  rJ  r   )r$   r%   r3   r5   r6   r   rH   rI   r   r   renamerb   r   r   integersr	   nthrv  r]   r   )r&   r8   r9   r:   r  r  rK   	expected3r   r  attrleftrights                r    test_groupby_as_index_aggr~  8  s   jjuj-G c3Z $$V,F|||.H&+kkU34G$/I[[]3'IcN'-jjtj,G
,C	)	5#u& 
6
 jj#sej4G[[ F||~H&+kkU34GI[[]3'IcN'-  "I)$++S#J+?I
+C	)	5#u& 
6 

		a ))!S':'
B 
		%%a(11!R<5	IB	BBFF1ICZZUZ+r "ZZ		DZ1!#//T/:
d* DA 
6	5& 
6	5s   K0L0
K?
Lr   c                 "    U R                  5       $ r+   r  r  s    r    r.   r.   t  s
    qvvxr#   c                 .    [         R                  " U 5      $ r+   r3  r  s    r    r.   r.   t  s    2771:r#   c                 .    [         R                  " U 5      $ r+   )rb   nanmeanr  s    r    r.   r.   t  s    Ar#   c                 j   / SQ/ SQ/n[        U[        R                  " / SQ/ SQ/SS/S9S9nUR                  [        R
                  " S	S
/5      5      R                  U 5      nSSS.SSS.SSS.S.n[        U[        R
                  " S	S
/5      UR                  S9n[        R                  " X55        g )N)r   r   r   )ri   rj   r   r  )r   r   r   SiskoJanewayr|   r,  r   r   r{        @r   r   r   g      @r   ))r   r   )r   r   )r   r   r  )
r   r   from_arraysr$   rb   r   r%   r   r5   r6   )r   datar&   r9   expected_dictr:   s         r    test_multiindex_custom_funcr  s  s    
 y!D	&&	"7I*>

B ZZ!Q()--d3FC C C M
 bhh1v.>

SH&+r#   c                 ,    [         R                  " U SS9$ Ng?r  rb   r  r  s    r    myfuncr    s    ==d##r#   c                 ,    [         R                  " U SS9$ r  r  r  s    r    r.   r.     s    BMM!t,Dr#   c           	          [        / SQ/ SQ/ SQS.5      nUR                  S5      R                  SSU 4S9n[        S	S
/SS//SS/[        SS/SS9S9n[        R
                  " X#5        g )Ncatdogr  r  g333333"@g      @      #@      A@皙@rA  #@     h@kindheightweightr  )r  r3   r  )mean_heightperc90g"@g0'5"@g      4@g5^I@r  r  r  r  r   r   rX  )r   animalsr9   r:   s       r    test_lambda_named_aggr    s     0+,	
G __V$((&$/? ) F 
vu&)UEN0H &+r#   c            	      r   [        [        R                  " S/S-  5      R                  SS5      [	        S5      [	        S5      S9n / SQU S'   U R                  S5      R                  S	 5      nS/S/S//SS/SS/SS///n[        U[        S
S/SSS9[        / SQ5      S9n[        R                  " X5        g )Nr   r   r   XYZr  r  r   rG   )group 1r  r   groupingc                 "    U R                  5       $ r+   )tolistr   s    r    r.   ,test_aggregate_mixed_types.<locals>.<lambda>  s
    
r#   r   r  r   r  )XrU  Zr  )
r   rb   r   reshaper   r$   rS   r   r5   r6   )r&   r9   expected_datar:   s       r    test_aggregate_mixed_typesr    s    	XXqcAg&&q!,d5ke
B /BzNZZ
#--.BCFcA3_1v1v1v&>?MQ	N(Do&H
 &+r#   zNot implemented;see GH 31256reasonc                  "   S n [        S[        R                  " / SQ5      05      nUR                  / SQ5      R	                  U 5      n[        S[        R                  " S[        R
                  /SS90SS/S	9n[        R                  " X#5        g )
Nc                 J    [        U S:  5      (       a  g[        R                  $ )Nr   r   )rJ  rc   rd   r   s    r    r  5test_aggregate_udf_na_extension_type.<locals>.aggfunc  s    q1u::55Lr#   r=   r  r  r   Int64r   r   rF   )r   rc   r   r$   r%   rd   r5   r6   )r  r&   r9   r:   s       r    $test_aggregate_udf_na_extension_typer    sp     
C),-	.BZZ	"&&w/F#rxxBEE
'BCAq6RH&+r#   c                   j    \ rS rSrS rS r\R                  R                  SS9S 5       r	S r
S rS	rg
)TestLambdaManglingi  c                     [        / SQ/ SQS.5      nUR                  S5      R                  SS S /05      n[        SS/S	S	/S
.[        SS	/SS9S9n[        R
                  " X#5        g )Nr  r   rR  r=   rR   c                     gr   r  r   s    r    r.   /TestLambdaMangling.test_basic.<locals>.<lambda>  s    ar#   c                     gr  r  r   s    r    r.   r    s    1r#   r   r   ))rR   
<lambda_0>)rR   
<lambda_1>r   rF   rX  r  s       r    
test_basicTestLambdaMangling.test_basic  sk    \=>C$$cK+E%FG#$a&1vFAS)
 	f/r#   c                     [        / SQ5      R                  / SQ5      nUR                  S S /5      nSS/SS/S.n[        U[        R
                  " SS/5      S9n[        R                  " X$5        g )	Nr   r  c                     gr   r  r   s    r    r.   ?TestLambdaMangling.test_mangle_series_groupby.<locals>.<lambda>  rD  r#   c                     gr  r  r   s    r    r.   r    s    r#   r   r   r  r  rF   r  )r  r  r9   exp_datar:   s        r    test_mangle_series_groupby-TestLambdaMangling.test_mangle_series_groupby  sc    L!)),7k23#$a&A?XRXXq!f-=>
f/r#   zGH-26611. kwargs for multi-agg.r  c                 j   SS jnSS jn[        SS/5      R                  SS/5      R                  X/S5      n[        S/S/S.5      n[        R
                  " X45        [        SS/5      R                  SS/5      R                  X/SS	S
9n[        S/S/S.5      n[        R
                  " X45        g )Nr   c                 .    U R                  5       U-   U-   $ r+   rO   r   r`   r   s      r    r.   5TestLambdaMangling.test_with_kwargs.<locals>.<lambda>  s    quuw{Qr#   r   c                 ,    U R                  5       X-  -   $ r+   rO   r  s      r    r.   r    s    quuwr#   r   r   r  r  r   )r      r   )r   )r   )r	   r$   r%   r   r5   r6   )r  f1f2r9   r:   s        r    test_with_kwargs#TestLambdaMangling.test_with_kwargs  s    ..A''A/33RHa@QCsCD
f/A''A/33RHa23FRDEF
f/r#   c           	         [        / SQ/ SQ/ SQS.5      n/ SQn[        SS/SS	/S
S/S.[        SS/SS9US9nUR                  SS9R                  [        R
                  " SS S9[        R
                  " SSS9[        R
                  " SSS9S9n[        R                  " XC5        UR                  SS9R                  SS 4SSS9n[        R                  " XS5        g )Nr  r  r  r  )height_sqr_min
height_max
weight_maxp=
׳T@      B@r  r  r  r  r  r  r  r   r  byr  c                 4    [         R                  " U S-  5      $ rE   rb   r^   r   s    r    r.   =TestLambdaMangling.test_agg_with_one_lambda.<locals>.<lambda>      "&&QRTUQU,r#   r  r   r  c                 4    [         R                  " U S-  5      $ rE   r  r   s    r    r.   r        q!tr#   r  r   r  r   )r   r   r$   r%   rc   r  r5   r6   r  r&   r   r:   result1r  s         r    test_agg_with_one_lambda+TestLambdaMangling.test_agg_with_one_lambda  s    4/0
 A#(%."Dk"El
 V4
 ***'++;;h@VW{{(EB{{(EB , 

 	g0 ***'++$&<=(( , 

 	g0r#   c                 .   [        / SQ/ SQ/ SQS.5      n/ SQn[        SS/SS	/S
S/SS	/SS/S.[        SS/SS9US9nUR                  SS9R                  SS 4SSSS 4SS 4S9n[        R
                  " XC5        UR                  SS9R                  [        R                  " SS S9[        R                  " SSS9[        R                  " SSS9[        R                  " SS S9[        R                  " SS S9S9n[        R
                  " XS5        g ) Nr  r  r  r  )r  r  r  height_max_2
weight_minr  r  r  r  r  r  r  rA  r  r  r  r   r  r  r  c                 4    [         R                  " U S-  5      $ rE   r  r   s    r    r.   =TestLambdaMangling.test_agg_multiple_lambda.<locals>.<lambda>+  r  r#   r  r  c                 .    [         R                  " U 5      $ r+   rb   r   r   s    r    r.   r  .  s    bffQir#   r  c                 .    [         R                  " U 5      $ r+   r  r   s    r    r.   r  /  s    BFF1Ir#   c                 4    [         R                  " U S-  5      $ rE   r  r   s    r    r.   r  5  r  r#   r  r   c                 .    [         R                  " U 5      $ r+   r  r   s    r    r.   r  8  s    q	r#   c                 .    [         R                  " U 5      $ r+   r  r   s    r    r.   r  9  s    bffQir#   )r   r   r$   r%   r5   r6   rc   r  r  s         r    test_agg_multiple_lambda+TestLambdaMangling.test_agg_multiple_lambda  s8    4/0

 #(%."Dk"El!$d"Cj V4

 ***'++$&<=(("$78 "56 , 
 	g0 ***'++;;h@VW{{(EB{{(EBH>QR{{(<OP , 
 	g0r#   r  N)r  r  r  r  r  r  rH   r  xfailr  r  r  r  r  r#   r    r  r    s?    00 [[?@	0 A	0#1J/1r#   r  c                    / SQU l         U R                  S US9nUR                  [        R                  SSS9nX R
                  R                  S:H     R                  S5      X R
                  R                  S	:H     R                  S5      S
.n[        U5      R                  nU(       d.  UR                  SSSS	/5        [        [        S	5      5      Ul        [        R                  " X55        g )N)r=   rR   r=   r>   c                     U R                   $ r+   r1   r   s    r    r.   9test_pass_args_kwargs_duplicate_columns.<locals>.<lambda>A  s    177r#   r  P   r   r   r   re  r   )r   r   rG   )r   r$   r%   rb   r  rG   r2   r  r   r  insertr   ranger5   r6   )r7   r  r'   r   ex_datar:   s         r    'test_pass_args_kwargs_duplicate_columnsr  >  s    *GO	*X	>B
&&&
+C ==&&!+,55c:==&&!+,55c:G !##H7QF+uQx#(r#   c                      [        / SQ/ SQS.5      n U R                  S5      R                  SS 05      n[        SS/S	S
/S.5      R                  S5      n[        R
                  " X5        g )N)SWr  )r{  r{  r   rR  r=   rR   c                 >    U R                  U R                  S   5      $ )Nr"  )getrG   r   s    r    r.   +test_groupby_get_by_index.<locals>.<lambda>T  s    aeeAGGBK.@r#   r   r  r{  r   )r   r$   r%   ri  r5   r6   )r&   r   r:   s      r    test_groupby_get_by_indexr  Q  s_    	?	@B
**S/

s$@A
BCSzc
;<FFsKH#(r#   zgrp_col_dict, exp_data)nrcat_ordri   r  r  c                    [        / SQ[        S5      [        S5      S.5      nUR                  SSS.5      nUS   R                  R	                  5       US'   UR                  SS	S
9R                  U 5      n[        R                  " SS/SS/S	SSS9n[        XS9nSU;   a&  US   R                  nUS   R                  U5      US'   [        R                  " X55        g )Nr   r   r   r   ri   r  rj   r~   aabbccddaaaabbbbr  r  r  categoryr  r  r  r  Fobservedr   r   
categoriesorderedr   r   )r  rG   )r   r   r   r  
as_orderedr$   r%   rc   CategoricalIndexr   r5   r6   )grp_col_dictr  input_df	result_df	cat_indexexpected_dfr   s          r     test_groupby_single_agg_cat_colsr  Y  s     *J'
#	
H zjIJH"9-11<<>HY   7;;LII ##	c
Sz5uJI ;KK#))!,Y!7!>!>u!EI)1r#   )r   r   r   )ri   r~   r   )r   r   r   )ri   r   r@  r   )r   r@  c                   ^
 [        / SQ[        S5      [        S5      S.5      nUR                  SSS.5      nUS   R                  R	                  5       US'   UR                  SS	S
9R                  U 5      n[        R                  " SS/SS/S	SSS9n/ nU R                  5        HK  u  m
n[        U[        5      (       a  UR                  U
4S jU 5       5        M8  UR                  T
U/5        MM     [        R                  " [        U5      5      n[        XUS9nUR                    HD  n	[        U	[        5      (       d  M  SU	;   d  M"  X   R                  US   R"                  5      X'   MF     [$        R&                  " X85        g )Nr	  r
  r  r  r  r  r  r  Fr  r   r   r  c              3   ,   >#    U  H	  nTU/v   M     g 7fr+   r  ).0r   ks     r    	<genexpr>6test_groupby_combined_aggs_cat_cols.<locals>.<genexpr>  s     #>A5QJAs   r  )r   r   r   r  r  r$   r%   rc   r  itemsr   extendappendr   r   r   r   r   r5   r6   )r  r  r  r  r  multi_index_listvmulti_indexr  colr  s             @r    #test_groupby_combined_aggs_cat_colsr)    sj    *J'
#	
H zjIJH"9-11<<>HY   7;;LII ##	c
Sz5uJI ""$1a###>A#>>##QF+	 %
 ((/?)@AKiPK""c5!!i3&6*/66x	7J7P7PQK #
 )1r#   c                      [        / SQ/ SQS.5      n U R                  S5      nUR                  S/5      nUR                  R	                  S5      Ul        UR                  S5      n[
        R                  " X#5        g )NrE  )r   r   r   r   r   r   r^  r"  )r   r$   r%   r   	droplevelr5   r6   )r&   r   r9   r:   s       r    test_nonagg_aggr,    sa     
L9	:B


3AUUH:F^^--b1FNuuXH&+r#   c                  6   [        SS/[        R                  " SSSSSSS5      [        R                  " S	SSSSSS5      /S
.5      n U R                  S5      R                  R	                  5       nU R                  S5      S   n[        R                  " X5        g )Nr  rU  i  r   r   r      i`= i  rR  r=   rR   )r   datetimer$   rR   r   ri  r5   rT   r  s      r    test_aggregate_datetime_objectsr0    s     
s!!$1b"b&A!!$1b"b&A	

B ZZ_""$F||C %H6,r#   c                  @   [        / SQ/ SQ/ SQS.5      n U R                  R                  S5      U l        U R                  SS/5      nUR                  R                  S 5      n[        R                  " S	S
/SS9n[        SS/USS9n[        R                  " X$5        g )N)r   r   r   rm  r   r   r   )c0c1pOr3  r4  c                     [        U S:  5      $ r   rI  r   s    r    r.   1test_groupby_index_object_dtype.<locals>.<lambda>  s    #a!e*r#   )r   r   r  )r3  r4  r|   FTr5  r   )r   rG   r   r$   r5  r%   r   r   r	   r5   rT   )r&   r8   r   r  r:   s        r    test_groupby_index_object_dtyper9    s    	/yQ	RBxxs#BHjj$&G
))--,
-C  ++	Z N udm>DH3)r#   c                      S n [        S/[        R                  " S5      /S9nUR                  S 5      R	                  U 5      n[        S//S/S9n[
        R                  " X#5        g )Nc                 v    U R                  5       R                  5       (       a  g [        R                  " U 5      $ r+   )isnarJ  rb   r   r   s    r    r   )test_timeseries_groupby_agg.<locals>.func  s&    88:>>vvc{r#   r{  z2018-01-16 00:00:00+00:00rF   c                     gr  r  r   s    r    r.   -test_timeseries_groupby_agg.<locals>.<lambda>  s    qr#   r   )r   rc   r  r$   r%   r5   r6   )r   r&   r   r:   s       r    test_timeseries_groupby_aggr@    s]    
 
C5.I!J K	LB
**[
!
%
%d
+C3%,H#(r#   c           	         U [         R                  ;   a   [        R                  " U 5      R                  nU [         R
                  ;   a   [        R                  " U 5      R                  nU [         R                  ;   a.  [        R                  " U R                  5       5      R                  nU [         R                  ;   a.  [        R                  " U R                  5       5      R                  n[        S/S/[        R                  " W/U S9S.5      nS/S//n[        R                  " USS9n[        S[        R                  " U/U S90US9nUR                  S	S
/5      R!                  S 5      n[         R"                  " Xe5        g )Nr   r   r   r  )r  r  r|   r  rF   r  r  c                     U $ r+   r  r   s    r    r.   ,test_groupby_agg_precision.<locals>.<lambda>  s    r#   )r5   ALL_INT_NUMPY_DTYPESrb   iinfor   FLOAT_NUMPY_DTYPESfinfoFLOAT_EA_DTYPESlowerALL_INT_EA_DTYPESr   rc   r   r   r  r$   r%   r6   )any_real_numeric_dtype	max_valuer&   arraysrG   r:   r9   s          r    test_groupby_agg_precisionrN    s<   !8!88HH3488	!6!66HH3488	!3!33HH399;<@@	!5!55HH399;<@@		EEHHi[0FG	

B ecU^F""61ABE	9+-CDEUH ZZ()--k:F&+r#   c                    U S;   a  g [        SS/S[        R                  //5      nUR                  S5      R	                  U 5      nUR                  S5      R	                  SU 05      nU S;   a  [
        R                  " X#S   SS9  g [
        R                  " X#5        [
        R                  " UR                  UR                  5        g )N)corrwithry  r   r   )r   ngroupF)check_names)	r   rb   rY   r$   r%   r5   rT   r6   dtypes)r   objresult_reduced_seriesresult_reduced_frames       r     test_groupby_aggregate_directoryrW    s    ,,
aVa[)
*CKKN..~>;;q>--q..AB++
!#:	
 	3J
!((*>*E*E	
r#   c                      [        / SQSS9n [        S/S[        R                  " S/5      S9nU R                  / SQ5      R	                  5       n[
        R                  " X!5        g )N)z1 dayz3 daysre   ztimedelta64[ns]r   z2 daysr   r   r   r   r   )r	   rb   r   r$   r3   r5   rT   )r  r:   r9   s      r    test_group_mean_timedelta_natrZ    sP    ,4EFDxj(91#OH\\)$))+F6,r#   zinput_data, expected_output)z2021-01-01T00:00re   z2021-01-01T02:00z2021-01-01T01:00)z2021-01-01T00:00-0100re   z2021-01-01T02:00-0100z2021-01-01T01:00-0100c                     [        [        U 5      5      n[        [        U[        R                  " S/5      S95      nUR	                  / SQ5      R                  5       n[        R                  " XC5        g )Nr   rF   rY  )r   r	   rb   r   r$   r3   r5   rT   )
input_dataexpected_outputr  r:   r9   s        r    test_group_mean_datetime64_natr^  (  sS     vj)*D6/1#GHH\\)$))+F6,r#   zfunc, outputr3   y       @      2@y      $@      6@r   y      D@     V@y      I@     [@c                     [        [        R                  " S5      R                  SS5      R	                  SS/5      5      nUR                  UR                  S-  5      R                  U 5      n[        U5      n[        R                  " X45        g )Nr  r   r   r                  @)
r	   rb   r   r  dotr$   rG   r%   r5   rT   )r   outputr  r9   r:   s        r    test_groupby_complexrc  >  sj    
 "))B-''A.22Ar7;<D\\$**q.)--d3Ff~H6,r#   )r^   r   r   c                 H   [        [        R                  " S5      R                  SS5      R	                  SS/5      5      nSn[
        R                  " [        US9   UR                  UR                  S-  5      R                  U 5        S S S 5        g ! , (       d  f       g = f)Nr  r   r   r   r`  zNo matching signature foundr?   )r	   rb   r   r  ra  rH   rI   r   r$   rG   r%   )r   r  rK   s      r    test_groupby_complex_raisesre  I  sp     "))B-''A.22Ar7;<D
'C	y	,TZZ!^$((. 
-	,	,s   .B
B!ztest, constantr  r=   rR   r   r>   r  r   )marksc                     [        U 5      nUR                  S5      R                  [        R                  5      n[        U5      nUR                  S5      n[        R                  " X45        g r   )r   r$   r%   r	   moderi  r5   r6   )r  constantdf1r9   r:   s        r    test_agg_of_mode_listrk  R  sS     D/C[[^,F "H!!!$H&+r#   c                     [        / SQ/ SQS.5      n U R                  S5      nSS jnSS jnSn[        R                  " [        US9   UR                  X#/S	S	S
S9  S S S 5        UR                  X#/S	S
S9n[        SS/SS/SS//[        / SQSS9[        R                  " SS/5      S9n[        R                  " XV5        g ! , (       d  f       Nk= f)Nr  rG  r  r`   c                 .    U R                  5       U-   U-   $ r+   rO   r   r   r   s      r    foo1@test_dataframe_groupy_agg_list_like_func_with_args.<locals>.foo1p      uuw{Qr#   c                 .    U R                  5       U-   U-   $ r+   rO   r   r   r   s      r    foo2@test_dataframe_groupy_agg_list_like_func_with_args.<locals>.foo2s  rq  r#   /foo1\(\) got an unexpected keyword argument 'b'r?   r   r   r  r  r~   r   r   r   )r   ro  )r   rt  r  r   r   r   r   )r   r$   rH   rI   r   r%   r   r   r   r5   r6   )r&   r'   ro  rt  rK   r9   r:   s          r    2test_dataframe_groupy_agg_list_like_func_with_argsry  k  s    	9	:B	CB =C	y	,
|Q!q) 
- VVTL!qV)F
Q!Q"b"O#.&&}'EFH
 &+ 
-	,s   	C
Cc                  v   [        / SQ5      n U R                  U 5      nSS jnSS jnSn[        R                  " [        US9   UR                  X#/SSSS9  S S S 5        UR                  X#/SSS	9n[        S
S
/SS/SS//[        / SQ5      SS/S9n[        R                  " XV5        g ! , (       d  f       NX= f)Nr  c                 .    U R                  5       U-   U-   $ r+   rO   rn  s      r    ro  =test_series_groupy_agg_list_like_func_with_args.<locals>.foo1  rq  r#   c                 .    U R                  5       U-   U-   $ r+   rO   rs  s      r    rt  =test_series_groupy_agg_list_like_func_with_args.<locals>.foo2  rq  r#   rv  r?   r   r   r  r  r~   r   r   ro  rt  r  rw  rx  )
r	   r$   rH   rI   r   r%   r   r   r5   r6   )r  sgbro  rt  rK   r9   r:   s          r    /test_series_groupy_agg_list_like_func_with_argsr    s    yA
))A,C =C	y	,a1* 
- WWd\1W*F
Q!Q"b"%	*:VVDTH &+ 
-	,s   B**
B8c                     [        / SQ/ SQ/ SQS.5      n U R                  SS/5      nUSS/   nUR                  S 5      n[        S	S
/SS//SS	/SS	//SS/S9n[        SS/SS/S.US9n[        R
                  " X55        g )Nr  )r   r   r   )ri   r  rj   rG  r   r   r   c                 "    U R                  5       $ r+   rO   r   s    r    r.   .test_agg_groupings_selection.<locals>.<lambda>  s
    quuwr#   r   r   r   r   r   )r  r^  r}   r  ro   rj   r  rF   r_  )r&   r'   selected_gbr9   rG   r:   s         r    test_agg_groupings_selectionr    s    	C	DB	S#J	Bc3Z.K__./FAAAA'7SzE 1vRG4EBH&+r#   c                      [        / SQ/ SQS.5      n U R                  SSS9S   nUR                  SS	/5      n[        S
S/SS/SS/S.5      n[        R                  " X#5        g )Nr  )r   r   ri   r   r   Fr  r   r   r3   r   r   rj   ri   r
  r  )r   r   r3   r   r$   r%   r5   r6   rY  s       r    ?test_agg_multiple_with_as_index_false_subset_to_a_single_columnr    se    	3	4B	C%	(	-BVVUFO$F1vq!fsCjIJH&+r#   c                      [        / SQ/ SQ/ SQS.5      n U R                  SS/SS9nUR                  S	/5      n[        / S
Q/ SQ/ SQ/[        R                  " / SQ5      S9n[
        R                  " X#5        g )Nr  )r   r   r   )r   ri   r  )a1a2r   r  r  F)r  r  r   )r   r   r   )r   r   ri   )r   r   r  ))r   )r  r  )r   r   )r  r   )r   r$   r%   r   r   r5   r6   rY  s       r    &test_agg_with_as_index_false_with_listr    sk    	)99E	FB	d|e	4BVVUG_FI.&&'MNH &+r#   c                  >   [        S[        R                  " S5      [        R                  " S5      [        R                  " S5      S.05      n [        [        / SQSS9/ SQS	.5      nUR	                  S
5      nUR                  SS9n[        R                  " X05        g )Ntd0 days 01:00:000 days 01:15:00r2  )r  z0 days 00:15:00r  ztimedelta64[us]r   )r   r   r   )r  grpsr  )r  r^  )r  )r   rc   	Timedeltar	   r$   r%   r5   r6   )r:   r&   r'   r9   s       r    Btest_groupby_agg_extension_timedelta_cumsum_with_named_aggregationr    s    << 12<< 12<< 12	
H 
I' $	

B 
F	BVV'V(F&+r#   c                      S n [        [        R                  " SS// SQS9SS/S.5      nSn[        R                  " [
        US9   UR                  S	S
S9R                  U 5        S S S 5        g ! , (       d  f       g = f)Nc                 L    [        U 5      S:X  a  [        S5      e[        U 5      $ )Nr   length must not be 0)r   r   r   s    r    r   2test_groupby_aggregation_empty_group.<locals>.func  s"    q6Q;3441vr#   r   rG  )r  r   rR  r  r?   r=   Fr  )r   rc   CategoricalrH   rI   r   r$   r%   )r   r&   rK   s      r    $test_groupby_aggregation_empty_groupr    sj    
 
nnc3ZODAq6R
B !C	z	-


3
'++D1 
.	-	-s    A//
A=c            	          [        / SQ/ SQ/ SQ// SQS9n U R                  S5      nUR                  SS05      n[        S	S
/SS//SS/[        SS/SS9S9n[        R
                  " X#5        g )Nr   rV  rW  r   r,  r   r   r   rj   r   ri   r  r   r   r   r   rX  rY  s       r    <test_groupby_aggregation_duplicate_columns_single_dict_valuer    sw    		|\2$
B 
CBVVS%L!F
Q!Q3*E1a&s4KH &+r#   c            	         [        / SQ/ SQ/ SQ// SQS9n U R                  S5      nUR                  S/ SQ05      n[        / S	Q/ S
Q/[        S// SQ// SQ/ SQ/S9[	        SS/SS9S9n[
        R                  " X#5        g )Nr   rV  rW  r   r,  r   r   )r   r^   r   r^   )rj   r   r   r   r   r   ri   r   )ri   ri   ri   ri   r  r  r  r  )r   r^   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r]  r   r   r   r   r   r$   r%   r   r   r5   r6   rY  s       r    ?test_groupby_aggregation_duplicate_columns_multiple_dict_valuesr    s    		|\2$
B 
CBVVS678F	!#;<E01+-EF
 QF%H &+r#   c            	         [        / SQ/ SQ/ SQ/ SQ// SQS9n U R                  S5      nUR                  / S/S	.5      n[        S
S/SS//[        S/S//SS/SS//S9[	        SS/SS9S9n[
        R                  " X#5        g )N)r   is&  +   6     r     r   rn   )r   r  ir   r      irn   )r   r   r   r   r   r,  r   r   r  g  @ABg   }Ag     @g        r   r   r]  r   r   r   r   r  rY  s       r    <test_groupby_aggregation_duplicate_columns_some_empty_resultr    s    	# &#		
 *
B 
CBVV"E7+,F
z	"[#$67C55'"2Aq6Aq6:JKQF%H
 &+r#   c            
      N   [        / SQ/ SQ/ SQ/ SQ/[        SS/SS/// S	Q/ S
Q/S9[        SS/SS/// SQ/ SQ/S9S9n U R                  SS9nUR                  SS05      n[        SS/SS//[        S/S//SS/SS//S9[	        SS/5      S9n[
        R                  " X#5        g )Nr   r  r  r  r  r   r  "  r  r   r  level1.1level1.2level2.1level2.2r   r   r   r   r   r   r   r   r   r   r]  r   r   r   r   r   r   r   r   r   r   r   r  r  r^   r  r   r  r  r   r   r$   r%   r   r5   r6   rY  s       r    6test_groupby_aggregation_multi_index_duplicate_columnsr    s    	$ %#		
 ,z:.FG"O4
 ,z:.FG.

B  
!	BVV-u56F
c3Z J<*">1vPQSTvFVWZ,-H
 &+r#   c            
      ^   [        / SQ/ SQ/ SQ/ SQ/[        SS/SS/// S	Q/ S
Q/S9[        SS/SS/// SQ/ SQ/S9S9n U R                  SS9nUR                  SSS/05      n[        / SQ/ SQ/[        S/S/SS/// SQ/ SQ/ SQ/S9[	        SS/5      S9n[
        R                  " X#5        g )Nr  r  r  r  r  r  r  r  r  r  r]  r  r  r   r   r   r  r^   r   )r  r  r   r  )r  r  r  r  r  )r   r   r   r   r  rY  s       r    @test_groupby_aggregation_func_list_multi_index_duplicate_columnsr  :  s    	$ %#		
 ,z:.FG"O4
 ,z:.FG.

B  
!	BVV-u~>?F	34L:,?|<
 Z,-H &+r#   pyarrow)zfloat[pyarrow]int64[pyarrow]uint64[pyarrow]zbool[pyarrow]c                    [        / SQ[        R                  " / SQU S9S.5      nUR                  S5      nUR	                  S 5      n[        S[        R                  " / SQU S90[        / S	QSS
9S9n[        R                  " X45        g )N)r4  c2c3r4  r  r  )rr        r      iȝ  r   rR  r=   c                 "    U R                  5       $ r+   )r^   r   s    r    r.   :test_agg_lambda_pyarrow_dtype_conversion.<locals>.<lambda>i  s
    aeegr#   rR   )r   r  r  r4  r  r  r   rF   r   rc   r   r$   r%   r   r5   r6   )r   r&   r'   r9   r:   s        r    (test_agg_lambda_pyarrow_dtype_conversionr  Z  s{     
58F	

B 
CBVV%&F	bhh}E23&S1H &+r#   c                  X   [        / SQ[        R                  " / SQS5      S.5      n U R                  S5      nUR	                  S 5      n[        S[        R                  " [        SS	5      [        S
S	5      [        SS	5      /SS90[        / SQSS9S9n[        R                  " X#5        g )Nr  rr  r  r  r  rR  r=   c                 R    [        U R                  5       U R                  5       5      $ r+   )complexr   r  r   s    r    r.   =test_agg_lambda_complex128_dtype_conversion.<locals>.<lambda>y  s    gaeegqwwy9r#   rR   rr  r   r  r  
complex128r   r   rF   )	r   rc   r   r$   r%   r  r   r5   r6   rY  s       r    +test_agg_lambda_complex128_dtype_conversionr  r  s     
 rxxAQ'RS
B 
CBVV9:Fa'#q/73?C<	

 &S1H &+r#   c                     [        / SQ[        R                  " / SQSS9S.5      n U R                  S5      nUR	                  S 5      n[        S[        R                  " / SQSS90[        / SQSS	9S
9n[        R                  " X#5        g )Nr  r  r  r   rR  r=   c                 J    [         R                  " U R                  5       5      $ r+   )rb   uint64r   r   s    r    r.   Jtest_agg_lambda_numpy_uint64_to_pyarrow_dtype_conversion.<locals>.<lambda>  s    bii0r#   rR   r   rF   r  rY  s       r    8test_agg_lambda_numpy_uint64_to_pyarrow_dtype_conversionr    s     
#/1BC	

B 
CBVV01F/1BC	
 &S1	H &+r#   c                  :   SS K n [        / SQ[        R                  " / SQSS9S.5      nUR	                  S5      nUR                  S 5      nU R                  S	S
0S	S
0S	S
0/5      n[        S[        U5      0[        / SQSS9S9n[        R                  " X55        g )Nr   r  r  r  r   rR  r=   c                 
    SS0$ )Nnumberr   r  r   s    r    r.   Ktest_agg_lambda_pyarrow_struct_to_object_dtype_conversion.<locals>.<lambda>  s    xmr#   r  r   rR   r   rF   )
r  r   rc   r   r$   r%   r   r   r5   r6   )par&   r'   r9   arrr:   s         r    9test_agg_lambda_pyarrow_struct_to_object_dtype_conversionr    s     	#/1AB	

B 
CBVV+,F
((XqMHa=8Q-@
AC	!#&'&S1H
 &+r#   c                      [        SS/S9n U R                  S/SS9S   R                  S5      n[        SS/S9n[        R                  " X5        g )NGroupDatar,  Fr  r   r  r  s      r    (test_groupby_aggregate_empty_builtin_sumr    sR    	GV,	-BZZ	EZ26:>>uEF'6!23H&+r#   c                      S n [        SS/S9nUR                  S/SS9S   R                  U 5      n[        SS/S9n[        R                  " X#5        g )Nc                     [        U 5      $ r+   rO   r   s    r    r   .test_groupby_aggregate_empty_udf.<locals>.func  s    1vr#   r  r  r,  Fr  r  )r   r&   r9   r:   s       r     test_groupby_aggregate_empty_udfr    sY     
GV,	-BZZ	EZ26:>>tDF'6!23H&+r#   )__doc__r/  r  r   numpyrb   rH   pandas.errorsr   pandas.util._test_decoratorsutil_test_decoratorsr  pandas.core.dtypes.commonr   pandasrc   r   r   r   r	   r
   r   pandas._testing_testingr5   pandas.arraysr   pandas.core.groupby.grouperr   r(   r;   rL   rW   rg   r   r   r   r   r   r  r  r   r   r   r   r   r  r	  r  r*  r.  rA  rC  rP  rT  rZ  rj  ry  rl  intr   r  r  r  rn  r  r  r  r  r   interval_rangeperiod_ranger   r  r  r  r  r  r3   r  rS  rV  rX  r[  r`  rb  rk  rn  r~  r  r  r  r  r  r  r  r  r  r  r)  r,  r0  r9  r@  rN  rW  rZ  r^  rc  re  paramrk  ry  r  r  r  r  r  r  r  r  r  r  r  
skip_if_nor  r  r  r  r  r  r  r#   r    <module>r     s        , ) ) 6    - 0	,+.,4.,b'4,:,,, ),=?T+UV,,4,'0, 4$,* ,F,"!H0- ,	, $'!

$

$ 
qc$%
sZ!qc
aS1#JsCjIJ C D #FG, H,2 
qc$%
sZ!qc
aS1#JsCjIJ .14e"45#FG- H 6 2-	,., 288RYY"78 QR	> S 9	>, 
DK(
!Q
4=>	,,,",82+ 2+jm0 m0` I  ! F#J#J	
 )*%!FF#J	
 KK
E*KK
BGG,KK
K0F#JF	
#:,;:,.>," S5'N"E74K#LM	, N	,,,,,*8+v 
!57NO,,&$ "Df!MN, O,,,  89, :,(r1 r1j)&) %	(!QS#J*OP
U	i#s45
1v'22> 5	1K3MN5%.	1M=3QR
eU^	$z:&>?%2%2P
,-$*),6
,- ! < 	

 F$%	
	-- fw12UXy<Q4RS-- !67/ 8/ s)b#YS		*RcC:=N,OPs)b#YS		*RsCj#=N,OP(S!HsAha	1Szq1a&k3RS1XQx#qC84c
A{+++##	
			,	,,0,,
,,
,,22,,(,,,:,@ yL,	 
,& y, ,& y, ,( y, ,,,,r#   