
    .i`                         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jP                  jS                  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jP                  jS                  d&d' d( d) d* d+ d, g      d-        Z9ejP                  jS                  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jP                  jS                  d5g d6      ejP                  jS                  d7g d6      ejP                  jS                  d8g d9      d:                             Z:ejP                  jS                  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jP                  jS                  d;g d<      ejP                  jS                  d=e;e<e=g      ejP                  jS                  d8g d9      d>                             Z>d? Z?d@ Z@ejP                  jS                  d=ej                  ej                  g      ejP                  jS                  dAg dB      dC               ZCdD ZDejP                  jS                  dE ej                   eFdF             ej                  ddG       ej                  dHdGdIJ       ej                  g dK      g      dL        ZJdM ZKdN ZL G dO dP      ZM G dQ dR      ZNejP                  jS                  dSdTdUej                  fdVd0dGgdWdXgdYdZgfdUd[ fdUd\ fd]ej                  fd0dGgd0d0gdYdZgf ej                  dUd^       ej                  d]ej                         ej                  dUd_       d0dGgdYdZgd0d0gfg      d`        ZQda ZRdb ZSejP                  jS                  dcdddegig degdfg      dg        ZTdh ZUdi ZVdj ZWdk ZXdl ZYejP                  jS                  dmdn do dp g      dq        ZZdr Z[ejP                  jS                  dmds e[g      dt        Z\du Z]ejP                  j                  dvw      dx        Z_ G dy dz      Z`d{ Zad| ZbejP                  jS                  d}deded~d0dgd/ddgd~fddeidd/ddgifddeidd0dgifg      d        ZcejP                  jS                  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jP                  jS                  dg ddgfg ddgfg      d        ZlejP                  jS                  ddddgfdddgfg      d        ZmejP                  jS                  dmg d      d        ZnejP                  jS                  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j                  d/d0gd/d3gd2dGgd2dGggd/d2gd0d3gdGgdejP                  j                        g      d        Zpd Zqd Zrd Zsd Ztd Zud Zvd Zwd Zxd Zyd Zzd Z{d Z| ej                  d      ejP                  jS                  d=g d      d               Z~ ej                  d      d        Z ej                  d      d        Z ej                  d      d        Zd Zd Zy)zN
test .agg behavior / note that .apply is tested generally in test_groupby.py
    N)partial)SpecificationError)is_integer_dtype)	DataFrameIndex
MultiIndexSeriesconcatto_datetime)ArrowExtensionArray)Groupingc                  x    t        g dg dd      } | j                  d      d   }d }|j                  |       y )Nabcr               )keyvaluer   r   c                 B    t        |       dk7  sJ | j                         S Nr   )lensumxs    k/var/www/app/trading-bot/venv/lib/python3.12/site-packages/pandas/tests/groupby/aggregate/test_aggregate.py
dummy_funcz3test_groupby_agg_no_extra_calls.<locals>.dummy_func$   s    1v{{uuw    )r   groupbyagg)dfgbr!   s      r    test_groupby_agg_no_extra_callsr'      s8    	/,G	HB	E	7	#B FF:r"   c                     | j                  d d g      }|j                  d      }|j                         }t        j                  ||       y )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
    177 r"   meanr#   r$   r1   tmassert_frame_equal)tsframegroupedresultexpecteds       r    test_agg_regression1r9   +   s@    oo/1BCDG[[ F||~H&(+r"   c                 8   | j                  d      d   }d}t        j                  t        |      5  |j	                  d        d d d        t        j                  t        |      5  |j	                  d        d d d        y # 1 sw Y   @xY w# 1 sw Y   y xY w)NACzMust produce aggregated valuematchc                 "    | j                         S r*   )describer   s    r    r-   z#test_agg_must_agg.<locals>.<lambda>7   s    ajjl r"   c                      | j                   d d S Nr   indexr   s    r    r-   z#test_agg_must_agg.<locals>.<lambda>9   s    aggbqk r"   )r#   pytestraises	Exceptionr$   )r%   r6   msgs      r    test_agg_must_aggrI   2   s~    jjoc"G
)C	y	, ,*+,	y	, +)*+ +, ,+ +s   B(BBBc                     d }| j                   j                  | j                  | j                  g      j	                  |      }| j                  ddg      j                         d   }t        j                  ||       y )Nc                 "    | j                         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   <   s`    AddllBDD"$$<(2215Gzz3*%))+C0H7H-r"   c                     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      } | j                  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                  ||       y )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    FFBFFBFFBFF355"%%.FFBFFBFFBFF3,"	
J ^^nAR^SFFFBFFBFF+66266266*vvrvvt,	

 H &(+r"   c                  n   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      }|j                  ddg      }|dd g   j                         }t        j                  ||        y )!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   ]   sD   aBFFAq!Q/r2rvvr2r26	
 $$	 %.
H( 
aAq!Q1a;r2r2r2rvvr2r2F61a1eQPRS		

B, 	

E5>"Ad|_!!#F&(+r"   c           	         | j                  | t        j                  z  d      }| j                  t        j                  k(  sJ t        g t        j                  t        g t        j                              }t        j                  |j                         |       t        j                  |j                  d      |       t        j                  |j                  d      |d       |j                  |d   t        j                  z  d      }t        |j                  t        t        g dt        j                        	      }t        j                  |j                         |       t        j                  |j                  d      |       |j                  t        j                  d
      }|j!                  d      }t        j                  ||       y )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      sJ   jjbffj7G88rzz!!! 2::U2RZZ-H
IC7;;=#.7;;u-s37==/uM oogclRVV3oFGBS

3F
 '++-0'++e,f5
--Q-
'CT*F#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
|      }|j                  |      }|j                  t              }t        ddgddg      }t        j                  ||d	       d
 }|j                  |      }t        ddgddg      }|j                  t        j                  k(  r|j                  t        j                        }t        j                  ||       y )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V}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      s    "))B- EBGGBK.BCF	ubffbffeUBFFERF nnV$GKKEq!fUEN3H5(>
 KKNEsCj7H||rzz!??2::.5(+r"   c           	         t        t        j                  j                  d      j	                  d      t        t        d      t              t        j                  ddd      	      }|j                  d
       }|j                  j                  d   j                  }t        | j                  t        |            |j                  j                  d<   |j!                  d      }|j#                         }t%        j&                  ||       t        | j                  t)        |            |j                  j                  d<   |j!                  d      }|j#                         }t%        j&                  ||       y )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
    166 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      s   	
		a 009d6l&1mmL"3?
B jj)*G((+;;G$,RXXtG}$EGq![[ F||~H&(+$,RXXuW~$FGq![[ F||~H&(+r"   c                     | j                  ddg      }|j                  d      }|j                         }t        j                  ||       y )Nr;   rN   r1   r2   ) multiindex_dataframe_random_datar6   r7   r8   s       r    test_agg_python_multiindexr      s?    .66SzBG[[ F||~H&(+r"   groupbyfuncc                 "    | j                         S r*   weekdayr   s    r    r-   r-      s    aiik r"   c                     | j                   S r*   r/   r   s    r    r-   r-      s
    agg r"   c                 "    | j                         S r*   r   r   s    r    r-   r-      s     r"   c                    | j                  |      }|d   j                  d      }|d   j                         }t        j                  ||       |j                  d      }|j                         }t        j                  ||       |j                  ddddd      }t        |d   j                         |d   j                         |d   j                         |d	   j                         d      }t        j                  ||       y )
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KF!!#!!#""$!!#		
H &(+r"   c                    t        g dt        t        j                  ddddddgd      d      }|j	                  d      j                         }t        dd	d
git        ddgd      d      }t        j                  ||       y )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	

B ZZ_  "F	wl5!Qc#:)H &(+r"   c                     | j                  d      }d| d}t        j                  t        |      5  |j	                  |d       d d d        y # 1 sw Y   y xY w)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     sU    	!	B~&&>
?C	z	- '
~A&' ' 's   AAc                    | j                  d      }d }|j                  |      }| j                  dk(  j                         }| j                  dk(  j                         }t	        |j
                        }t        t        j                  |g|z        t        d      d      }t        j                  |j                  d      |       t        t        j                  |g|z        t        d      d      }t        j                  |j                  d      |       d }t               j                  | j                        j                  |      }t        |t              sJ t	        |      dk(  sJ y )	Nr;   c                     | j                   S r*   sizesers    r    r-   z-test_aggregate_item_by_item.<locals>.<lambda>  s
    388 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    xx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     s   jjoG#H[["Fddem  "Fddem  "FFNNA 6(Q,'tE{
