
    Pi`                     8   d Z ddlZddlZddlmZ ddlZddlZddlmZ ddl	m
c mZ ddlmZ ddlZddlmZmZmZmZmZmZ ddlmZ ddlmZ ddlmZ d	 Zd
 Zd Z d Z!d Z"d Z#d Z$d Z%d Z&d Z'ej(        )                    dd d d gg          d             Z*d Z+d Z,d Z-d Z.d Z/d Z0d Z1d Z2d  Z3d! Z4d" Z5d# Z6d$ Z7d% Z8ej(        )                    d&d' d( d) d* d+ d, g          d-             Z9ej(        )                    d.d/g ed0gd/1          fd/d2g ed0gd3ggdgdggd/d2g4          fg          ej(        )                    d5g d6          ej(        )                    d7g d6          ej(        )                    d8g d9          d:                                                 Z:ej(        )                    d.d/g ed0gd/1          fd/d2g ed0gd3ggdgdggd/d2g4          fg          ej(        )                    d;g d<          ej(        )                    d=e;e<e=g          ej(        )                    d8g d9          d>                                                 Z>d? Z?d@ Z@ej(        )                    d=ejA        ejB        g          ej(        )                    dAg dB          dC                         ZCdD ZDej(        )                    dE ejE         eFdF                     ejG        ddG           ejH        dHdGdIJ           ejI        g dK          g          dL             ZJdM ZKdN ZL G dO dP          ZM G dQ dR          ZNej(        )                    dSdTdUejO        fdVd0dGgdWdXgdYdZgfdUd[ fdUd\ fd]ejO        fd0dGgd0d0gdYdZgf ejP        dUd^           ejP        d]ejO                   ejP        dUd_           d0dGgdYdZgd0d0gfg          d`             ZQda ZRdb ZSej(        )                    dcdddegig degdfg          dg             ZTdh ZUdi ZVdj ZWdk ZXdl ZYej(        )                    dmdn do dp g          dq             ZZdr Z[ej(        )                    dmds e[g          dt             Z\du Z]ej(        ^                    dvw          dx             Z_ G dy dz          Z`d{ Zad| Zbej(        )                    d}deded~d0dgd/ddgd~fddeidd/ddgifddeidd0dgifg          d             Zcej(        )                    d}ded^gded~ddgfdeded^gd~ddgfdded^giddgfg          d             Zdd Zed Zfd Zgd Zhd Zid Zjd Zkej(        )                    dg ddgfg ddgfg          d             Zlej(        )                    ddddgfdddgfg          d             Zmej(        )                    dmg d          d             Znej(        )                    dddgddgddggddgdddggdfddgddgddggddgddgdgdfd/d0gd/d0gd2d3gd2dGggd/d2gd0d3dGggdf ejo        d/d0gd/d3gd2dGgd2dGggd/d2gd0d3gdGgdej(        j^                  g          d             Zpd Zqd Zrd Zsd Ztd Zud Zvd Zwd Zxd Zyd Zzd Z{d Z| ej}        d          ej(        )                    d=g d          d                         Z~ ej}        d          d             Z ej}        d          d             Z ej}        d          d             Zd Zd ZdS )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                      t          g dg dd          } |                     d          d         }d }|                    |           d S )Nabcr               )keyvaluer   r   c                 T    t          |           dk    sJ |                                 S Nr   )lensumxs    /home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/pandas/tests/groupby/aggregate/test_aggregate.py
dummy_funcz3test_groupby_agg_no_extra_calls.<locals>.dummy_func$   s"    1vv{{{{uuww    )r   groupbyagg)dfgbr!   s      r    test_groupby_agg_no_extra_callsr'      sa    	///,,,GG	H	HB	E		7	#B   FF:r"   c                     |                      d d g          }|                    d          }|                                }t          j        ||           d S )Nc                     | j         S Nyearr   s    r    <lambda>z&test_agg_regression1.<locals>.<lambda>,   s     r"   c                     | j         S r*   monthr   s    r    r-   z&test_agg_regression1.<locals>.<lambda>,   s    17 r"   meanr#   r$   r1   tmassert_frame_equal)tsframegroupedresultexpecteds       r    test_agg_regression1r9   +   sW    oo//1B1BCDDG[[  F||~~H&(+++++r"   c                 f   |                      d          d         }d}t          j        t          |          5  |                    d            d d d            n# 1 swxY w Y   t          j        t          |          5  |                    d            d d d            d S # 1 swxY w Y   d S )NACzMust produce aggregated valuematchc                 *    |                                  S r*   )describer   s    r    r-   z#test_agg_must_agg.<locals>.<lambda>7   s    ajjll r"   c                      | j         d d         S Nr   indexr   s    r    r-   z#test_agg_must_agg.<locals>.<lambda>9   s    agbqbk r"   )r#   pytestraises	Exceptionr$   )r%   r6   msgs      r    test_agg_must_aggrI   2   s*   jjooc"G
)C	y	,	,	, , ,**+++, , , , , , , , , , , , , , ,	y	,	,	, + +))***+ + + + + + + + + + + + + + + + + +s#   AA #A B&&B*-B*c                    d }| j                             | j        | j        g                              |          }|                     ddg                                          d         }t          j        ||           d S )Nc                 *    |                                  S r*   r   r   s    r    r-   z(test_agg_ser_multi_key.<locals>.<lambda>=       !%%'' r"   r;   Br<   )r<   r#   r;   rN   	aggregater   r3   assert_series_equal)r%   fresultsr8   s       r    test_agg_ser_multi_keyrS   <   sr    AdllBD"$<((22155Gzz3*%%))++C0H7H-----r"   c                  z   t          t          j        t          j        t          j        t          j        gt          j        t          j        t          j        t          j        gt          j        t          j        t          j        t          j        gg dg dd          } |                     ddd          }t          t          j        t          j        t          j        gt          j        t          j        t          j        gt          j        t          j        dgd	g d
          }t          j        ||           d S )N)NNNNr   )nannanatnonevalues)rU   min)rV   rZ   )rY   r   r   yzg      $@)rU   rV   rY   rC   )	r   nprU   pdNANaTr$   r3   r4   )
missing_dfr7   r8   s      r    test_agg_with_missing_valuesrc   C   s    FBFBFBF35"%.FBFBFBF3,,,"ll	
 	
 J ^^nAR^SSFFBFBF+62626*vrvt,	
 	

 oo  H &(+++++r"   c                  J   t          dddt          j        ddddgdddt          j        ddd	d
gdt          j        g dddg                    } t          dddddddt          j        ddddgd
ddddddt          j        d	dddgddddt          j        dddddt          j        dgddddt          j        dddddt          j        t          j        gd          }|                    ddg          }|dd g                                         }t          j        ||            d S )!N      r   r   r   7   M   !   ,      )v1v2))r   _   )r   c   )r   rn   )r   ro   )bigdamp)bluedry)redrt   )rt   wetby1by2namesrC      	   X   ro   rt   rr   r   rp      ru   rs   rn   rq   )rl   rm   rv   rw   rl   rm   )	r   r^   rU   r   from_tuplesr#   r1   r3   r4   )r8   r%   gr7   s       r    $test_groupby_aggregation_mixed_dtyper   ]   sk   aBFAq!Q/r2rvr2r26	
 	
 $	 	 	 %.
 
 
  H( 
aAq!Q1a;r2r2r2rvr2r2F61a1eQPRS		
 	

 
B, 	

E5>""Ad|_!!##F&(+++++r"   c           	         |                      | t          j        z  d          }| j        t          j        k    sJ t          g t          j        t          g t          j                            }t          j        |	                                |           t          j        |
                    d          |           t          j        |                    d          |d           |                     |d         t          j        z  d          }t          |j        t          t          g dt          j                  	          }t          j        |	                                |           t          j        |
                    d          |           |                    t          j	        d
          }|                    d          }t          j        ||           d S )NF
group_keysdtyper   rD   r   )check_index_typer;   )namer   )columnsr   rD   r   axisTdrop)r#   r^   rU   r   float64r	   r   r3   rP   r   r$   applyr   r   floatr4   reset_index)tsr5   r6   expexp_dfress         r    test_agg_apply_cornerr      s   jjbfj77G8rz!!!! 2:U2RZ-H-H-H
I
I
IC7;;==#...7;;u--s3337==//uMMMM oogclRV3oFFGBS
333  F
 '++--000'++e,,f555
--Q-
'
'CT**F#v&&&&&r"   c                    t          t          j        d                    }t          t          j        d          ||           }t          t          j        dddt          j        t          j        ddt          j        dg
|          }|                    |          }|                    t                    }t          ddgddg          }t          j
        ||d	           d
 }|                    |          }t          ddgddg          }|j        t          j        k    r|                    t          j                  }t          j
        ||           d S )N
   r   foobarrC   r   r   F)check_dtypec                 :    t          t          |                     S r*   )r   r   r   s    r    rQ   ztest_with_na_groups.<locals>.f   s    SVV}}r"         @       @)r   r^   aranger	   onesrU   r#   r$   r   r3   rP   r   float32astype)any_real_numpy_dtyperD   rY   labelsr6   aggedr8   rQ   s           r    test_with_na_groupsr      s6   ")B--  EBGBKK.BCCCF	ubfbfeUBFER  F nnV$$GKKEq!fUEN333H5(>>>>
   KKNNEsCj777H|rz!!??2:..5(+++++r"   c           	         t          t          j                            d                              d          t          t          d          t                    t          j	        ddd          	          }|
                    d
           }|j        j        d         j        }t          | j        t          |                    |j        j        d<   |                    d          }|                                }t%          j        ||           t          | j        t)          |                    |j        j        d<   |                    d          }|                                }t%          j        ||           d S )Nr   )   r   ABCDr   z
2000-01-01r   rN   periodsfreqr   rD   c                     | j         S r*   r+   r   s    r    r-   z1test_agg_grouping_is_list_tuple.<locals>.<lambda>   s    16 r"   r   r1   )r   r^   randomdefault_rngstandard_normalr   listobjectr_   
date_ranger#   _grouper	groupingsgrouping_vectorr   rD   r$   r1   r3   r4   tuple)r   r%   r6   grouperr7   r8   s         r    test_agg_grouping_is_list_tupler      s7   	
	a  0099d6ll&111mL"3???
 
 
B jj))**G(+;G$,RXtG}}$E$EGq![[  F||~~H&(+++$,RXuW~~$F$FGq![[  F||~~H&(+++++r"   c                     |                      ddg          }|                    d          }|                                }t          j        ||           d S )Nr;   rN   r1   r2   ) multiindex_dataframe_random_datar6   r7   r8   s       r    test_agg_python_multiindexr      sP    .66SzBBG[[  F||~~H&(+++++r"   groupbyfuncc                 *    |                                  S r*   weekdayr   s    r    r-   r-      s    aiikk r"   c                     | j         S r*   r/   r   s    r    r-   r-      s    ag r"   c                 *    |                                  S r*   r   r   s    r    r-   r-      s     r"   c                    |                      |          }|d                             d          }|d                                         }t          j        ||           |                    d          }|                                }t          j        ||           |                    ddddd          }t          |d                                         |d                                         |d         	                                |d	         
                                d          }t          j        ||           d S )
Nr;   stdvarr1   sem)r;   rN   r<   DrN   r<   r   )r#   r$   r   r3   rP   rO   r   r4   r   r1   r   )r5   r   r6   r7   r8   s        r    test_aggregate_str_funcr      s*    ook**G S\e$$Fs|!!H68,,, u%%F{{}}H&(+++ [[u5vEJJKKF!!##!!##""$$!!##		
 	
 H &(+++++r"   c                 4   t          g dt          t          j        ddddddgd          d          }|                    d                                          }t          dd	d
git          ddgd          d          }t          j        ||           d S )N)r   r   r   r   r   r   r   r   r   Float64r   r   r   r   r   g(y?r   r   rD   r   )	r   r	   r_   r`   r#   r   r   r3   r4   )any_numeric_ea_dtyper%   r7   r8   s       r    test_std_masked_dtyper      s    	&&&1aAq1CCC	
 	

 
B ZZ__  ""F	wl5!Qc#:#:#:)  H &(+++++r"   c                     |                      d          }d| d}t          j        t          |          5  |                    |d           d d d            d S # 1 swxY w Y   d S )Nr   levelz
Operation z does not support axis=1r=   r   r   )r#   rE   rF   
ValueErrorr$   )r%   reduction_funcr&   rH   s       r    %test_agg_str_with_kwarg_axis_1_raisesr     s    	!		B
?~
?
?
?C	z	-	-	- ' '
~A&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 's   AA!$A!c                 @   |                      d          }d }|                    |          }| j        dk                                    }| j        dk                                    }t	          |j                  }t          t          j        |g|z            t          d          d          }t          j        |                    d          |           t          t          j        |g|z            t          d          d          }t          j        |                    d          |           d }t                                           | j                                      |          }t          |t                    sJ t	          |          dk    sJ d S )	Nr;   c                     | j         S r*   sizesers    r    r-   z-test_aggregate_item_by_item.<locals>.<lambda>  s    38 r"   r   r   BCDrD   r   c                     | j         S r*   r   r   s    r    aggfun_1z-test_aggregate_item_by_item.<locals>.aggfun_1&  s	    xr"   r   )r#   r$   r;   r   r   r   r	   r^   arrayr   r3   rP   xsassert_almost_equalr   
isinstance)	r%   r6   aggfun_0r7   foosumbarsumKr   r   s	            r    test_aggregate_item_by_itemr     sf   jjooG##H[[""Fdem  ""Fdem  ""FFNA 6(Q,''tE{{
G
G
GC699U++S111
6(Q,''tE{{
G
G
GC699U++S111   [[  &&**844Ffi(((((v;;!r"   c                    |                      ddg          }d }t          j        t          d          5  |                    |           d d d            n# 1 swxY w Y   |g d                             |          }| j        d d g df         }|                     ddg                              |          }t          j        ||           d S )Nr;   rN   c                 h    | j         t          dfv rt          d          |                                 S )NstringTest error message)r   r   	TypeErrorr   r   s    r    funcztest_wrap_agg_out.<locals>.func1  s1    9***0111wwyyr"   r   r=   )r   EF)r;   rN   r   r   r   )r#   rE   rF   r   rO   locr3   r4   )three_groupr6   r   r7   exp_groupedr8   s         r    test_wrap_agg_outr   .  s   !!3*--G  
 
y(<	=	=	=    $                             ___%//55F/!!!%>%>%>">?K""C:..88>>H&(+++++s   AAAc                 
   dt           j        fdt           j        fdt           j        fg}|                     d          d                             |          }t          g d          }t          j        |j	        |           d S )Nr1   maxrZ   r;   r<   )r1   r   rZ   )
r^   r1   r   rZ   r#   r$   r   r3   assert_index_equalr   )r%   funcsr7   exp_colss       r    *test_agg_multiple_functions_maintain_orderr   >  sr    bg%AEZZ__S!%%e,,F+++,,H&.(33333r"   c                     | j         d d dgf                             | d                   }|                    d           }|j        j        dk    sJ d S )Nr<   r;   c                 *    |                                  S r*   r1   r   s    r    r-   z(test_series_index_name.<locals>.<lambda>I  s    16688 r"   )r   r#   r$   rD   r   )r%   r6   r7   s      r    test_series_index_namer   G  s[    fQQQX&&r#w//G[[++,,F<######r"   c                  h   t          t          j                            d                              d          t          j        ddd          g d                              d	                              d
t          t          j
        d          t          t          j
        d          gi          } t          j        dd	d          }t          j        ddg          }t          j        fddD                       j        }t          |||          }t          j        | |           d S )Nr     r   1/1/2012sr  )r   r   r;   rN   r<   rD   r   3minr;   H.?q镲q?   )r;   quantilec                 v    g | ]5}                     d           j                            |          j        6S r  r	  resampler;   r  rY   .0r
  r%   s     r    
