
    Mh                     D   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rSSK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 rS	 rS
 rS rS rS rS rS r S r!\RD                  RG                  SS S S //5      S 5       r$S r%S r&\RD                  RG                  SS/ SQS0 4SS/S-  \'\(\(\(S.4S S!/S-  \'\(\(\(S.4S/ SQS"S#S04SS/S-  S"\(\(\(S.4S S!/S-  S"S$S$S$S.4/5      S% 5       r)\RD                  RG                  S&SS'S(/S)S*/S+S,//SSS-.4SS./S'-  /S-  S$4S S'/S'-  /S-  S$S$S-.4/5      S/ 5       r*S0 r+S1 r,S2 r-S3 r.S4 r/S5 r0S6 r1S7 r2S8 r3S9 r4S: r5S; r6\RD                  RG                  S<S= S> S? S@ SA SB /5      SC 5       r7\RD                  RG                  SDSE/\" SF/SESG94SESH/\" SF/S'//S/S//SESH/SI94/5      \RD                  RG                  SJ/ SKQ5      \RD                  RG                  SL/ SKQ5      \RD                  RG                  SM/ SNQ5      SO 5       5       5       5       r8\RD                  RG                  SDSE/\" SF/SESG94SESH/\" SF/S'//S/S//SESH/SI94/5      \RD                  RG                  SP/ SQQ5      \RD                  RG                  SR\9\'\(/5      \RD                  RG                  SM/ SNQ5      SS 5       5       5       5       r:ST r;SU r<\RD                  RG                  SR\Rz                  \R|                  /5      \RD                  RG                  SV/ SWQ5      SX 5       5       r?SY r@\RD                  RG                  SZ\R                  " \B" S[5      5      \R                  " SS5      \R                  " S\SS]S^9\R                  " / S_Q5      /5      S` 5       rFSa rGSb rH " Sc Sd5      rI " Se Sf5      rJ\RD                  RG                  SgShSi\R                  4SjSFS/SkSl/SmSn/4SiSo 4SiSp 4Sq\R                  4SFS/SFSF/SmSn/4\R                  " SiSr5      \R                  " Sq\R                  5      \R                  " SiSs 5      SFS/SmSn/SFSF/4/5      St 5       rMSu rNSv rO\RD                  RG                  SwSxSy/0/ Sy/Sz./5      S{ 5       rPS| rQS} rRS~ rSS rT\RD                  RG                  SS S S /5      S 5       rUS rV\RD                  RG                  SS \V/5      S 5       rWS rX\RD                  R                  SS9S 5       rZ " S S5      r[S r\\RD                  RG                  SSySyS.SFS/SESx/S.4SSy0SSESx/04SSy0SSFS/04/5      S 5       r]\RD                  RG                  SSySr/SyS.SS/4SySySr/S.SS/4SSySr/0SS/4/5      S 5       r^S r_S r`S raS rbS rcS rdS re\RD                  RG                  S/ SQS/4/ SQS/4/5      S 5       rf\RD                  RG                  SSSS/4SSS/4/5      S 5       rg\RD                  RG                  S/ SQ5      S 5       rh\RD                  RG                  SSy/SSr/SHS0SSSz./5      S 5       ri\RD                  RG                  SS,S/S,S/S)S//S)S,/SSS//S.4S,S/S,S/SS//S,S/SS/S/S.4SESF/SESF/SHS'/SHS//SESH/SFS'S//S.4\R                  " SESF/SES'/SHS/SHS//SESH/SFS'/S/S.\RD                  R                  S9/5      S 5       rkS rlS rmS rnS roS rpS rqS rrg)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)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    _/var/www/html/env/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$   r2   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>5   s
    ajjlr"   c                      U R                   S S $ Nr   indexr   s    r   r-   rB   7   s    aggbqkr"   )r#   pytestraises	Exceptionr$   )r%   r7   msgs      r   test_agg_must_aggrK   0   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<   rQ   	aggregater   r4   assert_series_equal)r%   fresultsr9   s       r   test_agg_ser_multi_keyrV   :   s^    AddllBDD"$$<(2215Gzz3*%))+C0H7-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   ra   )r   rb   )bigdamp)bluedry)redrg   )rg   wetby1by2namesrE      	   X   rb   rg   re   r   rc      rh   rf   ra   rd   )r_   r`   ri   rj   r_   r`   )	r   npnanr   from_tuplesr#   r2   r4   r5   )r9   r%   gr8   s       r   $test_groupby_aggregation_mixed_dtyperu   A   sB   aBFFAq!Q/r2rvvr2r26	
 $$	 %.