GC699U+S1
6(Q,'tE{
GC699U+S1 [  &**84Ffi(((v;!r"   c                 x   | j                  ddg      }d }t        j                  t        d      5  |j	                  |       d d d        |g d   j	                  |      }| j
                  d d g df   }|j                  ddg      j	                  |      }t        j                  ||       y # 1 sw Y   mxY w)Nr;   rN   c                 `    | j                   t        dfv rt        d      | j                         S )NstringTest error message)r   r   	TypeErrorr   r   s    r    funcztest_wrap_agg_out.<locals>.func1  s+    99**011wwy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(<	=  $ _%//5F//!%>">?K""C:.88>H&(+   s   B00B9c                    dt         j                  fdt         j                  fdt         j                  fg}| j	                  d      d   j                  |      }t        g d      }t        j                  |j                  |       y )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   >  sc    bgg%AEZZ_S!%%e,F+,H&..(3r"   c                     | j                   d d dgf   j                  | d         }|j                  d       }|j                  j                  dk(  sJ y )Nr<   r;   c                 "    | j                         S r*   r1   r   s    r    r-   z(test_series_index_name.<locals>.<lambda>I  s    1668 r"   )r   r#   r$   rD   r   )r%   r6   r7   s      r    test_series_index_namer   G  sL    ffQX&&r#w/G[[+,F<<###r"   c                     t        t        j                  j                  d      j	                  d      t        j                  ddd      g d      } | j                  d	      j                  d
t        t        j                  d      t        t        j                  d      gi      }t        j                  dd	d      }t        j                  ddg      }t        j                  dD cg c]7  }| j                  d	      j                  j                  |      j                  9 c}      j                   }t        |||      }t#        j$                  ||       y c c}w )Nr     r   1/1/2012sr  )r   r   r;   rN   r<   rD   r   3minr;   H.?q镲q?   )r;   quantiler  r  r   )r   r^   r   r   r   r_   r   resampler$   r   r  r   r~   r   r;   rY   Tr3   r4   )r%   r7   expected_indexexpected_columnsr
  expected_valuesr8   s          r    %test_agg_multiple_functions_same_namer  M  s   	
		a 00;mmJS$?
B
 [[ $$	wr{{f-wr{{f/MNOF ]]:FAFN!--/@BS.TUhh=MNV				'	'!	'	,	3	3Na  !1H &(+ 	Os   +<Ec            	      d   t        t        j                  j                  d      j	                  d      t        j                  dddd      t        g dd	
            } | j                  d      j                  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                  dD cg c]7  }| j                  d      j                  j                  |      j                   9 c}      j"                  }t        j$                  | j                  d      j                  j'                         |g      }t        |||      }t)        j*                  ||       y c c}w )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   r  r   )r   r^   r   r   r   r_   r   r   r  r$   r   r  r   r~   r   r;   rY   r  hstackr  r3   r4   )r%   r7   r  r  r
  non_ohlc_expected_valuesr  r8   s           r    7test_agg_multiple_functions_same_name_with_ohlc_presentr   b  s^    

		a 00;mmJS$UKoG4
B
 [[ $$	vwr{{f5wr{{f7UVWF ]]:FAERN!--	
 $
  "xx=MNV				'	'!	'	,	3	3N a  ii	V				#	#	%'?@O !1H &(+ 	Os   =<F-c                    | j                  ddg      } ddg}ddg}| j                  d      d   j                  |      }| j                  d      d   j                  |      }t        j                  ||       | j                  d      j                  |      }| j                  d      j                  |      }t        j                  ||       y )	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#''1H&(+ZZ_  'Fzz#""8,H&(+r"   c                    | j                  d      }|j                  ddd      }|j                  ddd      }t        ||gddgd      }|j                  ddd      j	                  dd	      }ddgddgd}|j                  |      }t        j                  ||       |j                  dddgd      }|j                  dddgd      }t        j                  ||       d
 }d }d}	ddddd}t        j                  t        |	      5  |j                  |       d d d        dg||gd}|j                  |       y # 1 sw Y   #xY w)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    wwqzr"   c                 0    t        j                  | d      S )Nr   )ddof)r^   r   r   s    r    numpystdz9test_more_flexible_frame_multi_function.<locals>.numpystd  s    vvaa  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   r*  r-  rH   s
             r    'test_more_flexible_frame_multi_functionr5    s[   jjoG[[vF34FKKe%01EvuoVUO!DH!!!QQ!/:::KHuoVUO4Aq!F&(+ V65/BCF  vVUO!DEH&(+! -C6%89A	)	5 ! hi23Aa s   EEc                    | j                  d      }dddddid}d}t        j                  t        |      5  |j	                  |       d d d        ddddd}t        j                  t        |      5  |j	                  |       d d d        ddddd}t        j                  t        |      5  |j	                  |       d d d        y # 1 sw Y   xY w# 1 sw Y   SxY w# 1 sw Y   y xY w)	Nr;   r1   r   r/  r   r&  r.  r=   )r#   rE   rF   r   rO   )r%   r6   r4  rH   s       r     test_multi_function_flexible_mixr7    s    jjoG U+5%.AA
,C	)	5 ! U+%8A	)	5 ! U+%8A	)	5 !    s#   C6C3C&CC#&C/c                  Z   t        g dg dg dd      } | j                  d      }t        ddgd      }|d	   j                  d
       }t	        ddg|d	      }t        j                  ||       |d   j                  d       }t	        ddg|d      }t        j                  ||       y )Nr   r   r   r   r   r   r   r   )NNr   r   r   r   r   r   r   r   r   r   c                 (    | dk7  j                         S r   allr   s    r    r-   z1test_groupby_agg_coercing_bools.<locals>.<lambda>  s    !q& r"   FTr   r   c                 >    | j                         j                         S r*   )isnullr>  r   s    r    r-   z1test_groupby_agg_coercing_bools.<locals>.<lambda>  s    )9 r"   )r   r#   r   rO   r	   r3   rP   )datgprD   r7   r8   s        r    test_groupby_agg_coercing_boolsrC    s    
,\@RS
TC	S	B1a&s#EW78Fudm5s;H68,W9:FtUm5s;H68,r"   c                      t        g dg dd      } | j                  d      dg   j                  ddi      }t        dddgiddg	      j                  dd
      }t	        j
                  ||       y )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   )rA  r7   r8   s      r    "test_groupby_agg_dict_with_getitemrG    so    
