
    Owg                    t   d dl m Z  d dlZd dlmZ d dlZd dlZd dlZd dlmZ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mZmZmZmZmZmZ d dlmZ  d dl!m"Z" d dl#m$c m%Z& ejN                  jQ                  d      Z)d	 Z*d
 Z+ejN                  jY                  dg d      d        Z-d Z.d Z/d Z0d Z1ejN                  jY                  dddg      d        Z2d Z3d Z4d Z5ejN                  jY                  dg d      d        Z6d Z7d Z8d Z9d Z:d Z;d  Z<d! Z=d" Z>d# Z?ejN                  jY                  d$d% d& g      d'        Z@d( ZAd) ZBd* ZCd+ ZDd, ZEd- ZFd. ZGd/ ZHd0 ZId1 ZJd2 ZKd3 ZLd4 ZMejN                  jY                  d5d6d7g      d8        ZNejN                  jY                  d5g d9      ejN                  jY                  d:ddg      d;               ZOd< ZPd= ZQd> ZRd? ZSd@ ZTdA ZUdB ZVdC ZWdD ZXdE ZYdF ZZdG Z[dH Z\dI Z]dJ Z^dK Z_dL Z`dM ZadN ZbdO ZcdP ZddQ ZedR ZfdS ZgdT ZhdU ZidV ZjdW ZkdX ZldY ZmdZ Znd[ Zod\ Zpd] Zqd^ Zrd_ Zsd` Ztda Zudb ZvejN                  jY                  dcdddddegg      df        Zwdg Zxdh Zydi Zzdj Z{dk Z|dl Z}dm Z~dn ZejN                  jY                  dodpdqdrdpdqgdpdrgg      ejN                  jY                  dsdtdudtdugg      dv               Zdw ZejN                  jY                  dxdydygg      ejN                  jY                  dzddgdddegg      ejN                  jY                  d{dgd gd|gd}g ed g       ed       g ed d~d~d       ej                  ddd       ej                  d gd       ej                  d gd       ej                  dgd      gg d      ejN                  jY                  dg d      ejN                  jY                  d$g d      d                                    Zd Zd Zd Zd Zd Zd Zd Zd ZejN                  jY                  dddgg      d        ZejN                  jY                  ddddd ed       ed      ddgifdd ed       ed       ed       ed       ed       ed      gifdd ed       ed       ed       ed       ed       ed      gifg      d        Zd Zd Zd Zd Zd ZejN                  jY                  dg d      d        Zd ZejN                  jY                  dedd}feddfeddfeddfeddfeddfedd}feddfeddfeddfeddfeddfg      d        Zd ZejN                  jY                  dg d      d        ZejN                  jY                  dd ej2                  d ej4                  d            g      d        Zd ZejN                  jY                  ddddgfdddgfg      dĄ        Zdń ZdƄ ZdǄ ZdȄ ZdɄ ZejN                  jY                  d:ddg      dʄ        Zd˄ Zd̄ Zd̈́ Zd΄ Zdτ ZdЄ ZejN                  jY                  de ej2                  d ej4                  d            g      d҄        Zdӄ ZdԄ ZejN                  jY                  ddd}d}gg      dք        Zdׄ ZejN                  jY                  dd gdfdd gdfdg      dۄ        ZejN                  jY                  dg dܢ      d݄        ZejN                  jY                  dddg      d        ZejN                  jY                  dddg      d        ZejN                  jY                  dddejh                  fg      d        ZejN                  jY                  dg dg dg dfg dg dg dfg      d        ZejN                  jY                  dg d      d        ZejN                  jQ                  d      ejN                  jY                  dg d      d               Zd Zd ZejN                  jY                  d:ddg      d        Zd ZejN                  jY                  dd~d}g      d        ZejN                  jY                  dg d      d        Zd Zd  Zd ZejN                  jY                  dddg      ejN                  jY                  dddd}gd~efdd}gddfddd gd~efdd gddfg      d               ZÐd	 ZĐd
 ZŐd ZejN                  jY                  dddg      d        Zy(      )datetimeN)Decimal)PerformanceWarningSpecificationError)is_string_dtype)Categorical	DataFrameGrouperIndexInterval
MultiIndex
RangeIndexSeries	Timedelta	Timestamp
date_rangeto_datetime)BooleanArrayz)ignore:Mean of empty slice:RuntimeWarningc                  B    t        t        dd            } d}| |k(  sJ y )NAB)keylevelz<Grouper(key='A', level='B', axis=0, sort=False, dropna=True))reprr
   )resultexpecteds     X/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/groupby/test_groupby.py	test_reprr   '   s&    'c-.FMHX    c                 Z   t        j                  dd      }t        |      }|d d dxx   dz  cc<   |j                  d      j	                         }|t        d      z   |d<   |t        dd	
      z   |d<   t         j                  |j                  d<   |j                  t        t        d            dz        }|j                         }t        d      }t        d      }t        |dz  ||||gt        j                  d            }t        |||d      }	t!        j"                  ||	       y )Nz1 Day'  periods      r   r   r   UTCtzCi  z2887 days 11:21:02.326710176z2886 days 00:42:34.664668096indexr   r   r)   )pdtimedelta_ranger   to_framecopyr   NaTilocgroupbylistrangestdr   nparanger	   tmassert_frame_equal)
warn_copy_on_writetdiserdfgbr   td1td4exp_serr   s
             r   test_groupby_std_datetimelikerD   .   s    


We
4C
+C!HMH	c				!BIaL BsGIaE**BsG&&BGGBK	DqNT)	*BVVXF 2
3C
2
3CcAgsCc2"))A,GGwW7CDH&(+r   dtype)int64int32float64float32c                 r   t        t        j                  d      dz  t        j                  d      |       }t        j                  d      }t        j                  j	                  d      j                  |       |j                  |      }|j                  d d      }|D ]  \  }}t        |      dk(  rJ  d}t        j                  t        |	      5  |j                  t        j                        }d d d        d
   d
k(  sJ d}t        j                  t        |	      5  |j                  t        j                        }d d d        t        j                  |       t        j                  ||j                                |j!                         }	d}t        j                  t        |	      5  |j                  t        j                         }d d d        t        j                  |	|       |j#                  d       }|j%                  d       }
|
d   dk(  sJ t        j                  |
|       |j                  |      }d}t        j                  t        |	      5  |j                  t        j                        }	d d d        t        j                  |	|d       d}t        j                  t        |	      5  |j                  t        j                  t        j&                  g      }d d d        d}t)        j*                  t,        |	      5  |j                  t        j                  t        j&                  d       d d d        ddddd}t        j                  t        |	      5  |j                  fd      }d d d        |d
   dk(  sJ d}t)        j*                  t.        |	      5  |j                  d        d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   wxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)N	      r,   rE   r%   c                     | dz  S NrL    xs    r   <lambda>z)test_basic_aggregations.<locals>.<lambda>Q   s
    Q!V r   F
group_keyszusing SeriesGroupBy.meanmatch   zusing SeriesGroupBy.sumc                 (    | | j                         z  S NsumrQ   s    r   rS   z)test_basic_aggregations.<locals>.<lambda>f   s    q1557{ r   c                 (    | | j                         z  S rZ   r[   rQ   s    r   rS   z)test_basic_aggregations.<locals>.<lambda>g   s    a!%%'k r         check_index_typezusing SeriesGroupBy.[mean|std]nested renamer is not supported)onetwo
         r   rX   r%   zPinning the groupby key to each group in SeriesGroupBy.agg is deprecated, and cases that relied on it will raise in a future versionc                 D    | j                      | j                         z   S rZ   )namemean)rR   group_constantss    r   rS   z)test_basic_aggregations.<locals>.<lambda>   s    oaff&=&H r      zMust produce aggregated valuec                     | dz  S Nr%   rP   rQ   s    r   rS   z)test_basic_aggregations.<locals>.<lambda>   s
    AE r   )r   r8   r9   randomdefault_rngshufflereindexr4   lenr:   assert_produces_warningFutureWarning	aggregaterk   aggassert_series_equalr\   apply	transformr7   pytestraisesr   	Exception)rE   datar,   groupedkvmsgaggedr   r   transformedvalue_groupedrl   s               @r   test_basic_aggregationsr   I   so   "))A,!#299Q<uEDIIaLEII!$$U+<<Dll+l>G 11v{{ %C		#	#M	= +!!"''*+8q==
$C		#	#M	= (;;rww'(5(+5',,.1[[]F
#C		#	#M	= ';;rvv&'68,}}23H##$9:Kq>R;1LL&M
$C		#	#M	= 2((12655A +C		#	#M	= 5!!277BFF"345 -C	)	5 ;"''"&&9:; +O	E  
	#	#M	= JHIJ 8r>> *C	y	, +/*+ +a+ +
( (' '2 25 5; ;J J+ +s`    O' O!6 O.& O;0P1P4P!8P-O!O+.O8;PPP!P*-P6c                    | j                   j                  d   }| j                  |      }|j                         }| j                  |j	                  d            j                         }|j                   j
                  t        j                  k(  sJ |j                   j
                  t        j                  k(  sJ t        j                  ||d       y )Nr   OFr`   )r,   codesr4   r\   astyperE   r8   int8rF   r:   r;   ) multiindex_dataframe_random_datar   r   r   r   s        r   test_groupby_nonobject_dtyper      s    
*
0
0
6
6q
9C.66s;G[[]F/77

3HLLNH<<(((>>288+++&(UCr   c            
      :   t        g dg dt        j                  j                  d      j	                  d      t        j
                  t        j                  j                  d      j	                  d      d      d      } t        t        |             | d<   d	 }d
}t        j                  t        |      5  | j                  d      j                  |      }d d d        j                  }| j                  }t        j                  ||       y # 1 sw Y   8xY w)Nfoobarr   r   r   r   r   r   )rc   rc   rd   threerd   rd   rc   r   r%      rI   rE   r   r   r)   Dvaluec                 B    | j                   | d   j                            S )Nr   )locidxmaxgroups    r   	max_valuez5test_groupby_nonobject_dtype_mixed.<locals>.max_value   s    yyw..011r   7DataFrameGroupBy.apply operated on the grouping columnsrV   r   )r	   r8   rp   rq   standard_normalarrayr6   rt   r:   ru   DeprecationWarningr4   rz   dtypesry   )r?   r   r   appliedr   r   s         r   "test_groupby_nonobject_dtype_mixedr      s    	IM&&q)99!<"))//2BB1EYW		

B B.BwK2 DC		#	#$6c	B 3**S/''	23^^FyyH68,	3 3s   9!DDc                     t        g dt        t        j                  d      d      t	        dd      d      } d }| j                  d	      j                         d
g   }d}t        j                  t        |      5  | j                  d	      j                  |      d
g   }d d d        t        j                  |       d }d}t        j                  t        |      5  | j                  d	      j                  |      d
g   }d d d        |j                         }t        j                  |j                  d<   t        j                  ||       d }d}t        j                  t        |      5  | j                  d	      j                  |      d
g   }d d d        |j                         }t        j                  |j                  d<   t        j                  ||       d }d}t        j                  t        |      5  | j                  d	      j                  |      dg   }d d d        | j                  d	      j                         dg   }t        j                   |j                  d<   t        j                  ||       d }	d}t        j                  t        |      5  | j                  d	      j                  |	      }d d d        | j                  d	      j                         d   j                         }t        j                  |j                  d<   d |_        t        j$                  ||       y # 1 sw Y   xY w# 1 sw Y   AxY w# 1 sw Y   xY w# 1 sw Y   ;xY w# 1 sw Y   xY w)N)Tigerr   r   Lambr   Ponyr   r^   rF   r   20130101r"   r-   c                      | j                   d   S Nr   )r3   grps    r   f_0z*test_inconsistent_return_type.<locals>.f_0   s    xx{r   r   r   r   rV   c                 @    | j                   dk(  ry | j                  d   S )Nr   r   rj   r3   r   s    r   f_1z*test_inconsistent_return_type.<locals>.f_1   s    88wxx{r   r   c                 @    | j                   dk(  ry | j                  d   S Nr   r   r   r   s    r   f_2z*test_inconsistent_return_type.<locals>.f_2       88vxx{r   r   c                 @    | j                   dk(  ry | j                  d   S r   r   r   s    r   f_3z*test_inconsistent_return_type.<locals>.f_3   r   r   r)   c                 Z    | j                   dk(  ry | j                  d   j                  d   S )Nr   r   r)   )rj   r3   r   r   s    r   f_4z*test_inconsistent_return_type.<locals>.f_4   s(    88vxx{s##r   )r	   r   r8   r9   r   r4   firstr:   ru   r   rz   r;   r1   nanr   r.   r2   rj   ry   )
r?   r   r   r   r   r   er   r   r   s
             r   test_inconsistent_return_typer      s    
L		!G4J2	

B zz#$$&u-H
CC		#	#$6c	B 3C&&s+SE23&(+
 DC		#	#$6c	B 3C&&s+SE23AVVAEE'N&!$
 DC		#	#$6c	B 3C&&s+SE23AFFAEE&M&!$
 DC		#	#$6c	B 3C&&s+SE23


3&AFFAEE&M&!$$
 DC		#	#$6c	B ,C&&s+,


3$))+AFFAEE&MAF61%k3 33 33 33 3, ,s<   >%L8!%M1%M%M$!M,8MMMM),M5c                    dd}d }| j                  d       }|j                  t        j                  dd      }|j	                  t        j                  dd      }|j                  t        j                  dd      }|j                  d      }|j                  |      }	t        j                  ||       t        j                  ||       t        j                  ||	       |j                  |d      }|j	                  |d      }|j                  |d      }t        j                  ||       t        j                  ||       t        j                  ||	       d	D ]  }
|j                  d
 |
      }|
rd nt        }d}t        j                  ||      5  |j                  t        j                  dd      }d d d        t        j                  ||      5  |j	                  t        j                  d      }d d d        t        j                  ||      5  |j                  d      }d d d        t        j                  |d       t        j                  ||       |j	                  t        j                  ddg      }t        j                  ||      5  |j                  ddg      }d d d        t        j                  |d       t        j                  ||      5  |j                  |d      }d d d        t        j                  ||      5  |j	                  t        j                  d      }d d d        t        j                  ||       t        j                  ||d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   exY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   zxY w)Nr   c                 2    t        j                  | ||      S )Naxisr8   
percentile)rR   qr   s      r   fz test_pass_args_kwargs.<locals>.f   s    }}Q--r   c                 2    t        j                  | dd      S )NP   r   r   r   rQ   s    r   rS   z'test_pass_args_kwargs.<locals>.<lambda>   s    "--2A. r   c                     | j                   S rZ   monthrQ   s    r   rS   z'test_pass_args_kwargs.<locals>.<lambda>   s
    agg r   r   r   皙?r   )TFc                     | j                   S rZ   r   rQ   s    r   rS   z'test_pass_args_kwargs.<locals>.<lambda>  s
    qww r   as_index*A grouping .* was excluded from the resultrV   Fcheck_namesg?r   )r4   rx   r8   r   rz   r{   quantiler:   ry   rv   ru   r	   r;   )tstsframer   g
ts_grouped
agg_resultapply_resulttrans_resultagg_expectedtrans_expectedr   
df_groupedwarnr   r   expected_seqs                   r   test_pass_args_kwargsr      s:   . 	/A -.Jr:J##BMM2A#>L''r'BL&&s+L))!,N<6:|4<8R(J##A#,L''R'0L:|4<6<8 " I__%6_J
t]:''C8 	C#rBJ	C''C8 	E%++I,>,>DL	E''C8 	0!**3/H	0
lH%H
j(3!''	(:(:S#JG''C8 	;%..Sz:L	;
lLeL''C8 	1#R0J	1''C8 	G%++I,>,>#+FL	G
j(3
lH%H/I	C 	C	E 	E	0 	0	; 	;	1 	1	G 	GsH   #M9!NNN *N,"N89N	N	N	 N)	,N5	8O	r   TFc                 ,   g d| _         | j                  d |      }|rd nt        }d}t        j                  ||      5  |j                  t        j                  dd      }d d d        | | j                  j                  d	k(     j                  d
      | | j                  j                  dk(     j                  d
      d}t        |      j                  }|st        t        d            |_        t        j                  |       y # 1 sw Y   xY w)N)r   r   r   r)   c                     | j                   S rZ   r   rQ   s    r   rS   z9test_pass_args_kwargs_duplicate_columns.<locals>.<lambda>.  s
    177 r   r   r   rV   r   r   r   rX   r   r%   rX   r%   )columnsr4   rv   r:   ru   rx   r8   r   r,   r   r   r	   Tr   r6   r;   )r   r   r@   r   r   resex_datar   s           r   'test_pass_args_kwargs_duplicate_columnsr   *  s     +GO	*X	>B4D
6C		#	#D	4 0ffR]]BQf/0 7==&&!+,55c:7==&&!+,55c:G !##HuQx#x(0 0s   #D

Dc            	         t        t        j                  j                  d      j	                  d      t        t        d      t              t        ddd      	      } | j                  d
 d d g      }t        |      t        |       k(  sJ | j                  d d g      }t        | j                  D ch c]  }|j                  |j                  f c}      }t        |      |k(  sJ y c c}w )Nr%   re      ABCDr   