<listcomp>z9test_agg_multiple_functions_same_name.<locals>.<listcomp>Z  <    NNNV				'	'!	'	,	,	3NNNr"   r  r  r   )r   r^   r   r   r   r_   r   r  r$   r   r  r   r~   r   Tr3   r4   )r7   expected_indexexpected_columnsexpected_valuesr8   r%   s        @r    %test_agg_multiple_functions_same_namer  M  s9   	
	a  00;;mJS$???
 
 
B
 [[  $$	wr{f---wr{f/M/M/MNO F ]:FAFFFN!-/@BS.TUUhNNNN=MNNN   !1  H &(+++++r"   c            	         t          t          j                            d                              d          t          j        dddd          t          g dd	
                                        d          	                    ddt          t          j        d          t          t          j        d          gi          } t          j        dddd          }t          j        g dg d          }t          j        fddD                       j        }t          j                            d          j                                        |g          }t          |||          }t'          j        | |           d S )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  NNrx   c                 v    g | ]5}                     d           j                            |          j        6S r  r  r  s     r    r  zKtest_agg_multiple_functions_same_name_with_ohlc_present.<locals>.<listcomp>z  r  r"   r  r   )r   r^   r   r   r   r_   r   r   r  r$   r   r  r   r~   r   r  hstackr;   r  r3   r4   )r7   r  r  non_ohlc_expected_valuesr  r8   r%   s         @r    7test_agg_multiple_functions_same_name_with_ohlc_presentr(  b  s    

	a  00;;mJS$UKKKoooG444
 
 
B
 [[  $$	vwr{f555wr{f7U7U7UVW F ]:FAERRRN!-	
 	
 	
 $##
 
 
  "xNNNN=MNNN     i	V				#	#	%	%'?@ O !1  H &(+++++r"   c                    |                      ddg          } ddg}ddg}|                     d          d                             |          }|                     d          d                             |          }t          j        ||           |                     d                              |          }|                     d                              |          }t          j        ||           d S )	NrN   r<   r   )r   r1   r   )r   r   r;   r   )r   r#   r$   r3   r4   )r%   r   ex_funcsr7   r8   s        r    -test_multiple_functions_tuples_and_non_tuplesr,    s     
#s	$	$Be$E0HZZ__S!%%e,,Fzz#s#''11H&(+++ZZ__  ''Fzz#""8,,H&(+++++r"   c                    |                      d          }|                    ddd          }|                    ddd          }t          ||gddgd          }|                    ddd                              dd	          }ddgddgd}|                    |          }t          j        ||           |                    dddgd          }|                    dddgd          }t          j        ||           d
 }d }d}	ddddd}t          j	        t          |	          5  |                    |           d d d            n# 1 swxY w Y   dg||gd}|                    |           d S )Nr;   r1   r<   r   r   r   )keysr   r   r   )r   r   c                 *    t          j        |           S r*   r^   r1   r   s    r    	numpymeanz:test_more_flexible_frame_multi_function.<locals>.numpymean  s    wqzzr"   c                 .    t          j        | d          S )Nr   )ddof)r^   r   r   s    r    numpystdz9test_more_flexible_frame_multi_function.<locals>.numpystd  s    vaa    r"   nested renamer is not supportedr   r   r=   )r#   r$   r
   	swaplevel
sort_indexrO   r3   r4   rE   rF   r   )
r%   r6   exmeanexstdr8   dr7   r2  r5  rH   s
             r    'test_more_flexible_frame_multi_functionr=    s   jjooG[[vF3344FKKe%0011EvuoVUO!DDDH!!!QQ!//:::KKHuoVUO44Aq!!F&(+++ V65/BBCCF  vVUO!D!DEEH&(+++  ! ! ! -C6%8899A	)	5	5	5  !               hi233Aas   0EEEc                    |                      d          }dddddid}d}t          j        t          |          5  |                    |           d d d            n# 1 swxY w Y   ddddd}t          j        t          |          5  |                    |           d d d            n# 1 swxY w Y   ddddd}t          j        t          |          5  |                    |           d d d            d S # 1 swxY w Y   d S )	Nr;   r1   r   r7  r   r.  r6  r=   )r#   rE   rF   r   rO   )r%   r6   r<  rH   s       r     test_multi_function_flexible_mixr?    s   jjooG U++5%.AAA
,C	)	5	5	5  !               U++%88A	)	5	5	5  !               U++%88A	)	5	5	5  !                 s5   AA#&A#B//B36B3D  DDc                     t          g dg dg dd          } |                     d          }t          ddgd          }|d	                             d
           }t	          ddg|d	          }t          j        ||           |d                             d           }t	          ddg|d          }t          j        ||           d S )Nr   r   r   r   r   r   r   r   )NNr   r   r   r   r   r   r   r   r   r   c                 2    | dk                                     S r   allr   s    r    r-   z1test_groupby_agg_coercing_bools.<locals>.<lambda>  s    !q& r"   FTr   r   c                 N    |                                                                  S r*   )isnullrF  r   s    r    r-   z1test_groupby_agg_coercing_bools.<locals>.<lambda>  s    )9)9 r"   )r   r#   r   rO   r	   r3   rP   )datgprD   r7   r8   s        r    test_groupby_agg_coercing_boolsrK    s    