3/J
KC[[se$((#u6F#1vsCj9EEcPQERH&(+r"   c                      t        g dg dg dgg d      } | j                  d      }|j                  ddi      }t        dd	d
git        ddgd            }t	        j
                  ||       y )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_columnsrM    si    		|\2$
B 
CBVVS%L!F#1veQF.EFH&(+r"   opc                 "    | j                         S r*   rL   r   s    r    r-   r-     rM   r"   c                 "    | j                         S r*   )cumsumr   s    r    r-   r-     s    !((* r"   c                 $    | j                  d      S Nr   	transformr   s    r    r-   r-     s    !++e$ r"   c                 $    | j                  d      S NrQ  rT  r   s    r    r-   r-     s    !++h' r"   c                 $    | j                  d      S rS  r$   r   s    r    r-   r-     s    !%%, r"   c                 $    | j                  d      S rW  rY  r   s    r    r-   r-      s    !%%/ r"   c                    t        ddgddgd      }|j                  d      d   } | |j                  d            d   j                  }t	        |      sJ  | |j                  d            j                  }t	        |      sJ y )Nr   FTr   r   r   )r   	set_indexr#   r   r   )rN  r%   r  r7   s       r    test_bool_agg_dtyper]    s     
!Qudm4	5B
S#A

3 %++FF###		#%%FF###r"   zkeys, agg_indexr   r   r   r   r   rx   input_dtype)boolint32int64r   r   result_dtypemethod)r   rO   rU  c                    t        dgdgdgd      }|d   j                  |      |d<   t        |j                  |       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|      j                        }	|dk(  rdg|	j                  _        t        j                  ||	       y )Nr   r   Tr;  r   c                 @    | j                        j                  d   S r   r   iloc)r   rb  s    r    r-   z2test_callable_result_dtype_frame.<locals>.<lambda>%  s    !((<055a8 r"   rU  r   rO   r   r   r`  ra  rC   r   )r   r   getattrr#   r_   
RangeIndexrg  r   ry   r3   r4   )
r'  	agg_indexr^  rb  rc  r%   rN  r7   r  r8   s
      `      r     test_callable_result_dtype_framerk    s    $ 
!A3dV4	5Bgnn[)BsG	D!3%(&	1B89F,2k,AR]]1a(yN)#	(A$L'!lg&="L#3Q01HOOH "#&(+r"   input)Tr         ?r   c                 >   t        dgdg|gd      }t        |j                  |       d   |      } |fd      }|dk(  rt        j                  dd      n|}t        |d   j                  d   g|d      j                        }	t        j                  ||	       y )	Nr   r   r;  r   c                 @    | j                        j                  d   S r   rf  )r   r   s    r    r-   z3test_callable_result_dtype_series.<locals>.<lambda>E  s    !((5/..q1 r"   rU  r   r   )
r   rh  r#   r_   ri  r	   rg  r   r3   rP   )
r'  rj  rl  r   rc  r%   rN  r7   r  r8   s
      `      r    !test_callable_result_dtype_seriesrp  7  s     
!A3eW5	6B	D!#&	/B12F,2k,AR]]1a(yNr#w||A'~CHOOPUVH68,r"   c                      t        g dg dd      } | j                  d      j                  g d      }|j                  j                  d   }t        g d      }t        j                  ||       y )Nr9  r   rE  r;   )r   r   r1   r  rZ   r   )r   r#   r$   r   levelsr   r3   r   )r%   r   r7   r8   s       r    #test_order_aggregate_multiple_funcsrs  K  sY    	L9	:B
**S/

C
DC[["F:;H&(+r"   c           	         t        g dddt        j                  ddt        j                  gd|       }|j                  d      }|j	                         }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                  ||       |j                  dd      }|j	                         }|j                         }t        j                  ||       y )N)r   r   r   r   r   r      rk   r      r   r   r   )ru  ru  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r2ruu'EF"
B 
CBWWYF	BEE7Q;q2$(;''#0P(QRL(<3G"	H &(+
**S5*
)ChhjG$$&I'9-r"   how)firstlastrZ   r   r1   medianc                    t        dddgd      }|j                  d      j                  d|i      }|j                  j	                  |       |_        |j                  d      j                  d|i      }|dvr.|j                  j	                  t
        j                        |_        t        j                  ||d	       y )
Nl   &tLWHd~ r   r   r   r\   r\   r   )r1   r  T)check_exact)	r   r#   r$   r   r   r^   ra  r3   r4   )r   r  r%   r8   r7   s        r    test_uint64_type_handlingr  m  s     
,Aq6:	;Bzz#""C:.H44;;uBDZZ_  #s,F
$$88??288,&(=r"   c                      d} t        g dg dd      }t        j                  t        |       5  |j	                  d      j                  ddg       d d d        y # 1 sw Y   y xY w)NzFunction namesr   r   r   r   r   rE  r=   r;   rZ   )r   rE   rF   r   r#   r$   )rH   r%   s     r    test_func_duplicates_raisesr  {  sT    
C	L9	:B	)	5 ,


3UEN+, , ,s   #AA%rD   abcr   2020r   r   ))r   r   )r   r   )r   r   c                     t        g dg dd|       }|j                  d      j                  dt        j                  i      }t        ddgddgd      j                  d      }t        j                  ||       y )	Nr   r   r   )r   r   r   )groupr   rC   r  r   r   r   )r   r#   r$   r	   nuniquer\  r3   r4   )rD   r%   r7   r8   s       r    $test_agg_index_has_complex_internalsr    si     
Y;5	IBZZ $$gv~~%>?FAq6QF;<FFwOH&(+r"   c                      t        g dg dg dd      } | j                  d      j                         }t        ddgddgdt        d	d
gd            }t	        j
                  ||       y )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    sm    	-7=	

B ZZ##%F%8S#JV,H &(+r"   c            
         t        t        j                  dd      g dg dg dt        j                  dd      g dd      j                  t              } | j                  g d      j                         }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                  ||       y )N2000r   )r   )r   r   r   r4  r   )r   r   r4  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%%vq1	
	
 fVn  ZZ%))+F,,v&',,v&'	
 hhsmH &(+r"   c                       e Zd Zd Zd Zd Zd Zej                  j                  d e
j                  dd      d	ddgg      d
        Zy)TestNamedAggregationSeriesc                 N   t        g d      }|j                  g d      }|j                  dd      }t        ddgddgdd	d
gt	        j
                  ddg            }t        j                  ||       |j                  dd      }|d
d	g   }t        j                  ||       y )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    L!ZZ%%5)a&1v&c
"((Aq6BR
 	fh/%5)S#J'
fh/r"   c                 &   t        ddg      j                  ddg      }t        j                  t        d      5  |j                          d d d        |j                  g       }t        g       }t        j                  ||       y # 1 sw Y   =xY w)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  ss    QF^##QF+]]9N; 	FFH	 R(
fh/	 	s   BBc                     t        g d      j                  g d      }|j                  dd      }t        ddgddgdt	        j
                  ddg            }t        j                  ||       y )	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_    I&&y1&&5E&*Aq6A7rxxA?OP
h0r"   c                     t        g d      j                  g d      }|j                  d d       }t        ddgddgdt	        j
                  ddg            }t        j                  ||       y )	Nr  r  c                      yr    r   s    r    r-   z9TestNamedAggregationSeries.test_mangled.<locals>.<lambda>      r"   c                      yNr   r  r   s    r    r-   z9TestNamedAggregationSeries.test_mangled.<locals>.<lambda>  r  r"   r   r   r   rC   r  r  s       r    test_mangledz'TestNamedAggregationSeries.test_mangled  s_    I&&y1+5Aq6A7rxxA?OP
fh/r"   inpanythingrZ   columnaggfunc)r  rZ   c                    t        g d      }dt        |      j                   }t        j                  t
        |      5  |j                  |j                        j                  |       d d d        y # 1 sw Y   y xY w)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  sg     +,.tCy/A/A.BC]]9C0 	+IIahh##c#*	+ 	+ 	+s   ,A66A?N)r  