H( 
aAq!Q1a;r2r2r2rvvr2r2F61a1eQPRS		

B, 	

E5>"Ad|_!!#F&+r"   c                     / SQSS[         R                  S/SS[         R                  S/SS[         R                  S//n [        U [        R                  " / SQ5      S9nSn[
        R                  " [        US9   UR                  SSS	9nS S S 5        WR                  SS
9n[        / SQ/ SQS.5      n[
        R                  " XE5        g ! , (       d  f       NF= f)N)TTTFTF))r<   r   )r<   r   )rQ   r   )rQ   r   datacolumns+DataFrame.groupby with axis=1 is deprecatedr>   r   levelaxis)numeric_only)       @TTT)r   r   r   r   r   r   )rq   rr   r   r   rs   r4   assert_produces_warningFutureWarningr#   r   r5   )lstr%   rJ   r&   r8   r9   s         r   +test_groupby_aggregation_multi_level_columnr   r   s     	"	ubffe$	tRVVU#	tRVVU#	C 
&&'OP
B
 8C		#	#M	=ZZaaZ( 
>VVV'F4FGH&+ 
>	=s   :C
C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        S
n[        R                   " ["        USS9   UR                  [        R                  5      nS S S 5        [        R                  " WU5        g ! , (       d  f       N&= f)NF
group_keysdtyper   rF   r   )check_index_typer<   )namer   )ry   r   rF   z:The behavior of DataFrame.sum with axis=None is deprecated)r?   check_stacklevel)r#   rq   rr   r   float64r	   r   r4   rS   r   r$   applyr   ry   floatr5   r   r   )tsr6   r7   expexp_dfrJ   ress          r   test_agg_apply_cornerr      sZ   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
FC		#	#Mu	UmmBFF# 
V#v& 
V	Us    G
G*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   rQ   periodsfreqry   rF   c                     U R                   $ r*   r+   r   s    r   r-   1test_agg_grouping_is_list_tuple.<locals>.<lambda>   s    166r"   r   r2   )r   rq   randomdefault_rngstandard_normalr   listobjectpd
date_ranger#   _grouper	groupingsgrouping_vectorr   rF   r$   r2   r4   r5   tuple)r   r%   r7   grouperr8   r9   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<   rQ   r2   r3   ) multiindex_dataframe_random_datar7   r8   r9   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*   r0   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varr2   sem)r<   rQ   r=   DrQ   r=   r   )r#   r$   r   r4   rS   rR   r   r5   r   r2   r   )r6   r   r7   r8   r9   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   rF   r   )	r   r	   r   NAr#   r   r   r4   r5   )any_numeric_ea_dtyper%   r8   r9   s       r   test_std_masked_dtyper      s~    	&1aAq1C	

B ZZ_  "F	wl5!Qc#:)H &+r"   c                 L   U R                  SS9nSU S3nUS;   a  [        nSn[        nO[        nSU S3nS n[        R
                  " XES	9   [        R                  " XcS	9   UR                  US
S9  S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nr   r|   zDataFrameGroupBy.z with axis=1 is deprecated)idxmaxidxminz;'[<>]' not supported between instances of 'float' and 'str'z
Operation z does not support axis=1r>   r   r}   )	r#   	TypeErrorr   
ValueErrorrG   rH   r4   r   r$   )r%   reduction_funcr&   warn_msgerrorrJ   warns          r   %test_agg_str_with_kwarg_axis_1_raisesr      s    	!	B">"22LMH--K>**BC	u	(''=FF>F* > 
)	(== 
)	(s$   B"B3B
B	B
B#z(func, expected, dtype, result_dtype_dictr   )rX   rY   rn   int64r   glv @r   ijkr   g      @Int64r   r   c                    [        / SQ/S-  [        R                  " SS// SQ/5      S9R                  X"S.5      nSn[        R
                  " [        US	9   UR                  S
S
S9nS S S 5        WR                  U 5      n[        U/S-  / SQS9R                  U5      n[        R                  " Xq5        g ! , (       d  f       NU= f)N)r   r   r   r   rX      r   r   r   r   ry   ))r   r   )r   r   rz   r>   r   r{   )
r   r   from_productastyper4   r   r   r#   r$   r5   )funcr9   r   result_dtype_dictr%   rJ   r&   r8   s           r   (test_multiindex_groupby_mixed_cols_axis1r      s     
	q ''#s_(EF
 f%34 
 8C		#	#M	=ZZaaZ( 
>VVD\F(aAHHH &+ 
>	=s   B77
Cz&func, expected_data, result_dtype_dictr   r   
   rp         )r   r   g;f?c           	         [        [        R                  " S5      R                  SS5      [	        / SQSS9[	        / SQSS9S	S
9R                  SS05      nSn[        R                  " [        US9   UR                  SSS9nS S S 5        WR                  U 5      n[        U[	        / SQSS9[	        SS/SS9S9R                  U5      n[        R                  " Xg5        g ! , (       d  f       Nd= f)Nrp   r   r   r   r   r   yr   )r   r   r   r   r   r   )rF   ry   r   r   r   rz   r>   r   r   r   )rx   rF   ry   )r   rq   arangereshaper   r   r4   r   r   r#   r$   r5   )r   expected_datar   r%   rJ   r&   r8   r9   s           r   test_groupby_mixed_cols_axis1r     s     

		"a#IC(&S1	

 fb']  8C		#	#M	=ZZ!Z$ 
>VVD\FIC(r2hS) f	 
 &+ 
>	=s   1C  
C.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"   foobarBCDrF   r   c                     U R                   $ r*   r   r   s    r   aggfun_1-test_aggregate_item_by_item.<locals>.aggfun_1H  s    xxr"   r   )r#   r$   r<   r   r   ry   r	   rq   arrayr   r4   rS   xsassert_almost_equalr   
isinstance)	r%   r7   aggfun_0r8   foosumbarsumKr   r   s	            r   test_aggregate_item_by_itemr   8  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<   rQ   c                 `    U R                   [        :X  a  [        S5      eU R                  5       $ )NTest error message)r   r   r   r   r   s    r   r   test_wrap_agg_out.<locals>.funcS  s&    99011wwyr"   r   r>   )r   EF)r<   rQ   r   r  r  )r#   rG   rH   r   rR   locr4   r5   )three_groupr7   r   r8   exp_groupedr9   s         r   test_wrap_agg_outr  P  s    !!3*-G
 
y(<	=$ 
>_%//5F//!%>">?K""C:.88>H&+ 
>	=s   B..
B<c                 z   S[         R                  4S[         R                  4S[         R                  4/nSn[        R
                  " [        US9   U R                  S5      S   R                  U5      nS S S 5        [        / SQ5      n[        R                  " WR                  U5        g ! , (       d  f       N== f)	Nr2   maxmin%is currently using SeriesGroupBy.meanr>   r<   r=   )r2   r	  r
  )rq   r2   r	  r
  r4   r   r   r#   r$   r   assert_index_equalry   )r%   funcsrJ   r8   exp_colss        r   *test_agg_multiple_functions_maintain_orderr  `  s    bgg%AE
1C		#	#M	=C%))%0 
>+,H&..(3	 
>	=s   $B,,
B: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*   r2   r   s    r   r-   (test_series_index_name.<locals>.<lambda>m  s
    1668r"   )r  r#   r$   rF   r   )r%   r7   r8   s      r   test_series_index_namer  k  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<   rQ   r=   rF   ry   3minr<   H.?q镲q?r   )r<   quantiler  r   r   )r   rq   r   r   r   r   r   resampler$   r   r!  r   rs   r   r<   valuesTr4   r5   )r%   r8   expected_indexexpected_columnsr  expected_valuesr9   s          r   %test_agg_multiple_functions_same_namer)  q  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<   r2  )r,  NNrk   r"  r   )r   rq   r   r   r   r   r   r   r#  r$   r   r!  r   rs   r   r<   r$  r%  hstackr-  r4   r5   )r%   r8   r&  r'  r  non_ohlc_expected_valuesr(  r9   s           r   7test_agg_multiple_functions_same_name_with_ohlc_presentr5    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 )	NrQ   r=   r   )r   r2   r   )r   r   r<   r   )dropr#   r$   r4   r5   )r%   r  ex_funcsr8   r9   s        r   -test_multiple_functions_tuples_and_non_tuplesr9    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	[        R                  " [        U	S9   SSSS.S.nUR                  U5        S S S 5        S/Xx/S.nUR                  U5        g ! , (       d  f       N'= f)Nr<   r2   r=   r   r   r   )keysr}   r   r   r{   c                 .    [         R                  " U 5      $ r*   rq   r2   r   s    r   	numpymean:test_more_flexible_frame_multi_function.<locals>.numpymean  s    wwqzr"   c                 ,    [         R                  " U SS9$ )Nr   )ddof)rq   r   r   s    r   numpystd9test_more_flexible_frame_multi_function.<locals>.numpystd  s    vvaa  r"   nested renamer is not supportedr>   r   r   )r#   r$   r
   	swaplevel
sort_indexrR   r4   r5   rG   rH   r   )
r%   r7   exmeanexstdr9   dr8   r?  rC  rJ   s
             r   'test_more_flexible_frame_multi_functionrL    sL   jjoG[[vF34FKKe%01EvoVUO!DH!!!QQ!/:::KHuoVUO4Aq!F&+ V65/BCF  vVUO!DEH&+! -C	)	5ve<=! 
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<   r2   r   rF  r   r;  rE  r>   )r#   rG   rH   r   rR   )r%   r7   rK  rJ   s       r    test_multi_function_flexible_mixrN    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*   )isnullrU  r   s    r   r-   rV    s    )9r"   )r   r#   r   rR   r	   r4   rS   )datgprF   r8   r9   s        r   test_groupby_agg_coercing_boolsr[    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<   rQ   rQ   rQ   )r   r   r   r   r   r<   rQ   r<   rQ   r   r   r   rE   r   r   )r   r#   r$   rename_axisr4   r5   )rY  r8   r9   s      r   "test_groupby_agg_dict_with_getitemr_    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   rX   )r   r   rX   r   r   r   r   r   r   rX   r   r   r   r   rE   r   r#   r$   r   r4   r5   r%   r&   r8   r9   s       r   !test_groupby_agg_dict_dup_columnsrc    sg    		|\2$
B 
CBVVS%L!F#1veQF.EFH&+r"   opc                 "    U R                  5       $ r*   rN   r   s    r   r-   r-     rP   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      $ Nrg  rj  r   s    r   r-   r-   "  s    !++h'r"   c                 $    U R                  S5      $ ri  r$   r   s    r   r-   r-   #  s    !%%,r"   c                 $    U R                  S5      $ rm  ro  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   )rd  r%   r  r8   s       r   test_bool_agg_dtypers    s     
!Qudm4	5B
S#A

3 %++FF####		#%%FF####r"   zkeys, agg_indexr   r   r   r   rk   input_dtype)boolint32r   float32r   result_dtypemethod)r   rR   rk  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[        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   TrR  r   c                 @   > U R                  T5      R                  S   $ r   r   iloc)r   rx  s    r   r-   2test_callable_result_dtype_frame.<locals>.<lambda>I  s    !((<055a8r"   rk  r   rE   r   )r   r   getattrr#   r   
RangeIndexr}  ry   rl   r4   r5   )
r<  	agg_indexrt  rx  ry  r%   rd  r8   r&  r9   s
      `      r    test_callable_result_dtype_framer  4  s    $ 
!A3dV4	5Bgnn[)BsG	D!3%(&	1B89F,2k,AR]]1a(yN#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   rR  r   c                 @   > U R                  T5      R                  S   $ r   r|  )r   r   s    r   r-   3test_callable_result_dtype_series.<locals>.<lambda>a  s    !((5/..q1r"   rk  r   r   )
r   r  r#   r   r  r	   r}  r   r4   rS   )
r<  r  r  r   ry  r%   rd  r8   r&  r9   s
      `      r   !test_callable_result_dtype_seriesr  S  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 )NrP  r   r]  r<   )r   r	  r2   r-  r
  r   )r   r#   r$   ry   levelsr   r4   r  )r%   r   r8   r9   s       r   #test_order_aggregate_multiple_funcsr  g  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      r^   r   r   r   r   r   )r  r  r^   r^   r   r   )r.  r/  r0  r1  r   r   r   )ry   rF   r   Fas_index)r   r   r   r#   r-  r   r   r   r4   r5   reset_index)r   r%   r&   r8   r9   gb2result2	expected2s           r   test_ohlc_ea_dtypesr  s  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	  r2   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   )r2   r  T)check_exact)	r   r#   r$   r   r   rq   r   r4   r5   )r   r  r%   r9   r8   s        r   test_uint64_type_handlingr    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   r]  r>   r<   r
  )r   rG   rH   r   r#   r$   )rJ   r%   s     r   test_func_duplicates_raisesr    sK    