2000-01-01re   r   r#   freqr   r,   c                     | j                   S rZ   yearrQ   s    r   rS   ztest_len.<locals>.<lambda>G  
    AFF r   c                     | j                   S rZ   r   rQ   s    r   rS   ztest_len.<locals>.<lambda>G  
    agg r   c                     | j                   S rZ   dayrQ   s    r   rS   ztest_len.<locals>.<lambda>G  
     r   c                     | j                   S rZ   r   rQ   s    r   rS   ztest_len.<locals>.<lambda>J  r   r   c                     | j                   S rZ   r   rQ   s    r   rS   ztest_len.<locals>.<lambda>J  r   r   )r	   r8   rp   rq   r   r   r5   objectr   r4   rt   r,   r   r   )r?   r   rR   r   s       r   test_lenr   A  s    	
		a 009d6l&1r<
B
 jj*,=OPGw<3r7"""jj*,=>?Grxx8!QVVQWW%89Hw<8### 9s   7C.c                     t        t        j                  gdz  g dd      } t        | j	                  d            dk(  sJ t        | j	                  d            dk(  sJ t        | j	                  ddg            dk(  sJ y )NrL   rX   r%   rL   abr  r   r  )r	   r8   r   rt   r4   r?   s    r   test_len_nan_groupr  O  sq    	"&&AI6	7Brzz#1$$$rzz#1$$$rzz3*%&!+++r   c                  ,   t        t        t        dd            dz  D  cg c]  } d| z  	 c}       }t        j                  j                  d      j	                  d      dz  }t        |      }|j                  |      }|j                          y c c} w )NrX   re         ?r%   iL  g      $@)r   r5   r6   r8   rp   rq   r4   rk   )rR   r   r   	groupingsr   s        r   test_basic_regressionr
  W  st    d5B<&82&=>S1W>?F99  #**4047DtInnY'GLLN ?s   B)rH   rI   rF   rG   int16r   c                 4   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      }t        j                  ||       y )Nre   r   r   r   r+   r   r%   Fcheck_dtypec                 *    t        t        |             S rZ   )floatrt   rQ   s    r   r   ztest_with_na_groups.<locals>.fw  s    SV}r         @       @)r   r8   r9   r   onesr   r4   rx   rt   r:   ry   )rE   r,   valueslabelsr   r   r   r   s           r   test_with_na_groupsr  b  s     "))B- EBGGBKe4F	ubffbffeUBFFERF nnV$GKKEq!fUEN3H5(>
 KKNEsCj7H5(+r   c                     d } d }d }t        g dt        d      t        dd      d      }t        g d	t        d      t        dd      d      }d
}d}t        j                  t        |      5  |j                  d      j                  |       }d d d        t        j                  t        |      5  |j                  d      j                  |       }d d d        t        j                         d}t        j                  t        |      5  |j                  d      j                  |       d d d        t        j                  t        |      5  |j                  d      j                  |       d d d        t        j                  t        |      5  |j                  d      j                  |       d d d        t        j                  t        |      5  t        j                  t        |      5  |j                  d      j                  |       d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   dxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   QxY w# 1 sw Y   y xY w)Nc                     | | j                   dz  dk(     dz  }|j                  r(t        g gdz  g gdz  ddg      }t        dg|      }|S |j	                  ddg      }|S )Nr%   rX   r  clevelsr   namesr  r   )r  emptyr   r	   	set_indexrR   y
multiindexr   s       r   f1z,test_indices_concatenation_order.<locals>.f1  sm    qssQw1n"77#B4!8B4!8CQT:VJSE<CJS#J'AHr   c                     | | j                   dz  dk(     dz  }|j                  r
t               S |j                  ddg      }|S )Nr%   rX   r  r  )r  r  r	   r  )rR   r   s     r   f2z,test_indices_concatenation_order.<locals>.f2  sC    qssQw1n"77;S#J'AHr   c                     | | j                   dz  dk(     dz  }|j                  r)t        g gdz  g gdz  ddg      }t        ddg|      }|S |S )	Nr%   rX   r   r   r  r  r  r   )r  r  r   r	   r  s       r   f3z,test_indices_concatenation_order.<locals>.f3  sa    qssQw1n"77#taxtaxu~J S#JjACJHr   )rX   r%   r%   r%   r   r$   rK   r  r  r  )rL   r%   r%   r%   zDThe behavior of array concatenation with empty entries is deprecatedr   rV   r  z@Cannot concat indices that do not have the same number of levels)r	   r6   r:   ru   r   r4   rz   r;   r|   r}   AssertionErrorrv   )	r"  r$  r&  r?   df2depr_msgr   result1result2s	            r    test_indices_concatenation_orderr-    s   	 
E!H5A;G	HB
,U1XE!QKH
ICUH DC		#	#$6c	B ,**S/''+,		#	#$6c	B -++c"((,-'7+ MC	~S	1 "


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


3b!"	~S	1 '''XF 	'KK""2&	'' '!, ,- -" "# #" "	' 	'' 's`   1!H+5!H8!I!I!II69!I*I6+H58IIII'*I3	/I66I?c                 D   | j                  d       }|j                         }|j                  d       }t        j                  ||       |j                         }|D ci c]  \  }}||j                          }}}t        |      j                  }t        j                  ||       |j                  }|j                  d       }t        j                  ||       d}t        j                  t        |      5  t        |d       d d d        y c c}}w # 1 sw Y   y xY w)Nc                 "    | j                         S rZ   weekdayrQ   s    r   rS   z#test_attr_wrapper.<locals>.<lambda>  s    199; r   c                 0    t        j                  | d      S )NrX   )ddof)r8   r7   rQ   s    r   rS   z#test_attr_wrapper.<locals>.<lambda>  s    RVVAA%6 r   c                     | j                   S rZ   r   rQ   s    r   rS   z#test_attr_wrapper.<locals>.<lambda>  s
    QWW r   z-'SeriesGroupBy' object has no attribute 'foo'rV   r   )r4   r7   rx   r:   ry   describer	   r   r;   rE   r|   r}   AttributeErrorgetattr)r   r   r   r   rj   gpr   s          r   test_attr_wrapperr9    s    jj./G[[]F{{67H68, F4;<bbkkm#<H<"$$H&(+ ]]F{{,-H68, :C	~S	1      =   s    D:DDc                 .   | j                  d       }|j                  d      }t        |      dk(  sJ t        |j                        dk(  sJ | j	                         }|j
                  D cg c]  }|j                          c}|d<   |j                  d      j                  d      }t        j                  ||d       | j                  d      j                  d	       }|j                  d
       }t        |      dk(  sJ t        |j                        dk(  sJ |j                  d       }|D ]M  \  }}|j                         }	|j
                  D ])  }
t        j                  |j                  |
      |	d       + O |D ]'  \  }}|j
                  d   j                         |k(  r'J  |j                  }|j                  }|j!                         D ]8  \  }}| j
                  j#                  ||         }||k(  j%                         r8J  y c c}w )Nc                 "    | j                         S rZ   r0  rQ   s    r   rS   z$test_frame_groupby.<locals>.<lambda>  s    		 r   rk   r$   r   r1  Fr   rg   c                 "    | j                         S rZ   r0  rQ   s    r   rS   z$test_frame_groupby.<locals>.<lambda>  s     r   c                 (    | | j                         z
  S rZ   rk   rQ   s    r   rS   z$test_frame_groupby.<locals>.<lambda>  s    a!&&(l r   c                 "    | j                         S rZ   r>  rQ   s    r   rS   z$test_frame_groupby.<locals>.<lambda>  s    affh r   r   )r4   rw   rt   r   r1   r,   r1  r:   r;   headr{   rk   ry   xsgroupsindicesitemstakeall)r   r   
aggregatedtscopyrR   straggedr   rj   r   rk   idxr1  rB  rC  r   r   	samethings                    r   test_frame_groupbyrL    s   oo34G ""6*Jz?az!!"a''' \\^F.4ll;;F9~~i(226:H(JEB ll2&&'<=G##$:;K{r!!!{""#q((( ##$67K Qezz|;; 	QC"";>>##6%P	QQ " 3{{1~%%'72223 ^^FooG &1MM&&wqz2	Q##%%%&3 <s   ,Hc                    ddddd}d}t        j                  t        |      5  | j                  |d      }d d d        j	                  d      }t        |      t        |       k(  sJ t        |j                        dk(  sJ d	 }d
}t        j                  t        |      5  | j                  j                  |d      }d d d        t        j                  j                  |      j                  |j                  |             |D ]  \  }}t        |j                        dk(  rJ  y # 1 sw Y   xY w# 1 sw Y   xxY w)Nr   rX   r   +DataFrame.groupby with axis=1 is deprecatedrV   r   rk   r%   c                 (    | | j                         z
  S rZ   r>  rQ   s    r   rS   z,test_frame_groupby_columns.<locals>.<lambda>	  s    1qvvx< r   5The 'axis' keyword in DataFrame.groupby is deprecated)
r:   ru   rv   r4   rw   rt   r   r   r;   r{   )	r   mappingr   r   rG  tfgroupedTr   r   s	            r   test_frame_groupby_columnsrT    s.   AAA.G
7C		#	#M	= 3//'/23 ""6*Jz?c'l***z!!"a''' 
 B
AC		#	#M	= 699$$W1$56(,,R022G4E4Eb4IJ  #1199~"""#!3 36 6s   D.%D:.D7:Ec                 j   | j                  d      }|j                  d      }|j                  j                  dk(  sJ | j                  dd      j                  d      }|j                  j                  dk7  sJ |ddg   j	                  d      }|j                  j                  dk(  sJ |j	                  dd	d
      }|j                  j                  dk(  sJ |d   j                         }|j                  j                  dk(  sJ |d   j	                  d      }|j                  j                  dk(  sJ |d   j	                  dd	g      }|j                  j                  dk(  sJ d}t        j                  t        |      5  |d   j	                  dd	d       d d d        y # 1 sw Y   y xY w)Nr   Tnumeric_onlyFr   r)   r   rk   r7   r)   r   rb   rV   r   r   )r4   rk   r,   rj   rx   r|   r}   r   )r?   r   r   r   s       r   test_frame_set_name_singlerZ    s   jjoG\\t\,F<<###ZZeZ,11t1DF<<###c3Z $$V,F<<###[[vE23F<<###S\ F<<###S\f%F<<###S\vuo.F<<###
,C	)	5 8678 8 8s   F))F2c           	         | d   }| d   }| j                  |j                  |j                  g      }|j                  d      }| j                  ddg      j                         }t        j                  |j
                  d d ddgf   |j
                  d d ddgf   d       t        t        j                  j                  d	      j                  d
      t        j                  j                  d	      j                  d
      t        j                  g d      t        j                  g d      dg d      } | j                  ddg      }|j                  d       y )Nr   r   TrV  r)   r   Fr   r%      r  r  r  r  r  r  1r_  r_  2r`  r`  )v1v2k1k2)rc   rd   r   fourfivesixr+   rc  rd  r\   )r4   getrk   r:   r;   r   r	   r8   rp   rq   r   r   rx   )r?   col1col2r   r   r   s         r   test_multi_funcrk  /  s   c7Dc7Djj$((DHH-.GLLdL+Ezz3*%**,H 		!c3Z- (,,q3*}"=5
 
))''*::1=))''*::1=((9:((9:		
 =
B jj$&GKKr   c                     | j                  ddg      d   }|j                  ddg      }t        |j                  d      |j                  d      d      }t        j                  ||       y )Nr   r   r)   rk   r7   )rk   r7   )r4   rx   r	   r:   r;   )r?   r   r   r   s       r   !test_multi_key_multiple_functionsrm  K  s\    jj#s$S)GKK(E'++f"5gkk%>PQRH%*r   c            	         t        g dg dt        j                  j                  d      j	                  d      t        j                  j                  d      j	                  d      t        j                  j                  d      j	                  d      d      } | j                  ddg      }dd	g}|j                  |      }t        j                  |d
   j                  |      |d   j                  |      |d   j                  |      gg dd      }t        |j                  t              sJ t        |j                  t              sJ t        j                  ||       y )Nr   r   r   r   r   r   r   r   r   r   r   rc   rc   rc   rd   rc   rc   rc   rd   rd   rd   rc   r%      )r   r   r   EFr   r   rk   r7   r   rr  rs  )r   rr  rs  rX   )keysr   )r	   r8   rp   rq   r   r4   rx   r.   concat
isinstancer,   r   r:   r;   )r   r   funcsr   r   s        r   "test_frame_multi_key_function_listrx  S  s%    &&q)99"=&&q)99"=&&q)99"=;	
 DD llC:&GUOEKKEyy			%	 '#,"2"25"973<;K;KE;RSH
 ekk:...hnnj111%*r   c            
         t        g dg dg dt        j                  j                  d      j	                  d      t        j                  j                  d      j	                  d      t        j                  j                  d      j	                  d      d      } | j                  ddg      }d	d
g}t        j                  d      }t        j                  t        |      5  |j                  |       d d d        y # 1 sw Y   y xY w)Nro  rp  )dullrz  shinyrz  rz  r{  r{  rz  r{  r{  r{  r%   rq  )r   r   r)   r   rr  rs  r   r   rk   r7   &agg function failed [how->mean,dtype->rV   )r	   r8   rp   rq   r   r4   reescaper|   r}   	TypeErrorrx   )r   r   rw  r   s       r   2test_frame_multi_key_function_list_partial_failurer    s     &&q)99"=&&q)99"=&&q)99"=U+	
-D^ llC:&GUOE
))<
=C	y	, E  s   $C??Dopc                 "    | j                         S rZ   r[   rQ   s    r   rS   rS     s    !%%' r   c                 "    | j                         S rZ   r>  rQ   s    r   rS   rS     s    QVVX r   c           
         | }|j                  ddg      } ||      }g }g }|j                  d      D ][  \  }}|j                  d      D ]B  \  }	}
|j                  ||	f       |j                   ||
j                  d d ddgf                D ] t        j                  |ddg      }t        j                  |d      j                  }||_        dD ]C  } |||         }||   }||   }t        j                  ||       t        j                  ||       E |d   j                  |d   |d   g      j                         }|j                  ddg      j                         d   }t        j                  ||       y )	Nr   r   r)   r   r  rX   r   rX  )r4   appendr   r   from_tuplesr.   ru  r   r,   r:   ry   rk   )r?   r  r   r   r+  rt  r  n1gp1n2gp2mir   col
result_colpivotedexpr   s                     r   test_groupby_multiple_columnsr    sx   DllC:&GkGDF<<$ 6C{{3' 	6GBKKR!MM"SWWQc
]345	66
 
		S#J	7Byya(**HHN  -%
#,sm
z3/
w,- #YS	4956;;=F||S#J',,.s3H68,r   c                     t        ddgddgddggddg      } | j                  dd	
      d   j                  d      }t        ddgd      }t	        j
                  ||       | j                  dd	d      d   j                  d       }t        g ddt        j                  g d            }t	        j
                  ||       y )NrX   r%   r   r$   r\  r   r   r   Fr   rj   T)r   rU   c                 "    | j                         S rZ   )cumsumrQ   s    r   rS   z-test_as_index_select_column.<locals>.<lambda>  s    !((* r   )r%   r\  r\  ))r   r   )r   rX   r   rj   r,   )	r	   r4   	get_groupr   r:   ry   rz   r   r  r?   r   r   s      r   test_as_index_select_columnr    s    	QFQFQF+c3Z	@BZZeZ,S1;;A>Fq!f3'H68,ZZeZ=cBHHF :#9#9:R#SH 68,r   c                  j   d} t        g dg dd      }|j                  |j                  d      j                  j	                  d         }t        j                  t        |       5  |j                  d      j                  d|      }t        j                  ||       d d d        y # 1 sw Y   y xY w)	Nzobj is deprecatedrX   rX   r%   rL   r   r$   r  r  r   rV   )obj)