,,,\\\@R@R@RSS
T
TC	S		B1a&s###EW7788Fudm5s;;;H68,,,W99::FtUm5s;;;H68,,,,,r"   c                     t          g dg dd          } |                     d          dg                             ddi          }t          dddgiddg	                              dd
          }t	          j        ||           d S )N)r;   r;   rN   rN   rN   )r   r   r   r   r   r;   rN   r;   rN   r   r   r   rC   r   r   )r   r#   r$   rename_axisr3   r4   )rI  r7   r8   s      r    "test_groupby_agg_dict_with_getitemrO    s    
333///JJ
K
KC[[se$((#u66F#1vsCj999EEcPQERRH&(+++++r"   c                     t          g dg dg dgg d          } |                     d          }|                    ddi          }t          dd	d
git          ddgd                    }t	          j        ||           d S )Nr   r   r   r   re   r   r   re   r  r   r*  r   r   r   re   r   r   r   r   rC   r   r#   r$   r   r3   r4   r%   r&   r7   r8   s       r    !test_groupby_agg_dict_dup_columnsrU    s    		|||\\\2$$$
 
 
B 
CBVVS%L!!F#1veQF.E.E.EFFFH&(+++++r"   opc                 *    |                                  S r*   rL   r   s    r    r-   r-     rM   r"   c                 *    |                                  S r*   )cumsumr   s    r    r-   r-     s    !((** r"   c                 ,    |                      d          S Nr   	transformr   s    r    r-   r-     s    !++e$$ r"   c                 ,    |                      d          S NrY  r\  r   s    r    r-   r-     s    !++h'' r"   c                 ,    |                      d          S r[  r$   r   s    r    r-   r-     s    !%%,, r"   c                 ,    |                      d          S r_  ra  r   s    r    r-   r-      s    !%%// r"   c                 D   t          ddgddgd          }|                    d          d         } | |                    d                    d         j        }t	          |          sJ  | |                    d                    j        }t	          |          sJ d S )Nr   FTr   r   r   )r   	set_indexr#   r   r   )rV  r%   r  r7   s       r    test_bool_agg_dtypere    s     
!Qudm44	5	5B
S#AR

3  %+FF#####R		#%FF#######r"   zkeys, agg_indexr   r   r   r   r   rx   input_dtype)boolint32int64r   r   result_dtypemethod)r   rO   r]  c                    t          dgdgdgd          }|d                             |          |d<   t          |                    |           dg         |          } |fd          }|dk    rt	          j        dd          n|}|d	k    r|d
k    rdk    rd
|dk    rdk    rdt          d|d         j        d         gi|                                        }	|dk    rdg|	j        _        t          j
        ||	           d S )Nr   r   TrC  r   c                 D    |                                j        d         S r   r   iloc)r   rj  s    r    r-   z2test_callable_result_dtype_frame.<locals>.<lambda>%  s    !((<005a8 r"   r]  r   rO   r   r   rh  ri  rC   r   )r   r   getattrr#   r_   
RangeIndexro  r   ry   r3   r4   )
r/  	agg_indexrf  rj  rk  r%   rV  r7   r  r8   s
      `      r     test_callable_result_dtype_framers    s?   $ 
!A3dV44	5	5Bgnn[))BsG	D!!3%(&	1	1BR888899F,2k,A,AR]1a(((yN)##	(A(A$L'!!lg&=&="L#3Q01HHHOO H "#&(+++++r"   input)Tr         ?r   c                 t   t          dgdg|gd          }t          |                    |           d         |          } |fd          }|dk    rt          j        dd          n|}t          |d         j        d         g|d                                        }	t          j	        ||	           d S )	Nr   r   rC  r   c                 D    |                                j        d         S r   rn  )r   r   s    r    r-   z3test_callable_result_dtype_series.<locals>.<lambda>E  s    !((5//.q1 r"   r]  r   r   )
r   rp  r#   r_   rq  r	   ro  r   r3   rP   )
r/  rr  rt  r   rk  r%   rV  r7   r  r8   s
      `      r    !test_callable_result_dtype_seriesrx  7  s     
!A3eW55	6	6B	D!!#&	/	/BR111122F,2k,A,AR]1a(((yNr#w|A'~CHHHOOPUVVH68,,,,,r"   c                      t          g dg dd          } |                     d                              g d          }|j        j        d         }t          g d          }t          j        ||           d S )NrA  r   rM  r;   )r   r   r1   r  rZ   r   )r   r#   r$   r   levelsr   r3   r   )r%   r   r7   r8   s       r    #test_order_aggregate_multiple_funcsr{  K  s    	LLL99	:	:B
**S//

CCC
D
DC["F:::;;H&(+++++r"   c           	      :   t          g dddt          j        ddt          j        gd|           }|                    d          }|                                }t          g d	t          j        gd
z  dgd
z  dgd
z  gt          j        dgg dg          t          g d| d          |           }t          j	        ||           |                    dd          }|                                }|
                                }t          j	        ||           d S )N)r   r   r   r   r   r      rk   r      r   r   r   )r}  r}  rk   rk   r   r   )r   r!  r"  r#  r   r   r   )r   rD   r   Fas_index)r   r_   r`   r#   r  r   from_productr   r3   r4   r   )r   r%   r&   r7   r8   gb2result2	expected2s           r    test_ohlc_ea_dtypesr  W  s*   	   Br2ru'EFF"
 
 
B 
CBWWYYF			BE7Q;q2$(;'#0P0P0P(QRRLLL(<3GGG"	  H &(+++
**S5*
)
)ChhjjG$$&&I'9-----r"   how)firstlastrZ   r   r1   medianc                    t          dddgd          }|                    d                              d|i          }|j                            |           |_        |                    d                              d|i          }|dvr)|j                            t
          j                  |_        t          j        ||d	           d S )
Nl   &tLWHd~ r   r   r   r\   r\   r   )r1   r  T)check_exact)	r   r#   r$   r   r   r^   ri  r3   r4   )r   r  r%   r8   r7   s        r    test_uint64_type_handlingr  m  s     
,Aq6::	;	;Bzz#""C:..H4;;uBDZZ__  #s,,F
$$$8??28,,&(======r"   c                      d} t          g dg dd          }t          j        t          |           5  |                    d                              ddg           d d d            d S # 1 swxY w Y   d S )NzFunction namesr   r   r   r   r   rM  r=   r;   rZ   )r   rE   rF   r   r#   r$   )rH   r%   s     r    test_func_duplicates_raisesr  {  s    
C	LLL99	:	:B	)	5	5	5 , ,


3UEN+++, , , , , , , , , , , , , , , , , ,s   +A,,A03A0rD   abcr   2020r   r   ))r   r   )r   r   )r   r   c                    t          g dg dd|           }|                    d                              dt          j        i          }t          ddgddgd                              d          }t          j        ||           d S )	Nr   r   r   )r   r   r   )groupr   rC   r  r   r   r   )r   r#   r$   r	   nuniquerd  r3   r4   )rD   r%   r7   r8   s       r    $test_agg_index_has_complex_internalsr    s     
YYY;;5	I	I	IBZZ  $$gv~%>??FAq6QF;;<<FFwOOH&(+++++r"   c                     t          g dg dg dd          } |                     d                                          }t          ddgddgdt          d	d
gd                    }t	          j        ||           d S )N)r   r   r   r   r   )onetwor  r  r  )threer  r  sixr  key1key2key3r  r  r  )r  r  r   r   r   rC   )r   r#   rZ   r   r3   r4   r%   r7   r8   s      r    test_agg_split_blockr    s    	---777===	
 	

 
B ZZ##%%F%88S#JV,,,  H &(+++++r"   c            
         t          t          j        dd          g dg dg dt          j        dd          g dd                              t                    } |                     g d                                          }t          t          j        d          gd	gd
gdgt          j        d          gd
gdt          j	        dg          t                    }t          j        ||           d S )N2000r   )r   )r   r   r   r<  r   )r   r   r<  e)r;   rN   r<   r   r   r   r   r   r   r   r   r   r   r   r   )r   r_   r   r   r   r#   rZ   	Timestampr^   r   r3   r4   r  s      r    #test_agg_split_object_part_datetimer    s   	vq111%%%%%%vq111	
 	
	
 	
 fVnn  ZZ%%))++F,v&&',v&&'	
 	
 hsmm  H &(+++++r"   c                       e Zd Zd Zd Zd Zd Zej        	                    d e
j        dd          d	ddgg          d
             ZdS )TestNamedAggregationSeriesc                 x   t          g d          }|                    g d          }|                    dd          }t          ddgddgdd	d
gt	          j        ddg                    }t          j        ||           |                    dd          }|d
d	g         }t          j        ||           d S )Nr   r  r   rZ   r   r   rf   r   r   r   r   r   )r   r   r	   r#   r$   r   r^   r   r3   r4   )selfr%   grr7   r8   s        r    test_series_named_aggz0TestNamedAggregationSeries.test_series_named_agg  s    LLL!!ZZ%%%5))a&1v&&c
"(Aq6BRBR
 
 
 	fh///%5))S#J'
fh/////r"   c                 T   t          ddg                              ddg          }t          j        t          d          5  |                                 d d d            n# 1 swxY w Y   |                    g           }t          g           }t          j        ||           d S )Nr   r   r   Must provider=   r*  )	r	   r#   rE   rF   r   r$   r   r3   r4   r  r  r7   r8   s       r    test_no_args_raisesz.TestNamedAggregationSeries.test_no_args_raises  s    QF^^##QF++]9N;;; 	 	FFHHH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 R(((
fh/////s   A##A'*A'c                    t          g d                              g d          }|                    dd          }t          ddgddgdt	          j        ddg                    }t          j        ||           d S )	Nr   r   r   r   r   r   r   r   r   r   r   rC   r  )r  r  r6   r8   s       r    *test_series_named_agg_duplicates_no_raiseszETestNamedAggregationSeries.test_series_named_agg_duplicates_no_raises  s    III&&yyy11&&5E&**Aq6A77rxA?O?OPPP
h00000r"   c                    t          g d                              g d          }|                    d d           }t          ddgddgdt	          j        ddg                    }t          j        ||           d S )	Nr  r  c                     dS r    r   s    r    r-   z9TestNamedAggregationSeries.test_mangled.<locals>.<lambda>  s    A r"   c                     dS Nr   r  r   s    r    r-   z9TestNamedAggregationSeries.test_mangled.<locals>.<lambda>  s    1 r"   r   r   r   rC   r  r  s       r    test_mangledz'TestNamedAggregationSeries.test_mangled  s    III&&yyy11++55Aq6A77rxA?O?OPPP
fh/////r"   inpanythingrZ   columnaggfunc)r  rZ   c                    t          g d          }dt          |          j         }t          j        t
          |          5  |                    |j                                      |           d d d            d S # 1 swxY w Y   d S )N)r   r   r   r   r   r   r   re   zfunc is expected but received r=   r   )	r	   type__name__rE   rF   r   r#   rY   r$   )r  r  r  rH   s       r    test_named_agg_nametuplez3TestNamedAggregationSeries.test_named_agg_nametuple  s     +++,,CtCyy/ACC]9C000 	+ 	+IIah##c#***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+s   /B  BBN)r  