__module____qualname__r  r  r  r  rE   markparametrizer_   NamedAggr  r  r"   r    r  r    s\    0010 [[BKKz59	
++r"   r  c                   Z    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y)TestNamedAggregationDataFramec           	         t        g dg dg dd      }|j                  d      j                  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      }|j                  d      j                  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
                  ||       y )"Nr   r   r   r   r:  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$   *LQ
 G$((|<(P!f1v.c
1g&

 	fh/ 4G$(( s ) 
 QQ*QQt c
1J
 	fh/r"   c                     t        g dg dg dd      } |j                  d      j                  di ddi}t        ddd	git        d
dgd            }t	        j
                  ||       y )Nr  r:  r  r  r  zmy colr  r   r   r   r   r   rC   r  rK  r  r%   r7   r8   s       r    test_agg_relabel_non_identifierz=TestNamedAggregationDataFrame.test_agg_relabel_non_identifier  sk    *LQ
 )G$((DHl+CDhA/uc3Zg7VW
fh/r"   c                 h   t        g dg dd      }|j                  d      j                  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      }|j                  d      j                  d|fd|f      }t        ddgddgdt        ddgd
            }t	        j
                  ||       y )Nr  r   rE  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$  s    \=>**S/%%%EAq6A7uaVRU?VW
gx0##BMMR8##BMMR8$$";_UV,,v&**)7H + 
  #JSzBc
0
 	gx0r"   c                    t        g dg ddt        j                  ddgddgg            }|j                  d	
      j	                  ddd      }t        d	dgd	dgddgdddg      }t        j                  ||       y )Nr  r   rE  r;   rN   r   r   rC   r   r   r  r  )rN   r1   )aabbccr   r        @)r   r   rz  r#   r$   r3   r4   r  s       r    test_agg_relabel_with_levelz9TestNamedAggregationDataFrame.test_agg_relabel_with_level=  s    \2))C:Sz*BC
 !$(( ) 
 q6!QSz:3*
 	fh/r"   c                    t        g dg dd      }|j                  d      }d}t        j                  t        |      5  |j                  d       d d d        t        j                  t        |      5  |j                          d d d        t        j                  t        |      5  |j                  d	d
       d d d        y # 1 sw Y   uxY w# 1 sw Y   MxY w# 1 sw Y   y xY w)Nr  r  rE  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    YY78**S/]]9E2 	KKAK	 ]]9E2 	KKM	 ]]9E2 	5KK,)K4	5 	5	 		 		5 	5s$   C7C+C CC C)c                     t        ddgddgd      }d}t        j                  t        |      5  |j	                  d      j                  d	       d d d        y # 1 sw Y   y xY w)
Nr   r   r   rE  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  sZ    aV1a&120]]83/ 	0JJsO,/	0 	0 	0s   "AA$c                 .   t        ddgddgd      }|j                  d      j                  t        j                  dd      t        j                  dd	      
      }|j                  d      j                  dd
      }t        j                  ||       y )Nr   r   r   rE  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2C$$kk#u%C)Q % 
 ::c?&&&H
fh/r"   c                 F     |j                   ||fi |j                         S r*   )betweenr   )r  r   r  r  kwargss        r    	n_betweenz'TestNamedAggregationDataFrame.n_betweene  s#    s{{3//3355r"   c                    t        g dg dd      }|j                  d      j                  t        j                  d| j
                  dd            }t        d	ddgit        ddgd
            }t        j                  ||       y )Nr  r   r   r   rE  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  sw    \>?C$$++c4>>1a@ % 
 o1v6eQFQT>UV
fh/r"   c           	         t        g dg dd      }|j                  d      j                  t        j                  d| j
                  ddd	      
      }t        dddgit        ddgd            }t        j                  ||       y )Nr  r  rE  r;   rN   r   r   both	inclusive)count_between_kwr  r   rC   r  r  s       r    test_namedagg_kwargsz2TestNamedAggregationDataFrame.test_namedagg_kwargsr  s}    \>?C$$[[dnnafU % 
 !Q(q!f30G
 	fh/r"   c           	         t        g dg dd      }|j                  d      j                  t        j                  d| j
                  ddd	      
      }t        dddgit        ddgd            }t        j                  ||       y )Nr  r  rE  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$$ kkT^^QY % 

  1a&)1vC1H
 	fh/r"   c           
         t        g dg dd      }|j                  d      j                  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                  ||       y )Nr:  r   rE  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      }|j                  d      j                  dd	 fd
d f      }t        ddgddgdt        ddgd            }t	        j
                  ||       y )Nr   r   r   r   r   r  r;   rN   c                      yr   r  r   s    r    r-   z<TestNamedAggregationDataFrame.test_mangled.<locals>.<lambda>  r  r"   r<   c                      yr  r  r   s    r    r-   z<TestNamedAggregationDataFrame.test_mangled.<locals>.<lambda>  r  r"   r  r   rC   rK  r  s       r    r  z*TestNamedAggregationDataFrame.test_mangled  s{    aV1a&1v>?C$$['9c;=O$PAq6A7uaVRU?V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    sD    "0H012050060
000&0r"   r  zCagg_col1, agg_col2, agg_col3, agg_result1, agg_result2, agg_result3r\   r;   r   r  )r\   rN   r1   r  r  g      @      @c                     t        |       S r*   )r   r   s    r    r-   r-     s
    3q6 r"   c                      yr  r  r   s    r    r-   r-     r  r"   r  r   c                      yr  r  r   s    r    r-   r-     r  r"   c                    t        g dg dg dd      }t        j                  g d      |_        t	        ddgd	      }|j                  d      j                  d
      }t        dddgi|      }	t        j                  ||	       |j                  d      j                  | ||      }t        |||d|      }	t        j                  ||	       y )Nr  r:  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_columnr.    s    B 
&\M
B ''(PQBJ
c

0CZZ'++2E+FF'Aq6*#6H&(+ZZ'++hh , F kJRUH &(+r"   c                     t        g dg dg dd      } t        j                  g d      | _        t	        j
                  t        d      5  | j                  d      j                  d	
       d d d        y # 1 sw Y   y xY w)Nr  r:  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_existr1    si    	&\M
B ''(PQBJ	x~	6 >


>"&&)<&=> > >s   "A88Bc                     t        g dg dg dd      } t        j                  g d      | _        | j	                  d      j                  dd      }t        d	d
gd      }t        ddgddgd|      }t        j                  ||       y )Nr  r:  r  r  r"  r#  )r  rZ   r   r   r   r   r   r   rC   )	r   r   r~   r   r#   r$   r   r3   r4   )r%   r7   r-  r8   s       r    &test_agg_relabel_multiindex_duplicatesr3    s     
&\M
B ''(PQBJZZ'++
!4 , F c

0C1vQF33?H&(+r"   r   r   rZ   r  c                    t        g dg dg dd      }|j                  d      j                  |       }t        ddgt        ddgd	d
      t	        j
                  ddgg            }t        j                  ||       y )Nr  r  r   r   r   r;  r   r   r   r   ra  rw  r   rZ   r  )r   r#   r$   r   r   r~   r3   r4   )r   r%   r7   r8   s       r     test_groupby_aggregate_empty_keyr6    st     
C	DBZZ_  (F	
AQF'4&&e~6H
 &(+r"   c                      t        g dg dg dd      } | j                  d      j                  dg i      }t        t        dgg gg g g            }t	        j
                  ||       y )	Nr  r  r5  r;  r   r   rr  codesr"  r   r#   r$   r   r3   r4   r  s      r    -test_groupby_aggregate_empty_key_empty_returnr;    sZ    	C	DBZZ_  #r+FSE2;r2h!OPH&(+r"   c            	          t        g d      } | j                  ddgd      j                  dt        f      }t        d	gt	        g g gg g gddg
            }t        j                  ||       y )Nr;  r"  r   r   Fr   r   )r4  r4  rx   r   )r   r#   r$   r   r   r3   r4   r  s      r    2test_groupby_aggregate_empty_with_multiindex_framer=    sl    	?	+BZZc