r	   r3   r4   rC  rh  r:   ru   rv   r  r;   )r*  r?   r   r   s       r   !test_obj_arg_get_group_deprecatedr    s    "H	3	4Bwwrzz#..22156H		#	#M	B 0C**1"*5
fh/0 0 0s   '9B))B2c                     t        t        g dd            } | j                  dd      d   j                  d	      }t        | j                  d d
 t        d            }d g|j                  _        t        j                  ||       y )Nr-   alphar  r  r   F)byr   r   rV  r%   r   r   )	r	   r   r4   r\   r   r6   r  r:   r;   )r?   leftr   s      r   0test_groupby_as_index_select_column_sum_empty_dfr    sr    	5w?	@B::u:-c266E6JDBQuQx@H"VH$)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        j                  |       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}t        j                  t        |d      5  |
j'                  t
              }d d d        t        j                  t        |d      5  | j                  |	      j'                  t
              }d d d        t        j                         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   xY w# 1 sw Y   xY w# 1 sw Y   xY w)Nr   Fr   r)   r   rk   TrV  r\   rX  rb   rV   Qr   r  z7Passing a dictionary to SeriesGroupBy.agg is deprecatedr%   r   d   )2   rL   )jimjoejolier$   re   r  r  r  z:The behavior of DataFrame.sum with axis=None is deprecated)rW   check_stacklevel)rk   maxcountr   r  rF  drop)r4   rx   rk   r:   r;   r\   r|   r}   r   r	   renameru   rv   r8   rp   rq   integersr   nthrz   r7  r  reset_index)r?   r   r   r   r,  	expected2r   	expected3result3r   grr   altattrr  rights                   r   test_groupby_as_index_aggr     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
CC		#	#M	= 1#,""C<01'9- 

		a ))!S':'
B 
		%%a(11!R<5	IB	BBFF1I
FC		#	#Mu	U hhsm		#	#Mu	U (jjn""3'(#s#C +ZZUZ+ wr4 "ZZ		DZ1!D!#//T/:
dE*+Q' '&1 1 ( (s0   OO	O %O-OO O*-O6c                     | dv rt        j                  d|         t        t        j                  j                  d      j                  ddd      dd	g
      } t        |j                  d      |              }| dk(  r|j                  d      }|j                         }| dk7  r$|d   j                  |d   j                        |d<   |j                  dd      } t        ||              }t        j                  ||       |j                  |       }t        j                  ||        t        |d	   |              }t        j                  ||       |d	   j                  |       }t        j                  ||       y )N)corrwithr  ngroupz!GH 5755: Test not applicable for r%   r   r$   )r  r%   )sizer  r  r  r  Fr   )r|   skipr	   r8   rp   rq   r  r7  r4   r  r  r   rE   r:   r;   rx   )reduction_funcr?   r   r   r   s        r   test_ops_not_as_indexr  C  sU    6677GHI	
		a ))!QX)>c

B 8wrzz#79H??6*##%H ,,RW]];


3
'A'WQ')F&(+UU>"F&(+,WQsV^,.F&(+sVZZ'F&(+r   c                 L   | j                  dd      }| j                  ddgd      }|d   j                  d      }|j                  d      j                  d d ddgf   }t        |t              sJ t        j                  ||       |d   j                  d      }|j                  d      j                  d d g df   }t        |t              sJ t        j                  ||       |d   j                         }|j                         j                  d d ddgf   }t        |t              sJ t        j                  ||       |d   j                         }|j                         j                  d d g df   }t        |t              sJ t        j                  ||       y )Nr   Fr   r   r)   r\   r-   )r4   rx   r   rv  r	   r:   r;   r\   )r?   r   grouped2r   r   r,  r  s          r   !test_as_index_series_return_framer  e  sn   jjuj-Gzz3*uz5HS\e$F{{5!%%a#sm4Hfi(((&(+sm&GU#''?(:;Igy)))'9-S\F{{}  S#J/Hfi(((&(+sm!G""1o#56Igy)))'9-r   c                     | j                  dd      }d}t        j                  t        |      5  |d   j	                  d       d d d        y # 1 sw Y   y xY w)Nr   Fr   zColumn\(s\) C already selectedrV   r)   r   )r4   r|   r}   
IndexError__getitem__)r?   r   r   s      r   (test_as_index_series_column_slice_raisesr  ~  sN    jjuj-G
+C	z	- &  %& & &s   AAc                    | }|j                  dd      }|j                  d      }|j                  dg      j                  d      }|j                  dd|j                         t	        t        |            |_        t        j                  ||       |j                  ddgd      }|j                         }|j                  ddg      j                         }t        t        |j                  j                         }|j                  dd|d          |j                  dd|d          t	        t        |            |_        t        j                  ||       y )	Nr   Fr   TrV  r   r   rX   )r4   rk   insertr,   r   rt   r:   r;   r5   zipr  )r?   r   r   r   r   arrayss         r   test_groupby_as_index_cythonr    s   D ll3l/G\\t\,F||SE"''T':HOOAsHNN+H.HN&(+ llC:l6G\\^F||S#J',,.H#x~~,,-.FOOAsF1I&OOAsF1I&H.HN&(+r   c                     | j                  ddgd      }|d   j                  t              }|j                  t              j                  d d g df   }t	        j
                  ||       y )Nr   r   Fr   r)   r-   )r4   rx   rt   r   r:   r;   r?   r   r   r   s       r   #test_groupby_as_index_series_scalarr    s\    jj#sej4G S\c"F{{3##A$67H&(+r   c                    d}t        j                  t        |      5  |j                  d d       d d d        d}d}t        j                  t        |      5  t        j                  t        |      5  | j                  d dd	
       d d d        d d d        y # 1 sw Y   kxY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nz(as_index=False only valid with DataFramerV   c                 "    | j                         S rZ   r0  rQ   s    r   rS   z.test_groupby_as_index_corner.<locals>.<lambda>  s    QYY[ r   Fr   z$as_index=False only valid for axis=0rN  c                 "    | j                         S rZ   )lowerrQ   s    r   rS   z.test_groupby_as_index_corner.<locals>.<lambda>  s     r   rX   )r   r   )r|   r}   r  r4   
ValueErrorr:   ru   rv   )r?   r   r   r*  s       r   test_groupby_as_index_cornerr    s    
4C	y	, :


(5
9: 1C<H	z	- D''XF 	DJJ*UJC	DD D: :	D 	DD Ds/   BB56B)B5B&)B2	.B55B>c            	      x   t        t        j                  j                  d      j	                  d      t        t        d      t              t        ddd      	      } | j                  d
 d d g      }|j                         }t        j                  | j                  |j                         d}t        j                  t        |      5  | j                   j                  d d d gd      }d d d        |j#                  d       }t        j$                  |j&                  | j(                         t        j                  | j                   j                  |j                         |j#                  d       }t        j                  | j                   j                  |j                         y # 1 sw Y   xY w)Nr%   r   r   r   r   re   r   r   r   c                     | j                   S rZ   r   rQ   s    r   rS   z+test_groupby_multiple_key.<locals>.<lambda>  r   r   c                     | j                   S rZ   r   rQ   s    r   rS   z+test_groupby_multiple_key.<locals>.<lambda>  r   r   c                     | j                   S rZ   r   rQ   s    r   rS   z+test_groupby_multiple_key.<locals>.<lambda>  r   r   rN  rV   c                     | j                   S rZ   r   rQ   s    r   rS   z+test_groupby_multiple_key.<locals>.<lambda>  s
    qvv r   c                     | j                   S rZ   r   rQ   s    r   rS   z+test_groupby_multiple_key.<locals>.<lambda>  
     r   c                     | j                   S rZ   r   rQ   s    r   rS   z+test_groupby_multiple_key.<locals>.<lambda>  s
    AEE r   rX   r   c                 "    | j                         S rZ   r[   rQ   s    r   rS   z+test_groupby_multiple_key.<locals>.<lambda>      !%%' r   c                 "    | j                         S rZ   r[   rQ   s    r   rS   z+test_groupby_multiple_key.<locals>.<lambda>  r  r   )r	   r8   rp   rq   r   r   r5   r   r   r4   r\   r:   assert_almost_equalr  ru   rv   r   rx   assert_index_equalr,   r   )r?   r   r   r*  s       r   test_groupby_multiple_keyr    s=   	
		a 009d6l&1r<
B
 jj*,=OPGKKME299ell3<H		#	#M	B 
$$,,0/B  


 KK)*E%++rzz2244;;5KK)*E244;;5
 
s   $F00F9c                     | j                         } t        j                  | d<   | j                  ddg      j	                         }| j                  ddg      j	                         }t        j                  |d<   t        j                  ||       y )Nbadr   r   )r1   r8   r   r4   rk   r:   r;   )r?   r   r   s      r   test_groupby_multi_cornerr    sm    	BBuIJJSz"'')Ezz3*%**,HffHUO%*r   c                    | j                  d      }t        j                  d      }t        j                  t
        |      5  |j                  d       d d d        t        j                  t
        |      5  |j                          d d d        | j                  d d g df   } t        j                         | d<   | j                  d      }d}t        j                  t
        |      5  |j                  d       d d d        t        j                  t
        |      5  |j                          d d d        d	}t        j                  t        |      5  | j                  d
d
dddd      }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   6xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   txY w# 1 sw Y   y xY w)Nr   r|  rV   rk   r   r)   r   rr  z/datetime64 type does not support sum operationsr\   rN  r   rX   )r   r)   r   rr  r   z does not support reduction 'sum'c                 (    | j                  dd      S )Nr   FrV  r[   rQ   s    r   rS   z)test_raises_on_nuisance.<locals>.<lambda>  s    aeeAEe: r   )r4   r}  r~  r|   r}   r  rx   rk   r   r   nowr\   r:   ru   rv   )r?   r   r   r*  s       r   test_raises_on_nuisancer    s   jjoG
))<
=C	y	, F	y	,  
?"	#BllnBsGjjoG
;C	y	, E	y	,  =H		#	#M	B G**1111=A*FG
,C	y	, <:;< <'    
G G< <sH   F/7F<*G	GG!G-/F9<G	GG!G*-G6agg_functionr  minc                 `   | j                  d      } t        ||             }|j                         } t        | j                  | d   dk(  df   |             |j                  d<    t        | j                  | d   dk(  df   |             |j                  d<   t	        j
                  ||       y )Nr   r   r   )r   r   r   )r   r   )r4   r7  r1   r   r:   r;   )r?   r  r   r   r   s        r   test_keep_nuisance_aggr    s     jjoG+WWl+-F{{}HSwrvvbg.>.C'DlSUHLLSwrvvbg.>.C'DlSUHLL&(+r   )r\   rk   prodr7   varsemmedianrW  c                    | j                  d      }d}||v rb|s`|dv r	t        }d}nt        }t        j                  d| d      }t        j                  ||      5   t        ||      |       d d d        y  t        ||      |      }|s
|d	k(  rg d
}ng d} t        | j                  d d |f   j                  d      |      |      }	t        j                  ||	       y # 1 sw Y   y xY w)Nr   )r  r7   r  rk   r  r  )r7   r  z(could not convert string to float: 'one'zagg function failed [how->z,dtype->rV   rV  r\   r   r  )r4   r  r  r}  r~  r|   r}   r7  r   r:   r;   )
r?   r  rW  r   no_drop_nuisanceklassr   r   r   r   s
             r   test_omit_nuisance_aggr     s     jjoGF'' >)E<CE))8hOPC]]5, 	F*GG\*E	F 	F 0,/\J 5*G%GI7266!W*-55c:LI%
 	fh/	F 	Fs   C''C0c                     | j                  d      }t        j                  t        d      5  |j	                          d d d        y # 1 sw Y   y xY w)Nr   zcould not convertrV   )r4   r|   r}   r  skew)r?   r   s     r   $test_raise_on_nuisance_python_singler  "  s<    jjoG	z)<	=   s   AAc                 V   | j                  ddg      }t        j                  d      }t        j                  t
        |      5  |j                  d       d d d        t        j                  t
        |      5  |j                          d d d        y # 1 sw Y   >xY w# 1 sw Y   y xY w)Nr   r   r|  rV   rk   )r4   r}  r~  r|   r}   r  rx   rk   )three_groupr   r   s      r   &test_raise_on_nuisance_python_multipler   )  s    !!3*-G
))<
=C	y	, F	y	,    s   B9BBB(c           	         t        t        j                  g d      t        j                  g d      ddgdz  t        j                  j	                  d      j                  d      t        j                  j	                  d      j                  d      d      }|j                  d	d
g      }|ddg   j                  d      }|j                  d      }t        j                  ||       | dd j                  d      }|j                  d       }|d   j                  d      }t        j                  |d   |       |j                  j                  dk(  sJ y )Nr]  r^  r   r   rL   r%   r\  )rc  rd  k3ra  rb  rc  rd  ra  rb  rk   TrV  r$   r   r   c                 "    | j                         S rZ   r>  rQ   s    r   rS   z*test_empty_groups_corner.<locals>.<lambda>D  s    AFFH r   r   r   )r	   r8   r   rp   rq   r   r4   rx   rk   r:   r;   rz   ry   r,   rj   )r   r?   r   r   r   r   agged_As          r   test_empty_groups_cornerr  2  s'   	((9:((9:%.1$))''*::1=))''*::1=	

B jj$&GdD\"&&v.F|||.H&(+.q3;;!;DGMM,-Ecl  (G5:w/;;w&&&r   c                      t        dg      } d}t        j                  t        |      5  | j	                  d        d d d        y # 1 sw Y   y xY w)Nr   z5unsupported operand type\(s\) for \+: 'int' and 'str'rV   c                     | dz   S )Nr   rP   rQ   s    r   rS   z$test_nonsense_func.<locals>.<lambda>N  s
    QY r   )r	   r|   r}   r  r4   )r?   r   s     r   test_nonsense_funcr	  J  sB    	A3B
BC	y	, (


&'( ( (s   AAc                    | j                   }d|d<   t        j                  g d      t        j                  g d      g}t        j                  d      }t        j                  t        |      5  |j                  |      j                  d       d d d        |j                  d      j                  |      j                  d      }t        |j                  t              sJ d }t        j                  t        d	      5  |j                  |      j                  |       d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)
Npeekaboo)bazrd   r   r   rX   r|  rV   rk   r  c                 V    | j                   dk(  rt        d      | j                         S )N)r   rc   Test error message)rj   r  r\   )r>   s    r   aggfunz5test_wrap_aggregated_output_multindex.<locals>.aggfun\  s&    88~%011wwyr   r  )r   r8   r   r}  r~  r|   r}   r  r4   rx   r  rv  r   r   rw   )r   r?   rt  r   r   r  s         r   %test_wrap_aggregated_output_multindexr  Q  s    	)	+	+B!B|HHY)!45D
))<
=C	y	, %


4V$%GGNG+33D9==fEEemmZ000
 
y(<	= +


4""6*+ +% %+ +s   0!D-!D9-D69Ec                 l   | j                  d      j                         }|j                  j                  dk(  sJ | j                  d      j                         }|j                  j                  dk(  sJ | d   j                  d      j                         }|j                  j                  dk(  sJ y )Nr   r  r   rX   secondr   )r4   r  r,   rj   )r   r   s     r   test_groupby_level_applyr  e  s    -55A5>DDFF<<'''-55A5>DDFF<<(((-c2:::CIIKF<<'''r   c                    | j                         }ddddd}dddd}| j                  |d      j                         }| j                  |d      j                         }t        j                  |d   D cg c]  }|j                  |       c}t        j                        }t        j                  |d   D cg c]  }|j                  |       c}t        j                        }| j                  |      j                         }	| j                  |      j                         }
d	\  |	j                  _        |
j                  _        t        j                  ||	       t        j                  ||
       y c c}w c c}w )
Nr   rX   )r   r   r  qux)rc   rd   r   r  r   r   r  )r   r  )r  r4   r\   r8   r   rh  rF   r,   rj   r:   r;   )r   	deleveledmapper0mapper1result0r+  rR   mapped_level0mapped_level1	expected0	expected1s              r   test_groupby_level_mapperr  o  s<   0<<>I!A6GA.G.66wa6HLLNG.66wa6HLLNGHH!*7!34AQ4BHHM HH!*8!45AQ5RXXM 188GKKMI088GKKMI1B.IOO)//.'9-'9- 	5 	6s   6E8;E=c            	      h   t        g dt        g dd            } t        g dt        t        dd      d            }| j                  d	      j	                         }t        j                  ||       | j                  dg	      j	                         }t        j                  ||       | j                  d
	      j	                         }t        j                  ||       | j                  d