__module____qualname__r  r  r  r  rE   markparametrizer_   NamedAggr  r  r"   r    r  r    s        0 0 00 0 01 1 10 0 0 [BKz5999	
 + + + + +r"   r  c                   \    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd ZdS )TestNamedAggregationDataFramec           	      H   t          g dg dg dd          }|                    d                              dd          }t          d	d
gddgdt          ddgd          ddg          }t	          j        ||           t          j        t          j	        d          }|                    d                              dddddd|f          }t          ddgddgddgd	d
gddgd d!gdt          ddgd          g d          }t	          j        ||           d S )"Nr   r   r   r   rB  re   r  rf   rz   r  r;   rN   r  r;   r   rN   r   )a_maxb_maxr   r   r  rz   r   r   r   r  r  r  b   r	  rN   rZ   r;   rZ   )r;   r1   r;   )b_mina_mina_meanr  r  a_98re   rf   r   r         ?      @g\(\?gףp=
@)
r   r#   r$   r   r3   r4   	functoolsr   r^   
percentile)r  r%   r7   r8   p98s        r    test_agg_relabelz.TestNamedAggregationDataFrame.test_agg_relabel  s   ***LLLQQ
 
 G$$((|<(PP!f1v..c
111g&
 
 

 	fh/// 444G$$(( s ) 
 
 QQ*QQt  c
111JJJ
 
 
 	fh/////r"   c                     t          g dg dg dd          } |                    d          j        di ddi}t          ddd	git          d
dgd                    }t	          j        ||           d S )Nr  rB  r  r  r  zmy colr  r   r   r   r   r   rC   r  rS  r  r%   r7   r8   s       r    test_agg_relabel_non_identifierz=TestNamedAggregationDataFrame.test_agg_relabel_non_identifier  s    ***LLLQQ
 
 )G$$(DDHl+CDDhA/uc3Zg7V7V7VWWW
fh/////r"   c                    t          g dg dd          }|                    d                              dd          }t          ddgddgdt          d	dgd
                    }t	          j        ||           t          j        t          j	        d          }t          j        t          j	        d          }d|_
        d|_
        t          g dg dd          }|                    d                              d|fd|f          }t          ddgddgdt          ddgd
                    }t	          j        ||           d S )Nr  r   rM  r;   r  r   r   r   r   r   rC   2   r	  F   quant50quant70)r   r   r   r   r   )r   r   r   r   re   )col1col2r  r  )quantile_50quantile_70      ?r   g333333?g@r   r   )r   r#   r$   r   r3   r4   r  r   r^   r  r  )r  r%   r6   r8   r  r  tests          r    test_duplicate_no_raisesz6TestNamedAggregationDataFrame.test_duplicate_no_raises$  su    \\\==>>**S//%%%EEAq6A77uaVRU?V?V?VWWW
gx000#BMR888#BMR888$$";";";___UUVV,,v&&**)7H + 
 
  #JSzBBc
000
 
 
 	gx00000r"   c                 "   t          g dg ddt          j        ddgddgg                    }|                    d	
                              ddd          }t          d	dgd	dgddgdddg          }t          j        ||           d S )Nr  r   rM  r;   rN   r   r   rC   r   r   r  r  )rN   r1   )aabbccr   r        @)r   r   r  r#   r$   r3   r4   r  s       r    test_agg_relabel_with_levelz9TestNamedAggregationDataFrame.test_agg_relabel_with_level=  s    ,,\\\22)C:Sz*BCC
 
 
 !$$(( ) 
 
 q6!QSz::3*
 
 
 	fh/////r"   c                    t          g dg dd          }|                    d          }d}t          j        t          |          5  |                    d           d d d            n# 1 swxY w Y   t          j        t          |          5  |                                 d d d            n# 1 swxY w Y   t          j        t          |          5  |                    d	d
           d d d            d S # 1 swxY w Y   d S )Nr  r  rM  r;   r  r=   r   )r   r  r   )r   r#   rE   rF   r   r$   )r  r%   r6   r>   s       r    test_agg_relabel_other_raisesz;TestNamedAggregationDataFrame.test_agg_relabel_other_raisesJ  s   YYYYYY7788**S//]9E222 	 	KKAK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ]9E222 	 	KKMMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ]9E222 	5 	5KK,)K444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5s6   	A,,A03A0B33B7:B7C>>DDc                     t          ddgddgd          }d}t          j        t          |          5  |                    d                              d	           d d d            d S # 1 swxY w Y   d S )
Nr   r   r   rM  zLabel\(s\) \['C'\] do not existr=   r;   )r<   r   r   )r   rE   rF   KeyErrorr#   r$   )r  r%   rH   s      r    test_missing_raisesz1TestNamedAggregationDataFrame.test_missing_raisesW  s    aV1a&11220]83/// 	0 	0JJsOO,///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0s   *A++A/2A/c                 R   t          ddgddgd          }|                    d                              t          j        dd          t          j        dd	          
          }|                    d                              dd
          }t          j        ||           d S )Nr   r   r   rM  r;   rN   r   countr  r   r   )rN   r   )rN   r  r   r#   r$   r_   r  r3   r4   r  s       r    test_agg_namedtuplez1TestNamedAggregationDataFrame.test_agg_namedtuple]  s    aV1a&1122C$$k#u%%C)Q)Q)Q % 
 
 ::c??&&&HH
fh/////r"   c                 D     |j         ||fi |                                S r*   )betweenr   )r  r   r"  r!  kwargss        r    	n_betweenz'TestNamedAggregationDataFrame.n_betweene  s*    s{3////33555r"   c                 .   t          g dg dd          }|                    d                              t          j        d| j        dd                    }t          d	ddgit          ddgd
                    }t          j        ||           d S )Nr  r   r   r   rM  r;   rN   r   r   )count_betweenr  r   rC   	r   r#   r$   r_   r  r  r   r3   r4   r  s       r    test_namedagg_argsz0TestNamedAggregationDataFrame.test_namedagg_argsh  s    \\\>>??C$$+c4>1a@@ % 
 
 o1v6eQFQT>U>U>UVVV
fh/////r"   c           	      2   t          g dg dd          }|                    d                              t          j        d| j        ddd	          
          }t          dddgit          ddgd                    }t          j        ||           d S )Nr  r
  rM  r;   rN   r   r   both	inclusive)count_between_kwr  r   rC   r  r  s       r    test_namedagg_kwargsz2TestNamedAggregationDataFrame.test_namedagg_kwargsr  s    \\\>>??C$$[dnafUUU % 
 
 !Q(q!f30G0G0G
 
 
 	fh/////r"   c           	      2   t          g dg dd          }|                    d                              t          j        d| j        ddd	          
          }t          dddgit          ddgd                    }t          j        ||           d S )Nr  r
  rM  r;   rN   r   r   neitherr  )count_between_mixr  r   rC   r  r  s       r    test_namedagg_args_and_kwargsz;TestNamedAggregationDataFrame.test_namedagg_args_and_kwargs~  s    \\\>>??C$$ kT^QY   % 
 

  1a&)1vC1H1H1H
 
 
 	fh/////r"   c           
         t          g dg dd          }|                    d                              t          j        d| j        dd          t          j        d| j        dd          t          j        d| j        dd	          
          }t          g dg dg dd
t          g dd                    }t          j        ||           d S )NrB  r   rM  r;   rN   r   r   r   r   )n_between01n_between13n_between02)r   r   r   r   )r   r   r   r   )r   r   r   r   r   rC   r  r  s       r    ,test_multiple_named_agg_with_args_and_kwargszJTestNamedAggregationDataFrame.test_multiple_named_agg_with_args_and_kwargs  s    \\\==>>C$$CA>>CA>>CA>> % 
 

 +||+||+|| 
 3///
 
 
 	fh/////r"   c                    t          ddgddgddgd          }|                    d                              dd	 fd
d f          }t          ddgddgdt          ddgd                    }t	          j        ||           d S )Nr   r   r   r   r   r  r;   rN   c                     dS r   r  r   s    r    r-   z<TestNamedAggregationDataFrame.test_mangled.<locals>.<lambda>  s    q r"   r<   c                     dS r  r  r   s    r    r-   z<TestNamedAggregationDataFrame.test_mangled.<locals>.<lambda>  s    Q r"   r  r   rC   rS  r  s       r    r  z*TestNamedAggregationDataFrame.test_mangled  s    aV1a&1v>>??C$$[['9c;;=O$PPAq6A77uaVRU?V?V?VWWW
fh/////r"   N)r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r"   r    r  r    s        "0 "0 "0H0 0 01 1 120 0 05 5 50 0 00 0 06 6 60 0 0
0 
0 
00 0 00 0 0&0 0 0 0 0r"   r  zCagg_col1, agg_col2, agg_col3, agg_result1, agg_result2, agg_result3r\   r;   r   r"  )r\   rN   r1   r  r  g      @      @c                      t          |           S r*   )r   r   s    r    r-   r-     s    3q66 r"   c                     dS r  r  r   s    r    r-   r-         1 r"   r#  r   c                     dS r  r  r   s    r    r-   r-     s    a r"   c                    t          g dg dg dd          }t          j        g d          |_        t	          ddgd	          }|                    d                              d
          }t          dddgi|          }	t          j        ||	           |                    d                              | ||          }t          |||d|          }	t          j        ||	           d S )Nr  rB  r  r  r   r  r"  r#  r   r   r+  r   r!  )r  r  r   r   rC   )col_1col_2col_3)	r   r   r~   r   r   r#   r$   r3   r4   )