uZ599S$K9HFZR2r(3*MH &(+r"   c                      t        g dg dd      } | j                  dd      }|j                  t        j                  dd	      
      }t        g dg dd      }t        j                  ||       y )N)r   r\   r]   r   r\   r]   rm  皙?r   g      @g@      ?)r   valr   Frx  rB  rZ   r  min_valr[   )rm  r@  rA  )r   rD  r  r%   r6   r7   r8   s       r    9test_grouby_agg_loses_results_with_as_index_false_relabelrF    sf     
.7VW
B jjj/G[[E5!I[JF=MNOH&(+r"   c                      t        g dg dg dd      } | j                  ddgd      }|j                  t        j                  d	d
            }t        g dg dg dd      }t        j                  ||       y )N)r   r\   r   r\   r   r   )r   r   r   r   r   r   r?  )r   r  rB  r   r  Frx  rB  rZ   r  rC  r   r   r\   )r   r   r   )rm  rA  r@  )r   r  rD  r  rE  s       r    Dtest_grouby_agg_loses_results_with_as_index_false_relabel_multiindexrI  #  sv    
 
122	

B jj%5j9G[[E5!I[JFEUVH &(+r"   c                 ^   | j                  dd      }|ddg   j                  d      }|j                  d      }t        j                  ||       |j                  dd	d
      }|j                  d      }|j                         d   |d<   t        j                  ||       | j                  dd      }d}t        j                  t        |      5  |d   j                  dd	i       d d d        | j                  ddgd      }|j                  d      }|j                         }t        j                  ||       |j                  dd	d
      }|j                         }|j                         d   |d<   t        j                  ||       |d   j                         }t        |      j                  ddi      }d}t        j                  t        |      5  |d   j                  dd	i       d d d        t        t        j                  j                  d      j                  ddd      g d      } t        t        j                  j                  d      j                  ddd      d      }| j                  |      }	|	j!                  d       dD ]z  }
| j                  |d      }	 t#        |	|
             }| j                  |j$                  d      }	 t#        |	|
             j'                  d      }t        j                  ||       | y # 1 sw Y   ,xY w# 1 sw Y   1xY w)Nr;   Frx  r<   r   r1   T)numeric_onlyr   r&  r.  r=   QrN   r"  r   r   d   )r  r   )jimjoejoliere   r   r  rN  r   )r1   r   r  idxmaxrQ  r>  r   )r#   r$   r1   r3   r4   r   rE   rF   r   r   renamer^   r   r   integersr	   nthrh  rY   r   )r%   r6   r7   r8   r|  r}  rH   	expected3r   r  attrleftrights                r    test_groupby_as_index_aggrY  8  s   jjuj-G c3Z $$V,F|||.H&(+kkU34G$/I[[]3'IcN'9-jjtj,G
,C	)	5 '#u&'
 jj#sej4G[[ F||~H&(+kkU34GI[[]3'IcN'9-  "I)$++S#J+?I
+C	)	5 '#u&' 

		a ))!S':'
B 
		%%a(11!R<5	IB	BBFF1IC +ZZUZ+ wr4 "ZZ		DZ1!D!#//T/:
dE*+A' '&' 's   LL"L"L,r   c                 "    | j                         S r*   r   r  s    r    r-   r-   t  s    qvvx r"   c                 ,    t        j                  |       S r*   r)  r[  s    r    r-   r-   t  s    2771: r"   c                 ,    t        j                  |       S r*   )r^   nanmeanr[  s    r    r-   r-   t  s    A r"   c                 v   g dg dg}t        |t        j                  g dg dgddg            }|j                  t	        j
                  d	d
g            j                  |       }dddddddddd}t        |t	        j
                  d	d
g      |j                        }t        j                  ||       y )N)r   r   r   )re   rf   r   r  )r   r   r   SiskoJanewayrx   r"  r   r   rm        @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_funcrg  s  s    
 y!D	&&	"7I*>

B ZZ!Q()--d3FC C C M
 bhh1v.>

SH&(+r"   c                 0    t        j                  | d      S Ng?r	  r^   r  r[  s    r    myfuncrk    s    ==d##r"   c                 0    t        j                  | d      S ri  rj  r[  s    r    r-   r-     s    BMM!t,D r"   c                     t        g dg dg dd      }|j                  d      j                  dd| f      }t        d	d
gddggddgt        ddgd            }t	        j
                  ||       y )Ncatdogro  rp  g333333"@g      @      #@      A@皙@r  #@     h@kindheightweightry  )rz  r1   rz  )mean_heightperc90g"@g0'5"@g      4@g5^I@r|  r}  ro  rp  r   r   rK  )r   animalsr7   r8   s       r    test_lambda_named_aggr    s     0+,	
G __V$((&$/? ) F 
vu&)UEN0H &(+r"   c                     t        t        j                  dgdz        j                  dd      t	        d      t	        d            } g d| d<   | j                  d      j                  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                  ||       y )Nr   r{   r   XYZr  re  r   rD   )group 1r  r   groupingc                 "    | j                         S r*   )tolistr   s    r    r-   z,test_aggregate_mixed_types.<locals>.<lambda>  s    
 r"   r   r  r   rw  )Xr0  Zr  )
r   r^   r   reshaper   r#   rO   r   r3   r4   )r%   r7   expected_datar8   s       r    test_aggregate_mixed_typesr    s    	XXqcAg&&q!,d5ke
B /BzNZZ
#--.BCFcA3_1v1v1v&>?MQ	N(Do&H
 &(+r"   zNot implemented;see GH 31256reasonc                  *   d } t        dt        j                  g d      i      }|j                  g d      j	                  |       }t        dt        j                  dt        j
                  gd      iddg	      }t        j                  ||       y )