g	      j	                         }t        j                  ||       d}t        j                  t        |      5  | j                  d	       d d d        t        j                  t        |      5  | j                  d	       d d d        d}t        j                  t        |      5  | j                  g 	       d d d        d}t        j                  t        |      5  | j                  ddg	       d d d        t        j                  t        |      5  | j                  ddg	       d d d        d}t        j                  t        |      5  | j                  dg	       d d d        y # 1 sw Y   $xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   txY w# 1 sw Y   y xY w)N)rX   r%   rL   re   r   r$   rf   r\  )rX   r%   rL   rX   r   r$   r%   r\  r   r  )rq     rL   r   r$   r\  rX   r^   r   r  r*   z2level > 0 or level < -1 only valid with MultiIndexrV   zNo group keys passed!z*multiple levels only valid with MultiIndex)
r   r   r6   r4   r\   r:   ry   r|   r}   r  )sr   r   r   s       r   test_groupby_level_nonmultir$    s#   )51IPU+VWA*E%1+E,JKHYYQY##%F68,YYaSY!%%'F68,YYRY $$&F68,YYbTY"&&(F68,
>C	z	- 					z	- 				
!C	z	- 				
6C	z	-  			A	 	z	-  			A	 
>C	z	- 				           sH   6I+,I8$JJJJ(+I58JJJJ%(J1c                      t        t        j                  d      dz  g d      } t        d      }| j                  d      j	                         }t        j                  ||       y )Nr         ?       @)r   r   rX   rX   r   r,   )r&  y      @      $@r   r  )r   r8   r9   r4   r\   r:   ry   )r  r   r   s      r   test_groupby_complexr(    sO    BIIaLF+<@A'(HYYQY##%F68,r   c                      t        dddddddddg      } | j                  d      j                         }t        dgdggt        ddgd	      t        d
g            }t	        j
                  ||       y )Nr%   r&  r  rX         ?      ?r  r        ?r  r  r,   r   )r	   r4   rk   r   r:   r;   r  s      r   test_groupby_complex_meanr-    s    	&!&!&!	

B ZZ_!!#F
f(s3seH
 &(+r   c                    t        dddddddddg      }| rdnt        }t        t        j                  g dt        j                        t        g d	d
      t        dg|            }|j                  d
d      j                         }t        j                  ||       t        g dd
      |_
        |j                  d
d      j                         }t        j                  ||       y )NrX   r*  r  r&  r   string[pyarrow_numpy])rX   rX   rX   r   )r*  r&        ?        r  r  r  r,  Fsort)r0  r*  r&  T)r	   r   r8   r   rF   r   r4   r  r:   r;   r,   )using_infer_stringr?   rE   r   r   s        r   test_groupby_complex_numbersr4    s    	&!&!!	

B (:#vE
"((+2=se5)H
 ZZ%Z(..0F&(+ 9DHNZZ$Z'--/F&(+r   c                  ^   t        g dt        g d            } t        g dt        g d            }| j                  |      }|j                         }| j                  |j	                  | j
                        j                        j                         }t        j                  ||       y )N)      @g      "r  g      Y@g      g     K@g@)r  r  r  dr   r   r   r+   )r  r  r  r6  r6  g      @)r  r  r7  r   r   h)	r   r   r4   rk   rs   r,   rh  r:   ry   )s1s2r   r   r  s        r   'test_groupby_series_indexed_differentlyr;    s    	078
B 
&e4R.S
B jjnGLLNE
**RZZ)--
.
3
3
5C5#&r   c                     t        t        g dg dg       } t        j                  |       }t        j                  g d      }t	        t
        j                  j                  d      j                  d      ||      }|j                  d      j                         }t        j                  |j                  |       d	}t        j                  t        |
      5  |j                  dd      }d d d        j                         }t        j                  |j                   |j                          |j                  d      j#                  d      }t        j                  |j                  |       |j                  d      j%                  d       }t        j                  |j                  |       t        j                  t        |
      5  |j                  dd      }d d d        |j#                  d       }t        j                  |j                  t'        ddg             t        j                  |j                   |j                          |j)                  d      \  }}d|d<   |j                  d      j                  d      }t        j                  |j                  |j                  d d        y # 1 sw Y   xY w# 1 sw Y   xY w)N)r   r   r  r  r   r   r  r  )rc   rd   rc   rd   rc   rd   rc   rd   ))r   cat)r   dog)r   r=  )r   r>  r%   )r   r   r,  r   r  rN  rV   rX   )r   r   rk   c                 "    | j                         S rZ   r>  rQ   s    r   rS   z0test_groupby_with_hier_columns.<locals>.<lambda>  s     r   c                 $    | j                  d      S )NrX   r>  rQ   s    r   rS   z0test_groupby_with_hier_columns.<locals>.<lambda>
  s    affQi r   r   r   r   )r   r   TrV  r*   )r5   r  r   r  r	   r8   rp   rq   r   r4   rk   r:   r  r   ru   rv   r,   rx   rz   r   	sortlevel)	tuplesr,   r   r?   r   r*  r@   sorted_columns_s	            r   test_groupby_with_hier_columnsrE    s5   HH	
F ""6*E$$@G 

		a 008w
B ZZaZ %%'F&..'2<H		#	#M	B )ZZaaZ()WWYF&,,1ZZaZ $$V,F&..'2ZZaZ &&'9:F&..'2		#	#M	B )ZZaaZ()VV'(F&..%c
*;<&,,1  ))!,NABzNZZaZ %%4%8F&.."**Sb/:+) )) )s   J;K;KKc                     | j                  | d   j                        }|j                         }| j                  | d   j                  d             j                         }t	        j
                  ||       y )Nr   )r4   r  r\   r  r:   r;   r  s       r   test_grouping_ndarrayrG    sW    jjC(G[[]Fzz"S'.../335H&(+r   c                      t        g dd      } t        g dg dg dg dg dd	| 
      }|j                  g d      }|j                  d      }|j	                         }t        j                  ||       y )Nr   rX   r%   rL   r   r,   r  )foo1rJ  foo2rJ  foo3)bar1bar2rN  rM  rM  )baz1rO  rO  baz2rP  )spam2spam3rQ  spam1rS  )rf   rg   (   r  <   )r   r   r  spamr   r+   )r   r   r  rV  rk   )r   r	   r4   rx   rk   r:   r;   )r,   r   r   r   r   s        r   test_groupby_wrong_multi_labelsrW    sk    /0E;;;A(	
 	D ll89G[[ F||~H&(+r   c                    | j                  | d         j                  d      }| j                  | d   d      j                  d      }|j                  j                  dk(  sJ d|v sJ | j                  | d   | d   g      j                         }| j                  | d   | d   gd      j                         }|j                  j                  dk(  sJ d|v sJ d|v sJ y )Nr   TrV  Fr   r   r   r   )r4   rk   r,   rj   r  )r?   r   r,  s      r   test_groupby_series_with_namerZ  0  s    ZZ3 %%4%8FjjC5j166D6IG<<###'>>ZZC"S'*+002Fjj"S'2c7+ej<AACG<<+++'>>'>>r   c                     | j                  d      d   }|j                         j                  dk(  sJ |j                         j                  dk(  sJ d }|j	                  |      j                  dk(  sJ y )Nr   r)   c                 2    t        j                  |       dz  S ro   )r8   r\   rQ   s    r   rS   z.test_seriesgroupby_name_attr.<locals>.<lambda>C  s    Q r   )r4   r  rj   rk   rx   )r?   r   testFuncs      r   test_seriesgroupby_name_attrr^  =  sj    ZZ_S!F<<>#%%%;;=$$$&H::h$$+++r   c                     t        g dg dt        j                  j                  d      j	                  d      dz   t        j
                  d      d      } | j                  dg      j                  j                         }| j                  j                  | j                        j                         }t        j                  ||       y )Nr   )rc   rc   rd   rd   rd   rd   rc   rd   r%   r   r  r   r   )r	   r8   rp   rq   r   r9   r4   r   r  r   r:   ry   r?   r   r   s      r   test_consistency_namera  G  s     
II&&q)99!<sB1		