C	L9	:B	)	5


3UEN+ 
6	5	5s   #A
A(rF   abc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   )groupr   rE   r  r   r   r   )r   r#   r$   r	   nuniquerr  r4   r5   )rF   r%   r8   r9   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   rE   )r   r#   r
  r   r4   r5   r%   r8   r9   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   rK  r   )r   r   rK  e)r<   rQ   r=   r   r  r  )r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r#   r
  	Timestamprq   r   r4   r5   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   rY   r   r   r   r   r   )r   r   r	   r#   r$   r   rq   r   r4   r5   )selfr%   grr8   r9   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#   rG   rH   r   r$   r   r4   r5   r  r  r8   r9   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   rE   r  )r  r  r7   r9   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   rE   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   rX   zfunc is expected but received r>   r   )	r	   type__name__rG   rH   r   r#   r$  r$   )r  r  r  rJ   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  rG   markparametrizer   NamedAggr  __static_attributes__r  r"   r   r  r    sZ    0010 [[KKz59	
++r"   r  c                   D    \ 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   rQ  rX   r   rY   rm   r  r<   rQ   r  r<   r	  rQ   r	  )a_maxb_maxr   r   r   rm   r   r   r   r  r  r  b   r  rQ   r
  r<   r
  )r<   r2   r<   )b_mina_mina_meanr  r  a_98rX   rY   r   r         ?      @g\(\?gףp=
@)
r   r#   r$   r   r4   r5   	functoolsr   rq   
percentile)r  r%   r8   r9   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  rQ  r  r  r  zmy colr  r   r   r   r   r   rE   r  ra  r  r%   r8   r9   s       r   test_agg_relabel_non_identifier=TestNamedAggregationDataFrame.test_agg_relabel_non_identifier7  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   r]  r<   r  r   r   r   r   r   rE   2   r  F   quant50quant70)r   r   r   r   r   )r   r   r   r   rX   )col1col2r  r  )quantile_50quantile_70      ?      @g333333?g@r   r   )r   r#   r$   r   r4   r5   r  r   rq   r  r  )r  r%   r7   r9   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   r]  r<   rQ   r   r   rE   r   r   r  r  )rQ   r2   )aabbccr   r	        @)r   r   r   r#   r$   r4   r5   r  s       r   test_agg_relabel_with_level9TestNamedAggregationDataFrame.test_agg_relabel_with_levelY  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  r]  r<   r  r>   r   )r   r  r   )r   r#   rG   rH   r   r$   )r  r%   r7   r?   s       r   test_agg_relabel_other_raises;TestNamedAggregationDataFrame.test_agg_relabel_other_raisesf  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[        R                  " S5      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   r]  zColumn(s) ['C'] do not existr>   r<   )r=   r   r   )r   reescaperG   rH   KeyErrorr#   r$   )r  r%   r?   s      r   test_missing_raises1TestNamedAggregationDataFrame.test_missing_raisess  s[    aV1a&12		89]]851JJsO,/ 211s   A**
A8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   r]  r<   rQ   r   countr  r   r   )rQ   r   )rQ   r   r   r#   r$   r   r  r4   r5   r  s       r   test_agg_namedtuple1TestNamedAggregationDataFrame.test_agg_namedtupley  s~    aV1a&12C$$kk#u%C)Q % 
 ::c?&&&H
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<   rQ   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   rE   ra  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  r"   r   r  r    s+    "0H01205000r"   r  zCagg_col1, agg_col2, agg_col3, agg_result1, agg_result2, agg_result3r   r<   r	  r+  )r   rQ   r2   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        Sn
[        R                  " [        U
S9   UR                  S5      R                  XUS9nS S S 5        [        X4US.US9n	[        R                  " X5        g ! , (       d  f       N2= f)Nr  rQ  r  r  r   r  r+  r,  r   r   r4  r   r*  )r  r  r   r   rE   r  r>   )col_1col_2col_3)r   r   rs   ry   r   r#   r$   r4   r5   r   r   )agg_col1agg_col2agg_col3agg_result1agg_result2agg_result3r%   idxr8   r9   rJ   s              r   "test_agg_relabel_multiindex_columnr?    s    B 
&\M
B ''(PQBJ
c

0CZZ'++2E+FF'Aq6*#6H&+
1C		#	#M	=N+//( 0 
 
> kJRUH &+ 
>	=s    C((
C6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  rQ  r  r  r3  zdo not existr>   r4  ))Yr   r	  r  )	r   r   rs   ry   rG   rH   r  r#   r$   )r%   s    r   ,test_agg_relabel_multiindex_raises_not_existrB    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  rQ  r  r  r3  r4  )r+  r
  r   r   r   r   r   r   rE   )	r   r   rs   ry   r#   r$   r   r4   r5   )r%   r8   r>  r9   s       r   &test_agg_relabel_multiindex_duplicatesrD    s     
&\M
B ''(PQBJZZ'++
!4 , F c

0C1vQF33?H&+r"   kwargsr   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   rR  r   r   r   r   r   r  r   r
  r  )r   r#   r$   r   r   rs   r4   r5   )rE  r%   r8   r9   s       r    test_groupby_aggregate_empty_keyrH    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  rG  rR  r   r   )r  codesr   r   r#   r$   r   r4   r5   r  s      r   -test_groupby_aggregate_empty_key_empty_returnrL    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 )NrR  r   r   r   Fr   r   )rK  rK  rk   r   )r   r#   r$   r   r   r4   r5   r  s      r   2test_groupby_aggregate_empty_with_multiindex_framerN    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   zr   r   rP  r  皙?r   g      @g@      ?)r   valr   Fr  rT  r
  r  min_val)r   r   rP  )r  rR  rS  )r   rV  r"  r%   r7   r8   r9   s       r   9test_grouby_agg_loses_results_with_as_index_false_relabelrX    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   rQ  )r   r  rT  r   r  Fr  rT  r
  r  rU  r   r   r   )r   r   r   )r  rS  rR  )r   r  rV  r"  rW  s       r   Dtest_grouby_agg_loses_results_with_as_index_false_relabel_multiindexr[    st    
 