Nc                 @    t        | dkD        ryt        j                  S )Nr   r   )r>  r_   r`   r   s    r    r  z5test_aggregate_udf_na_extension_type.<locals>.aggfunc  s    q1u:55Lr"   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    sr     
C),-	.BZZ	"&&w/F#rxxBEE
'BCAq6RH&(+r"   c                   h    e Zd Zd Zd Zej                  j                  d      d        Zd Z	d Z
y)	TestLambdaManglingc                     t        g dg dd      }|j                  d      j                  dd d gi      }t        ddgd	d	gd
t        dd	gd            }t	        j
                  ||       y )Nr  r   rE  r;   rN   c                      yr   r  r   s    r    r-   z/TestLambdaMangling.test_basic.<locals>.<lambda>  r  r"   c                      yr  r  r   s    r    r-   z/TestLambdaMangling.test_basic.<locals>.<lambda>  r  r"   r   r   ))rN   
<lambda_0>)rN   
<lambda_1>r   rC   rK  r  s       r    
test_basiczTestLambdaMangling.test_basic  sm    \=>C$$cK+E%FG#$a&1vFAS)
 	fh/r"   c                     t        g d      j                  g d      }|j                  d d g      }ddgddgd}t        |t	        j
                  ddg            }t        j                  ||       y )	Nr   r  c                      yr   r  r   s    r    r-   z?TestLambdaMangling.test_mangle_series_groupby.<locals>.<lambda>  r  r"   c                      yr  r  r   s    r    r-   z?TestLambdaMangling.test_mangle_series_groupby.<locals>.<lambda>  r  r"   r   r   r  r  rC   r  )r  r  r7   exp_datar8   s        r    test_mangle_series_groupbyz-TestLambdaMangling.test_mangle_series_groupby  se    L!)),7k23#$a&A?XRXXq!f-=>
fh/r"   zGH-26611. kwargs for multi-agg.r  c                 p   dd}dd}t        ddg      j                  ddg      j                  ||gd      }t        dgdgd      }t	        j
                  ||       t        ddg      j                  ddg      j                  ||gdd	
      }t        dgdgd      }t	        j
                  ||       y )Nr   c                 .    | j                         |z   |z   S r*   rL   r   r\   r   s      r    r-   z5TestLambdaMangling.test_with_kwargs.<locals>.<lambda>  s    quuw{Q r"   r   c                 .    | j                         ||z  z   S r*   rL   r  s      r    r-   z5TestLambdaMangling.test_with_kwargs.<locals>.<lambda>  s    quuw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D
fh/A''A/33RHa23FRDE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      |      }|j                  d      j                  t	        j
                  dd       t	        j
                  dd      t	        j
                  dd            }t        j                  ||       |j                  d      j                  dd fdd      }t        j                  ||       y )Nrn  rq  rt  rx  )height_sqr_min
height_max
weight_maxp=
׳T@      B@rr  rs  rv  rw  ro  rp  ry  r   r  byrz  c                 2    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                 2    t        j                  | dz        S rB   r  r   s    r    r-   z=TestLambdaMangling.test_agg_with_one_lambda.<locals>.<lambda>      q!t r"   rz  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/0
 A#(%."Dk"El
 V4
 ***'++;;h@VW{{(EB{{(EB , 

 	gx0 ***'++$&<=(( , 

 	gx0r"   c           
      f   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      |      }|j                  d      j                  dd fdddd fdd f      }t	        j
                  ||       |j                  d      j                  t        j                  dd       t        j                  dd      t        j                  dd      t        j                  dd       t        j                  dd             }t	        j
                  ||       y ) Nrn  rq  rt  rx  )r  r  r  height_max_2
weight_minr  r  rr  rs  rv  rw  ru  r  ro  rp  ry  r   r  r  rz  c                 2    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    bffQi r"   r{  c                 ,    t        j                  |       S r*   r  r   s    r    r-   z=TestLambdaMangling.test_agg_multiple_lambda.<locals>.<lambda>/  s    BFF1I r"   c                 2    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    bffQi r"   )r   r   r#   r$   r3   r4   r_   r  r  s         r    test_agg_multiple_lambdaz+TestLambdaMangling.test_agg_multiple_lambda  s<    4/0

 #(%."Dk"El!$d"Cj V4

 ***'++$&<=(("$78 "56 , 
 	gx0 ***'++;;h@VW{{(EB{{(EBH>QR{{(<OP , 
 	gx0r"   N)r  r  r  r  r  rE   r  xfailr  r  r  r  r"   r    r  r    s?    00 [[?@	0 A	0#1J/1r"   r  c                    g d| _         | j                  d |      }|j                  t        j                  dd      }| | j
                  j                  dk(     j                  d      | | j
                  j                  d	k(     j                  d      d
}t        |      j                  }|s.|j                  dddd	g       t        t        d	            |_        t        j                  ||       y )N)r;   rN   r;   r<   c                     | j                   S r*   r/   r   s    r    r-   z9test_pass_args_kwargs_duplicate_columns.<locals>.<lambda>A  s
    177 r"   rx  P   r   r   r   r@  r   )r   r   rD   )r   r#   r$   r^   r  rD   r0   r  r   r  insertr   ranger3   r4   )r5   ry  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+uQx#x(r"   c                      t        g dg dd      } | j                  d      j                  dd i      }t        ddgd	d
gd      j                  d      }t	        j
                  ||       y )N)SWr  )rm  rm  r   rE  r;   rN   c                 >    | j                  | j                  d         S )Nr  )getrD   r   s    r    r-   z+test_groupby_get_by_index.<locals>.<lambda>T  s    aeeAGGBK.@ r"   r  r  rm  r   )r   r#   r$   r\  r3   r4   )r%   r   r8   s      r    test_groupby_get_by_indexr  Q  sa    	?	@B
**S/

s$@A
BCSzc
;<FFsKH#x(r"   zgrp_col_dict, exp_data)nrcat_ordre   r  r  c                    t        g dt        d      t        d      d      }|j                  ddd      }|d   j                  j	                         |d<   |j                  dd	
      j                  |       }t        j                  ddgddgd	dd      }t        ||      }d|v r&|d   j                  }|d   j                  |      |d<   t        j                  ||       y )Nr   r   r   r   re   r  rf   rz   aabbccddaaaabbbbr  r  ro  categoryro  r  r  ro  Fobservedr   r   
categoriesorderedr   r   )re  rD   )r   r   r   ro  
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JH"9-11<<>HY   7;;LII ##	c
Sz5uJI ;KK#))!,Y!7!>!>u!EI)[1r"   )r   r   r   )re   rz   r   )r   r   r   )re   r   r4  r   )r   r4  c                   
 t        g dt        d      t        d      d      }|j                  ddd      }|d   j                  j	                         |d<   |j                  dd	
      j                  |       }t        j                  ddgddgd	dd      }g }| j                         D ]C  \  
}t        |t              r|j                  
fd|D               1|j                  
|g       E t        j                  t        |            }t        |||      }|j                   D ]<  }	t        |	t              sd|	v s||	   j                  |d   j"                        ||	<   > t%        j&                  ||       y )Nr  r  r  r  r  r  r  ro  Fr  r   r   r  c              3   &   K   | ]  }|g 
 y wr*   r  ).0r   ks     r    	<genexpr>z6test_groupby_combined_aggs_cat_cols.<locals>.<genexpr>  s     #>5QJ#>s   r  )r   r   r   ro  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    sx    *J'
#	
H zjIJH"9-11<<>HY   7;;LII ##	c
Sz5uJI ""$ ,1a###>A#>>##QF+	,
 ((/?)@AK;iPK"" Rc5!i3&6*3/66x	7J7P7PQKR
 )[1r"   c                      t        g dg dd      } | j                  d      }|j                  dg      }|j                  j	                  d      |_        |j                  d      }t        j                  ||       y )Nr9  )r   r   r   r   r   r   rQ  r  )r   r#   r$   r   	droplevelr3   r4   )r%   r   r7   r8   s       r    test_nonagg_aggr    sc     
L9	:B


3AUUH:F^^--b1FNuuXH&(+r"   c                  2   t        ddgt        j                  ddddddd      t        j                  d	dddddd      gd
      } | j                  d      j                  j	                         }| j                  d      d   }t        j                  ||       y )Nr  r0  i  r   r   r      i`= i  rE  r;   rN   )r   datetimer#   rN   r   r\  r3   rP   r  s      r    test_aggregate_datetime_objectsr    s     
s!!$1b"b&A!!$1b"b&A	

B ZZ_""$F||C %H68,r"   c                  J   t        g dg dg dd      } | j                  j                  d      | _        | j                  ddg      }|j                  j                  d       }t        j                  d	d
gd      }t        ddg|d      }t        j                  ||       y )N)r   r   r   rH  r   r   r   )c0c1pOr  r   c                     t        | dkD        S r   r=  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    	/yQ	RBxxs#BHjj$&G
))--,
-C  ++	Z N udm>DH3)r"   c                      d } t        dgt        j                  d      g      }|j                  d       j	                  |       }t        dggdg      }t        j                  ||       y )Nc                 j    | j                         j                         ry t        j                  |       S r*   )isnar>  r^   r   r   s    r    r   z)test_timeseries_groupby_agg.<locals>.func  s#    88:>>vvc{r"   rm  z2018-01-16 00:00:00+00:00rC   c                      yr  r  r   s    r    r-   z-test_timeseries_groupby_agg.<locals>.<lambda>  r  r"   r   )r   r_   r  r#   r$   r3   r4   )r   r%   r   r8   s       r    test_timeseries_groupby_aggr	    s_    
 