agg_col1agg_col2agg_col3agg_result1agg_result2agg_result3r%   idxr7   r8   s
             r    "test_agg_relabel_multiindex_columnr6    s   B 
&&&\\\MM
 
B '(P(P(PQQBJ
c

0
0
0CZZ''++2E+FFF'Aq6*#666H&(+++ZZ''++hh ,  F kJJRU  H &(+++++r"   c                  (   t          g dg dg dd          } t          j        g d          | _        t	          j        t          d          5  |                     d                              d	
           d d d            d S # 1 swxY w Y   d S )Nr  rB  r  r  r*  zdo not existr=   r+  ))Yr   r   r  )	r   r   r~   r   rE   rF   r  r#   r$   )r%   s    r    ,test_agg_relabel_multiindex_raises_not_existr9    s    	&&&\\\MM
 
B '(P(P(PQQBJ	x~	6	6	6 > >


>""&&)<&===> > > > > > > > > > > > > > > > > >s   *BBBc                  B   t          g dg dg dd          } t          j        g d          | _        |                     d                              dd          }t          d	d
gd          }t          ddgddgd|          }t          j        ||           d S )Nr  rB  r  r  r*  r+  )r"  rZ   r   r   r   r   r   r   rC   )	r   r   r~   r   r#   r$   r   r3   r4   )r%   r7   r5  r8   s       r    &test_agg_relabel_multiindex_duplicatesr;    s     
&&&\\\MM
 
B '(P(P(PQQBJZZ''++
!4 ,  F c

0
0
0C1vQF333???H&(+++++r"   r  r   rZ   r  c                 (   t          g dg dg dd          }|                    d                              |           }t          ddgt          ddgd	d
          t	          j        ddgg                    }t          j        ||           d S )Nr  r  r   r   r   rC  r   r   r   r   ri  r  r   rZ   r  )r   r#   r$   r   r   r~   r3   r4   )r  r%   r7   r8   s       r     test_groupby_aggregate_empty_keyr>    s     
CC	D	DBZZ__  ((F	
AQF'444&e~66  H
 &(+++++r"   c                      t          g dg dg dd          } |                     d                              dg i          }t          t          dgg gg g g                    }t	          j        ||           d S )	Nr  r  r=  rC  r   r   rz  codesr*  r   r#   r$   r   r3   r4   r  s      r    -test_groupby_aggregate_empty_key_empty_returnrC    s    	CC	D	DBZZ__  #r++FSE2;r2h!O!O!OPPPH&(+++++r"   c            	         t          g d          } |                     ddgd                              dt          f          }t          d	gt	          g g gg g gddg
                    }t          j        ||           d S )NrC  r*  r   r   Fr   r   )r<  r<  rx   r   )r   r#   r$   r   r   r3   r4   r  s      r    2test_groupby_aggregate_empty_with_multiindex_framerE    s    	???	+	+	+BZZc
uZ5599S$K9HHFZR2r(3*MMM  H &(+++++r"   c                  
   t          g dg dd          } |                     dd          }|                    t          j        dd	          
          }t          g dg dd          }t          j        ||           d S )N)r   r\   r]   r   r\   r]   ru  皙?r   g      @g@      ?)r   valr   Fr  rJ  rZ   r  min_valr[   )ru  rH  rI  )r   rL  r  r%   r6   r7   r8   s       r    9test_grouby_agg_loses_results_with_as_index_false_relabelrN    s     
...7V7V7VWW
 
B jjj//G[[E5!I!I!I[JJF=M=M=MNNOOH&(+++++r"   c                     t          g dg dg dd          } |                     ddgd          }|                    t          j        d	d
                    }t          g dg dg dd          }t          j        ||           d S )N)r   r\   r   r\   r   r   )r   r   r   r   r   r   rG  )r   r  rJ  r   r  Fr  rJ  rZ   r  rK  r   r   r\   )r   r   r   )ru  rI  rH  )r   r  rL  r  rM  s       r    Dtest_grouby_agg_loses_results_with_as_index_false_relabel_multiindexrQ  #  s    
 
111222222	
 	

 
B jj%5j99G[[E5!I!I!I[JJFEUEUEUVV H &(+++++r"   c                 h   |                      dd          }|ddg                             d          }|                    d          }t          j        ||           |                    dd	d
          }|                    d          }|                                d         |d<   t          j        ||           |                      dd          }d}t          j        t          |          5  |d                             dd	i           d d d            n# 1 swxY w Y   |                      ddgd          }|                    d          }|                                }t          j        ||           |                    dd	d
          }|                                }|                                d         |d<   t          j        ||           |d                                         }t          |          
                    ddi          }d}t          j        t          |          5  |d                             dd	i           d d d            n# 1 swxY w Y   t          t          j                            d                              ddd          g d          } t          t          j                            d                              ddd          d          }|                      |          }	|	                    d           dD ]}
|                      |d          }	 t#          |	|
                      }|                      |j        d          }	 t#          |	|
                                          d          }t          j        ||           d S )Nr;   Fr  r<   r   r1   T)numeric_onlyr   r.  r6  r=   QrN   r*  r   r   d   )r  r   )jimjoejoliere   r   r  rV  r   )r1   r   r  idxmaxrY  rF  r   )r#   r$   r1   r3   r4   r   rE   rF   r   r   renamer^   r   r   integersr	   nthrp  rY   r   )r%   r6   r7   r8   r  r  rH   	expected3r   r  attrleftrights                r    test_groupby_as_index_aggra  8  s   jjuj--G c3Z $$V,,F|||..H&(+++kkU3344G$//I[[]]3'IcN'9---jjtj,,G
,C	)	5	5	5 ' '#u&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' '
 jj#sej44G[[  F||~~H&(+++kkU3344GI[[]]3'IcN'9---  ""I)$$++S#J+??I
+C	)	5	5	5 ' '#u&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 

	a  ))!S'::'''
 
 
B 
	%%a((11!R<<5	I	I	IB	BBFF1IIIC + +ZZUZ++ wr4  ""ZZ	DZ11!D!!##//T/::
dE****+ +s$   4DD"%D":I$$I(+I(r   c                 *    |                                  S r*   r   r  s    r    r-   r-   t  s    qvvxx r"   c                 *    t          j        |           S r*   r1  rc  s    r    r-   r-   t  s    271:: r"   c                 *    t          j        |           S r*   )r^   nanmeanrc  s    r    r-   r-   t  s    A r"   c                    g dg dg}t          |t          j        g dg dgddg                    }|                    t	          j        d	d
g                                        |           }dddddddddd}t          |t	          j        d	d
g          |j                  }t          j	        ||           d S )N)r   r   r   )re   rf   r   r  )r   r   r   SiskoJanewayrx   r*  r   r   ru        @r   r   r   g      @r   ))r   r   )r   r   )r   r   r  )
r   r   from_arraysr#   r^   r   r$   r   r3   r4   )r   datar%   r7   expected_dictr8   s         r    test_multiindex_custom_funcro  s  s    
 IIyyy!D	&YY			"7I*>
 
 

 
 
B ZZ!Q(())--d33FC  C  C   M
 bh1v.>.>
SSSH&(+++++r"   c                 .    t          j        | d          S Ng?r	  r^   r  rc  s    r    myfuncrs    s    =d####r"   c                 .    t          j        | d          S rq  rr  rc  s    r    r-   r-     s    BM!t,D,D,D r"   c                    t          g dg dg dd          }|                    d                              dd| f          }t          d	d
gddggddgt          ddgd                    }t	          j        ||           d S )Ncatdogrw  rx  g333333"@g      @      #@      A@皙@r$  #@     h@kindheightweightr  )r  r1   r  )mean_heightperc90g"@g0'5"@g      4@g5^I@r  r  rw  rx  r   r   rS  )r   animalsr7   r8   s       r    test_lambda_named_aggr    s     000+++,,,	
 	
 G __V$$((&$/? )  F 
vu&)UEN000  H &(+++++r"   c                     t          t          j        dgdz                                dd          t	          d          t	          d                    } g d| d<   |                     d                              d	           }dgdgdggddgddgddggg}t          |t          d
dgdd          t          g d                    }t          j	        ||           d S )Nr   r{   r   XYZr  rm  r   rD   )group 1r  r   groupingc                 *    |                                  S r*   )tolistr   s    r    r-   z,test_aggregate_mixed_types.<locals>.<lambda>  s    

 r"   r   r  r   r  )Xr8  Zr  )
r   r^   r   reshaper   r#   rO   r   r3   r4   )r%   r7   expected_datar8   s       r    test_aggregate_mixed_typesr    s    	XqcAg&&q!,,d5kke
 
 
B /..BzNZZ
##--.B.BCCFcA3_1v1v1v&>?MQ	N(DDDooo&&  H
 &(+++++r"   zNot implemented;see GH 31256reasonc                  >   d } t          dt          j        g d          i          }|                    g d                              |           }t          dt          j        dt          j        gd          iddg	          }t          j        ||           d S )
Nc                 D    t          | dk              rdS t          j        S )Nr   r   )rF  r_   r`   r   s    r    r  z5test_aggregate_udf_na_extension_type.<locals>.aggfunc  s     q1u:: 	15Lr"   r;   r  r  r   Int64r   r   rC   )r   r_   r   r#   r$   r`   r3   r4   )r  r%   r7   r8   s       r    $test_aggregate_udf_na_extension_typer    s       
C))),,-	.	.BZZ			""&&w//F#rxBE
'BBBCAq6RRRH&(+++++r"   c                   n    e Zd Zd Zd Zej                            d          d             Zd Z	d Z
dS )	TestLambdaManglingc                 
   t          g dg dd          }|                    d                              dd d gi          }t          ddgd	d	gd
t          dd	gd                    }t	          j        ||           d S )Nr  r   rM  r;   rN   c                     dS r   r  r   s    r    r-   z/TestLambdaMangling.test_basic.<locals>.<lambda>  s    a r"   c                     dS r  r  r   s    r    r-   z/TestLambdaMangling.test_basic.<locals>.<lambda>  s    1 r"   r   r   ))rN   
<lambda_0>)rN   
<lambda_1>r   rC   rS  r  s       r    
test_basiczTestLambdaMangling.test_basic  s    \\\==>>C$$cKK+E%FGG#$a&1vFFAS)))
 
 
 	fh/////r"   c                 
   t          g d                              g d          }|                    d d g          }ddgddgd}t          |t	          j        ddg                    }t          j        ||           d S )	Nr   r  c                     dS r   r  r   s    r    r-   z?TestLambdaMangling.test_mangle_series_groupby.<locals>.<lambda>  r'  r"   c                     dS r  r  r   s    r    r-   z?TestLambdaMangling.test_mangle_series_groupby.<locals>.<lambda>  s     r"   r   r   r  r  rC   r  )r  r  r7   exp_datar8   s        r    test_mangle_series_groupbyz-TestLambdaMangling.test_mangle_series_groupby  s    LLL!!)),,,77kk233#$a&A??XRXq!f-=-=>>>