122	

B jj%5j9G[[E5!I[JFEUVH &+r"   r   c                 "    U R                  5       $ r*   r  r  s    r   r-   r-     s
    qvvxr"   c                 .    [         R                  " U 5      $ r*   r>  r]  s    r   r-   r-     s    2771:r"   c                 .    [         R                  " U 5      $ r*   )rq   nanmeanr]  s    r   r-   r-     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   )rX   rY   r   r  )r   r   r   SiskoJanewayrk   r   r   r   r        @r   r
  g      @r   ))r   r   )r   r   )r   r   r  )
r   r   from_arraysr#   rq   r   r$   ry   r4   r5   )r   rx   r%   r8   expected_dictr9   s         r   test_multiindex_custom_funcrg    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  rq   r  r]  s    r   myfuncrk  2  s    ==d##r"   c                 ,    [         R                  " U SS9$ ri  rj  r]  s    r   r-   r-   6  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dogro  rp  g333333"@g      @      #@      A@皙@r-  #@     h@kindheightweightry  )rz  r2   rz  )mean_heightperc90g"@g0'5"@g      4@g5^I@r|  r}  ro  rp  r   r   ra  )r   animalsr8   r9   s       r   test_lambda_named_aggr  6  s     0+,	
G __V$((&$/? ) F 
vu&)UEN0H &+r"   c            	      p   [        [        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SS9S9n[        R                  " X5        g )Nr   rn   r   XYZr  rx   ry   rF   )group 1r  r   groupingc                 "    U R                  5       $ r*   )tolistr   s    r   r-   ,test_aggregate_mixed_types.<locals>.<lambda>S  s
    