C5.I!J K	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                               j                  }| t         j                  v r-t        j                  | 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|      }|j                  d	d
g      j!                  d       }t        j"                  ||       y )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   rd  r#   r$   r4   )any_real_numeric_dtype	max_valuer%   arraysrD   r8   r7   s          r    test_groupby_agg_precisionr    s>   !8!88HH3488	!6!66HH3488	!3!33HH399;<@@	!5!55HH399;<@@		EEHHi[0FG	

B ecU^F""61ABE	9+-CDEUH ZZ()--k:F&(+r"   c                    | dv ry t        ddgdt        j                  gg      }|j                  d      j	                  |       }|j                  d      j	                  d| i      }| dv rt        j                  ||d   d       y t        j                  ||       t        j                  |j                  |j                         y )N)corrwithrT  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    ,,
aVa[)
*CKKN..~>;;q>--q..AB++
!#7#:	
 	35IJ
!((*>*E*E	
r"   c                      t        g dd      } t        dgdt        j                  dg            }| j                  g d      j	                         }t        j                  ||       y )N)z1 dayz3 daysra   ztimedelta64[ns]r   z2 daysr   r   r   r   r   )r	   r^   r   r#   r1   r3   rP   )re  r8   r7   s      r    test_group_mean_timedelta_natr"    sR    ,4EFDxj(91#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                  }|j	                  g d      j                         }t        j                  ||       y )Nr   rC   r!  )r   r	   r^   r   r#   r1   r3   rP   )
input_dataexpected_outputre  r8   r7   s        r    test_group_mean_datetime64_natr&  (  sU     vj)*D6/1#GHH\\)$))+F68,r"   zfunc, outputr1   y       @      2@y      $@      6@r   y      D@     V@y      I@     [@c                    t        t        j                  d      j                  dd      j	                  ddg            }|j                  |j                  dz        j                  |       }t        |      }t        j                  ||       y )Nrv  r   r   r                  @)
r	   r^   r   r  dotr#   rD   r$   r3   rP   )r   outputre  r7   r8   s        r    test_groupby_complexr+  >  sl    
 "))B-''A.22Ar7;<D\\$**q.)--d3Ff~H68,r"   )rZ   r   r   c                 @   t        t        j                  d      j                  dd      j	                  ddg            }d}t        j                  t        |      5  |j                  |j                  dz        j                  |        d d d        y # 1 sw Y   y xY w)Nrv  r   r   r   r(  zNo matching signature foundr=   )r	   r^   r   r  r)  rE   rF   r   r#   rD   r$   )r   re  rH   s      r    test_groupby_complex_raisesr-  I  sy     "))B-''A.22Ar7;<D
'C	y	, /TZZ!^$((./ / /s   .BBztest, constantrv  r;   rN   r   r<   rc  r   )marksc                     t        |       }|j                  d      j                  t        j                        }t        |      }|j                  d      }t        j                  ||       y r   )r   r#   r$   r	   moder\  r3   r4   )r  constantdf1r7   r8   s        r    test_agg_of_mode_listr3  R  sU     D/C[[^,F "H!!!$H&(+r"   c                     t        g dg dd      } | j                  d      }dd}dd}d}t        j                  t        |      5  |j                  ||gd	d	d
       d d d        |j                  ||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                  ||       y # 1 sw Y   oxY w)Nr  r;  r  r\   c                 .    | j                         |z   |z   S r*   rL   r   r   r   s      r    foo1z@test_dataframe_groupy_agg_list_like_func_with_args.<locals>.foo1p      uuw{Qr"   c                 .    | j                         |z   |z   S r*   rL   r   r   r   s      r    foo2z@test_dataframe_groupy_agg_list_like_func_with_args.<locals>.foo2s  r8  r"   /foo1\(\) got an unexpected keyword argument 'b'r=   r   r   r  r  rz   r{   r   r   )r   r7  )r   r;  r  r   r   r   r   )r   r#   rE   rF   r   r$   r   r   r~   r3   r4   )r%   r&   r7  r;  rH   r7   r8   s          r    2test_dataframe_groupy_agg_list_like_func_with_argsr?  k  s    	9	:B	CB =C	y	, *
d|Q!q)* VVT4L!qV)F
Q!Q"b"O#.&&}'EFH
 &(+* *s   	CCc                     t        g d      } | j                  |       }dd}dd}d}t        j                  t        |      5  |j                  ||gddd       d d d        |j                  ||gdd	      }t        d
d
gddgddggt        g d      ddg      }t        j                  ||       y # 1 sw Y   ZxY w)Nr  c                 .    | j                         |z   |z   S r*   rL   r6  s      r    r7  z=test_series_groupy_agg_list_like_func_with_args.<locals>.foo1  r8  r"   c                 .    | j                         |z   |z   S r*   rL   r:  s      r    r;  z=test_series_groupy_agg_list_like_func_with_args.<locals>.foo2  r8  r"   r<  r=   r   r   r  r  rz   r{   r   r7  r;  r  r=  r>  )
r	   r#   rE   rF   r   r$   r   r   r3   r4   )r  sgbr7  r;  rH   r7   r8   s          r    /test_series_groupy_agg_list_like_func_with_argsrD    s    yA
))A,C =C	y	, +ta1*+ WWdD\1W*F
Q!Q"b"%	*:VVDTH &(++ +s   B55B>c                     t        g dg dg dd      } | j                  ddg      }|ddg   }|j                  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
                  ||       y )Nr  )r   r   r   )re   r  rf   r;  r   r   r   c                 "    | j                         S r*   rL   r   s    r    r-   z.test_agg_groupings_selection.<locals>.<lambda>  s    quuw r"   r   r   r   r   r   )rr  r9  ry   r  rk   rf   r  rC   r:  )r%   r&   selected_gbr7   rD   r8   s         r    test_agg_groupings_selectionrH    s    	C	DB	S#J	Bc3Z.K__./FAAAA'7SzE 1vRG4EBH&(+r"   c                      t        g dg dd      } | j                  dd      d   }|j                  dd	g      }t        d
dgddgddgd      }t        j                  ||       y )Nr  )r   r   re   r   r   Frx  r   r   r1   r   r   rf   re   r  rb  )r   r   r1   r   r#   r$   r3   r4   rL  s       r    ?test_agg_multiple_with_as_index_false_subset_to_a_single_columnrK    sg    	3	4B	C%	(	-BVVUFO$F1vq!fsCjIJH&(+r"   c                      t        g dg dg dd      } | j                  ddgd      }|j                  d	g      }t        g d
g dg dgt        j                  g d            }t        j                  ||       y )Nr  )r   r   r   )r   re   r  )a1a2r   rM  rN  F)r  ry  r   )r   r   r   )r   r   re   )r   r   r  ))rM   )rN  rO  )r   r   )re  r   )r   r#   r$   r   r~   r3   r4   rL  s       r    &test_agg_with_as_index_false_with_listrP    sm    	)99E	FB	d|e	4BVVUG_FI.&&'MNH &(+r"   c                  D   t        dt        j                  d      t        j                  d      t        j                  d      di      } t        t        g dd      g dd	      }|j	                  d
      }|j                  d      }t        j                  ||        y )Ntd0 days 01:00:000 days 01:15:00r  )rS  z0 days 00:15:00rT  ztimedelta64[us]r   )r   r   r   )rR  grpsrU  )rR  rQ  )rR  )r   r_   	Timedeltar	   r#   r$   r3   r4   )r8   r%   r&   r7   s       r    Btest_groupby_agg_extension_timedelta_cumsum_with_named_aggregationrW    s    << 12<< 12<< 12	
H 
I' $	

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  |j                  d	d
      j                  |        d d d        y # 1 sw Y   y xY w)Nc                 J    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"    q6Q;3441vr"   r   r;  )r  r   rE  rZ  r=   r;   Fr  )r   r_   CategoricalrE   rF   r   r#   r$   )r   r%   rH   s      r    $test_groupby_aggregation_empty_groupr\    ss    
 