fh/////r"   zGH-26611. kwargs for multi-agg.r  c                    dd}dd}t          ddg                              ddg                              ||gd          }t          dgdgd          }t	          j        ||           t          ddg                              ddg                              ||gdd	
          }t          dgdgd          }t	          j        ||           d S )Nr   c                 6    |                                  |z   |z   S r*   rL   r   r\   r   s      r    r-   z5TestLambdaMangling.test_with_kwargs.<locals>.<lambda>  s    quuww{Q r"   r   c                 6    |                                  ||z  z   S r*   rL   r  s      r    r-   z5TestLambdaMangling.test_with_kwargs.<locals>.<lambda>  s    quuwwQ r"   r   r   r  r  r   )r      r   )r   )r   )r	   r#   r$   r   r3   r4   )r  f1f2r7   r8   s        r    test_with_kwargsz#TestLambdaMangling.test_with_kwargs  s    ......A''A//33RHa@@QCsCCDD
fh///A''A//33RHa23FFRDEEFF
fh/////r"   c                    t          g dg dg dd          }g d}t          ddgdd	gd
dgdt          ddgd          |          }|                    d                              t	          j        dd           t	          j        dd          t	          j        dd                    }t          j        ||           |                    d                              dd fdd          }t          j        ||           d S )Nrv  ry  r|  r  )height_sqr_min
height_max
weight_maxp=
׳T@      B@rz  r{  r~  r  rw  rx  r  r   r  byr  c                 0    t          j        | dz            S rB   r^   rZ   r   s    r    r-   z=TestLambdaMangling.test_agg_with_one_lambda.<locals>.<lambda>      "&QRTUQU,, r"   r  r   r  c                 0    t          j        | dz            S rB   r  r   s    r    r-   z=TestLambdaMangling.test_agg_with_one_lambda.<locals>.<lambda>      q!t r"   r  r   r  r   )r   r   r#   r$   r_   r  r3   r4   r  r%   r   r8   result1r  s         r    test_agg_with_one_lambdaz+TestLambdaMangling.test_agg_with_one_lambda  s`   444///000 
 
 A@@#(%."Dk"El 
 V444
 
 
 ***''++;h@V@VWWW{(EBBB{(EBBB , 
 

 	gx000 ***''++$&<&<=(( , 
 

 	gx00000r"   c           
         t          g dg dg dd          }g d}t          ddgdd	gd
dgdd	gddgdt          ddgd          |          }|                    d                              dd fdddd fdd f          }t	          j        ||           |                    d                              t          j        dd           t          j        dd          t          j        dd          t          j        dd           t          j        dd                     }t	          j        ||           d S ) Nrv  ry  r|  r  )r  r  r  height_max_2
weight_minr  r  rz  r{  r~  r  r}  r$  rw  rx  r  r   r  r  r  c                 0    t          j        | dz            S rB   r  r   s    r    r-   z=TestLambdaMangling.test_agg_multiple_lambda.<locals>.<lambda>+  r  r"   r  r  c                 *    t          j        |           S r*   r^   r   r   s    r    r-   z=TestLambdaMangling.test_agg_multiple_lambda.<locals>.<lambda>.  s    bfQii r"   r  c                 *    t          j        |           S r*   r  r   s    r    r-   z=TestLambdaMangling.test_agg_multiple_lambda.<locals>.<lambda>/  s    BF1II r"   c                 0    t          j        | dz            S rB   r  r   s    r    r-   z=TestLambdaMangling.test_agg_multiple_lambda.<locals>.<lambda>5  r  r"   r  r   c                 *    t          j        |           S r*   r  r   s    r    r-   z=TestLambdaMangling.test_agg_multiple_lambda.<locals>.<lambda>8  s    q		 r"   c                 *    t          j        |           S r*   r  r   s    r    r-   z=TestLambdaMangling.test_agg_multiple_lambda.<locals>.<lambda>9  s    bfQii r"   )r   r   r#   r$   r3   r4   r_   r  r  s         r    test_agg_multiple_lambdaz+TestLambdaMangling.test_agg_multiple_lambda  s    444///000 
 

 
 
 #(%."Dk"El!$d"Cj  V444

 

 

 ***''++$&<&<=(("$7$78 "5"56 , 
 
 	gx000 ***''++;h@V@VWWW{(EBBB{(EBBBH>Q>QRRR{(<O<OPPP , 
 
 	gx00000r"   N)r  r  r  r  r  rE   r  xfailr  r  r  r  r"   r    r  r    s        0 0 00 0 0 [?@@	0 	0 A@	0#1 #1 #1J/1 /1 /1 /1 /1r"   r  c                    g d| _         |                     d |          }|                    t          j        dd          }| | j        j        dk                                 d          | | j        j        d	k                                 d          d
}t          |          j	        }|s:|
                    dddd	g           t          t          d	                    |_        t          j        ||           d S )N)r;   rN   r;   r<   c                     | j         S r*   r/   r   s    r    r-   z9test_pass_args_kwargs_duplicate_columns.<locals>.<lambda>A  s    17 r"   r  P   r   r   r   rH  r   )r   r   rD   )r   r#   r$   r^   r  rD   r0   r  r   r  insertr   ranger3   r4   )r5   r  r&   r   ex_datar8   s         r    'test_pass_args_kwargs_duplicate_columnsr  >  s    ***GO	**X	>	>B
&&&
+
+C 7=&!+,55c::7=&!+,55c:: G !!#H )7QF+++uQxx#x(((((r"   c                     t          g dg dd          } |                     d                              dd i          }t          ddgd	d
gd                              d          }t	          j        ||           d S )N)SWr  )ru  ru  r   rM  r;   rN   c                 B    |                      | j        d                   S )Nr  )getrD   r   s    r    r-   z+test_groupby_get_by_index.<locals>.<lambda>T  s    aeeAGBK.@.@ r"   r  r  ru  r   )r   r#   r$   rd  r3   r4   )r%   r   r8   s      r    test_groupby_get_by_indexr  Q  s    	??	@	@B
**S//

s$@$@A
B
BCSzc
;;<<FFsKKH#x(((((r"   zgrp_col_dict, exp_data)nrcat_ordre   r  r  c                    t          g dt          d          t          d          d          }|                    ddd          }|d         j                                        |d<   |                    dd	
                              |           }t          j        ddgddgd	dd          }t          ||          }d|v r+|d         j	        }|d                             |          |d<   t          j        ||           d S )Nr   r   r   r   re   r  rf   rz   aabbccddaaaabbbbr  r  rw  categoryrw  r  r  rw  Fobservedr   r   
categoriesorderedr   r   )rm  rD   )r   r   r   rw  
as_orderedr#   r$   r_   CategoricalIndexr   r3   r4   )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IJJH"9-1<<>>HY   77;;LIII #	c
Sz5uJ  I ;;;KK#)!,Y!7!>!>u!E!EI)[11111r"   )r   r   r   )re   rz   r   )r   r   r   )re   r   r<  r   )r   r<  c                 d  
 t          g dt          d          t          d          d          }|                    ddd          }|d         j                                        |d<   |                    dd	
                              |           }t          j        ddgddgd	dd          }g }| 	                                D ]S\  
}t          |t                    r"|                    
fd|D                        <|                    
|g           Tt          j        t          |                    }t          |||          }|j        D ]D}	t          |	t                    r-d|	v r)||	                             |d         j                  ||	<   Et%          j        ||           d S )Nr  r  r  r  r  r  r  rw  Fr  r   r   r  c              3       K   | ]}|gV  	d S r*   r  )r  r   ks     r    	<genexpr>z6test_groupby_combined_aggs_cat_cols.<locals>.<genexpr>  s'      #>#>5QJ#>#>#>#>#>#>r"   r  )r   r   r   rw  r  r#   r$   r_   r  itemsr   extendappendr   r~   r   r   r   r3   r4   )r  r  r  r  r  multi_index_listvmulti_indexr  colr  s             @r    #test_groupby_combined_aggs_cat_colsr    s    ***J''
##	
 	
 H zjIIJJH"9-1<<>>HY   77;;LIII #	c
Sz5uJ  I ""$$ , ,1a 	,###>#>#>#>A#>#>#>>>>>##QF++++(/?)@)@AAK;iPPPK" R Rc5!! 	Ri3&6&6*3/66x	7J7PQQK)[11111r"   c                     t          g dg dd          } |                     d          }|                    dg          }|j                            d          |_        |                    d          }t          j        ||           d S )NrA  )r   r   r   r   r   r   rY  r  )r   r#   r$   r   	droplevelr3   r4   )r%   r   r7   r8   s       r    test_nonagg_aggr    s     
LLL99	:	:B