B zz3% ""((*HTT\\"$$%%'F68,r   c                    dd}d }d}t        j                  t        |      5  | j                  d      j	                  |      }d d d        j
                  j                  J t        j                  t        |      5  | j                  d      j	                  |d      }d d d        |j
                  j                  dk(  sJ t        j                  t        |      5  | j                  d      j	                  |      }d d d        |j
                  j                  J y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   :xY w)Nc                 $    t        dddd|      S )NrX   r%   rL   r  rk   	omissionsr  )r   )r?   rj   s     r   	summarizez0test_groupby_name_propagation.<locals>.summarizeZ  s    11=DIIr   c                 D    t        dddd| j                  d   d         S )NrX   r%   rL   rd  r   r   r  )r   r3   r  s    r   summarize_random_namez<test_groupby_name_propagation.<locals>.summarize_random_name]  s$     11=BGGAJsOTTr   r   rV   r   metricsrZ   )r:   ru   r   r4   rz   r   rj   )r?   rf  rh  r   ri  s        r   test_groupby_name_propagationrj  X  s   JU DC		#	#$6c	B 3**S/''	23??'''		#	#$6c	B >**S/''	9=>??9,,,		#	#$6c	B ?**S/''(=>???'''3 3> >? ?s#   !D#"D/!!D;#D,/D8;Ec                  *   t        t        d      D  cg c]  } t        j                  d       c}       }|j	                  d      }|j                         }|j	                  |d         j                         }t        j                  ||       y c c} w )Nre   r   )r	   r6   r8   r9   r4   rk   r:   r;   )rR   r?   r   r   r   s        r   test_groupby_nonstring_columnsrl  o  sk    	595aBIIbM5	6BjjmG\\^Fzz"Q% %%'H&(+	 6s   Bc                  :   t        g dgg d      } t        ddggddgt        dgd	      
      }| j                  d      j                         }t	        j
                  ||       | j                  d      j                         }t	        j
                  ||       y )Nrh   )r   r   r   r  rX   r%   r   r   r   r  r   )r	   r   r4   r   r:   r;   r\   r`  s      r   test_groupby_mixed_type_columnsrn  w  s}    	I;	6B1a&C85!3;OPHZZ_""$F&(+ZZ_  "F&(+r   c                  j   t        j                  d      } | j                  t         j                         t	        | d d df         }t        j
                  t        d      d      }|j                  |      j                  t        j                        }|j                         j                         sJ y )N)r  r  r   re   )r8   r  fillr   r   tiler6   r4   rx   r  isnarF  )arrr  indsr   s       r   (test_cython_grouper_series_bug_noncontigru    s{    
((:
CHHRVV
QT
C7759b!D[[""6==1F;;=r   c                  J   t        dgdz        } t        t        j                  j	                  d      j                  d      | d d d         }t        j                  j	                  d      j                  ddd      }|j                  |      }d }|j                  |       y )	N
aaaaaaaaaar  r%   r  r+   r   r$   c                 Z    t        t        t        t        | j                                    S rZ   )rt   setmapidr,   rQ   s    r   rS   z5test_series_grouper_noncontig_index.<locals>.<lambda>  s    #c#b!''*+, r   )	r   r   r8   rp   rq   r   r  r4   rx   )r,   r  r  r   r   s        r   #test_series_grouper_noncontig_indexr|    s    8*s"#EBII))!,<<R@cPQc
SFYY""1%..q!R8F nnV$G 	-AKKNr   c                     t        t        d            } t        j                  g dd      }d }d }| j	                  |      }|j                  |      }|j                  t        j                  k(  sJ t        |j                  d   t              sJ |j                  |      }|j                  t        j                  k(  sJ t        |j                  d   t              sJ y )Nr$   )r  r  r  r7  r   r   r   c                 F    t        t        | j                                     S rZ   )r   strrk   rQ   s    r   convert_fastz>test_convert_objects_leave_decimal_alone.<locals>.convert_fast  s    s1668}%%r   c                     t        | j                  j                        dkD  sJ t        t	        | j                                     S r   )rt   r  baser   r  rk   rQ   s    r   convert_force_purezDtest_convert_objects_leave_decimal_alone.<locals>.convert_force_pure  s2    188==!A%%%s1668}%%r   r   )r   r6   r8   r   r4   rx   rE   object_rv  r3   r   )r#  r  r  r  r   r   s         r   (test_convert_objects_leave_decimal_aloner    s    uQxAXX/s;F&&
 iiG[[&F<<2::%%%fkk!ng...[[+,F<<2::%%%fkk!ng...r   c                  f   t        g t        j                  dd      d      } | d   j                  t        j                  k(  sJ | j                  d      j                         }t        g dt        j                        }t        dt        g |d      i      }t        j                  ||d	
       y )Nr   rF   r   )rR   r6   rR   rj   rE   r6   rM   T)	by_blocks)r	   r8   r9   rE   rH   r4   r   r   r   r:   r;   )r?   r   	exp_indexr   s       r   "test_groupby_dtype_inference_emptyr    s    	bii&AB	CBc7==BJJ&&&ZZ_""$Fbs"**5I'6"IW#MNOH&(d;r   c                      t        dgdgdgd      } | j                  ddg      d   j                         }t        dgt	        j
                  dgdggddg      d      }t        j                  ||       y )	NrX   l    4;PU  )r   r  r   r   r  r   r  r  )r	   r4   r  r   r   from_productr:   ry   r  s      r   $test_groupby_unit64_float_conversionr    s~    	aSQC;O:PQ	RBZZ(+,W599;F	!qc
7H2EFH
 68,r   c                    | j                  t        | d               j                  d      }| j                  | d         j                  d      }t        j                  ||d       t        j                  t        d      5  | j                  t        | d   d d              d d d        t        d	d
gddgt        j                  j                  d      j                  d      d      } | j                  ddg      j                         }| j                  | d   | d   g      j                         dg   }y # 1 sw Y   xY w)Nr   TrV  Fr   z^'foo'$rV   r*   r   rX   rL   r   r%   )r   r   valr   r   r  )r4   r5   rk   r:   r;   r|   r}   KeyErrorr	   r8   rp   rq   r   r  s      r   "test_groupby_list_infer_array_liker    s   ZZRW&+++>Fzz"S'"''T':H&(>	xz	2 '


43%&' 
q6q699((+;;A>	

B ZZ',,.Fzz2e9bi01668%AH' 's   !D::Ec                  F   d} t        t        d      d|       }t        ddgddggd	d
g|      }|j                  t	        d|       d	g      j                         }|j                  |j                  d	g      j                  t              }t        j                  ||       y )Nr#  z2015-09-29T11:34:44-0700r%   )startr#   r   r   re   r      metricr  r   r   )r   r   )r   r   r	   r4   r
   rk   r  r,   r   r  r:   r;   )r   r,   r?   r   r   s        r   $test_groupby_keys_same_size_as_indexr    s    D23QTE 
S"IRy)Hh3Gu	UBZZqt4h?@EEGF||RXXx0188?H&(+r   c                     d} t        t        j                  j                  d      j	                  d      t        d            }t        j                  t        |       5  |j                  d       d d d        t        t        j                  j                  d      j	                  d      t        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)	Nz^'Z'$r%   )rX   r   r   r  rV   Z)r%   r   )
r	   r8   rp   rq   r   r5   r|   r}   r  r4   )r   df1r)  s      r   test_groupby_one_rowr    s    
C

		a 008$v,C 
xs	+ C

		a 008$v,C 
xs	+ C  
 s    C2C>2C;>Dc                  4	   t        t        j                  j                  d      j	                  d      t        j
                  t        d      t        j
                  t        d      t        j
                  t        d      t        j
                  t        d      gt        j
                  dt        j
                  dt        j
                  dt        j
                  dgd      } | j                  d      }t        d	d
g      t        ddg      g}t        |j                  j                               }t        |      dk(  sJ t        ||      D ](  \  }}t        j                  |j                  |   |       * t        j                   |j"                  j$                  d   j&                  |        |j(                  dk(  sJ t        d      t        j*                  d	d
gt        j,                        t        d      t        j*                  ddgt        j,                        i}|j.                  D ](  }t        j0                  |j.                  |   ||          * t        j                   |j3                  t        d            | j4                  d	d
g          t        j                   |j3                  t        d            | j4                  ddg          t7        j8                  t:        d      5  |j3                  t<        j>                         d d d        t        t        j
                  t        j
                  t        j
                  gt<        j>                  t<        j>                  t<        j>                  gd      }|d   j@                  dk(  sJ |d   j@                  dk(  sJ dD ]  }|j                  |      }|j                  i k(  sJ |j(                  dk(  sJ |j.                  i k(  sJ t7        j8                  t:        d      5  |j3                  t        j
                         d d d        t7        j8                  t:        d      5  |j3                  t<        j>                         d d d         y # 1 sw Y   lxY w# 1 sw Y   \xY w# 1 sw Y   xY w)Nr%   r   z
2013-01-01z
2013-02-01r  r  )r  dtr  r  rX   r^   rL   r$   r   z2013-01-01 00:00:00r   z2013-02-01 00:00:00z^NaT$rV   )r   natr   rH   r  zdatetime64[ns]z^nan$)!r	   r8   rp   rq   r   r   r   r4   r   sortedrB  rt  rt   r  r:   r  r;   _grouperr	  r  ngroupsr   intprC  assert_numpy_array_equalr  r3   r|   r}   r  r.   r2   rE   )r?   r   r   rt  r   r   nan_dfr   s           r   test_groupby_nat_excluder    s   	ii++A.>>qA,',',','	 FFCbffc2663G	

B  jjGq!fuaV}-H'..%%'(Dt9>>D(# 41 	gnnQ/34 '**44Q7;;R@??a 	'("((Aq6*I'("((Aq6*IH
 __ E
##GOOA$6DE '++Il,CDbggqRSfoV'++Il,CDbggqRSfoV	xx	0 ""&&!" ("&&"&&"&&1IJF %=)+++%="2222 &..%~~###!###"$$$]]884 	&bff%	&]]884 	&bff%	& 	&&" "	& 	&	& 	&s$   + Q5 R
 R5Q?R	R	c                      t        t        j                  t        j                  gt        j                  t        j                  gddgd      } | j                  ddg      j                  }|i k(  sJ y )NrX   r%   r'  r  r  )r	   r8   r   r4   rC  r?   r   s     r   #test_groupby_two_group_keys_all_nanr  9  sU    	"&&"&&)0@1vN	OBZZc
#++FR<<r   c                  v   t        t        d            } ddg| d<   ddg| d<   ddg| d	<   d
dg| d<   | j                  dg      j                  d      }t	        j
                  ddgddgg      }t        j                  |j                  t        dd	g             t        j                  |j                  |       y )Nr%   r+   g1g2r   r   zerosrX   r  l1l2labelTrV          r  )r	   r6   r4   rk   r8   r   r:   r  r   r   r  r  )r7  tmp
res_valuess      r   test_groupby_2d_malformedr  @  s    a!AAgJQAgJAAfIAgJ
))WI

#
#
#
6CC:Sz23J#++ugv->'?@

J7r   c            	          t        j                  t        j                  d      t        j                  d      t        j                  d      f      } t        j                  d      }t        || || t         j                  j                  d      j                  d      d      }|j                  g d      j                         }|j                  g d      j                         }t        |      t        |      k(  sJ y )Nr!   i  ia  r%   )r   r   r)   r   rr  r   )r   r)   r   r   )
r8   concatenater9   r	   rp   rq   r   r4   r\   rt   )r   r   r?   r  r  s        r   test_int32_overflowr  L  s    
		%("))E*:BIIdOLMA
		%A	&&q)99%@	

B ::*+//1DJJ+,002Et9E
"""r   c                     t        g dg dg dt        j                  j                  d      j	                  d      d      } | g d   j
                  D cg c]  }t        |       }}t        j                  |      }| j                  g dd	      j                         }t        j                  |j                  j
                  |g d
          | g d   j
                  D cg c]  }t        |       }}t        j                  |      }| j                  g dd	      j                         }t        j                  |j                  j
                  |       | g d   j
                  D cg c]  }t        |       }}t        j                  |      }| j                  g dd	      j                         }t        j                  |j                  j
                  |g d          t        g dg dt        j                  j                  d      j	                  d      d      } | j                  ddg      d   }|j                         }d fd} || |ddgd       y c c}w c c}w c c}w )Nr   r   r  )rL   r%   rX   rh   r%   rL   r  r  r  r7  r'  Tr1  )rX   r%   r   )r  r  r  )r  r  r  )r%   rX   r   r   rX   r%   r   rX   r%   )r   r   r   rX   rX   rX   r\  )r  r  r7  r  r  r7  c                 "    | j                         S rZ   r[   rQ   s    r   rS   z)test_groupby_sort_multi.<locals>.<lambda>  s    AEEG r   c                     | |   j                   D cg c]  }t        |       }}t        j                  |      } || j	                  |      |         }|j                         D ]  \  }}	||   |	k(  rJ  y c c}w rZ   )r  tuplecomasarray_tuplesafer4   rD  )
r?   r   rt  fieldr   rowtupsr   r   r   s
             r   _check_groupbyz/test_groupby_sort_multi.<locals>._check_groupby  sx    &(hoo6sc
66$$T*RZZ%e,-NN$ 	"DAq!9>!>	" 7s   A8)r	   r8   rp   rq   r   r  r  r  r  r4   r\   r:   r  r,   )r?   r  r  r   rR   r   r  s          r   test_groupby_sort_multir  ^  s   	&&&q)99!<		

B #%_"5"<"<=3E#J=D=  &DZZdZ3779F 3 3T)_E"$_"5"<"<=3E#J=D=  &DZZdZ3779F 3 3T: 1889E!H9D9  &DZZdZ3779F 3 3T)_E	##&&q)99!<	

B jj#s$S)G[[]F2C " 2vSz3/A >
 >
 :s   I!$I&-I+c                     t        g dg ddz  d      } d}t        j                  t        |      5  | j	                  dd	      j                  d
       }d d d        t        j                  |        y # 1 sw Y    xY w)N)r  r  r  r  r  r  r  r%   )r   rj   r   rV   r   FrT   c                     | S rZ   rP   rQ   s    r   rS   z/test_dont_clobber_name_column.<locals>.<lambda>  s    Q r   )r	   r:   ru   r   r4   rz   r;   )r?   r   r   s      r   test_dont_clobber_name_columnr    sz    	.8MPQ8QR
B DC		#	#$6c	B HEe4::;GH&"%H Hs   $A66A?c            	         t        t        j                  j                  d      j	                  d      t        t        d      t              t        ddd      	      } | j                  d
 d      }|j                  d       }|D cg c]  \  }}|j                  d      d d  }}}t        j                  |      }t        j                  ||       | d   j                  d d      }|j                  d       }|D cg c]  \  }}|j                         d d  }}}t        j                  |      }t        j                   ||       y c c}}w c c}}w )Nr%   r   r   r   r   re   r   r   r   c                     | j                   S rZ   r   rQ   s    r   rS   z&test_skip_group_keys.<locals>.<lambda>  s
    AGG r   FrT   c                 ,    | j                  d      d d S )Nr   r  rL   sort_valuesrQ   s    r   rS   z&test_skip_group_keys.<locals>.<lambda>  s    Q]]c]%:2A%> r   r   r  rL   c                     | j                   S rZ   r   rQ   s    r   rS   z&test_skip_group_keys.<locals>.<lambda>  r  r   c                 (    | j                         d d S rO   r  rQ   s    r   rS   z&test_skip_group_keys.<locals>.<lambda>  s    Q]]_Ra%8 r   )r	   r8   rp   rq   r   r   r5   r   r   r4   rz   r  r.   ru  r:   r;   ry   )tsfr   r   r   r   piecesr   s          r   test_skip_group_keysr    s+   

		a 009d6l&1r<C kk+k>G]]>?F>EF
Ue3'+FFFyy H&(+#h0UCG]]89F8?@*#ue!"1%@F@yy H68, G As   
EEc                     | d   j                         }d |_        |j                  | d         j                  d      }|j                  J y )Nr)   r   r\   )r1   rj   r4   rx   )float_framer#  r   s      r   test_no_nonsense_namer    sJ    CAAFYY{3'(,,U3F;;r   c                     t        t        j                  d      j                  dd            } d| d<   g d| d<   | j	                  d      }|j                  ddd	      }|d   j                  t        j                  k(  sJ y )
NrK   rL   r   test)g?r+  g?flr\   r  )r  r%   )r	   r8   r9   reshaper4   rx   rE   rH   )rR   r   r   s      r   test_multifunc_sum_bugr    sp    "))A,&&q!,-AAfIAdGiiG[[&12F$<+++r   c                     d }d }| j                  d      d   j                  |      }| j                  d      d   j                  |      }t        |t              sJ t	        j
                  ||       y )Nc                 D    | j                         | j                         dS Nr  r  r  r   s    r   r   z(test_handle_dict_return_value.<locals>.f  s    yy{599;77r   c                 V    t        | j                         | j                         d      S r  )r   r  r  r   s    r   r   z(test_handle_dict_return_value.<locals>.g  s    eiik%))+>??r   r   r)   )r4   rz   rv  r   r:   ry   )r?   r   r   r   r   s        r   test_handle_dict_return_valuer    si    8@ ZZ_S!''*Fzz#s#))!,Hff%%%68,r   grouperr   r   c                    d }fdfd}| j                  d      }d}t        j                  t        |      5  |j	                  |       d d d        |j                         |j                  d       |j                  |       |d	   j	                  |       |d	   j                         |d	   j                  |g       |d	   j                  |       y # 1 sw Y   xY w)
Nc                 "    | j                   J | S rZ   r  r   s    r   r   ztest_set_group_name.<locals>.f  s    zz%%%r   c                     | j                   J rOdk(  rJt        | j                        r5t        j                  t
        d      5  | j                          d d d        y | j                         S # 1 sw Y   y xY w)Nr   zdoes not supportrV   )rj   r   rE   r|   r}   r  r\   )r   r  r3  s    r   freducez$test_set_group_name.<locals>.freduce  sg    zz%%%'S._U[[5Qy0BC 		  99; s   A11A:c                      |       S rZ   rP   )rR   r  s    r   freducexz%test_set_group_name.<locals>.freducex  s    qzr   FrT   r   rV   rX  r)   )r4   r:   ru   r   rz   rw   r{   )r?   r  r3  r   r  r   r   r  s    ``    @r   test_set_group_namer    s     jjUj3G DC		#	#$6c	B agG'23aCLqCL7#CLGX./CL1 s   C%%C.c                     t        g dt        j                  d      d      } g fd}d}t        j                  t
        |      5  | j                  ddd	      j                  |       d d d        g d
}|k(  sJ y # 1 sw Y   xY w)N)r   r   rX   rX   r%   r%   r\  r  c                 Z    j                  | j                         | j                         S rZ   )r  rj   r1   )r   r  s    r   r   z6test_group_name_available_in_inference_pass.<locals>.f  s    UZZ zz|r   r   rV   r  F)r2  rU   rh   )r	   r8   r9   r:   ru   r   r4   rz   )r?   r   r   expected_namesr  s       @r   +test_group_name_available_in_inference_passr    s    	+"))A,?	@BE DC		#	#$6c	B ?


3Uu
5;;A>? NN"""	? ?s   	$BB
c                 8   | j                  | d   j                        j                         }|j                  j                  J | j                  | d   j                  | d   j                  g      j                         }|j                  j
                  dk(  sJ y )Nr   r   )NN)r4   r  r\   r,   rj   r  r  s     r   test_no_dummy_key_namesr    s{    ZZ3'++-F<<$$$ZZCC89==?F<<---r   c                     t        ddgddggg dg dgddg      } t        g d| 	      }t        ddgddggg d
g dgddg      } t        g d| 	      }|j                  ddgd      j                         }t	        j
                  ||       |j                  ddgd      j                         }t	        j
                  ||j                                y )NrX   r%   )r   r   r   r   rX   rX   )rX   rX   r   r   r   r   r  r  r  )r   rX   r%   rL   r   r$   r+   r  )rX   r   r   r   r%   r   Fr   r2  T)r   r   r4   r   r:   ry   
sort_index)r,   mseriesmseries_resultr   s       r   #test_groupby_sort_multiindex_seriesr    s     AA!#56CjE
 'u5GAA	9'=c3ZE IU3N__C:E_:@@BF6>2__C:D_9??AF6>#<#<#>?r   c                     d} t        dd|       }t        t        j                  |       t        j                  |       d|      }dd}|j	                  d       }|j                  d	 |t        j                        i      }|j                  d	 |t        j                  d
      i      }t        j                  ||       y )N  z2012/1/15min)r  r   r#   )highlowr+   c                       fd}|S )z>
        Run an aggregate func on the subset of data.
        c                     | j                   | j                  j                  d          j                         }r| | j                  d       t	        |      dk(  ry  |      S )Nc                      | j                   dk  S )Nrq  )hourrQ   s    r   rS   zYtest_groupby_reindex_inside_function.<locals>.agg_before.<locals>._func.<locals>.<lambda>,  s    !&&2+ r   r   )r   r,   rz  dropnart   )r   r7  fixfuncs     r   _funczGtest_groupby_reindex_inside_function.<locals>.agg_before.<locals>._func+  sR    (=>?FFHATZZ]#1v{7Nr   rP   )r   r  r  s   `` r   
agg_beforez8test_groupby_reindex_inside_function.<locals>.agg_before&  s    
	 r   c                 X    t        | j                  | j                  | j                        S rZ   )r   r   r   r   rQ   s    r   rS   z6test_groupby_reindex_inside_function.<locals>.<lambda>5  s    8AFFAGGQUU#C r   r  T)F)	r   r	   r8   r9   r4   rx   r  r:   r;   )r#   indr?   r  r   closure_badclosure_goods          r   $test_groupby_reindex_inside_functionr  !  s    G
:FG
DC	BIIg.ryy7IJRU	VB jjCDG++vz"&&'9:;K;;
2664(@ABL+|4r   c                  ,   t        g dg dg dd      } | j                  ddg      } | j                  ddgd      }|j                  d	      }t	        j
                  g d
ddg      }t        dgdgdgg|dg      }t        j                  ||       y )N)r  r  r  r  )r  r  r7  r  )rX   rX   rX   r$   )group1group2r   r	  r
  Tr  r\   ))r  r  )r  r7  r  r  r  r%   rX   r$   r   r,  )r	   r  r4   rx   r   r  r:   r;   )r?   r   r   rJ  r  s        r   $test_groupby_multiindex_missing_pairr  <  s    	**!	

B 
x*	+B8X"6TBJ
..
C

 
 ,Xx4HC aS1#sO3	
BC#s#r   c                  L   t        j                  g dddg      } t        g dg|       }|j                  j	                         sJ t        g dg dg d	g
      }|j                  dddgd      }|j                         }|j                  j	                         rJ |j                  d      j                         }t        j                  t              5  |j                  d      j                         }d d d        t        j                  |       t        g dg dg dd      j                  ddg      }|j                  j	                         rJ ddddgfD ]  }dD ]  }|j                  ||d      j                  t        j                         }|}t        j                  ||       |j#                         j                  ||d      j                  t        j                         }|j#                         }t        j                  ||         y # 1 sw Y   $xY w)N))r   )b1c1)b2c2r  r  r  rX   rL   r   r  r  )rX   r  r  rL   )rX   r  r  r   )r   r   r  r7  )r,   r   r  )r  r  r  r  rX   rX   r%   r%   rX   r%   rL   r   rR   r   zrR   r   r   rX   )FTF)r   r2  rU   )r   r  r	   r   _is_lexsortedpivot_tabler  r4   rk   r:   ru   r   r;   r  r,   rz   drop_duplicatesr  )lexsorted_milexsorted_dfnot_lexsorted_dfr   r   r?   r   r2  s           r   %test_groupby_multiindex_not_lexsortedr  Q  s    ))/SzL i[,?L--/// !$,>@R+S (33C:c 4  (335''55777##C(--/H		#	#$6	7 6!))#.3356(F+ 
"LI
ic
  xx%%'''QA 4! 	4DZZe$5ZIOO))F H!!(F3 u4EBy001 
 }}H!!(F3	446 6s    HH#c                  0   t        t        d      g d      } | j                  t        d            }|j                  d       }| j                  g d   }t        j                  ||       | d   }|j                  t        d            }|j                  d       }|j                  g d      }t        j                  ||       | j                  j                  t              | _	        | j                  t        d            }|j                  d	       }| j                  g d   }t        j                  ||       | d   }|j                  t        d            }|j                  d
       }|j                  g d      }t        j                  ||       y )NABCDE)r%   r   r%   rX   rX   r+   ababbc                     t        |       dkD  S ro   rt   rQ   s    r   rS   z4test_index_label_overlaps_location.<locals>.<lambda>      A
 r   r  r   c                     t        |       dkD  S ro   r#  rQ   s    r   rS   z4test_index_label_overlaps_location.<locals>.<lambda>  r$  r   c                     t        |       dkD  S ro   r#  rQ   s    r   rS   z4test_index_label_overlaps_location.<locals>.<lambda>  r$  r   c                     t        |       dkD  S ro   r#  rQ   s    r   rS   z4test_index_label_overlaps_location.<locals>.<lambda>  r$  r   )r	   r5   r4   filterr3   r:   r;   rE  ry   r,   r   r  )r?   r   actualr   r>   s        r   "test_index_label_overlaps_locationr*    s8    
4=	8B


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


4=!AXX*+Fwwy!H&(+
Q%CDM"AXX*+Fxx	"H68,r   c                  L   d} t        j                  |       }t        |dz  d|z  d|z  d      }t        |dz  dz  d|z  d|z  d      }|j                  d      }|j	                  d      }|j                  d      }|j	                  d      }t        j                  ||       y )	Nr\  r%   r        @r'  r  r  rk   )r8   r9   r	   r4   r{   r:   r;   )nrR   r?   r)  r@   r   gb2r   s           r   "test_transform_doesnt_clobber_intsr/    s    	A
		!A	acAgC!G<	=B
!q&3,S1W37C
DC	CB\\&!F
++c
C}}V$H&(+r   sort_columnintsfloatsstringsgroup_column
int_groupsstring_groupsc                     t        g dg dg dg dg dd      }|j                         }|j                  |      } fd}d	}t        j                  t
        |
      5  |j                  |       d d d        y # 1 sw Y   y xY w)N)rL   rX   r   rX   r   rL   rL   rL   )r  r  r  r  r  r   r   r   )r   r^   r   r$   r%   rK   rX   rX   )gffffff@g333333@g@g333333g@皙?r8  r$   )r  r7  r  r   wordword24247)r5  r6  r1  r2  r3  r  c                 R    t        j                  | | j                               y )Nr  )r:   r;   r  )rR   r0  s    r   	test_sortz.test_groupby_preserves_sort.<locals>.test_sort  s    
a+!>?r   r   rV   )r	   r  r4   r:   ru   r   rz   )r0  r4  r?   r   r>  r   s   `     r   test_groupby_preserves_sortr?    s     
2E,=H	