nnc3ZODAq6R
B !C	z	- 2


3
'++D12 2 2s   
#A66A?c                      t        g dg dg dgg d      } | j                  d      }|j                  ddi      }t        d	d
gddggddgt        ddgd            }t	        j
                  ||       y )Nr   rI  rJ  r   r"  r   r   r   rf   r{   re   r  r   r   r   r   rK  rL  s       r    <test_groupby_aggregation_duplicate_columns_single_dict_valuer^    sy    		|\2$
B 
CBVVS%L!F
Q!Q3*E1a&s4KH &(+r"   c            	         t        g dg dg dgg d      } | j                  d      }|j                  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                  ||       y )Nr   rI  rJ  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   r8  r   r   r   r   r   r#   r$   r   r   r3   r4   rL  s       r    ?test_groupby_aggregation_duplicate_columns_multiple_dict_valuesra    s    		|\2$
B 
CBVVS678F	!#;<E01+-EF
 QF%H &(+r"   c            	         t        g dg dg dg dgg d      } | j                  d      }|j                  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                  ||       y )N)r   is&  +   6     r     r{   rj   )r   rh  ir   r      irj   )r   r   r   r   r   r"  r   r   r  g  @ABg   }Ag     @g        r   r   r8  r   r   r   r   r`  rL  s       r    <test_groupby_aggregation_duplicate_columns_some_empty_resultrm    s    	# &#		
 *
B 
CBVV"E7+,F
z	"[#$67C55'"2Aq6Aq6:JKQF%H
 &(+r"   c            
      r   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            } | j                  d      }|j                  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                  ||       y )Nr   rc  rd  re  rf  r   rh  "  ri  r   rj  level1.1level1.2level2.1level2.2r   r   r   r   r   r   r   r   r   r   r8  r   r   r   r   r   r   r   r   r   r   r   rs  rv  rZ   rp  r{   rk  rl  r   r   r#   r$   r   r3   r4   rL  s       r    6test_groupby_aggregation_multi_index_duplicate_columnsr}    s    	$ %#		
 ,z:.FG"O4
 ,z:.FG.

B  
!	BVV-u56F
c3Z J<*">1vPQSTvFVWZ,-H
 &(+r"   c            
         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            } | j                  d      }|j                  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                  ||       y )Nro  rf  rq  rj  rs  rt  ru  rv  rw  rx  r8  ry  rz  r   r   r   r{  rZ   r   )rp  rg  r{   rr  )rk  rk  rl  rl  r  )r   r   r   r   r|  rL  s       r    @test_groupby_aggregation_func_list_multi_index_duplicate_columnsr  :  s    	$ %#		
 ,z:.FG"O4
 ,z:.FG.

B  
!	BVV-u~>?F	34L:,?|<
 Z,-H &(+r"   pyarrow)zfloat[pyarrow]int64[pyarrow]uint64[pyarrow]zbool[pyarrow]c                 *   t        g dt        j                  g d|       d      }|j                  d      }|j	                  d       }t        dt        j                  g d|       it        g d	d
            }t        j                  ||       y )N)r   c2c3r   r  r  )rM        r      iȝ  r   rE  r;   c                 "    | j                         S r*   )rZ   r   s    r    r-   z:test_agg_lambda_pyarrow_dtype_conversion.<locals>.<lambda>i  s    aeeg 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8F	

B 
CBVV%&F	bhh}E23&S1H &(+r"   c                  f   t        g dt        j                  g dd      d      } | j                  d      }|j	                  d       }t        dt        j                  t        dd	      t        d
d	      t        dd	      gd      it        g dd            }t        j                  ||       y )Nr  rM  r  r  r  rE  r;   c                 R    t        | j                         | j                               S r*   )complexr   r  r   s    r    r-   z=test_agg_lambda_complex128_dtype_conversion.<locals>.<lambda>y  s    gaeegqwwy9 r"   rN   rM  r   r  r  
complex128r   r   rC   )	r   r_   r   r#   r$   r  r   r3   r4   rL  s       r    +test_agg_lambda_complex128_dtype_conversionr  r  s     
 rxxAQ'RS
B 
CBVV9:Fa'#q/73?C<	

 &S1H &(+r"   c                  *   t        g dt        j                  g dd      d      } | j                  d      }|j	                  d       }t        dt        j                  g dd      it        g dd	      
      }t        j                  ||       y )Nr  r  r  r   rE  r;   c                 H    t        j                  | j                               S r*   )r^   uint64r   r   s    r    r-   zJtest_agg_lambda_numpy_uint64_to_pyarrow_dtype_conversion.<locals>.<lambda>  s    bii0 r"   rN   r   rC   r  rL  s       r    8test_agg_lambda_numpy_uint64_to_pyarrow_dtype_conversionr    s     
#/1BC	

B 
CBVV01F/1BC	
 &S1	H &(+r"   c                  J   dd l } t        g dt        j                  g dd      d      }|j	                  d      }|j                  d       }| j                  d	d
id	d
id	d
ig      }t        dt        |      it        g dd            }t        j                  ||       y )Nr   r  r  r  r   rE  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 
CBVV+,F
((XqMHa=8Q-@
AC	!#&'&S1H
 &(+r"   c                      t        ddg      } | j                  dgd      d   j                  d      }t        ddg      }t        j                  ||       y )NGroupDatar"  Frx  r   rJ  r  s      r    (test_groupby_aggregate_empty_builtin_sumr    sT    	GV,	-BZZ	EZ26:>>uEF'6!23H&(+r"   c                      d } t        ddg      }|j                  dgd      d   j                  |       }t        ddg      }t        j                  ||       y )Nc                     t        |       S r*   rL   r   s    r    r   z.test_groupby_aggregate_empty_udf.<locals>.func  s    1vr"   r  r  r"  Frx  rJ  )r   r%   r7   r8   s       r     test_groupby_aggregate_empty_udfr    s[     
GV,	-BZZ	EZ26:>>tDF'6!23H&(+r"   )__doc__r  r  r   numpyr^   rE   pandas.errorsr   pandas.util._test_decoratorsutil_test_decoratorsrR  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$  r5  r7  rC  rG  rM  r]  rk  r_  intr   rp  rs  r~  ra  r  r  r  r  r   interval_rangeperiod_ranger~   r  r  r  r  r  r1   r  r.  r1  r3  r6  r;  r=  rF  rI  rY  rg  rk  r  r  r  r  r  r  r  r  r  r  r  r  r	  r  r  r"  r&  r+  r-  paramr3  r?  rD  rH  rK  rP  rW  r\  r^  ra  rm  r}  r  
skip_if_nor  r  r  r  r  r  r  r"   r    <module>r     s	        , ) ) 6    - 0	,+.,4.,b'4,:,,, ),=?T+UV,,4,'0, 4$,* ,F,"!H0- ,	, $'!

$

$ 
qc$%
sZ!qc
aS1#JsCjIJ C D #FG, H,2 
qc$%
sZ!qc
aS1#JsCjIJ .14e"45#FG- H 6 2-	,., 288RYY"78 QR	> S 9	>, DK(!Q4
=>	,,,",82+ 2+jm0 m0` I  ! F#J#J	
 )*%!FF#J	
 BKK
E*BKK
BGG,BKK
K0F#JF	
#:,;:,.>," S5'N"E74K#LM	, N	,,,,,*8+v 
!57NO,,&$ "Df!MN, O,,,  89, :,(r1 r1j)&) %	(!QS#J*OP
U	i#s45
1v'22> 5	1K3MN5%.	1M=3QR
eU^	$z:&>?%2%2P
,-$*),6
,- ! < 	

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