3AUUH:F^--b11FNuuXH&(+++++r"   c                  J   t          ddgt          j        ddddddd          t          j        d	dddddd          gd
          } |                     d          j                                        }|                     d          d         }t          j        ||           d S )Nr  r8  i  r   r   r      i`= i  rM  r;   rN   )r   datetimer#   rN   r   rd  r3   rP   r  s      r    test_aggregate_datetime_objectsr    s     
s!$1b"b&AA!$1b"b&AA	
 	

 
B ZZ__""$$F||C  %H68,,,,,r"   c                  \   t          g dg dg dd          } | j                            d          | _        |                     ddg          }|j                            d           }t          j        d	d
gd          }t          ddg|d          }t          j
        ||           d S )N)r   r   r   rP  r   r   r   )c0c1pOr  r  c                 (    t          | dk              S r   rE  r   s    r    r-   z1test_groupby_index_object_dtype.<locals>.<lambda>  s    #a!e** r"   )r   r   r  )r  r  rx   FTr  r   )r   rD   r   r#   r  r$   r   r~   r	   r3   rP   )r%   r6   r   r  r8   s        r    test_groupby_index_object_dtyper    s    	///yyyQQ	R	RBxs##BHjj$&&G
)--,,
-
-C  +	Z   N udm>DDDH3)))))r"   c                      d } t          dgt          j        d          g          }|                    d                               |           }t          dggdg          }t          j        ||           d S )Nc                 z    |                                                                  rd S t          j        |           S r*   )isnarF  r^   r   r   s    r    r   z)test_timeseries_groupby_agg.<locals>.func  s/    88::>> 	4vc{{r"   ru  z2018-01-16 00:00:00+00:00rC   c                     dS r  r  r   s    r    r-   z-test_timeseries_groupby_agg.<locals>.<lambda>  s    q r"   r   )r   r_   r  r#   r$   r3   r4   )r   r%   r   r8   s       r    test_timeseries_groupby_aggr    s      
 
C5.I!J!J K	L	L	LB
**[[
!
!
%
%d
+
+C3%,,,H#x(((((r"   c                    | t           j        v rt          j        |           j        }| t           j        v rt          j        |           j        }| t           j        v r+t          j        |                                           j        }| t           j	        v r+t          j        |                                           j        }t          dgdgt          j        |g|           d          }dgdgg}t          j        |d          }t          dt          j        |g|           i|          }|                    d	d
g                              d           }t          j        ||           d S )Nr   r   r   r  )r  r  rx   r  rC   r  r  c                     | S r*   r  r   s    r    r-   z,test_groupby_agg_precision.<locals>.<lambda>  s     r"   )r3   ALL_INT_NUMPY_DTYPESr^   iinfor   FLOAT_NUMPY_DTYPESfinfoFLOAT_EA_DTYPESlowerALL_INT_EA_DTYPESr   r_   r   r   rl  r#   r$   r4   )any_real_numeric_dtype	max_valuer%   arraysrD   r8   r7   s          r    test_groupby_agg_precisionr    sl   !888H3448	!666H3448	!333H399;;<<@	!555H399;;<<@		EEHi[0FGGG	
 	

 
B ecU^F"61ABBBE	9+-CDDDEU  H ZZ())--kk::F&(+++++r"   c                    | dv rd S t          ddgdt          j        gg          }|                    d                              |           }|                    d                              d| i          }| dv rt          j        ||d         d           d S t          j        ||           t          j        |j        |j                   d S )N)corrwithr\  r   r   )r   ngroupF)check_names)	r   r^   rU   r#   r$   r3   rP   r4   dtypes)r   objresult_reduced_seriesresult_reduced_frames       r     test_groupby_aggregate_directoryr&    s    ,,,t
aVa[)
*
*CKKNN..~>>;;q>>--q..ABB+++
!#7#:	
 	
 	
 	
 	
 	
 	35IJJJ
!(*>*E	
 	
 	
 	
 	
r"   c                      t          g dd          } t          dgdt          j        dg                    }|                     g d                                          }t          j        ||           d S )N)z1 dayz3 daysra   ztimedelta64[ns]r   z2 daysr   r   r   r   r   )r	   r^   r   r#   r1   r3   rP   )rm  r8   r7   s      r    test_group_mean_timedelta_natr)    sw    ,,,4EFFFDxj(91#OOOH\\)))$$))++F68,,,,,r"   zinput_data, expected_output)z2021-01-01T00:00ra   z2021-01-01T02:00z2021-01-01T01:00)z2021-01-01T00:00-0100ra   z2021-01-01T02:00-0100z2021-01-01T01:00-0100c                    t          t          |                     }t          t          |t          j        dg                              }|                    g d                                          }t          j        ||           d S )Nr   rC   r(  )r   r	   r^   r   r#   r1   r3   rP   )
input_dataexpected_outputrm  r8   r7   s        r    test_group_mean_datetime64_natr-  (  sw     vj))**D6/1#GGGHHH\\)))$$))++F68,,,,,r"   zfunc, outputr1   y       @      2@y      $@      6@r   y      D@     V@y      I@     [@c                 B   t          t          j        d                              dd                              ddg                    }|                    |j        dz                                |           }t          |          }t          j	        ||           d S )Nr~  r   r   r                  @)
r	   r^   r   r  dotr#   rD   r$   r3   rP   )r   outputrm  r7   r8   s        r    test_groupby_complexr2  >  s    
 ")B--''A..22Ar7;;<<D\\$*q.))--d33Ff~~H68,,,,,r"   )rZ   r   r   c                 f   t          t          j        d                              dd                              ddg                    }d}t          j        t          |          5  |                    |j	        dz            
                    |            d d d            d S # 1 swxY w Y   d S )Nr~  r   r   r   r/  zNo matching signature foundr=   )r	   r^   r   r  r0  rE   rF   r   r#   rD   r$   )r   rm  rH   s      r    test_groupby_complex_raisesr4  I  s     ")B--''A..22Ar7;;<<D
'C	y	,	,	, / /TZ!^$$((.../ / / / / / / / / / / / / / / / / /s   (1B&&B*-B*ztest, constantr~  r;   rN   r   r<   rk  r   )marksc                     t          |           }|                    d                              t          j                  }t          |          }|                    d          }t          j        ||           d S r   )r   r#   r$   r	   moderd  r3   r4   )r  constantdf1r7   r8   s        r    test_agg_of_mode_listr:  R  si     D//C[[^^,,F ""H!!!$$H&(+++++r"   c                     t          g dg dd          } |                     d          }dd}dd	}d
}t          j        t          |          5  |                    ||gddd           d d d            n# 1 swxY w Y   |                    ||gdd          }t          ddgddgddggt          g dd          t          j        ddg                    }t          j
        ||           d S )Nr  rC  r  r\   r   r   c                 6    |                                  |z   |z   S r*   rL   r   r   r   s      r    foo1z@test_dataframe_groupy_agg_list_like_func_with_args.<locals>.foo1p      uuww{Qr"   r   c                 6    |                                  |z   |z   S r*   rL   r   r   r   s      r    foo2z@test_dataframe_groupy_agg_list_like_func_with_args.<locals>.foo2s  r?  r"   /foo1\(\) got an unexpected keyword argument 'b'r=   r   r   r  r  rz   r{   r   r   )r   r>  )r   rB  r  r   r   r   r   )r   r#   rE   rF   r   r$   r   r   r~   r3   r4   )r%   r&   r>  rB  rH   r7   r8   s          r    2test_dataframe_groupy_agg_list_like_func_with_argsrF  k  sn   	99	:	:B	CB       =C	y	,	,	, * *
d|Q!q)))* * * * * * * * * * * * * * * VVT4L!qV))F
Q!Q"b"OOO#...&}'EFF  H
 &(+++++s   A99A= A=c                     t          g d          } |                     |           }dd}dd}d}t          j        t          |          5  |                    ||gd	d	d
           d d d            n# 1 swxY w Y   |                    ||gd	d
          }t          ddgddgddggt          g d          ddg          }t          j	        ||           d S )Nr  r   r   c                 6    |                                  |z   |z   S r*   rL   r=  s      r    r>  z=test_series_groupy_agg_list_like_func_with_args.<locals>.foo1  r?  r"   r   c                 6    |                                  |z   |z   S r*   rL   rA  s      r    rB  z=test_series_groupy_agg_list_like_func_with_args.<locals>.foo2  r?  r"   rC  r=   r   r   r  r  rz   r{   r   r>  rB  r  rD  rE  )
r	   r#   rE   rF   r   r$   r   r   r3   r4   )r  sgbr>  rB  rH   r7   r8   s          r    /test_series_groupy_agg_list_like_func_with_argsrK    sP   yyyA
))A,,C       =C	y	,	,	, + +ta1***+ + + + + + + + + + + + + + + WWdD\1W**F
Q!Q"b"%			*:*:VVDT  H &(+++++s   A44A8;A8c                  @   t          g dg dg dd          } |                     ddg          }|ddg         }|                    d           }t          d	d
gddggdd	gdd	ggddg          }t          ddgddgd|          }t	          j        ||           d S )Nr  )r   r   r   )re   r  rf   rC  r   r   r   c                 *    |                                  S r*   rL   r   s    r    r-   z.test_agg_groupings_selection.<locals>.<lambda>  s    quuww r"   r   r   r   r   r   )rz  rA  ry   r  rk   rf   r  rC   rB  )r%   r&   selected_gbr7   rD   r8   s         r    test_agg_groupings_selectionrO    s    	CC	D	DB	S#J		Bc3Z.K__..//FAAAA'7Sz  E 1vRG44EBBBH&(+++++r"   c                      t          g dg dd          } |                     dd          d         }|                    dd	g          }t          d
dgddgddgd          }t          j        ||           d S )Nr  )r   r   re   r   r   Fr  r   r   r1   r   r   rf   re   r  rj  )r   r   r1   r   r#   r$   r3   r4   rT  s       r    ?test_agg_multiple_with_as_index_false_subset_to_a_single_columnrR    s    	33	4	4B	C%	(	(	-BVVUFO$$F1vq!fsCjIIJJH&(+++++r"   c                     t          g dg dg dd          } |                     ddgd          }|                    d	g          }t          g d
g dg dgt          j        g d                    }t          j        ||           d S )Nr  )r   r   r   )r   re   r  )a1a2r   rT  rU  F)r  r  r   )r   r   r   )r   r   re   )r   r   r  ))rT   )rU  rV  )r   r   )rm  r   )r   r#   r$   r   r~   r3   r4   rT  s       r    &test_agg_with_as_index_false_with_listrW    s    	)))999999EE	F	FB	d|e	4	4BVVUG__FiiIII.&'M'M'MNN  H &(+++++r"   c                  f   t          dt          j        d          t          j        d          t          j        d          di          } t          t          g dd          g dd	          }|                    d
          }|                    d          }t          j        ||            d S )Ntd0 days 01:00:000 days 01:15:00r  )rZ  z0 days 00:15:00r[  ztimedelta64[us]r   )r   r   r   )rY  grpsr\  )rY  rY  )rY  )r   r_   	Timedeltar	   r#   r$   r3   r4   )r8   r%   r&   r7   s       r    Btest_groupby_agg_extension_timedelta_cumsum_with_named_aggregationr^    s    < 122< 122< 122 	
 H 
III'   $OO	
 	

 
B 
F		BVV'V((F&(+++++r"   c                  $   d } t          t          j        ddgg d          ddgd          }d}t          j        t
          |          5  |                    d	d
                              |            d d d            d S # 1 swxY w Y   d S )Nc                 d    t          |           dk    rt          d          t          |           S )Nr   length must not be 0)r   r   r   s    r    r   z2test_groupby_aggregation_empty_group.<locals>.func  s+    q66Q;;34441vvr"   r   rC  )r  r   rM  ra  r=   r;   Fr  )r   r_   CategoricalrE   rF   r   r#   r$   )r   r%   rH   s      r    $test_groupby_aggregation_empty_grouprc    s      
 
nc3ZOOODDDAq6RR
 
B !C	z	-	-	- 2 2


3
''++D1112 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2s   +BB	B	c                     t          g dg dg dgg d          } |                     d          }|                    ddi          }t          d	d
gddggddgt          ddgd                    }t	          j        ||           d S )Nr   rQ  rR  r   r*  r   r   r   rf   r{   re   r  r   r   r   r   rS  rT  s       r    <test_groupby_aggregation_duplicate_columns_single_dict_valuere    s    		|||\\\2$$$
 
 
B 
CBVVS%L!!F
Q!Q3*E1a&s4K4K4K  H &(+++++r"   c            	      J   t          g dg dg dgg d          } |                     d          }|                    dg di          }t          g d	g d
gt          dgg dgg dg dg          t	          ddgd                    }t          j        ||           d S )Nr   rQ  rR  r   r*  r   r   )r   rZ   r   rZ   )rf   r   r   r   r{   r   re   r   )re   re   re   re   r  r  r  r  )r   rZ   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r@  r   r   r   r   r   r#   r$   r   r   r3   r4   rT  s       r    ?test_groupby_aggregation_duplicate_columns_multiple_dict_valuesrh    s    		|||\\\2$$$
 
 
B 
CBVVS666788F	!	!	!#;#;#;<E0001+++-E-E-EF
 
 
 QF%%%  H &(+++++r"   c            	      N   t          g dg dg dg dgg d          } |                     d          }|                    g dgd	          }t          d
dgddggt          dgdggddgddgg          t	          ddgd                    }t          j        ||           d S )N)r   is&  +   6     r     r{   rj   )r   ro  ir   r      irj   )r   r   r   r   r   r*  r   r   r  g  @ABg   }Ag     @g        r   r   r@  r   r   r   r   rg  rT  s       r    <test_groupby_aggregation_duplicate_columns_some_empty_resultrt    s    	###   &&&###		
 *))
 
 
B 
CBVV"E7++,,F
z	"[#$67C55'"2Aq6Aq6:JKKKQF%%%  H
 &(+++++r"   c            
         t          g dg dg dg dgt          ddgddggg d	g d
g          t          ddgddggg dg dg                    } |                     d          }|                    ddi          }t          ddgddggt          dgdggddgddgg          t	          ddg                    }t          j        ||           d S )Nr   rj  rk  rl  rm  r   ro  "  rp  r   rq  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   rz  r}  rZ   rw  r{   rr  rs  r   r   r#   r$   r   r3   r4   rT  s       r    6test_groupby_aggregation_multi_index_duplicate_columnsr    sN   	$$$   %%%###		
 ,z:.FG"??OOO4
 
 
 ,z:.FG<<.
 
 

 
 
B  
!		BVV-u566F
c3Z J<*">1vPQSTvFVWWWZ,--  H
 &(+++++r"   c            
         t          g dg dg dg dgt          ddgddggg d	g d
g          t          ddgddggg dg dg                    } |                     d          }|                    dddgi          }t          g dg dgt          dgdgddggg dg dg dg          t	          ddg                    }t          j        ||           d S )Nrv  rm  rx  rq  rz  r{  r|  r}  r~  r  r@  r  r  r   r   r   r  rZ   r   )rw  rn  r{   ry  )rr  rr  rs  rs  r  )r   r   r   r   r  rT  s       r    @test_groupby_aggregation_func_list_multi_index_duplicate_columnsr  :  sk   	$$$   %%%###		
 ,z:.FG"??OOO4
 
 
 ,z:.FG<<.
 
 

 
 
B  
!		BVV-u~>??F			3334L:,?<<|||<
 
 
 Z,--  H &(+++++r"   pyarrow)zfloat[pyarrow]int64[pyarrow]uint64[pyarrow]zbool[pyarrow]c                 N   t          g dt          j        g d|           d          }|                    d          }|                    d           }t          dt          j        g d|           it          g d	d
                    }t          j        ||           d S )N)r  c2c3r  r  r  )rU        r      iȝ  r   rM  r;   c                 *    |                                  S r*   )rZ   r   s    r    r-   z:test_agg_lambda_pyarrow_dtype_conversion.<locals>.<lambda>i  s    aeegg r"   rN   )r   r  r  r  r  r  r   rC   r   r_   r   r#   r$   r   r3   r4   )r   r%   r&   r7   r8   s        r    (test_agg_lambda_pyarrow_dtype_conversionr  Z  s     
555888FFF	
 	

 
B 
CBVV%%&&F	bh}}}E2223&&&S111  H &(+++++r"   c                     t          g dt          j        g dd          d          } |                     d          }|                    d           }t          dt          j        t          dd	          t          d
d	          t          dd	          gd          it          g dd                    }t          j        ||           d S )Nr  rU  r  r  r  rM  r;   c                 j    t          |                                 |                                           S r*   )complexr   r  r   s    r    r-   z=test_agg_lambda_complex128_dtype_conversion.<locals>.<lambda>y  s     gaeeggqwwyy99 r"   rN   rU  r   r  r  
complex128r   r   rC   )	r   r_   r   r#   r$   r  r   r3   r4   rT  s       r    +test_agg_lambda_complex128_dtype_conversionr  r  s     
   rxAQ'R'RSS
 
B 
CBVV99::Fa'#q//73??C<  	

 &&&S111  H &(+++++r"   c                  N   t          g dt          j        g dd          d          } |                     d          }|                    d           }t          dt          j        g dd          it          g dd	          
          }t          j        ||           d S )Nr  r  r  r   rM  r;   c                 N    t          j        |                                           S r*   )r^   uint64r   r   s    r    r-   zJtest_agg_lambda_numpy_uint64_to_pyarrow_dtype_conversion.<locals>.<lambda>  s    bi00 r"   rN   r   rC   r  rT  s       r    8test_agg_lambda_numpy_uint64_to_pyarrow_dtype_conversionr    s     
###///1BCCC	
 	

 
B 
CBVV0011F///1BCCC	
 &&&S111	  H &(+++++r"   c                     dd l } t          g dt          j        g dd          d          }|                    d          }|                    d           }|                     d	d
id	d
id	d
ig          }t          dt          |          it          g dd                    }t          j	        ||           d S )Nr   r  r  r  r   rM  r;   c                 
    ddiS )Nnumberr   r  r   s    r    r-   zKtest_agg_lambda_pyarrow_struct_to_object_dtype_conversion.<locals>.<lambda>  s
    xm r"   r  r   rN   r   rC   )
r  r   r_   r   r#   r$   r   r   r3   r4   )par%   r&   r7   arrr8   s         r    9test_agg_lambda_pyarrow_struct_to_object_dtype_conversionr    s     	###///1ABBB	
 	

 
B 
CBVV++,,F
((XqMHa=8Q-@
A
AC	!#&&'&&&S111  H
 &(+++++r"   c                      t          ddg          } |                     dgd          d                             d          }t          ddg          }t          j        ||           d S )NGroupDatar*  Fr  r   rQ  r  s      r    (test_groupby_aggregate_empty_builtin_sumr    so    	GV,	-	-	-BZZ	EZ226:>>uEEF'6!2333H&(+++++r"   c                      d } t          ddg          }|                    dgd          d                             |           }t          ddg          }t          j        ||           d S )Nc                      t          |           S r*   rL   r   s    r    r   z.test_groupby_aggregate_empty_udf.<locals>.func  s    1vvr"   r  r  r*  Fr  rQ  )r   r%   r7   r8   s       r     test_groupby_aggregate_empty_udfr    s       
GV,	-	-	-BZZ	EZ226:>>tDDF'6!2333H&(+++++r"   )__doc__r  r  r   numpyr^   rE   pandas.errorsr   pandas.util._test_decoratorsutil_test_decoratorsrY  pandas.core.dtypes.commonr   pandasr_   r   r   r   r	   r
   r   pandas._testing_testingr3   pandas.arraysr   pandas.core.groupby.grouperr   r'   r9   rI   rS   rc   r   r   r   r   r   r  r  r   r   r   r   r   r   r   r  r(  r,  r=  r?  rK  rO  rU  re  rs  rg  intr   rx  r{  r  ri  r  r  r  r  r   interval_rangeperiod_ranger~   r  r  r  r  r  r1   r  r6  r9  r;  r>  rC  rE  rN  rQ  ra  ro  rs  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r&  r)  r-  r2  r4  paramr:  rF  rK  rO  rR  rW  r^  rc  re  rh  rt  r  r  
skip_if_nor  r  r  r  r  r  r  r"   r    <module>r     s                    , , , , , , ) ) ) ) ) ) ) ) ) 6 6 6 6 6 6                          - - - - - - 0 0 0 0 0 0	 	 	, , ,+ + +. . ., , ,4., ., .,b' ' '4, , ,:, , ,,, , , )),=,=?T?T+UV , , ,4, , ,' ' '  0, , , 4 4 4$ $ $, , ,* ,  ,  ,F, , ,"! ! !H  0- - - , , ,	, 	, 	, $$''!!
 

$ 
$
 

$ 
qc$$$%
sZZ!qc
aS1#JsCjIIIJ  CCC  DDD  #F#F#FGG, , HG   ,2 
qc$$$%
sZZ!qc
aS1#JsCjIIIJ  ...114e"455#F#F#FGG- - HG 65 21 -	, 	, 	,. . ., 28RY"788 Q Q QRR	> 	> SR 98	>, , , DDKK((!Q444
===>>	 , , ,, , ,", , ,82+ 2+ 2+ 2+ 2+ 2+ 2+ 2+jm0 m0 m0 m0 m0 m0 m0 m0` I  ! F#J#J	
 ))*%!FF#J	
 BK
E**BK
BG,,BK
KK00F#JF	
# :, ,; :,.> > >, , ," S5'N"E74K4K#LMM	, 	, NM	,, , ,, , ,, , ,, , ,*8+ 8+ 8+v 
!5!57N7NO , , ,&$ $ $ "D"Df!MNN, , ON,,, , ,  899, , :9,(r1 r1 r1 r1 r1 r1 r1 r1j) ) )&) ) ) %	(	(!QS#J*O*OP
U	i#s45
1v' 2 2 2> 5	1	1K3MN5%.	1	1M=3QR
eU^	$z:&>? %2 %2 %2P
, 
, 
,- - -$* * *) ) ), , ,6
 
 
,- - - ! <;; 	

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