B 
;	'B


< A@ DC		#	#$6c	B 		  s   "A==Bc                     t        t        t        j                         dd      j	                         t        d      d      } | j                  d      j                  j                  | d<   | j                  d      j                  j                  | d<   t        j                  t        d	      5  | j                         j                  ddd
d       d d d        y # 1 sw Y   y xY w)Nrf   MEr   )	eventDatethenamerB  r   r   z	'badname'rV   badnamer  )r,   r   r  aggfunc)r	   r   r   todaytolistr6   r  r,   r   r   r|   r}   r  r  r  r  s    r   !test_pivot_table_values_key_errorrH    s    	#HNN$4btLSSURy	

B k*0055BvJ,,{+1177BwK	x{	3 

$$')W 	% 	

 
 
s   /$CC%r   r)   rt  r  r  r  rX   z
US/Easternr'   
2016-01-01rL   r   r   Int64r   Float64boolean)boolintr  r  r=  dt64dt64tzperiodrJ  rK  rL  )idsmethod)r  rx   rz   )r   idxminr  r  r\   r  r  c                 0   d }t        t              rdv rd}t        d   t              rdv rd}t        dt	        d            }	t        d	      r)|	j                  j                  k(  j                         sJ |	j                  d d }	|	j                  d
|d
      |    fd}
fd}t        |	j                  j                  d   t        j                        }|	j                  j                  d   j                  dk(  }t        t              }t        t              rj                  sdv rdv rd d}t         }nd d}t"        }t%        j&                  ||      5   |
        d d d        dv r6t        | t              r& |
d      } |       }t)        j*                  ||       y dv r|s|s|r|rd}n|rd}nd}dk(  rdj-                  |dg      }t%        j&                  t         |      5   |
        d d d        t        | t              sy dk(  ry  |
d      }|	j/                        g    }|r |       }t)        j*                  ||       y  |
       }|	j/                        |    }dv r%|j1                  |	j2                  j                        }||j1                  |      }t5              d k(  rd   |j2                  _        t)        j*                  ||       y # 1 sw Y   xY w# 1 sw Y   xY w)!N)r\   r  rJ  r   )r  r\   rF   r-   ABCr  rE   F)rU   r  observedc                  X    dk(  r t              di | S  t              fi | S )Nr  rP   )r7  )kwargsr@   rS  r  s    r   
get_resultz&test_empty_groupby.<locals>.get_result  s:    V"72r?,V,,&72v&r4V44r   c                      t        dgj                        } t              dk7  rt        j                  | | g      }nt        | d         }rt        g d      }ng }t        g ||      }|S )Nr   r   rX   r  r  r/  r   )r   rE   rt   r   r  r   r	   )levrJ  r   r   rt  r3  r  s       r    get_categorical_invalid_expectedz<test_empty_groupby.<locals>.get_categorical_invalid_expected#  sr    
 1#V\\2t9>))3*DAC $q'*CB&=>GGR<r   M)r  r  rT  r   )r  r  zCannot perform z with non-ordered Categoricalz
Can't get z/ of an empty group due to unobserved categoriesrV   TrV  )r  r\   r  z datetime64 type does not supportzPeriod type does not supportzcategory type does not supportr  |z!does not support reduction 'skew')r   rT  rX   )rv  r   rM  r	   r5   hasattrr   rE   rF  r3   r4   r.   PeriodDtypekindr   orderedr  r  r|   r}   r:   assert_equaljoinr  r   r,   rt   rj   )r   rt  r  rS  r  using_array_managerr  r3  override_dtyper?   rZ  r]  is_peris_dt64is_catr   r  r   r   r@   s    ````  `           @r   test_empty_groupbyrk    s   N N&,'B/,A &)T"r_'< 	f6:DK	PBvw		V\\)..000	!B	DU6E	J7	SB5( 		q)2>>:FiinnQ$$+G,F 	6;'44#B4'DECErd"QRCE]]5, 	L	 33
7D8QT2F79HOOFH-	$$f 846V|hh%HIJy4  gt,v $6 <<-b1?AH1\F||D!'*H	!!??288>>2!??>2
4yA~"1gOOFH%o	 	. s   7K?L?L	Lc                     t        t        j                  j                  d      j	                  d            } | d   j                  t        j                        | d<   g d| _        | j                  | d   d      }d}t        j                  t        |	      5  |j                  d
       }d d d        j                  | j                  k(  j                         sJ y # 1 sw Y   3xY w)Nr%   )r   r   rL   r   rX   r%   r   rX   FrT   r   rV   c                     | S rZ   rP   rQ   s    r   rS   z<test_empty_groupby_apply_nonunique_columns.<locals>.<lambda>  s     r   )r	   r8   rp   rq   r   r   rF   r   r4   r:   ru   r   rz   r   rF  )r?   r@   r   r   s       r   *test_empty_groupby_apply_nonunique_columnsro    s    	299((+;;FC	DBqELL"BqEBJ	BqEe	,B
CC		#	#$6c	B $hh{#$JJ"))#((***$ $s   CC'c                  f   t        g dg dg dg dd      } t        j                  t        d      5  | g d   j	                  d       d d d        | j	                  d      d   j                         }t        d	gdt        d
gd            }t        j                  ||       y # 1 sw Y   ]xY w)N)rX   rX   rX   rX   )r%   r%   r%   r%   )r  r  r  r  z
('a', 'b')rV   r'  r  r  r   rX   r  r  )
r	   r|   r}   r  r4   r\   r   r   r:   ry   r  s      r   test_tuple_as_groupingrq    s    	$		

B 
x}	5 0
?##J/0 ZZ
#C(,,.Fqc5!:+FGH68,0 0s   B''B0c            	         t        dt        d      t        j                  ddgddgg            } t	        j
                  t        d      5  | j                  d      j                          d d d        y # 1 sw Y   y xY w)	NrX   rL   r%   r   r,  z
^\(7, 8\)$rV   )r^   r   )	r	   r6   r   r  r|   r}   r  r4   rk   r  s    r   test_tuple_correct_keyerrorrs    sf    	1E!Hj.E.E1vPQSTvFV.W	XB	x}	5 "


6!" " "s    A55A>c            
      N   t        dgdggt        dgd      t        dddd	      
      } t        g dg dgt        j                  dg d      t        dddd	      
      }| j                  t        d            j                  ddg      }t        j                  ||       y )NrX   r   mycolsr  