r"   r   r  r   r  )XrA  Zr   r  )
r   rq   r   r   r   r#   rR   r   r4   r5   )r%   r8   r   r9   s       r   test_aggregate_mixed_typesr  M  s    	XXqcAg&&q!,d5ke
B /BzNZZ
#--.BCFcA3_1v1v1v&>?MQ	N(DoX6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   )rU  r   r   r   s    r   r  5test_aggregate_udf_na_extension_type.<locals>.aggfuncf  s    q1u::55Lr"   r<   r  r  r   r   r   r   rE   )r   r   r   r#   r$   r   r4   r5   )r  r%   r8   r9   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
)TestLambdaManglingir  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   r]  r<   rQ   c                     gr   r  r   s    r   r-   /TestLambdaMangling.test_basic.<locals>.<lambda>u  s    ar"   c                     gr  r  r   s    r   r-   r  u  s    1r"   r   r   ))rQ   
<lambda_0>)rQ   
<lambda_1>r   rE   ra  r  s       r   
test_basicTestLambdaMangling.test_basics  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>  r0  r"   c                     gr  r  r   s    r   r-   r    s    r"   r   r   r  r  rE   r  )r  r  r8   exp_datar9   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*   rN   r   r   r   s      r   r-   5TestLambdaMangling.test_with_kwargs.<locals>.<lambda>  s    quuw{Qr"   r   c                 ,    U R                  5       X-  -   $ r*   rN   r  s      r   r-   r    s    quuwr"   r   r   r   r  r   )r      r   )r   )r   )r	   r#   r$   r   r4   r5   )r  f1f2r8   r9   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 )Nrn  rq  rt  rx  )height_sqr_min
height_max
weight_maxp=
׳T@      B@rr  rs  rv  rw  ro  rp  ry  r   r  byrz  c                 4    [         R                  " U S-  5      $ rD   rq   r
  r   s    r   r-   =TestLambdaMangling.test_agg_with_one_lambda.<locals>.<lambda>      266!Q$<r"   r  r	  r{  c                 4    [         R                  " U S-  5      $ rD   r  r   s    r   r-   r        q!tr"   rz  r	  r{  r	  )r   r   r#   r$   r   r  r4   r5   r  r%   ry   r9   result1r  s         r   test_agg_with_one_lambda+TestLambdaMangling.test_agg_with_one_lambda  s    4/0
 A#(%."Dk"El
 V4
 ***'++;;)? {{(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 ) Nrn  rq  rt  rx  )r  r  r  height_max_2
weight_minr  r  rr  rs  rv  rw  ru  r-  ro  rp  ry  r   r  r  rz  c                 4    [         R                  " U S-  5      $ rD   r  r   s    r   r-   =TestLambdaMangling.test_agg_multiple_lambda.<locals>.<lambda>  r  r"   r  r  c                 .    [         R                  " U 5      $ r*   rq   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      $ rD   r  r   s    r   r-   r    r  r"   r  r	  c                 .    [         R                  " U 5      $ r*   r  r   s    r   r-   r    s    q	r"   c                 .    [         R                  " U 5      $ r*   r  r   s    r   r-   r    s    bffQir"   )r   r   r#   r$   r4   r5   r   r  r  s         r   test_agg_multiple_lambda+TestLambdaMangling.test_agg_multiple_lambda  s=    4/0

 #(%."Dk"El!$d"Cj V4

 ***'++$&<=(("$78 "56 , 
 	g0 ***'++;;)? {{(EB{{(EBH>QR{{(<OP , 
 	g0r"   r  N)r  r  r  r  r  r  rG   r  xfailr  r  r  r  r  r"   r   r  r  r  s?    00 [[?@	0 A	0%1N11r"   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   r]  r<   rQ   c                 >    U R                  U R                  S   5      $ )N)getrF   r   s    r   r-   +test_groupby_get_by_index.<locals>.<lambda>  s    aeeAGGBK.@r"   r  r  r  r   )r   r#   r$   rr  r4   r5   )r%   r   r9   s      r   test_groupby_get_by_indexr    s_    	?	@B
**S/

s$@A
BCSzc
;<FFsKH#(r"   zgrp_col_dict, exp_data)nrcat_ordrX   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   rX   r   rY   rm   aabbccddaaaabbbbr  r  ro  categoryro  r  r  ro  Fobservedr   r   
categoriesorderedr   r   )rx   rF   )r   r   r   ro  
as_orderedr#   r$   r   CategoricalIndexr   r4   r5   )grp_col_dictr  input_df	result_df	cat_indexexpected_dfr   s          r    test_groupby_single_agg_cat_colsr    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   )rX   rm   r   )r   r   r   )rX   r   rK  r   )r   rK  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  ro  Fr  r   r   r  c              3   ,   >#    U  H	  nTU/v   M     g 7fr*   r  ).0r   r   s     r   	<genexpr>6test_groupby_combined_aggs_cat_cols.<locals>.<genexpr><  s     #>A5QJAs   r  )r   r   r   ro  r  r#   r$   r   r  itemsr   extendappendr   rs   r   ry   r   r4   r5   )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 )NrP  )r   r   r   r   r   r   rg  r  )r   r#   r$   ry   	droplevelr4   r5   )r%   rt   r8   r9   s       r   test_nonagg_aggr  J  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  rA  i  r   r   r      i`= i  r]  r<   rQ   )r   datetimer#   rQ   r	  rr  r4   rS   r  s      r   test_aggregate_datetime_objectsr   W  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   rZ  r   r   r   )c0c1pOr  r  c                     [        U S:  5      $ r   rT  r   s    r   r-   1test_groupby_index_object_dtype.<locals>.<lambda>n  s    #a!e*r"   )r   r   r  )r  r  rk   FTr  r   )r   rF   r   r#   r  r$   r   rs   r	   r4   rS   )r%   r7   r   r&  r9   s        r   test_groupby_index_object_dtyper	  i  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*   )isnarU  rq   r   r   s    r   r   )test_timeseries_groupby_agg.<locals>.func{  s&    88:>>vvc{r"   r  z2018-01-16 00:00:00+00:00rE   c                     gr  r  r   s    r   r-   -test_timeseries_groupby_agg.<locals>.<lambda>  s    qr"   r   )r   r   r  r#   r$   r4   r5   )r   r%   r   r9   s       r   test_timeseries_groupby_aggr  x  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  rk   r  rE   r  r  c                     U $ r*   r  r   s    r   r-   ,test_groupby_agg_precision.<locals>.<lambda>  s    r"   )r4   ALL_INT_NUMPY_DTYPESrq   iinfor	  FLOAT_NUMPY_DTYPESfinfoFLOAT_EA_DTYPESlowerALL_INT_EA_DTYPESr   r   r   r   re  r#   r$   r5   )any_real_numeric_dtype	max_valuer%   arraysrF   r9   r8   s          r   test_groupby_agg_precisionr    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)corrwithnthr   r   )r   ngroupF)check_names)	r   rq   rr   r#   r$   r4   rS   r5   dtypes)r   objresult_reduced_seriesresult_reduced_frames       r    test_groupby_aggregate_directoryr(    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 daysNaTtimedelta64[ns]r   z2 daysr   r   r   r   r   )r	   rq   r   r#   r2   r4   rS   )rx   r9   r8   s      r   test_group_mean_timedelta_natr-    sP    ,4EFDxj(91#OH\\)$))+F6,r"   zinput_data, expected_output)z2021-01-01T00:00r*  z2021-01-01T02:00z2021-01-01T01:00)z2021-01-01T00:00-0100r*  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   rE   r,  )r   r	   rq   r   r#   r2   r4   rS   )
input_dataexpected_outputrx   r9   r8   s        r   test_group_mean_datetime64_natr1    sS     vj)*D6/1#GHH\\)$))+F6,r"   zfunc, outputr2   y       @      2@y      $@      6@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	   rq   r   r   dotr#   rF   r$   r4   rS   )r   outputrx   r8   r9   s        r   test_groupby_complexr6    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   r3  zNo matching signature foundr>   )r	   rq   r   r   r4  rG   rH   r   r#   rF   r$   )r   rx   rJ   s      r   test_groupby_complex_raisesr8    sp     "))B-''A.22Ar7;<D
'C	y	,TZZ!^$((. 
-	,	,s   .B
B!prodr  c                 @   [        / SQ/ SQ/ SQS.5      nSn[        R                  " [        US9   UR	                  SSS	9nS S S 5        [
        R                  " [        S
S9   WR                  U 5        S S S 5        g ! , (       d  f       NB= f! , (       d  f       g = f)Nr  r   r   rX   )r   rY   rm   rR  rz   r>   r   r   r   z"axis other than 0 is not supported)	r   r4   r   r   r#   rG   rH   NotImplementedErrorr$   )r   r%   rJ   r&   s       r   test_multi_axis_1_raisesr=    su    
 
C	DB
7C		#	#M	=ZZ!Z$ 
>	*2V	W
t 
X	W 
>	=	W	Ws   A>#B>
B
Bztest, constantr<   rQ   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	   moderr  r4   r5   )r  constantdf1r8   r9   s        r   test_agg_of_mode_listrC    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  rR  r  r   c                 .    U R                  5       U-   U-   $ r*   rN   r   r   r   s      r   foo1@test_dataframe_groupy_agg_list_like_func_with_args.<locals>.foo1      uuw{Qr"   c                 .    U R                  5       U-   U-   $ r*   rN   r   r   r   s      r   foo2@test_dataframe_groupy_agg_list_like_func_with_args.<locals>.foo2  rI  r"   /foo1\(\) got an unexpected keyword argument 'b'r>   r   r   r!  r  rm   rn   r   r   )r   rG  )r   rL  r  r   r   r   r   )r   r#   rG   rH   r   r$   r   r   rs   r4   r5   )r%   r&   rG  rL  rJ   r8   r9   s          r   2test_dataframe_groupy_agg_list_like_func_with_argsrQ    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*   rN   rF  s      r   rG  =test_series_groupy_agg_list_like_func_with_args.<locals>.foo1/  rI  r"   c                 .    U R                  5       U-   U-   $ r*   rN   rK  s      r   rL  =test_series_groupy_agg_list_like_func_with_args.<locals>.foo22  rI  r"   rN  r>   r   r   r!  r  rm   rn   r   rG  rL  r  rO  rP  )
r	   r#   rG   rH   r   r$   r   r   r4   r5   )r  sgbrG  rL  rJ   r8   r9   s          r   /test_series_groupy_agg_list_like_func_with_argsrX  *  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   )rX   r   rY   rR  r   r   r   c                 "    U R                  5       $ r*   rN   r   s    r   r-   .test_agg_groupings_selection.<locals>.<lambda>E  s
    quuwr"   r   r   r   r   r   )r  rJ  rl   r   r^   rY   r!  rE   rK  )r%   r&   selected_gbr8   rF   r9   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   r   Fr  r   r   r2   r   r   rY   rX   r  rd  )r   r   r2   )r   r#   r$   r4   r5   rb  s       r   ?test_agg_multiple_with_as_index_false_subset_to_a_single_columnr_  M  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   rX   r   )a1a2r   ra  rb  F)r  r  r   )r   r   r   )r   r   rX   )r   r   r   ))ra   )rb  rc  )r   r   rw   )r   r#   r$   r   rs   r4   r5   rb  s       r   &test_agg_with_as_index_false_with_listrd  V  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:00r  )rg  z0 days 00:15:00rh  r+  r   )r   r   r   )rf  grpsri  )rf  rg  )rf  )r   r   	Timedeltar	   r#   r$   r4   r5   )r9   r%   r&   r8   s       r   Btest_groupby_agg_extension_timedelta_cumsum_with_named_aggregationrk  c  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   rR  )r  r   r]  rn  r>   r<   Fr  )r   r   CategoricalrG   rH   r   r#   r$   )r   r%   rJ   s      r   $test_groupby_aggregation_empty_grouprq  |  sj    
 
nnc3ZODAq6R
B !C	z	-


3
'++D1 
.	-	-s    A//
A=)s__doc__r  r  r   r  numpyrq   rG   pandas.errorsr   pandas.core.dtypes.commonr   pandasr   r   r   r   r	   r
   r   pandas._testing_testingr4   pandas.core.groupby.grouperr   r'   r:   rK   rV   ru   r   r   r   r   r  r  r   r   r   intr   r   r   r   r  r  r  r)  r5  r9  rL  rN  r[  r_  rc  rs  r  ru  r  r  r  r   uint64r  r  r  r   interval_rangeperiod_rangers   r  r  r  r  r  r2   r  r?  rB  rD  rH  rL  rN  rX  r[  rg  rk  r  r  r  r  r  r  r  r  r  r   r	  r  r  r(  r-  r1  r6  r8  r=  paramrC  rQ  rX  r]  r_  rd  rk  rq  r  r"   r   <module>r     s	      	   , 6    0	,+..,b,,'6,,, ),=?T+UV,,4,+  .		7B'	
Q5u5%IJ		3e%e DE		7S'N3	
Qu5u)MN		7)))$TU
,
,$ ,	!Q"bB8,7.HI	&A"I.	!q	AI9=>	,,*0, 4$,* ,F,"!H0- ,	, $'!

$

$ 
qc$%
sZ!qc
aS1#JsCjIJ C D #FG, H," 
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s0 s0l I  ! F#J#J	
 )*%!FF#J	
 KK
E*KK
BGG,KK
K0F#JF	
#:,;:,2>," S5'N"E74K#LM	, N	,,,,,* 
!57NO,,&$ "Df!MN, O,,,  89, :,(v1 v1r) %	(!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/ 
eWvuoU|65QR 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2r"   