2018-01-01r%   r   dti)r#   r   rj   r   )rX   rX   rX   rX   rX   ))r   r\   r   )r   ohlcopen)r   rx  r  )r   rx  r  )r   rx  close)ru  NNr  )r   r\   rx  )
r	   r   r   r   r  r4   r
   rx   r:   r;   r`  s      r   test_groupby_agg_ohlc_non_firstr{    s    	
qc
ugH-qsG
B 	/*&& )	
 qsGH ZZS)*..v?F&(+r   c                  \   t         j                  dft        ddd      dft        ddd      dft        ddd      dfg} t        j                  | dd g      }t        g d	|
      }|j                  d      j                         }t        ddgddg
      }t        j                  ||       y )Nr  i  rX   r%   r  rL   dater  )rL   r%         @r   r+   r  r,  r~  )
r.   r2   r   r   r  r   r4   rk   r:   ry   )r  r  r>   r   r   s        r   test_groupby_multiindex_natr    s     
	$1	s#	$1	s#	$1	s#	F 
		vtn	=B
r
*C[[q[!&&(FsCjc
3H68,r   c                      t        t        d      t        d            } t        | ddg      }d}t        j                  t
        |      5  |j                  g g       d d d        y # 1 sw Y   y xY w)Nre   appler  r  z$Grouper and axis must be same lengthrV   )r  r6   r	   r|   r}   r  r4   )r  r?   r   s      r   test_groupby_empty_list_raisesr    s\    rE"I&F	6GS>	2B
0C	z	- 


B4  s   A''A0c                  :   ddgddgddgg} g d}t        j                  | |      }t        ddg|	      }|j                  d
dg      j	                         }dgdgg} d
dg}t        j                  | |      }t        dg|      }t        j                  ||       y )NrR   r  r  r   )r   r  thirdr  rX   r%   r'  r   r  rL   r+   )r   from_arraysr   r4   r\   r:   ry   )index_arrayindex_namesrir#  r   eir   s          r   8test_groupby_multiindex_series_keys_len_equal_group_axisr    s    :SzC:6K.K			;	?BQF"%AYY)*..0F53%.KG$K			;	?Bqc$H68,r   c                     t        j                  ddgddggddg      } t        g dg d	d
|       }|j                  t	        d      dg      }|j                  ddg      }|j
                  |j
                  k(  sJ |j                  dt	        d      g      }|j                  ddg      }|j
                  |j
                  k(  sJ y )Nr   r   r)   r   r  betar  )rX   r%   rX   r%   r  rY  r+   r  )r   r  r	   r4   r
   rB  )r  r?   r   r   s       r   "test_groupby_groups_in_BaseGrouperr    s     
	 	 3*sCj!9'6AR	SB	<=R	HBZZw/89Fzz7F+,H==HOO+++ZZw!789Fzz67+,H==HOO+++r   
group_namerR   c                    t        t        j                  d      j                  dd      g dg d      }d|j                  _        d|j                  _        d	}t        j                  t        |
      5  |j                  | d      }d d d        j                         }|j                  j                  |       j                         j                  }t        j                  ||       g dddgg}t        j                  |ddg      }t        t        j                  d      j                  dd      g d|      }t        j                  t        |
      5  |j                  | d      }d d d        |j                         }|j                  j                  |       j                         j                  }t        j                  ||       y # 1 sw Y   HxY w# 1 sw Y   pxY w)Nr_   rL   r   r   rX   r   )re   rf   re   rf   r,  r   rR   rN  rV   rX   r   )r   r  r   rc   rd   x1)	iterablesr     r\  )r	   r8   r9   r  r,   rj   r   r:   ru   rv   r4   r\   r   r;   r   r  )r  r?   r*  r@   resultsr   r  r  s           r   test_groupby_axis_1r    sy    

		"a#9>N
B BHHMBJJO<H		#	#M	B ,ZZ
Z+, ffhGtt||J'++-//H'8, '7I		 	 9S$K	HB	299R=((A.i	LB		#	#M	B ,ZZ
Z+,ffhGtt||J'++-//H'8,, ,, ,s   5GGGG%zop, expectedshifttime2019-01-01 12:00:002019-01-01 12:30:00bfill2019-01-01 14:00:002019-01-01 14:30:00ffillc           	      T   | g dt        d      t        d      d d t        d      t        d      gd}t        |      j                  fd      }|j                  d	      } t	        ||             }t        |      j                  fd
      }t        j                  ||       y )N)r   r   r   r   r   r   r  r  r  r  )r{  r  c                 N    | j                   j                  j                        S rZ   r  r  tz_localizerR   r(   s    r   rS   z+test_shift_bfill_ffill_tz.<locals>.<lambda>O	  s    qvvyy/D/DR/H r   )r  r{  c                 N    | j                   j                  j                        S rZ   r  r  s    r   rS   z+test_shift_bfill_ffill_tz.<locals>.<lambda>S	  s    9N9Nr9R r   )r   r	   assignr4   r7  r:   r;   )tz_naive_fixturer  r   r   r?   r   r   r(   s          @r   test_shift_bfill_ffill_tzr  	  s    \ 
B,+,+,+,+,

D 
4		%H		IBjjG!WWb!#F"))/R)SH&(+r   c                      t        d gdd      } | j                  d      d   j                  d      }t        t        j
                  gd      }t        j                  ||       y )NrX   )r   rR   r   rR   r\   r  )r	   r4   r{   r   r8   r   r:   ry   )r?   r)  r   s      r   test_groupby_only_none_groupr  W	  sT     
$a(	)BZZ_S!++E2FrvvhS)H68,r   c                      t        g dg d      } | j                  d      }|j                         }t        g dg d      }t        j                  ||       y )N)r%   r$   r\  r   )r  r  r  r6  r+   r   r  )r%   g      @r   )r  r  r6  )r   r4   rk   r:   ry   )r>   r@   r   r   s       r   test_groupby_duplicate_indexr  a	  sF    
%9
:C	1	BWWYFk9H68,r   c                    t        dt        d      ddggg d      }|d   j                  t              |d<   |d   j                  t              |d<   |j	                  d	d
g      }| dk(  rd}nd}| dk(  rt
        nd }d}t        j                  ||      5   |j                  d d j                  d	g      j                  | g| }d d d        t        j                  ||      5   |j                  d	g      j                  | g| j                  d d }d d d        | dv rj                  t              }t        j                         d}t        j                  ||      5   |d   j                  d d j                  d	g      j                  | g| }d d d        d}t        j                  ||      5   |d   j                  d	g      j                  | g| j                  d d }d d d        | dv r|j                  t              }t        j                  ||       y # 1 sw Y   cxY w# 1 sw Y    xY w# 1 sw Y   xY w# 1 sw Y   _xY w)NrX   rF  rL   r   )col_1col_2col_3col_4r   r   r  r  r  r  fillna)r  rP   %DataFrameGroupBy.fillna is deprecatedrV   r   )diffr  z"SeriesGroupBy.fillna is deprecated)r	   r   r   rN  r  rv   r:   ru   r3   r4   r{   rd  )transformation_funcrequestr?   argsr   warn_msgr   r   s           r   test_group_on_empty_multiindexr  k	  sg    
)G$a+,4
B W+$$S)BwKW+$$S)BwK	w(	)Bh&/8;=D6H		#	#D	9 V9!$$gY/99:MUPTUV		#	#D	9 X22::wi(223FNNSSTVUVWX//??3'OOFH%3H		#	#D	9 
BwKT"1WgYY*3 .23 	
 4H		#	#D	9 
BwKWgYY*3-13 T"1 	
 //??3'OOFH%5V VX X
 

 
s0   1H)'1H6(4I=4I)H36I IIc                    t        ddd      }t        ddgddgddgd      }d	|j                  _        ||_        |j                  |       }|s|j                  }d
}nd}t        j                  t        |      5  |j                  |d      }d d d        j                         }t        ddgddgd|      }d|j                  _        |s|j                  }t        j                  ||       |dk(  r@t        j                  t        |      5  |g    j                  |d      }d d d        |g    }	npt        j                  t        |      5  |j                  g    j                  |d      }d d d        |j                  g    j                  t         j"                        }	j                         }
t        j                  |
|	       y # 1 sw Y   ?xY w# 1 sw Y   xY w# 1 sw Y   uxY w)NrI  r%   r   )r#   rj   rX   rL   r   )rY  )r   r)   )r   r   )r   r  rP  rN  rV   )r   r   )r   r   r+   r   )r   r	   r   r  r,   _get_axis_numberr   r:   ru   rv   r4   nuniquerj   r;   r   r   r8   rH   )r   rw  r?   axis_numberr   r@   r   r   r.  r  r   s              r   test_groupby_crash_on_nuniquer  	  s   
\15
9C	AQFAO	PB%BJJBH%%d+KTTE;		#	#M	= 3ZZ[Z23ZZ\F1vQF33?H!H::&(+a''SA 	<R&..k.;C	<rl ''SA 	@&&*$$+Q$?C	@ ll2%%bjj1
++-C#s#13 3	< 	<
	@ 	@s$   ;GG!G%GG"%G.c                      t        t        j                  dd      j                  dd      t              } | j                  dg      j                         }t        j                  ||        y )Nr   rK   rL   r   r  )	r	   r8   r9   r  r  r4   rk   r:   r;   )r   r   s     r   test_groupby_list_levelr  	  sS    1a00A6eDHQC(--/F&(+r   zmax_seq_items, expected))r$   z({0: [0], 1: [1], 2: [2], 3: [3], 4: [4]})r   z%{0: [0], 1: [1], 2: [2], 3: [3], ...})rX   z{0: [0], ...}c                    t        t        j                  j                  d      j	                  d            }|j
                  |d<   t        j                  d|       5  |j                  d      j                  j                         }||k(  sJ |j                  t        j                  |j                              j                  j                         }||k(  sJ 	 d d d        y # 1 sw Y   y xY w)Nr%   )r$   rX   r  zdisplay.max_seq_items)r	   r8   rp   rq   r   r,   r.   option_contextr4   rB  __repr__r   r  )max_seq_itemsr   r?   r   s       r   test_groups_repr_truncatesr  	  s     
299((+;;FC	DBhhBsG			2M	B "C''002!!!BHHRTTN+22;;=!!!" " "s   A>C%%C.c                  >   t        ddddddddg      } | j                  ddg      } | j                  ddg      }|j                  }dt	        j
                  d	dgt        j                  
      i}t        |      dk(  sJ d}||   ||   k(  j                         sJ y )NrX   r%   c   r'  X   r  r  r   r   r   )	r	   r  r4   rC  r8   r   rF   rt   rF  )r?   r   r   r   r   s        r   6test_group_on_two_row_multiindex_returns_one_tuple_keyr  	  s    	!!"-QQR/HI	JB	sCj	!B
**c3Z
 C[[F!Qrxx89Hv;!
C3K8C=(--///r   zklass, attr, valuer   r2  rU   rW  r  c                     t        dgdgdgd      }|dk7  r|j                  d      } |j                  di ||i}| t         u r|dg   n|d   }t        ||      t        ||      k(  sJ y )	NrX   r%   rL   r'  r   r  r  )r  )r	   r  r4   r7  )r  r  r   r?   r   r   s         r   #test_subsetting_columns_keeps_attrsr  	  s{    & 
!A3aS1	2Bv~\\#rzz/$/H % 2Xse_F64 GHd$;;;;r   c                  D   t        dgdgdgd      } d}t        j                  t        |      5  | j	                  g dd      }d d d        d	}t        j                  t        |      5  d
dg   j                          d d d        y # 1 sw Y   ExY w# 1 sw Y   y xY w)NrX   r%   rL   r-   rN  rV   r  r   z'Cannot subset columns when using axis=1r   r   )	r	   r:   ru   rv   r4   r|   r}   r  r\   )r?   r   r   rW   s       r   test_subsetting_columns_axis_1r  
  s    	!A3aS1	2B
7C		#	#M	= *JJyqJ)*5E	z	/ 	3* * * s   B
+B
BBr   )r\   anyr  c                     t        dgd      }t        dgg|      }|j                  dg      } t        ||              j                  }t        j                  ||       y )Nr  rJ  r  rX   r  )r   r	   r4   r7  r   r:   r  )r   r   r?   r   r   s        r   #test_groupby_column_index_name_lostr  
  sX     cU'H	QC5(	+BQCJ&WZ&(00F&(+r   infer_stringpyarrow)marksc                    | rt        j                  d       t        g dg dg dd      j                  t              }g d|_        t        j                  d|       5  |j                  g d      j                         }d d d        t        g d	gt        j                  d
g      g dt              }t        j                  |       y # 1 sw Y   LxY w)Nr  )r   r   r   r8  r  r  r-   )r   r   r   zfuture.infer_string)r   r   r   r   )r   r  rX   r   )r,   r   rE   )r|   importorskipr	   r   r   r   r.   r  r4   r  r8   r   r:   r;   )r  r?   r   r   s       r   test_groupby_duplicate_columnsr  
  s     I&	")=LQ
fVn  !BJ			0,	? 0L)--/0	rxx}oVH &(+0 0s   "CCc                      t        g dg dd      } d| j                  _        | j                  d      j	                         }t        dd	gd
dgd      }d|j                  _        t        j                  ||       y )Nr  r  )r  r  r,   rj   )r  r  r   r  r%   r   rX   )r   r,   rj   r4   lastr:   ry   )r>   r   r   s      r   #test_groupby_series_with_tuple_namer  3
  sf    
\

CCCIIN[[q[!&&(Fq!fQF<H$HNN68,r   zfunc, valuesr\        @X@     X@rk   g     @8@g     8@c                     g d}t        ddgdz  ||d      } t        |j                  d      |              }t        ||dt        ddgd      	      }t	        j
                  ||       y )
N 7yACr  a   b    7y1r  r  r  rX   r%   r   r   r  r  r   r  r  r+   )r	   r7  r4   r   r:   r;   )r   r  r   r?   r   r   s         r   )test_groupby_numerical_stability_sum_meanr  =
  sh    
 <D	aVaZd>	?B/WRZZ($/1FvF35!Qg;VWH&(+r   c                      g d} t        ddgdz  | | d      }|j                  d      j                         }dgdz  dd	gz   d
dgz   ddgz   }t        ||d      }t        j                  ||d       y )Nr  rX   r%   r   r  r   r  g07yACg17yACga7y1Cgb7y1Cr  r  r  T)check_exact)r	   r4   r  r:   r;   )r   r?   r   exp_datar   s        r   'test_groupby_numerical_stability_cumsumr  I
  s    ;D	aVaZd>	?BZZ '')F	
i++y).DDd|S  xh78H&(=r   c                  ~   t         j                  j                  d      j                  d      } t	        |       }t        d      D ]!  }t         j                  |j                  ||f<   # d|d<   |j                  d      }|j                  d      }|g d   j                  d      }t        j                  ||       y )	Nr%   )r$   r$   r$   rX   r   FskipnarI  )r8   rp   rq   r   r	   r6   r   r3   r4   r  r:   r;   )rs  r?   ir@   r   r   s         r    test_groupby_cumsum_skipna_falser  U
  s    
))


"
2
26
:C	3B1X 1 BsG	CB
))5)
!C/")))7H#x(r   c            	      *   t        dd      } t        |       | d   z
  }t        j                  |d<   t	        d|d      }|j                  d      }|j                  d	d
      }t	        d|d   |d   t        j                  |d   |d   dz  gi      }t        j                  ||       |j                  d	d	      }t	        d|d   |d   t        j                  t        j                  t        j                  gi      }t        j                  ||       y )NrI  r$   r"   r   r%   rX   rY  r   FT)rW  r  r   r   )	r   r   r.   r2   r	   r4   r  r:   r;   )rw  r>   r?   r@   r   r  s         r   test_groupby_cumsum_timedelta64r  e
  s    
\1
-C
+A
CVVCF	%	&B	CB
))t)
4C
S3q63q62663q63q6A:FG
HC#s#
))u)
5C
S3q63q6266266266BC
DC#s#r   c                     | }|j                  d      j                         }|j                  |j                        j                         }t        j                  ||       y )Nr   r  )r4   rk   r,   r:   ry   )(rand_series_with_duplicate_datetimeindexdupsr   r   s       r   !test_groupby_mean_duplicate_indexr  w
  sK    3D\\\"'')F||DJJ',,.H68,r   c                  b   t        g dt        j                  t        j                  t        j                  g      } | j                  | j                        j                         }t        g t        g t        j                        t        j                        }t        j                  ||       y )Nr  r   rM   )r   r8   r   r4   r,   r\   r   rH   rF   r:   ry   r#  r   r   s      r    test_groupby_all_nan_groups_dropr  ~
  si    y26626626623AYYqww##%Fbb

 ;288LH68,r   c                    t        g g d      }|j                  ddg|       }|j                  |      }| rt        g g gg g gddg      }|sdgng }nt	        d	      }|sg dnddg}t        g ||
      }t        j                  ||       y )Nr-   r  r   r   r   rV  r  r)   r   r   )r	   r4   r\   r   r   r:   r;   )r   rW  r?   r@   r   r,   r   r   s           r   test_groupby_empty_multi_columnr  
  s     
O	4B	S#J	2BVVV.FB8b"Xc3Z@+3%1)5/C:WE:H&(+r   c                      t        ddggddggddggddgggddg      } t        dddgddggit        ddgd	d
            }| j                  dg      }|j                         }t	        j
                  ||       y )Nr^  rX   Wre   rf   MWr   r  r   rE   rj   r+   r  )r	   r   r4   r\   r:   r;   )r?   r   r@   r   s       r   *test_groupby_aggregation_non_numeric_dtyper  
  s    	
scA3Z#tsRDk:T3K
B 1a&2r(#	
 S#JhT:	H 
v	BVVXF&(+r   c                     t        g dt        dd      D  cg c]  } t        | d       c} t        dd      D  cg c]  } t        | dz  d       c} d      }t        t        dd      D  cg c]  } t        | d       c} t        dd      D  cg c]  } t        | dz  d       c} d	t        d
dgdd            }|j	                  dg      }|j                         }t        j                  ||       y c c} w c c} w c c} w c c} w )NrX   r   rX   rX   r   rX   r\  daysre   r  r^   rK   r   r  r   rF   rR   r  r+   r  )r	   r6   r   r   r4   r\   r:   r;   r  r?   r   r@   r   s        r   0test_groupby_aggregation_multi_non_numeric_dtyper  
  s    	 05a<1)Av&<5:1a[A)AFF+A	

B 05a<1)Av&<5:1a[A)AFF+A	
 QF'4H 
u	BVVXF&(+ =A =As   C8
C=,DD
c            
      x   t        g dt        dd      D  cg c]  } t        | d       c} t        t        dd            d      }t        t        dd      t        dd      gddgdt	        d	dgd
d            }|j                  dg      }|j                         }t        j                  ||       y c c} w )Nr  rX   r\  r  r  r^   r   r   r   rF   rR   r  r+   r  )	r	   r6   r   r5   r   r4   r\   r:   r;   r  s        r   7test_groupby_aggregation_numeric_with_non_numeric_dtyper  
  s    	 05a<1)Av&<eAqk"	

B F#Yq&%9:!QHQF'4H
 
u	BVVXF&(+ =s   B7
c                     dddddddddddddddg} t        |       }||d   dk(     }|j                  d      }|j                         }t        g d	gg d
t        dgd            }t	        j
                  ||       y )NFTg      %@)
filter_colgroupby_colbool_col	float_colg     4@g     >@r  r  )r  r  g$+H@)r  r  r	  r  r   )r	   r4   r7   r   r:   r;   )dictsr?   	df_filterdfgbr   r   s         r   test_groupby_filtered_df_stdr  
  s     TtRVWDdQUVDdQUVE
 
5	B2l#t+,I]+DXXZF	7TF/H
 &(+r   c            	         t        t        t        d            t        t        g d      d      t	        j
                  g dddg      d	      } | j                  d
dgd      j                  }d
t        d      ft        j                  dg      dt        d      ft        j                  dg      dt        d      ft        j                  dg      i}||k(  sJ y )Nabc)rv  z
2018-02-01z
2018-03-01categoryr   )r*   r   rX   r   rX   )
categoriesr'  r  r  FrW  z2018-01-01 00:00:00z2018-02-01 00:00:00r  z2018-03-01 00:00:00r%   )r	   r   r5   r   r   
from_codesr4   rC  r   r8   r   r  s      r   2test_datetime_categorical_multikey_groupby_indicesr  
  s    	U$FG  ''
1vF	
	
B ZZc
UZ3;;F	i-./1#	i-./1#	i-./1#H
 Xr   c                     dgdz  dgdz  z   } t         j                  t         j                  dddgt         j                  ddddgz   }t        | |g      j                  }dd	g|_        d
}t        j                  t        |      5  |j                  d      d	   j                  dd      j                          d d d        y # 1 sw Y   y xY w)NAlicer$   BobrX   r%   rL   r   rj   r  z@^[a-zA-Z._]*\(\) got an unexpected keyword argument 'min_period'rV   )window
min_period)r8   r   r	   r   r   r|   r}   r  r4   rollingr\   )name_lval_ltest_dfresult_error_msgs       r   #test_rolling_wrong_param_min_periodr  
  s    Y]eWq[(FVVRVVQ1%Aq!(<<E(**GuoGO 	L  
y(8	9 M&..aA.FJJLM M Ms   4CC
r/  c                 $   t        g dg dt        g d|       d      }t        j                  dd}|j                  dg      j	                  |      }t        d	d
gd	gddgddgd      j                  d      }t        j                  ||       y )N)Thomasr!  Thomas John)i  i    )sadhappyr%  r   )NameCreditMoodr\   )r(  r'  r&  r%  r$  i	  r#  r!  r"  )r(  r'  r&  )r	   r   moder4   rx   r  r:   r;   )rE   r?   aggregate_detailsr   expected_results        r   .test_by_column_values_with_same_starting_valuer,  
  s     
7'4EB	

B "(>ZZ!%%&78Fu%w/Sk}-	
 i  &/2r   c                     g dg dg} t        dt        j                  | ddg            }|j                  ddg	      j	                         }t        dd
gt        j
                  ddgddg            }t        j                  ||       y )N)NrX   r   rX   )r%   rL   r%   rL   rX   r  r  r  r+   r   r  r%   )r  r%   )r  rL   )r   r   r  r4   r\   r  r:   ry   )rs  r>   r   r   s       r   #test_groupby_none_in_first_mi_levelr.  (  s    L
)C
*00S#JG
HC[[1v[&**,F	
A
&&(';C:NH 68,r   c                      t        g dg dg dd      } | j                  d g      j                         }t        ddgdd	gd
t        ddgd             }t	        j
                  ||       y )Nr  )rX   rX   r%   rL   )r   r$   r\  r^   )Nr  r  r  r%   r$   rK      r  rX   r  r+   )r	   r4   r\   r   r:   r;   r  s      r   test_groupby_none_column_namer1  3  sb    	,\M	NBZZD6Z"&&(F1vQG4E1a&t<TUH&(+r   	selectionc                 
   t        ddgt        j                  dgt        j                  dgdddg      }| |j                  dg      n|j                  dg      |    }|D cg c]  \  }}|	 }}}d	d
g}||k(  sJ y c c}}w )NrX   r%   r$   r'  rR   r   r+   r  rX   )r%   )r	   r8   r   r4   )r2  r?   r   r   rD  r   r   s          r   !test_single_element_list_groupingr5  ;  s     
!QrvvqkDSRUJ	WB#,#4bjj#"**cU:KI:VG '(fc1c(F(d|HX )s   $A?c                     t        g dg dd      } | d   j                  d      | d<   t        g dg dd      }|d   j                  d      |d<   | j                  dd	      }|j                         }t	        j
                  ||       y )
N)r  r  r  r  )rX   r%   rL   r%   )str_colnum_colr7  stringr'  )r+  r  r,  Fr   )r	   r   r4   rk   r:   r;   )r?   r   r   r   s       r   test_groupby_string_dtyper:  F  s    	3M	NByM((2ByM
 '	
	H #9-44X>HYjjUj3G\\^F&(+r   zlevel_arg, multiindex)r   F)r;  Tc                    t        ddgddgddgddd	g
      }|r|j                  ddg      }d}t        j                  t        |      5  |j                  |       D cg c]  \  }}|	 c}} d d d        y c c}}w # 1 sw Y   y xY w)NrX   r%   rL   r   r$   r\  r'  rR   r   r+   r  r  zCreating a Groupby object with a length-1 list-like level parameter will yield indexes as tuples in a future version. To keep indexes as scalars, create Groupby objects with a scalar level parameter instead.rV   r  )r	   r  r:   ru   rv   r4   )	level_argr!  r?   r*  r   rD  s         r   7test_single_element_listlike_level_grouping_deprecationr>  Z  s    
 
!Qq!fAq6:3*	MB\\3*%	,  
	#	#M	B 8::I:67a78 878 8s   B"A;.B;BB
)r\   r  cumprodr  c                     d}t        d|gd      } t        |j                  d      |              |z
  }t        ddgit        dgd            }| d	v r|j	                  d
      }t        j                  ||       y )Nl   L33ffrX   r  r  r  r   r  r+   )r  r?  Tr  )r	   r7  r4   r   r  r:   r;   )r   r  r?   r   r   s        r   #test_groupby_avoid_casting_to_floatrA  l  s     C	#'	(B+WRZZ_d+-3F#s5!3+?@H$$''T'2&(+r   z	func, val)r\   rL   )r  r%   c                     t        dddt        j                  gd|       } t        |j	                  d      |             }t        d|git        dgd|       |       }t        j                  ||       y )	NrX   r%   r  r   r  r  r  rM   )r	   r.   NAr7  r4   r   r:   r;   )any_numeric_ea_dtyper   r  r?   r   r   s         r   test_groupby_sum_support_maskrE  x  sp     
!Q/7K	LB+WRZZ_d+-F	seQCc)=>"H
 &(+r   z
val, dtype)o   rN  )   uintc           	      6   t        d| | gd| d      }|j                  d      j                         }t        d| dz  git        dgd| d      | d	
      }t	        j
                  ||       |j                  d      j                         }t        d| | dz  gi| d	      }t	        j
                  ||       |j                  d      j                         }t        d| | z  git        dgd| d      | d	
      }t	        j
                  ||       y )NrX   r  8r   r  r  r%   r  64rM   )r	   r4   r\   r   r:   r;   r  r  )r  rE   r?   r   r   s        r   test_groupby_overflowrL    s    
#s,ugQK	@BZZ_  "F	sQwiQCcE7!5rlH
 &(+ZZ_##%F#S1W~.rlCH&(+ZZ_!!#F	sSykQCcE7!5rlH
 &(+r   zskipna, val)TrL   c                     t        ddt        j                  dgd|       }|j                  d      j	                  |      }t        ddt        j                  |gi|       }t        j                  ||       y )NrX   r%   r  r   r  r  r  )r	   r.   rC  r4   r  r:   r;   )rD  r  r  r?   r   r   s         r   test_groupby_cumsum_maskrN    sl     
!RUUA/7K	LBZZ_##6#2F	q"%%o"H &(+r   zval_in, index, val_out)r  r  r,  r  r6  )r   r   r   r  blah)r,  r  r6  r,  )r  r  r,  r  r6  g      @)r   r   r   r  rO  rO  )r,  r  g      &@r,  c                 |   t        | dt        |d            }|j                  d      j                         }t        |dt        g dd            }t	        j
                  ||       |j                         j                  d      j                         }|j                         }t	        j                  ||       y )Nr  rO  r  )r   rj   r,   )r   r  rO  r   )r   r   r4   r\   r:   ry   r0   r;   )val_inr,   val_outseriesr   r   s         r   (test_groupby_index_name_in_index_contentrT    s    " heE6OPF^^F#'')F1?H
 68,__&&v.224F  "H&(+r   r-  )rX   re       r  r  c                     t        ddg| z  d      }|d   j                  d      |d<   |j                  d      j                         }t        d| git	        dgd            }t        j                  ||       y )NrX   T)r  rM  rM  r  r  r+   )r	   eqr4   r\   r   r:   r;   )r-  r?   r   r   s       r   test_sum_of_booleansrX    sq     
1tfqj9	:BFt$BvJZZ&**,F&1#eQCm.LMH&(+r   z<ignore:invalid value encountered in remainder:RuntimeWarning)r@  tailr  r   r  c                    t        dt        j                  dt        j                  dgt        d      d      }| dk(  r# t	        |j                  d      |       d	      }n  t	        |j                  d      |              }| d
v r,t        dg di      j                  t        g dd            }nt        g dg ddg d      }t        j                  ||       y )Nr  r  r  r$   rY  r  r   r   )r-  )r   r  r   r  r'  r  r+   )
r	   r8   r   r6   r7  r4   r  r   r:   r;   )rS  r?   r   r   s       r   test_groupby_method_drop_nar[    s     
#rvvsBFFC8uQxH	IB1C&1A61C&13""c9-.88?-
 ?C9U&(+r   c                     t        j                  ddd      } t        t        d            dz  }| j	                         }|j                  |      }t        j                  t        d      5  |j                          d d d        t        j                  t        d      5  |j                          d d d        t        j                  t        d	      5  |j                          d d d        t        j                  t        d
      5  |j                          d d d        |j                         }|dd  }t        t        d      t              |_        t#        j$                  ||       |j'                         }|d d }t        t        d      t              |_        t#        j$                  ||       y # 1 sw Y   ;xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w)NrI  r  r   r   re   z+Period type does not support sum operationsrV   z.Period type does not support cumsum operationsz,Period type does not support prod operationsz/Period type does not support cumprod operationsir   )r.   period_ranger5   r6   	to_seriesr4   r|   r}   r  r\   r  r  r?  r  r   rN  r,   r:   ry   r  )pigrpsr>   r@   r   r   s         r   test_groupby_reduce_periodra    sq   	s	=Bb	?RD
,,.C	T	B	y(U	V 
	I
  			 
y(V	W 
		J
  	


 &&(C34yH59C0HN3)
&&(C3BxH59C0HN3)+    s0   ,F6 GGG6G GGG%c                      t        g dg      } g d| _        | j                  | d         }|j                  }| j	                  g dd      }t        j                  ||       y )N)r   rX   r%   rL   rm  rX   )r   r%   rL   r   )r	   r   r4   _obj_with_exclusionsrE  r:   r;   )r?   r@   r   r   s       r   *test_obj_with_exclusions_duplicate_columnsrd    sT    	L>	"BBJ	BqE	B$$Fwwyqw)H&(+r   c                 P   ddddddg}t        |      }|j                  ddd      }| r9|j                  d	
      }t        ddgdg      }t        j                  ||       y t        j                  t        d      5  |j                  | 
       d d d        y # 1 sw Y   y xY w)Nr   r   r  cardarr  F)r   r2  TrV  r  z(could not convert string to float: 'bar'rV   )r	   r4   r7   r:   r;   r|   r}   r  )rW  dicts_non_numericr?   r  r   expected_dfs         r   'test_groupby_numeric_only_std_no_resultrj    s      %51U3KL	$	%B::cE:6Dt,>
fk2]]H
 	0 HH,H/	0 	0 	0s    BB%c                     t        g dg dd      } t        j                  | d   t        j                  ddd            }| j                  |d	gd
      d   j                  d      }t        t        ddd      t        ddd      t        ddd      t        ddd      gd      }g d}t        j                  ||gdd	g      }t        t        j                  dt        j                  dt        j                  dt        j                  dt        j                  t        j                  dt        j                  t        j                  g      |d      }t        j                  ||       y )N)皙?皙?333333?皙ٿ      ?)r  r  r  r  r  )rR   wrR   r   rX   r$   r   rq  Fr  rk   gDlٿrl  r  )closedrm  rn  rp  T)rc  r'  r  ro  r  )r	   r.   qcutr8   linspacer4   rx   r   r   r   r  r   r   r   r:   ry   )r?   qqr   categorical_index_level_1index_level_2r  r   s          r   /test_grouping_with_categorical_interval_columnsrx  $  s;   	3:ST	UB	CBKK1a0	1BZZS	EZ237;;FCF +VS1S#g.S#g.S#g.		
 ! $M		 	 	"M23*
B 
	
  %H( 68,r   bug_varc                     t        d| | | t        j                  gi      }|j                  d       }|j	                  d      }t        | | | d gdg      }t        j                  ||       y )Nr   c                     | S rZ   rP   rQ   s    r   rS   z;test_groupby_sum_on_nan_should_return_nan.<locals>.<lambda>Q  s     r   rX   )	min_countr  )r	   r8   r   r4   r\   r:   r;   )ry  r?   r  r   ri  s        r   )test_groupby_sum_on_nan_should_return_nanr}  M  se     
C'7GRVV<=	>B::k"DXXX"FWgw=uMK&+.r   )r  corrcummaxcumminr?  r5  rankr   r  r  rF  r  rT  r   r  r  
pct_changec                 
   t        dt        |             }|| _        | j                  dg      dg   }| dg   j                  | d         } t	        ||             } t	        ||             }t        j                  ||       y )N2014r"   r   r)   )r   rt   r,   r4   r7  r:   r;   )r?   rS  rngr   g_expr   r  s          r   #test_groupby_selection_with_methodsr  X  s    0 VSW
-CBH


C53% AuIbg&E '!V

C
 '%
 
"C #s#r   c                 \   t        dt        |             }d| j                  _        || _        | j                  dg      dg   }| dg   j                  | d         }d}t        j                  t        |      5  t        j                  |j                  d      |j                  d             d d d        d	}t        j                  t        |      5  t        j                  |j                  |j                         d d d        t        j                  |j                  d
       |j                  d              t        j                  |j                  d      j                         |j                  d      j                                t        j                  |j                  d      j                         |j                  d      j                                t        j                  |j!                  d       |j!                  d              y # 1 sw Y   gxY w# 1 sw Y   $xY w)Nr  r"   r   r   r)   r  rV   r   z%DataFrameGroupBy.dtypes is deprecatedc                 "    | j                         S rZ   r[   rQ   s    r   rS   z6test_groupby_selection_other_methods.<locals>.<lambda>  s    AEEG r   c                 "    | j                         S rZ   r[   rQ   s    r   rS   z6test_groupby_selection_other_methods.<locals>.<lambda>  s    AEEG r   r   c                     t        |       dk(  S rO   r#  rQ   s    r   rS   z6test_groupby_selection_other_methods.<locals>.<lambda>  s    3q6Q; r   c                     t        |       dk(  S rO   r#  rQ   s    r   rS   z6test_groupby_selection_other_methods.<locals>.<lambda>  s    A! r   )r   rt   r   rj   r,   r4   r:   ru   rv   r;   r  r   rz   resamplerk   rx  r(  )r?   r  r   r  r  r   s         r   $test_groupby_selection_other_methodsr  ~  s   
VSW
-CBJJOBH


C53% AuIbg&E 7H		#	#M	B <
ahhqk5<<?;<
1C		#	#M	= 6
ahh56!''"34ekkBS6TU!**S/..0%..2E2J2J2LM!**S/..0%..2E2J2J2LM	&'6K)L< <6 6s   :5H+H!H!H+c                 F   t        g d      j                  |       }t        g dg d|d      }t        ddd|       }t        |g dg dd	      }|j	                  t        d
d            }|j                         j                         }t        j                  ||       y )N)z2016-08-31 22:08:12.000z2016-08-31 22:09:12.200z2016-08-31 22:20:12.400)r  r  r,  )quantquant2time2z2016-08-31 22:08:00r0  1min)r#   r   unit)rX   rX   r   r   r   r   r   r   r   r   r   r   rX   )r  r  r  r  )r   r   )
r   as_unitr	   r   r4   r
   r  r  r:   r;   )r  idx2	test_datar  expected_outputr@   r   s          r   test_groupby_with_Time_Grouperr    s    	
 gdm 	 !_tLI ,bvDQE<=	
O 
		7wV<	=BXXZ##%F&/2r   c                      t        g dt        dd      d      } | j                  |       j                         }t        ddgd	      }d|j                  _        t        j                  ||       y )
Nr  z
2022-01-01rL   r"   janr  r%   rX   r  )r   r   r4   r  r,   rj   r:   ry   r  s      r   1test_groupby_series_with_datetimeindex_month_namer    sY    y
< C%PAYYq\!Fq!f5)HHNN68,r   test_serieszkwarg, value, name, warn)r  r  rX   Nr  r4  )r   r   rX   Nc                    t        dg dit        g dd            }| r|d   } |j                  di ||i}d}t        j                  ||      5  |j                  |      }d d d        | rt        d	d
gt        ddgd      d      }	nt        dd	d
git        ddgd            }	t        j                  |	       y # 1 sw Y   ^xY w)Nr  r  r  r  r  r+   z&you will need to pass a length-1 tuplerV   rL   r   rX   r  rP   )r	   r   r4   r:   ru   r  r   rd  )
r  kwargr   rj   r   r  r@   r   r   r   s
             r   $test_depr_get_group_len_1_list_likesr    s     S)$E)#,F
GC#h		&u~	&B
2C		#	#D	4 $d#$1a&q!f3(?cJcAq6]%AS2IJOOFH%$ $s   CCc                      t        t        t        j                  g      dgd      } | j	                  ddgdd      j                         }t        dg      }t        j                  ||       y )NrX   r  r  r  F)r  rW  r   )	r	   r   r8   r   r4   r  r   r:   ry   r  s      r   test_groupby_ngroup_with_nanr    sZ    	bffX.aS9	:BZZc
55ZAHHJFqc{H68,r   c                  6   t        g dg dg dg dg dd      } t        j                  t        d      5  | j	                  d	g d
      }d d d        j                  d	      }t        g dg dd      }t        j                  ||       y # 1 sw Y   CxY w)N)r   rL   r%   rL   )r   rX   r\  r^   )rL   r   r%   re   )rX   r0  r\  r  )r$   r\  i)ri  rj  col3col4col5
deprecatedrV   rX   )rX   r%   rL   r%   rX   )r   r  )ri  r  )r	   r:   ru   rv   r4   r  r;   r  s       r   test_get_group_axis_1r    s    	  !""	

B 
	#	#M	F 9**!*89q!F "	
H &(+9 9s   BBc            	          t        dddddt        j                  t        j                  gig d      } | j                  d	      j	                         }t        dg d
ig d      }t        j                  ||d       y )Nr  rX   r%   rL   r   r  r+   r   r  )rX   r%   rL   r   r%   rL   Fr  )r	   r8   r   r4   r  r:   r;   r  s      r   (test_groupby_ffill_with_duplicated_indexr    sg    	C!Q1bffbff56>P	QBZZaZ &&(F#12:LMH&(>r   c           	         t        t        j                  t              rJ t	        t        d      t        d      d d gt        d      t        d      t        d      t        d      gd      }|j                  dd	      }| r|d
   }|j                  j                  }t        t        d      d gd      }t        j                  ||       y )NrX   r%   rL   r   r$   )r   r   r   F)r  r   r  )rv  decimalInvalidOperationr  r	   r   r4   r  result_indexr   r:   r  )r  r?   r@   r   r   s        r   test_decimal_na_sortr    s    
 '22I>>>	AJ
D$7aj'!*gaj'!*E	

B 
E%	(B[[[%%Fgaj$'e4H&(+r   )r   r  r   r}  numpyr8   r|   pandas.errorsr   r   pandas.util._test_decoratorsutil_test_decoratorstdpandas.core.dtypes.commonr   pandasr.   r   r	   r
   r   r   r   r   r   r   r   r   r   pandas._testing_testingr:   pandas.core.arraysr   pandas.core.commoncorecommonr  markfilterwarnings
pytestmarkr   rD   parametrizer   r   r   r   r   r   r   r  r
  r  r-  r9  rL  rT  rZ  rk  rm  rx  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r	  r  r  r  r$  r(  r-  r4  r;  rE  rG  rW  rZ  r^  ra  rj  rl  rn  ru  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r*  r/  r?  rH  r]  r   rk  ro  rq  rs  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  param
skip_if_nor  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r,  r.  r1  r5  r:  r>  rA  rE  rL  rC  rN  rT  rX  r[  ra  rd  rj  rx  r}  r  r  r  r  rv   r  r  r  r  r  rP   r   r   <module>r     s      	   * ) 5      +    [[''(ST
,6 "JK>+ L>+BD-.E&P2Ij dE]3) 4),$, F,,6:'z 0%&P#.868+-+`4n  13EFG- H-@- 0*@+F,D.2&,.,	D60	+<4 
EN,	, : $70 8	
0:'0(+((..@-,$,0'*;Z,,(
,-"(.,	,/.<	-B*
,<&~	8#$*0Z&-0,- S3*$56 7@#$.@*56$*.4b-:, Xy68"4vy6IJ \?\?4ST	6
$ S3%L13%#s!45		
		QC	Q1a|,ac:!G$!I&%	*	  : #;<
Cx& =; 6 2Fx&v	+-&",8- - , cU|4- 5-6  3434		
 343434343434		
 343434343434		
7(+X,Y+X,,--*&Z&$R, 
"
"0 	GS!	J&	FE"	L%(	J%	He$	#	U#		u%	T"	5!"<#"< !89, :, Ty!9:,, - edD\*VeT],CD,,	>) $$-- $7, 8,,$,.,(,(*M ,MBMM)4LM33.-, tS3%&89 :,( sElMQC;U88 !EF, G, z;&?@	, A	, m'DE, F,0 UBEEN(CD, E,  &0 	
 +8!	
,,  45, 6, B #KL, M,$*>, $70 80"&-R QH-/ ./ ,$-,$ 438- u6	ua'	udD!	1#q-(	1#tT"
&
 7& -,.? u6, 7,r   