
    m*iD%                       S SK J r   S SKrS SKrS SKrS SKJrJrJrJ	r	J
r
JrJr  S SKJr  S SKJr  S SKJr  \R(                  4S jr0 S\R(                  _S\R(                  _S	S _S
\R(                  _S\R(                  _S\R(                  _S\R(                  _S\R(                  _S\R(                  _S\R(                  _S\R(                  _S\R(                  _S\R(                  _SS _S\R(                  _S\R(                  _S\R(                  _S \R(                  \R(                  S \R(                  S.Er\R.                  R1                  S5      S 5       rS rS rS r\R.                  R;                  SSS /5      S! 5       r\R.                  R1                  S5      S" 5       rS# r S$ r!S% r"\R.                  R;                  S&S'/ S(Q\" / S)QS'S*94S'S+// S,Q\" / S)QS'S*9\	" / S-Q5      /4S'S.// S/Q\" / S)QS'S*9\" / S)QS'S*9/4/5      \R.                  R;                  S0SS /5      S1 5       5       r#S2 r$S3 r%S4 r&\R.                  R;                  SSS /5      \R.                  R;                  S5SS /5      \R.                  R;                  S6SS /5      S7 5       5       5       r'S8 r(S9 r)S: r*S; r+S< r,\R.                  R;                  S=S>/\" \-" S?5      5      S S@/SASB/SC.4\" \-" S?5      5      R]                  SD 5      SB/S SA/SC.4\" \-" SE5      5      S S@/SASB/SC.4/5      SF 5       r/SG r0SH r1SI r2\R.                  R;                  SJSSKS/4SSLSM/4SSLS/4SSKSM/4/5      SN 5       r3SO r4SP r5SQ r6\R.                  R;                  SSS /5      SR 5       r7\R.                  R;                  SSS /5      SS 5       r8ST r9SU r:SV r;\R.                  R;                  SWS\" \
Rx                  " \" / SXQSYSZ9/ S[Q/S'S+/S\9/ S)QS]S^94S \" \" / SXQSYSZ9/ S[Q/ S)QS_.5      4/5      S` 5       r=\R.                  R;                  SaS\R(                  \R|                  /5      Sb 5       r?\R                  Sc 5       rA\R.                  R;                  SdSeSf/5      Sg 5       rB\R.                  R;                  SdSeSf/5      \R.                  R;                  S5S S/5      Sh 5       5       rC\R.                  R;                  SiS\
Rx                  " \	" Sj/S?-  Sk/S?-  -   SYSlSm9\	" / SnQSYSoSm9\	" SS/S?-  5      /5      / SpQ4S \
R                  " \" SjSk/S Sq9\" / SrQS Sq9\	" SS/5      // SsQS\9SBSBS?S?\R(                  \R(                  SASA\R(                  \R(                  S@S@/4S\
R                  " \" SjSk/S Sq9\" / SrQS Sq9\	" SS/5      // SsQS\9SBSBS?S?\R(                  \R(                  SASA\R(                  \R(                  S@S@/4/5      St 5       rESu rF\R.                  R;                  Sv/ SwQ/ SxQ/5      Sy 5       rGSz rHS{ rIS| rJS} rKS~ rL\R.                  R;                  S5S S/5      S 5       rM\R.                  R1                  S5      S 5       rN\R.                  R;                  S\R                  / SXQ4\R                  / S[Q4/5      S 5       rQS rR\R.                  R;                  SSS/5      S 5       rSS rTS rUS rVS rWS rX\R.                  R;                  SSS/5      S\YS5\Z4S j5       r[\R.                  R;                  SSS/5      S\YS5\Z4S j5       r\S r]\R.                  R;                  SSS/5      S 5       r^S r_S r`S ra\R.                  R;                  S/ SQ5      \R.                  R;                  SSS /5      S 5       5       rb\R.                  R;                  SSS/5      \R.                  R;                  SSS /5      S 5       5       rc\R.                  R;                  S/ SQ5      \R.                  R;                  SSS/5      \R.                  R;                  SSS /5      S 5       5       5       rd\R.                  R;                  S/ SQ5      \R.                  R;                  S/ SQ5      \R.                  R;                  SSS /5      S 5       5       5       re\R.                  R;                  S/ SQ5      S 5       rf\R.                  R;                  SS'S+S'S+//5      \R.                  R;                  SS'S+S'S+//5      S 5       5       rg\R.                  R;                  S0SS /5      \R.                  R;                  SS/SS.//5      S 5       5       rhg)    )datetimeN)CategoricalCategoricalIndex	DataFrameIndex
MultiIndexSeriesqcut)SeriesGroupBy)get_groupby_method_argsc                 ,   S n[         R                  " [        XA5      US9n[        U[        5      (       aB  0 nU R
                   H  nX   R                  XSU   S9Xg'   M     [        XeS9R                  5       $ U R                  XSS9R                  5       $ )zhReindex to a cartesian production for the groupers,
preserving the nature (Categorical) of each grouper
c                     [        U [        [        45      (       aH  U R                  n[        R                  " [
        R                  " [        U5      5      XR                  S9n U $ )N
categoriesordered)	
isinstancer   r   r   
from_codesnparangelenr   )ar   s     e/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/pandas/tests/groupby/test_categorical.pyf)cartesian_product_for_groupers.<locals>.f   sK    a*K899J&&		#j/*z99A     names
fill_valueindex)	r   from_productmapr   dictcolumnsreindexr   
sort_index)resultargsr   r   r   r!   rescols           r   cartesian_product_for_groupersr,      s    
 ##CL>E*d## >>C{**5_*MCH "*5577>>%>7BBDDr   allanycountcorrwithfirstidxmaxidxminlastmaxmeanmedianminnthnuniqueprodquantilesem)sizeskewstdsumvarz7ignore:invalid value encountered in cast:RuntimeWarningc                     [        U R                  S5      nS nU R                  USS9R                  R	                  U5      nUR
                  R                  S   S:X  d   eg )N   c                     U R                  5       U R                  5       U R                  5       U R                  5       S.$ )Nr8   r5   r/   r6   rF   )groups    r   	get_stats2test_apply_use_categorical_name.<locals>.get_statsR   s0    99;99;[[]JJL	
 	
r   Fobservedr   C)r
   rL   groupbyDapplyr!   r   )dfcatsrH   r(   s       r   test_apply_use_categorical_namerR   N   sX    a=D
 ZZuZ-//55i@F<<a C'''r   c           	         [        / SQ/ SQSS9n[        / SQUS.5      n[        [        S5      SSS	9n[        S
SSS[        R
                  /0US9nUR                  SSS9R                  5       n[        R                  " XT5        [        / SQ/ SQSS9n[        / SQ/ SQSS9n[        Xg/ SQS.5      nUR                  SSS9n	[        / SQSSS	9n
[        S[        / SQU
S905      nU	R                  SS9n[        R                  " XT5        [        SS/SS/SS//SS/S9n[        UR                  5      US'   UR                  S/SS9nUR                  S  5      n[        R                  " X[S/   5        UR                  S5      nUR                  S!S/   n[        R                  " XT5        S" nS#n[        R                   " ["        US$9   UR%                  U5      nS S S 5        UR                  S!S/   R'                  5       n[)        SS/SS%9Ul        U (       a  S&O[,        nUS   R/                  U5      US'   [        R                  " XT5        [        S
/ S'Q05      n[0        R2                  " UR4                  / S(QS)9nS*n[        R                   " ["        US$9   UR4                  R                  USS9R                  [        5      nS S S 5        [        R6                  " XXS
   5        [        R6                  " UR4                  R                  USS9R                  S+ 5      US
   5        S,n[        R                   " ["        US$9   UR                  USS9R                  [        5      nS S S 5        US
/   n[        R                  " XT5        UR                  USS9nUR                  S- 5      n[        R                  " XXS
/   5        UR                  S. 5      nS/n[        R                   " ["        US$9   UR                  [8        5      nS S S 5        UR                  [        R:                  R<                  5      nUR                  S0 5      n[        R                  " UUS
/   SS19  [        R                  " WUS
/   SS19  [        R                  " UUS
/   5        [        R                  " UUS
/   5        [        R6                  " UR4                  R                  USS9R?                  [        R@                  5      US
   5        [        R                  " UR                  USS9R?                  [        R@                  5      U5        [        S
/ S2Q05      n[0        R2                  " UR4                  / S3QS)9nS*n[        R                   " ["        US$9   UR4                  R                  USS9R                  [        5      nS S S 5        [        R6                  " XXS
   5        [        R6                  " UR4                  R                  USS9R                  S4 5      US
   5        S,n[        R                   " ["        US$9   UR                  USS9R                  [        5      nS S S 5        US
/   n[        R                  " XT5        [        R                  " UR                  USS9R                  S5 5      US
/   5        [        S
/ S6Q05      n[0        R2                  " UR4                  / S7Q[        [        S5      5      S89nUR                  USS9R%                  [B        5      n[        URD                  RF                  URD                  RH                  S99n[        / S6QUS9nS
UR*                  l%        [        R6                  " XT5        / S:Qn[        RL                  RO                  S5      RQ                  S!SS;S<9n[         RR                  " UUSS99n[        [        RL                  RO                  S5      RU                  S=5      5      nUR                  USS9R                  5       nUR                  [        RV                  " U5      SS9R                  5       n[        UURF                  SS9n
URY                  U
5      n[        R                  " XT5        UR                  USS9nUR[                  5       nUR\                  R_                  5       n[        RV                  " U5      Ra                  U5      nURa                  U5      n[        US/ S:QS>9nUR                  USSS?9R[                  5       n[        R                  " UU5        [         RR                  " [        Rb                  " S5      Re                  S@5      USS99n[        U5      n[        Rf                  " URi                  SSA9R*                  Rk                  S!5      U5        [)        / SBQS-  5      n[        Rf                  " URi                  SSA9R*                  Rk                  S5      U5        g ! , (       d  f       GNG= f! , (       d  f       GNl= f! , (       d  f       GN= f! , (       d  f       GNK= f! , (       d  f       GN= f! , (       d  f       GN= f)CN	r   r   r   brU   rU   crV   rV   r   rU   rV   dTr   	   rZ   rZ      r[   r[      rD      r   rU   abcdrU   namer   r   rZ   r[   rD   r    FrJ   r   r   rU   rU   r   rU   zrV   rX   rV   rX   rV   rX   yrZ   r[   r\   rD   ABvaluesrj   rl   )r\      r   numeric_onlyzJohn P. Doez	Jane Dove	person_idperson_namer%   c                     U $ N xs    r   <lambda>test_basic.<locals>.<lambda>~   s    1r   r   c                 >    U R                  S5      R                  S   $ )Nrq   r   )drop_duplicatesilocrv   s    r   r   test_basic.<locals>.f   s      /44Q77r   7DataFrameGroupBy.apply operated on the grouping columnsmatchra   str)r]         )r   
         (   )binsusing SeriesGroupBy.sumc                 .    [         R                  " U 5      $ rt   r   rA   xss    r   rx   ry          RVVBZr   zusing DataFrameGroupBy.sumc                 ,    [         R                  " U SS9$ Nr   axisr   r5   r   s    r   rx   ry      s    bffRa&8r   c                 ,    [         R                  " U SS9$ r   r   r   s    r   rx   ry      s    rvvbq'9r   zusing DataFrameGroupBy.maxc                 @    [         R                  R                  U 5      $ rt   )r   maximumreducer   s    r   rx   ry      s    rzz'8'8'<r   )check_dtype)r]   r   r   )ir   r   r   r   r   c                 .    [         R                  " U 5      $ rt   r   r   s    r   rx   ry      r   r   c                 .    [         R                  " U 5      $ rt   r   r   s    r   rx   ry      s    266":r   )rZ   r   r   r   r   rZ   r[   r\   rD   )labelsr   foobarbazquxd   r>   r   rD   )r   r   sortrK      future_stackr/   r6   r@   r8   z25%z50%z75%r5   )6r   r   r   listr   nanrM   r6   tmassert_frame_equalr	   rA   rq   	transformr{   r|   assert_produces_warningFutureWarningrO   copyr   r!   objectastypepdcutr   assert_series_equalr5   r   r   filterr-   r   rl   r   r   ra   randomdefault_rngintegersr   standard_normalasarrayr&   describecodesargsorttaker   repeatassert_index_equalstackget_level_values) using_infer_stringrQ   data	exp_indexexpectedr(   cat1cat2rP   gbexp_idxrw   gr   msgdtyperV   gbcresult2result3result4result5levelsr   groupeddesc_resultidx
ord_labelsord_dataexp_catsexpcexps                                    r   
test_basicr   ^   s   5'D
 6TBCD fCFI#1a01CH\\#\.335F&++QUVD+QUVD	LA	BB 
C%	(BS$GG(F9G$DEFHVVV&F&+ 	
]	a-=/ABm,	A #1==1Am			;-%	0A[[%F&]O"45}-Fvvq!f~H&+8 DC		#	#M	= 
>vvq!f~""$HAq64HN'EVE&}5<<UCH]&+ 
C%	&B
rtt-.A
#C		#	#M	=a%0::3? 
> 6c7+
Q'112GH"S' 'C		#	#M	=A.88= 
> 3%yH&+
**Q*
'C]]89F&cU),mm9:G
&C		#	#M	=--$ 
> mmBJJ--.Gmm<=G'2se9%@'2se9%@'2se9-'2se9- 244<<E<:AA"&&I2c7S"**Q*7>>rvvFK 
C)	*B
rtt23A
#C		#	#M	=a%0::3? 
> 6c7+
Q'112GH"S' 'C		#	#M	=A.88= 
> 3%yH&+


1u
%//0EFC5	
 
C&	'B
rtt_[f-FGAZZEZ*005F !4!4ahh>N>NOIl)4HHNN6, *FII!!!$--a-=E!!%>DRYY**1-==hGHD\\$\/446F||BJJt,u|=BBDHv$//4PG(H&+ll4%l0G""$K
**


CD!&&s+Jyy~HD-IH uuENNPH+x0 !!"))A,"5"5a"8&$OD
4
 C					-	3	3	D	DQ	G# KaO
PC					-	3	3	D	DQ	G#o 
>	= 
>	= 
>	= 
>	=& 
>	= 
>	=sH   h.h1
$i;i.i'$i9
h.1
i 
i
i$'
i69
jc           
      .   [        [        R                  " SSS5      [        [	        SS/5      [        S5      /S/S-  S/S-  -   [        S5      /S	S
/S9S9nUR                  S	/U S9n[        [        R                  " SSS5      [        [	        SS/5      [        S5      /S/S-  [        S5      /S	S
/S9S9nSn[        R                  " [        US9   UR                  S5      nS S S 5        [        R                  " WU5        g ! , (       d  f       N&= f)Nr[      r   rU   r   r   r]   rZ   Index1Index2)r   r   r   r   r!   levelrK      z&you will need to pass a length-1 tupler   )r   r   r   r   r   rangerM   r   r   r   	get_groupr   )rK   rP   r   r   r   r(   s         r   test_level_get_groupr     s   	YYq"a $c3Z0%)<37aS1W$eBi0X&

B 	

(h
7A YYq"a $c3Z0%(;37E!H%X&
H 3C		#	#M	=S! 
> &(+	 
>	=s   D
Dc                     [        S/S-  S/S-  -   / SQS-  [        R                  " S5      S.5      n [        U R                  / SQS	S
9U l        U R                  S5      S   R                  5       nUR                  SS	S9n/ SQn[        U/ SQS	S
9n/ SQ[        U5      /n[        R                  " USS/S9n[        S/S-  USS9n[        R                  " X5        g )Nrj      rk   )highmedlowrD   g      (@)rG   doseoutcomes)r   r   r   Tr   rG   r   r   )r   sort_remaining)r   r   r   r   r   r   )rj   rj   rj   rk   rk   rk   r   r[   r/   r!   ra   )r   r   r   r   r   rM   value_countsr'   r   r   from_arraysr	   r   r   rP   r(   r!   r   s       r   (test_sorting_with_different_categoricalsr   #  s    	UQY#**Q.		$	

B "''.DdSBGZZ (557FQt<F8E*@$OE+-=e-DEE""5&0ABEqcAgU9H6,r   r   TFc                    [        [        S5      U S9n[        [        S5      SS/U S9n[        R                  " [	        U5      5      n[        X!US.5      nUR                  SS	/S
S9n[        R                  " X!/SS	/S9n[        / SQUS/S9nUR                  S 5      n[        R                  " X5        UR                  5       n[        R                  " X5        Sn	[        R                  " [        U	S9   UR                  [        R                  5      nS S S 5        [        R                  " X5        [        R                  " X!/SS	/S9n[!        SUS9nSn	[        R                  " [        U	S9   UR                  S 5      nS S S 5        [        R"                  " X5        g ! , (       d  f       N= f! , (       d  f       N6= f)Nabcr   aaar   rU   r   )missingdenserl   r   r   TrJ   r   )r   rZ          @rl   )r!   r%   c                 ,    [         R                  " U SS9$ r   )r   r6   rv   s    r   rx   test_apply.<locals>.<lambda>I  s    RWWQQ%7r   zusing DataFrameGroupBy.meanr   rZ   r    r~   c                     gNrZ   ru   rv   s    r   rx   r  Z  s    r   )r   r   r   r   r   r   rM   r   r   rO   r   r   r6   r   r   aggr	   r   )
r   r   r   rl   rP   r   r   r   r(   r   s
             r   
test_applyr  9  sr    UW5E $u+3*gNGYYs5z"F	w&I	JBjj)W-j=G 
 
 '!1)W9M
NCC(DH]]78F&+\\^F&+
'C		#	#M	=RWW% 
> &+ 
 
 '!1)W9M
NCas#H
CC		#	#M	={+ 
>6, 
>	= 
>	=s   8 F%3F6%
F36
Gc           	         [        / SQ/ SQSS9n[        / SQ/ SQSS9n[        X#/ SQS.5      nS	S
/S-  US'   UR                  / SQU S9n[        R                  " X#S	S
/S-  // SQS9n[        S[        / SQUS905      R                  5       nUR                  5       nU (       d  [        XrUS	S
//[        S5      SS9n[        R                  " X5        UR                  SS/U S9n[        R                  " X#/SS/S9n[        / SQ/ SQS.US9nUR                  5       nU (       d"  [        UX#/[        S5      U(       a  SSS.OSS9n[        R                  " X5        US   R                  5       nUS   n[        R                  " X5        [        / SQ/ SQSS9/ SQ/ SQS.n	[        U	5      nUR                  S U S9n
U
R                  5       n[        [        S!5      S [        S"5      SS#9n[        S$S$/S%S&/S'.US9nU (       d/  [        [        S"5      S [        S"5      SS#9nUR                  U5      n[        R                  " X5        UR                  S S(/U S9nUR!                  S)5      n[        / S*Q[        / SQ/ SQSS9/ S+QS,.5      R#                  S S(/5      nU (       d&  [        XtR$                  R&                  S-S//S S(/5      n[        R                  " X5        S. HO  nUu  pUR)                  U5      nXDR$                  U:H  UR*                  U:H  -     n[        R                  " X5        MQ     / S/Q/ S0Q/ S1QS2.n	[        U	5      n[,        R.                  " US	   [0        R2                  " SS3S45      5      nUUS5'   UR                  S5S6/S7U S89nUR!                  S)5      nUR                  S5S6/SU S89nUR!                  S)5      R5                  5       n[        R                  " X5        g )9Nrb   rc   Tr   re   rf   rh   ri   r   r   r[   rL   )rj   rk   rL   rJ   r   rl   r    ABCr   r   rj   rk   )r   r   r   r   )rl   rL   AB )r   rU   r   rU   r   rU   rV   rZ   rZ   r[   r[   r   r   r   r   )catintsvalr  abr   )ra   r   r   g      ?      4@r   )r  r  r  r6   )      $@g      >@r  g      D@rZ   r[   rZ   r[   )r  r  r  rZ   ))r   rZ   )rU   r[   )rU   rZ   )r   r[   )r   r   rD   r   rD   rZ   rZ   r   r   r   r   2   <   F   )rX   rV   er   r   rX   rV   r   r   r   r   r\   r   r   Fas_indexrK   )r   r   rM   r   r   r	   r'   rA   r,   r   r   r   r   r6   r   r&   r  	set_indexr  rl   r   r  r   r   r   linspacereset_index)rK   r   r   r   rP   r   r   r   r(   rX   groups_single_keyr!   groups_double_keykeyrV   ir  groupsgroups2s                      r   test_observedr&  ^  s    +QUVD+QUVD	LA	BBenq BsG 
Oh	7B&&	eU^a'(I (F<y$IJKVVXHVVXF1TE5>2DKA
 &+	S#J	2B&&|C:FI&BC9H VVXF1LJ1C!"-	
 &+W[[]F}H6,  _d
 	A 
1B 

58
<##%F T
4;I 3*dBZ@	RH KeUT
 ##E*&+ 

E6?X
F""6*F+$$ !	
 i   1vv}}q!f-v
 &+ 8",,S1vv{rww!|45
f/	 8 &+2	A
 
1B
&&EBKK2q1
2CBwKZZ%(58ZLFZZFjj'5)D8jLG{{6"..0H&+r   c                    / SQ/ SQ/ SQS.n[        U5      n[        R                  " US   / SQ5      nSUl        UR	                  US/U S	9n[
        R                  " U/ SQ/SS/S
9n[        / SQ/ SQS.US9nU (       d  [        XcR                  / SQ/SS/5      nUR                  S5      n[        R                  " Xv5        g )N)r\   r\   rD   r]   rh   )r   r      "   )C1C2C3r*  )rZ   r[   r\   r   r  r+  rJ   r   )      @r-  g      @g      @)r  g      Y@g      i@g      A@)r*  r,  r    r6   )r   r   r   ra   rM   r   r   r,   rl   r  r   r   )rK   rX   rP   rl   r!  r   r   r(   s           r   test_observed_codes_remapr.    s    <7IJA	1BVVBtHl+FFK

FD>H
E

 
 &,!7t}
MC#+EFcH 1}}l3eT]
 ""6*F&+r   c            
      p   [        [        R                  R                  S5      R	                  SSSS9[        R                  R                  S5      R	                  SSSS9[        R                  R                  S5      R	                  SSSS9SS.5      n U R
                  R                  [        5      R                  S5      U S	'   U R                  / S
QSS9nUR                  5       nUR                  R                  S   R                  5       U R
                  R                  5       :X  d   eUR                  R                  S   R                  5       U R                  R                  5       :X  d   eUR                  R                  S   R                  5       U R                  R                  5       :X  d   eg )Nr[   r      i0u  r   '  )r  int_idother_idr   categoryr  )r  r2  r3  TrJ   rZ   )r   r   r   r   r   r  r   r   rM   r/   r!   r   r:   r2  r3  )rP   r   r(   s      r   test_observed_perfr5    sZ    
99((+44Q%4Hii++A.773U7K		--a099!U9O		

B c"))*5BuIjj6jFG]]_F<<q!))+rvv~~/????<<q!))+ryy/@/@/BBBB<<q!))+r{{/B/B/DDDDr   c                 &   [        / SQ/ SQS9n[        U/ SQS.5      nUR                  SU S9nUR                  nU (       a  [	        SS	/S
S9[	        S/S
S9S.nO![	        SS	/S
S9[	        / S
S9[	        S/S
S9S.n[
        R                  " XE5        g )N)r   rV   r   r  r   rZ   r[   r\   r  valsr  rJ   r   r[   int64r   rZ   )r   rV   )r   r   rM   r$  r   r   assert_dict_equal)rK   r  rP   r   r(   r   s         r   test_observed_groupsr>    s     o/
BC	3	2	3B


58
,AXXF1vW5E1#W<UV 1vW-r)s'*
 *r   z,keys, expected_values, expected_index_levelsr   )r   	   r   r8  r   rU   )	rm   r   r   r   r   r?  r   r   r   rD   r]   r   a2)	r   r   r   r   r?  r   r   r   r   test_seriesc                    [        [        / SQ/ SQS9[        / SQ/ SQS9/ SQ/ SQS.5      R                  SS/5      nS	U ;  a  UR                  S	S
9nUR	                  U SS9nU(       a  US   nUR                  5       n[        U 5      S:X  a  UnO/ SQS/ SQ-  /n[        UUU S9n[        SU0US9n	U(       a  U	S   n	[        R                  " Xi5        g )NrZ   rZ   r[   r8  r7  r@  )rm   r   r?  )r   rA  rU   rV   r   rA  rU   rr   FrJ   rV   rZ   	r   r   r   rZ   rZ   rZ   r[   r[   r[   r\   r   rZ   r[   )r   r   r    )
r   r   r  droprM   rA   r   r   r   assert_equal)
keysexpected_valuesexpected_index_levelsrB  rP   r   r(   r!   r   r   s
             r   test_unobserved_in_indexrL    s    , 
Y9=iI>		

 id  $WWSW!	D5	)BWVVXF
4yA~%,a)m<!

 #/u=HC=OOF%r   c                 *   [        [        S[        R                  S// SQS9/ SQS.5      nUR	                  SU S9nUR
                  nU (       a  S[        SS	/S
S90nO [        SS	/S
S9[        / S
S9[        / S
S9S.n[        R                  " X45        g )Nr   )r   rU   rX   r7  r8  r9  r  rJ   r   r[   r;  r<  )	r   r   r   r   rM   r$  r   r   r=  )rK   rP   r   r(   r   s        r   test_observed_groups_with_nanrN  H  s    	RVVS1oN	

B 	

58
,AXXF1vW56 1vW-r)r)

 *r   c                  $   [        S[        R                  [        R                  // SQS9n [        / SQ5      n[	        XS.5      nUR                  SSS9S	   R                  S
5      nUS	   R                  S
/   n[        R                  " X45        g )Nr   r  r7  r8  )r  serr  FrJ   rP  r   )
r   r   r   r	   r   rM   r9   r|   r   r   )r  rP  rP   r(   r   s        r   test_observed_nthrQ  ]  sx    
sBFFBFF+
HC

C	3+	,BZZZ.u599!<F%y~~qc"H6,r   c                    [        [        R                  S[        R                  S// SQS9n[        / SQ5      n[	        XS.5      nUR                  SU S9R                  5       R                  5       nU (       a  [	        [        S// SQS9S/S.5      nO9[	        [        / SQ/ SQS9S[        R                  [        R                  /S.5      n[        R                  " XE5        g )	Nr   r  r7  rh   )s1s2rS  rJ   r[   )
r   r   r   r	   r   rM   r1   r  r   r   )rK   rS  rT  rP   r(   r   s         r   #test_dataframe_categorical_with_nanrU  h  s    	bffc2663/O	LB		B	"'	(BZZxZ0668DDFFuA!M
 !/oN"&&"&&)
 &+r   rK   r   c                    [        / SQ/ SQU S9n[        / SQ5      n[        X4S.5      nUR                  SXS9S   R	                  S5      n[        UR
                  R                  S	S
9n[        UR                  5      nU(       d  SXwR                  5       '   [        X7:H  5      (       d  SU  SU SU SU 3n U5       eg )N)rX   r   rU   r   rX   rU   )r   rU   r   rX   r   )labelr  rW  )rK   r   r  r1   r   r<  r   zDLabels and aggregation results not consistently sorted
for (ordered=z, observed=z, sort=z
)
Result:
)	r   r	   r   rM   	aggregater!   arrayisnar-   )	r   rK   r   rW  r  rP   r(   aggrr   s	            r   0test_dataframe_categorical_ordered_observed_sortr\  |  s     &-E
 /
0C	U/	0B ZZ(Z>uEOOPWXF 6<<%%X6E&,,D%YY[u}#9Kz Gx! 	
 	cu r   c                     [         R                  " SSS9n [        R                  R	                  S5      R                  SSSS9n[        R                  " XSS	9n[        [        R                  R	                  S5      R                  S
5      5      nUR                  USS9R                  5       nUR                  [        R                  " U5      SS9R                  5       nUR                  U 5      n[        UR                  UR                  SS9Ul        [         R"                  " XE5        UR                  USS9nUR%                  5       nUR&                  R)                  5       nUR+                  U5      n	UR+                  U5      n
U
R                  U	SS9R%                  5       n[         R"                  " Xu5        [         R,                  " UR                  UR                  5        [         R,                  " UR                  R/                  S5      UR                  R/                  S5      5        [        R                  " [        R0                  " S5      R3                  S5      U SS	9n[        U5      n[         R,                  " UR5                  SS9R                  R/                  S5      U5        [7        / SQS-  5      n[         R,                  " UR5                  SS9R                  R/                  S5      U5        g )Nz
2014-01-01rD   )periodsr[   r   r   r   Tr   r   FrJ   r   r   r   r   rZ   )r   
date_ranger   r   r   r   r   r   r   r   rM   r6   r   r&   r   r!   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   rQ   r   r(   r   r   r   r   r   r   r   r   s                r   test_datetimer`    sV   ]]<3FII!!!$--a-=E!!%>DRYY**1-==hGHD\\$\/446F||BJJt,u|=BBDH'H%8>>4HN &+ll4%l0G""$K
**


C3Jyy~H
U;DDFH+0+++X^^<**1-x~~/N/Nq/Q
 !!"))A,"5"5a"8&$OD
4
 C					-	3	3	D	DQ	G# KaO
PC					-	3	3	D	DQ	G#r   c                     [         R                  R                  S5      n / SQnU R                  SSSS9n[        R
                  " X!SS9n[        [         R                  " [         R                  " S5      S5      R                  S	S5      [        S
5      S9nX4S'   UR                  S5      R                  SSS9R                  5       nU[        S
5         R                  UR                  SS9R                  5       n[        [        R
                  " / SQUSS9SS9Ul        ["        R$                  " XV5        UR                  SSS9R                  5       nU[        S
5         R                  UR                  SS9R                  5       n[        [        R
                  " / SQUSS9SS9Ul        ["        R$                  " XV5        g )Nr[   r   r   rD   r   r   Tr   r_   rr   rQ   Fr   rJ   r   rZ   r[   r\   r   )r   r   r   r   r   r   r   r   r   reshaper   r  rM   rA   r   r   r!   r   r   )sr   r   rQ   rP   r(   r   s          r   test_categorical_indexrf    st   
		a A)FJJq!"J%E!!%>D	299RYYr]A.66r1=tF|	TBvJ \\&!))E)BFFHF$v,''

U'CGGIH%|VTBHN &+ ZZZ/335F$v,''

U'CGGIH%|VTBHN &+r   c                     [        / SQ/ SQSS9n [        [        R                  R	                  S5      R                  S5      U S9nUR                  / SQS	-  5      R                  5       n[        R                  " UR                  SS
9R                  U 5        [        R                  " UR                  SS
9R                  R                  U R                  5        g )N)r   r   r   r   r   Tr   r[   )r   rD   rr   rh   r]   r   )r   r   r   r   r   r   rM   r   r   r   r   r%   assert_categorical_equalrl   )rQ   rP   r(   s      r   !test_describe_categorical_columnsri    s    $/D
 
299((+;;GDd	SBZZq()224F&,,D,9AA4H$'//66r   c                  :   [        [        S5      SS/S-  [        S5      S-  S.5      n U S   R                  S	5      U S'   U R	                  S
S/SS9S   R                  5       R                  5       nUR                  5       n[        SS/SSS9n[        R                  " UR                  U5        [        R                  " UR                  R                  UR                  5        US   US   -   n[        SS/[        SS/S
S9S9n[        R                   " X$5        g )Nr   rj   rk   r]   XYXXYr[   )r   mediumartistrl  r4  rm  FrJ   r   r   ra   r   rD   XYr   r    )r   r   r   r   rM   r/   unstackr   r   r   r   r%   rh  rl   r	   r   r   )rP   gcatr(   exp_columnsr   s        r   test_unstack_categoricalrt    s    	BiC:>T']Q=NO
B h<&&z2BxL::x*U:;C@FFHPPRD]]_F"C:u8LK&..+6 5 5{7I7IJ#Yc"Fq!fE3*8$DEH6,r   c                  h   [        [        R                  [        R                  SSSSSSSS/
5      n [        R                  " U R                  5       R                  S5      n[        R                  " [        SS9   U R                  U5      R                  5         S S S 5        g ! , (       d  f       g = f)NrZ   r[   r\   rD   z$Grouper and axis must be same lengthr   )r	   r   r   r   r   dropnarl   pytestraises
ValueErrorrM   r6   )seriesr   s     r   test_bins_unequal_lenr{    sx    RVVRVVQ1aAq!<=F66&--/((!,D 
z)O	Pt!!# 
Q	P	Ps   : B##
B1rz  r   rD   r\   rZ   r[   rj   rk   c                     U S-   $ r  ru   )r   s    r   rx   rx     s    S1Wr   rm   c                     U R                  [        [        S5      SS9SS9nUR                  [        5      n[        U[	        UR                  5       5      S9n[        R                  " X45        g )NABBAr4  r<  FrJ   r    )rM   r	   r   rX  r   rI  r   r   )rz  r   rM   r(   r   s        r   test_categorical_seriesr    sW      nnVDL
CenTGt$Fd"2499;"?@H6,r   c                    ^ [        [        / SQ/ SQ5      / SQ/ SQS.5      mTR                  SS/SS	S
9R                  5       n [        [        SS/TR                  R                  R
                  S9SS/SS/S./ SQS9n[        R                  " X5        U4S jnSn[        R                  " [        US9   TR                  SU/SS	S
9R                  5       n S S S 5        [        [        SS/TR                  R                  R
                  S9SS/SS/S./ SQS9n[        R                  " X5        [        / SQSS9nSn[        R                  " [        US9   TR                  SU/SS	S
9R                  5       n S S S 5        [        R                  " X5        SS/n[        [        SS/TR                  R                  R
                  S9SS/SS/S./ SQS9nS HP  n[        [        S5      US9Tl        TR                  USS	S
9R                  5       n [        R                  " X5        MR     g ! , (       d  f       GN_= f! , (       d  f       N= f)NrZ   r[   r[   r8  )r      r  )e   f   g   )r  rj   rk   r  rj   FTr  rZ   r[   r7  r   r  r     rr   c                 &   > TR                   U S4   $ )Nrj   )loc)rrP   s    r   rx   test_as_index.<locals>.<lambda>;  s    "&&C.r   z*A grouping .* was excluded from the resultr   r   )r   rU   rU   r   )Nro  rk   r   )r   r   rM   rA   r  r   r   r   r   r   r	   r   r   r!   )r(   r   r   r   re  group_columnsra   rP   s          @r   test_as_indexr  &  s   	y)4 	

B ZZutZDHHJF1v"&&**2G2GHbs	

 "H &+ 	!A
6C		#	#M	=UAJFJJL 
>1v"&&**2G2GHbs	

 "H &+ 	U+A
6C		#	#M	=UAJFJJL 
>&+ CLM1v"&&**2G2GHbs	

 "H !e40MEDIMMO
f/	 != 
>	= 
>	=s   7"H1"I1
I 
Ic            	         [        S5      n [        S[        [        S5      U SS905      n[        X SSS9n[        [        S5      U SSS9n[        R
                  " UR                  SSSS	9R                  5       R                  U5        [        R
                  " UR                  SSSS	9R                  5       R                  U5        [        S[        [        S5      U SS905      n[        X SSS9n[        [        S5      [        S5      SSS9n[        R
                  " UR                  SSSS	9R                  5       R                  U5        [        R
                  " UR                  SSSS	9R                  5       R                  U5        g )
Nr   rj   baTr   rn  bacFr   )	r   r   r   r   r   r   rM   r1   r!   )r   rP   r'   nosort_indexs       r   test_preserve_categoriesr  b  s]   eJ 
CT$ZJPTUV	WB!*$SQJ#DKTPSTL


3TE
288:@@* 


3UU
399;AA<
 
CT$ZJPUVW	XB!*%cRJ $DKeeRUVL


3TE
288:@@* 


3UU
399;AA<r   c                     [        / SQ/ SQ[        [        S5      [        S5      SS9[        [        S5      [        S5      SS9S.5      n [        S	S
[        R                  /SS[        R                  /[        [        S5      [        S5      SS9[        [        S5      [        S5      SS9S.5      nS H  nU R                  USSS9R                  SS9nU R                  USSS9R                  SS9R                  5       nUR                  UR                  S9n[        R                  " X55        [        R                  " XE5        M     g )N)rZ   r[   rZ   rZ   r[   )r      r      r)  abaabr  Fr   T)rj   rk   r*  r+  r   g      ?g      9@r  )r*  r+  byr  rK   rn   rr   )r   r   r   r   r   rM   r6   r  r&   r%   r   r   )rP   exp_fullr+   result1r   r   s         r   test_preserve_categorical_dtyper    s)   	 %d7mUUSd7mUTR		

B sBFF#bff%d5kd5k5Qd5kd5k4P		
H **ee*DII J 
 JJ#uJ=TtT$[] 	
 ##GOO#<
g0
g0 r   zfunc, valuessecondfourththirdc                    [        / SQSS9n[        / SQUS.5      nUR                  S5      n[        X@5      " 5       n[        SS/[	        XR
                  S	9S.5      R                  S5      n[        R                  " XV5        UR                  S5      S
   n[        Xp5      " 5       nUS
   n[        R                  " XV5        g )N)r1   r  r  r  Tr   )rb  rb  r  )payloadr+   r  r  rb  r<  r+   )
r   r   rM   getattrr	   r   r  r   r   r   )funcrl   rV   rP   r   r(   r   sgbs           r   test_preserve_on_ordered_opsr    s     	:DIA	/:	;B


9AQFHVF''%BCi	  &+ **Y

&CS!FH6,r   c                  x   [        [        R                  R                  S5      R	                  S5      5      n [        R
                  " / SQ5      n[        R                  " U/ SQSS9nU R                  USS9R                  5       nU R                  USS9R                  5       n[        UR                  UR                  UR                  S	9Ul        [        R                  " X45        [        R
                  " / S
Q5      n[        R                  " U/ SQSS9nU R                  USS9R                  5       nU R                  USS9R                  5       R!                  UR                  5      n[        UR                  UR                  UR                  S	9Ul        [        R                  " X45        [        / SQ/ SQSS	9n[#        / SQUS.5      n U R                  SSS9R                  5       nUS   R$                  n[        R
                  " SSS[        R&                  /5      n[        R(                  " X45        g )Nr[   r?  rE  rF  Tr   FrJ   r   )	r   r   r   rZ   rZ   rZ   r\   r\   r\   rc  rT   rW   rY   r^   rU   r   rZ   rD   )r	   r   r   r   r   rY  r   r   rM   r6   r   r!   r   r   r   r   r&   r   rl   r   assert_numpy_array_equal)r   r   rQ   r(   r   s        r   test_categorical_no_compressr    s   "))''*::1=>DHH01E!!%DAD\\$\/446F
,,uu,
-
2
2
4C 		doot||CI 6'HH01E!!%tDD\\$\/446F
,,uu,
-
2
2
4
<
<T__
MC 		doot||CI 6'5'D
 6TBCD\\#\.335FC[F
((Aq!RVV$
%C,r   c            	          [        S /S-  [        / SQ5      S.5      n U R                  S5      R                  5       S   n[	        [        / SS/S9[	        / S	SS
9SS9n[
        R                  " X5        g )Nr\   )trainr  testr|  rj   rk   r  r  r7  r   r   ra   r   )r   r   rM   r1   r	   r   r   rP   r(   r   s      r    test_groupby_empty_with_categoryr    sr     
$!+6P*QR	SBZZ_""$S)FBFG#45Rxc2H
 6,r   c                  \   [        S[        R                  R                  S5      R	                  SSS5      05      n [        SSS5       Vs/ s H  o SUS-    3PM     nn[        X"5      nU R                  S/S	S
9n [        R                  " U R                  [        SSS5      SUS9U S'   U R                  S/SS9S   R                  5       nU[        UR                  S S9   n[        UR                  UR                  R                   S9Ul        ["        R$                  " XE5        g s  snf )Nvaluer[   r   r1  r   i  z - i  T)r  	ascendingi)  F)rightr   value_grouprJ   c                 :    [        U R                  5       S   5      $ )Nr   )floatsplitrv   s    r   rx   test_sort.<locals>.<lambda>  s    eAGGIaL.Ar   )r"  r   )r   r   r   r   r   r   r   sort_valuesr   r   r  rM   r/   sortedr!   r   ra   r   r   )rP   r#  r   
cat_labelsr*   r   s         r   	test_sortr    s    
GRYY2215>>q%MN	OB(-a(<=(<13qug(<F=V,J	G9	5B
%5#&eJB} **m_u*
5m
D
J
J
LC
fSYY$AB
CC @CI3$ >s   D)c           
      T   [        / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ// SQS	9n[        US
   US9US
'   UR                  S
U SS9R                  5       nU (       a  SS/SS/SS/SS//n/ SQnOSS/SS/SS/SS//n/ SQn[        USS/[	        US
US9S9n[
        R                  " X65        g )N)	(7.5, 10]r   r   )r  r   r   )(2.5, 5]r]   r   )(5, 7.5]r   r   )r  rD   r  )(0, 2.5]rZ   r  )r  rm   r  )r   r   r   rr   r   r   Fr   rZ   r  r]   r   r   r   r   )r  r  r  r  )r  r  r  r  r   r   r`   r%   r!   )r   r   rM   r1   r   r   r   )r   r   rP   r(   data_valuesindex_valuesr   s          r   
test_sort2r    s    
 
! 	
 (
B bk7;BwKZZdUZ;AACF2wB!R2r(;HBx!R1b'Ar7;H|'7KH &+r   c                    [        [        SSS5      [        SSS5      [        SSS5      [        SSS5      [        SSS5      [        SSS5      [        SSS5      // SQ/ SQS./ SQS	9n[        US
   US9US
'   U (       aA  SS/SS/SS/SS//n[        SSS5      [        SSS5      [        SSS5      [        SSS5      /nO@SS/SS/SS/SS//n[        SSS5      [        SSS5      [        SSS5      [        SSS5      /n[        USS/[        US
US9S9nUR	                  S
U SS9R                  5       n[        R                  " Xe5        g )Ni  rm   rZ   r[   r]   )r   r   r]   r   rD   rZ   rm   r  )dtr   r   rr   r  r   r  r   r   r   r   r   r   r`   r  Fr   )r   r   r   r   rM   r1   r   r   )r   r   rP   r  r  r   r(   s          r   test_sort_datetimeliker  )  s    
 q!$q!$q!$q!$q!$q!$q!$ */	
 %
B$ 2d8W5BtH2wB!R2r(;T1a T1a T1a T1a 	
 Bx!R1b'Ar7;T1a T1a T1a T1a 	
 |$HH
 ZZ4%Z8>>@F&+r   c                     [        [        / SQ/ SQS9/ SQS.5      n [        / SQSS9nU R                  SSS	9R                  R                  5       n[        / S
QUSS9n[        R                  " X#5        U R                  SSS	9R                  R                  SS9n[        / S
QUSS9n[        R                  " X#5        U R                  SSS	9R                  R                  SS9n[        SS[        R                  /USS9n[        R                  " X#5        U R                  SSS	9R                  R                  SS9n[        S[        R                  [        R                  /USS9n[        R                  " X#5        g )Nr   r   rU   r  r7  rZ   r[   rZ   r|  rj   r   FrJ   )r\   rZ   r   rk   r   	min_countrZ   r\   r[   )r   r   r   rM   rk   rA   r	   r   r   r   r   rP   expected_idxr(   r   s       r   test_empty_sumr  \  sM   	/oFYW
B $O#>L ZZeZ,..224FiC8H6, ZZeZ,..22Q2?FiC8H6, ZZeZ,..22Q2?Fq!RVVnl=H6, ZZeZ,..22Q2?Fq"&&"&&)<cBH6,r   c                  0   [        [        / SQ/ SQS9/ SQS.5      n [        / SQSS9nU R                  SSS	9R                  R                  5       n[        / S
QUSS9n[        R                  " X#5        U R                  SSS	9R                  R                  SS9n[        / S
QUSS9n[        R                  " X#5        U R                  SSS	9R                  R                  SS9n[        SS[        R                  /USS9n[        R                  " X#5        g )Nr  r  r7  r  r|  rj   r   FrJ   )r[   rZ   rZ   rk   r   r  rZ   r[   )r   r   r   rM   rk   r;   r	   r   r   r   r   r  s       r   test_empty_prodr  x  s    	/oFYW
B $O#>L ZZeZ,..335FiC8H6, ZZeZ,..33a3@FiC8H6, ZZeZ,..33a3@Fq!RVVnl=H6,r   c                     [        [        [        S5      5      [        [        [        R                  " SSSS95      S-  5      [
        R                  " S5      S.5      n U R                  SS	/S
S9R                  5       n[        R                  " [        / SQ5      [        [        R                  " SSSS95      /SS	/S9n[        SSSSSSSS[
        R                  S/	0US9n[        R                  " X5        g )N	abcbabcbaz2018-06-01 001minr\   )freqr^  r?  )key1key2rl   r  r  FrJ   r  r   rl   r   rD   r   r]   r   r[   r    )r   r   r   r   r_  r   r   rM   r6   r   r"   r   r   r   )rP   r(   r   r   s       r   ,test_groupby_multiindex_categorical_datetimer    s     
[ 12R]]?KLqP iil	

B ZZ(5Z9>>@F

!
!(oFANO	
 vC (Q1aAq"&&!$DESQH&+r   zas_index, expectedrD  r4  r<  r  r   rw   )r!   r   ra   r   rU   rw   c                     [        [        / SQSS9/ SQ/ SQS.5      nUR                  SS/U S	S
9S   R                  5       n[        R
                  " X15        g )NrD  r4  r<  r  r8  r  r   rU   Tr  rw   )r   r	   rM   rA   r   rH  )r  r   rP   r(   s       r   ,test_groupby_agg_observed_true_single_columnr    sS    6 
Yj1		R
B ZZc
XZEcJNNPFOOF%r   r   c                     [        / SQ/ SQSS9n[        / SQ/ SQSS9nUR                  SU S9n[        R                  " X25        g )NrW   Fr   )Nr   rU   rV   rZ   r   )r   shiftr   rH  )r   ctr   r*   s       r   
test_shiftr    sH    	)=u
B *>H ((1(
,COOC"r   c                     U R                  5       SS nUS   R                  S5      US'   US   R                  S5      US'   [        / SQ5      US'   UR                  S/S	S
9nU$ )au  
DataFrame with multiple categorical columns and a column of integers.
Shortened so as not to contain all possible combinations of categories.
Useful for testing `observed` kwarg functionality on GroupBy objects.

Parameters
----------
df: DataFrame
    Non-categorical, longer DataFrame from another fixture, used to derive
    this one

Returns
-------
df_cat: DataFrame
NrD   rj   r4  rk   rh   rL   rN   rZ   r   )r   r   r	   rG  )rP   df_cats     r   r  r    sl    " WWYr]F+$$Z0F3K+$$Z0F3K&F3K[[#Q['FMr   	operationr  rO   c                    [        / SQU S   R                  SS9n[        / SQU S   R                  SS9n[        R                  " X#/5      n[	        / SQUSS9R                  5       nU R                  SS/S	S
9S   nUS:X  a  SOSn[        R                  " [        US9   [        Xa5      " [        5      nS S S 5        [        R                  " WU5        g ! , (       d  f       N&= f)N)r   r   r   r   rj   r  )onethreer  twork   )r[   rD   rZ   r\   rL   r   r!   ra   TrJ   rO   using np.sumr   r   )r   r   r   r   r	   r'   rM   r   r   r   r  rA   r   )	r  r  lev_alev_br!   r   r   r   r(   s	            r    test_seriesgroupby_observed_truer    s     .fSk6G6GcRE0s8I8IPSTE""E>2E<u3?JJLHnnc3Z$n7<G%0.6OC		#	#M	=,S1 
> 68, 
>	=s   C
C#c                 j   [         R                  " [        SS/SS9[        / SQSS9/SS/S9R                  5       u  p4[	        S	S
[
        R                  S[
        R                  S/USS9nUS:X  a4  Sn[        R                  " [        US9   UR                  SSS9nS S S 5        U R                  SS/US9S   nUS:X  a  SOSn[        R                  " [        US9   [        Xr5      " [        5      nS S S 5        [        R                  " WU5        g ! , (       d  f       N|= f! , (       d  f       N7= f)Nr   r   Fr   r  r  r  rj   rk   r   r[   rD   rZ   r\   rL   r  r  z.The 'downcast' keyword in fillna is deprecatedr   r   infer)downcastrJ   r   r  )r   r"   r   	sortlevelr	   r   r   r   r   r   fillnarM   r  rA   r   )	r  rK   r  r!   _r   r   r   r(   s	            r   )test_seriesgroupby_observed_false_or_noner    s   
 &&eU^U;4eD	
 Cj ik E Aq"&&!RVVQ7u3OHE>''SAq7;H Bnnc3Z(n;C@G'0E'9
#~C		#	#M	=,S1 
> 68, BA 
>	=s   DD$
D!$
D2zobserved, index, datar   r   rj   r  )r  r  r  r  r  r  r  r  rk   )r[   r[   rD   rD   rZ   rZ   r\   r\   r   r  )rj   rk   Nc                     [        X2SS9nU R                  SS/US9S   R                  S 5      n[        R                  " XT5        g )NrL   r  rj   rk   rJ   c                 D    U R                  5       U R                  5       S.$ )Nr8   r5   r  rv   s    r   rx   8test_seriesgroupby_observed_apply_dict.<locals>.<lambda>M  s    !%%'!%%'2r   )r	   rM   rO   r   r   )r  rK   r!   r   r   r(   s         r   &test_seriesgroupby_observed_apply_dictr    sJ    \ 437H^^S#J^:3?EE2F 6,r   c                     U R                  SS/SS9S   R                  5       nU R                  SS/SS9R                  5       S   n[        R                  " X!5        g )Nrj   rk   FrJ   rL   )rM   r6   r   r   )r  r   r(   s      r   4test_groupby_categorical_series_dataframe_consistentr  R  sX    ~~sCj5~9#>CCEH^^S#J^7<<>sCF6,r   code)rZ   r   r   )r   r   r   c                    [        / SQ/ SQ/ SQS.5      n[        R                  " U [        S5      S9nSn[        R
                  " [        US9   UR                  US	S
S9nS S S 5        WR                  5       nSn[        R
                  " [        US9   UR                  R                  USS
S9nS S S 5        WR                  5       R                  n[        R                  " XW5        g ! , (       d  f       N= f! , (       d  f       NP= f)Nrh   )rb  r  )r]   r   rm   r   r  r   r7  z+DataFrame.groupby with axis=1 is deprecatedr   rZ   F)r   rK   z5The 'axis' keyword in DataFrame.groupby is deprecatedr   )r   r   r   r   r   r   r   rM   r6   Tr   )r  rP   r  r   r   r(   gb2r   s           r   test_groupby_categorical_axis_1r  Y  s     
,<<P	QB

 
 $u+
>C
7C		#	#M	=ZZ!eZ4 
>WWYF
AC		#	#M	=ddll3Ql7 
>xxz||H&+ 
>	= 
>	=s   C)C:)
C7:
Dc                     [        [        SS/US9SS/S.SS/S	9nUR                  5       nUR                  SU S
9R	                  [         R
                  SS9R                  5       n[        R                  " XC5        g )NBobGregr   rZ   r[   )NameItemr  r  rr   rJ   T)skipna)	r   r   r   rM   r  rA   r  r   r   )rK   r   rP   r   r(   s        r   $test_groupby_cat_preserves_structurer  i  sx    	eV_g>AO 
B wwyH 	

6H
-	Y]]4	(	  &+r   c                      [        / SQ[        S5      S.5      n [        R                  " [        SS9   U R                  S5      R                  S 5        S S S 5        g ! , (       d  f       g = f)Nrb   rD   rB   r  z'vau'r   rB   c                 b    [        U R                  S   S   /U R                  S   S   /S.5      $ )Nrb  rB   vaur
  )r   r|   )rowss    r   rx   /test_get_nonexistent_category.<locals>.<lambda>  s1    2u-.		"e8L7MNr   )r   r   rw  rx  KeyErrorrM   rO   rP   s    r   test_get_nonexistent_categoryr  z  sL    	/aA	BB	xw	/


5	
 
0	/	/s   "A
A,c           	      &   U S:X  a  [         R                  " S5        [        [        [	        S5      [	        S5      S9[        [	        S5      S-  [	        S5      S9S/S	-  S
.5      n[        X5      nU(       a  S	OSnUR                  SS/US9S   nU S:X  a  [        XP5      (       a   eg [        XP5      nU(       d.  U S;   a(  [         R                  " [        SS9   U" U6   S S S 5        g U" U6 n[        U5      U:X  d   eg ! , (       d  f       g = f)Nngroupngroup is not truly a reductionAABBABCDr7  r	  r[   皙?rD   cat_1cat_2r  r  r  r  rJ   r  r0   r3   r2   (empty group due to unobserved categoriesr   )rw  skipr   r   r   r   rM   hasattrr  rx  ry  r   )reduction_funcrK   rP   r)   expected_lengthseries_groupbyr  r(   s           r   0test_series_groupby_on_2_categoricals_unobservedr"    s	   !56	 f$v,G daDLIUQY	

B #>6D#aOZZ' 2XZFwON#>::::
.
1C*>>]]H
 J
 	$ZFv;/)))
 
 	s   D
Dc           	         U S:X  a  [         R                  " S5        U S:X  a.  [         R                  R                  SS9nUR	                  U5        [        [        [        S5      [        S5      S9[        [        S	5      S
-  [        S5      S9S/S-  S.5      n[        S5      [        S5      [        S5      [        S5      [        S5      /n[        X5      nUR                  SS/SS9S   n[        X`5      nU S;   a(  [         R                  " [        SS9   U" U6   S S S 5        g U" U6 n[        U    n	U HQ  n
UR                  U
   n[         R"                  " U	5      (       a  [         R"                  " U5      (       a  MJ  X:X  a  MQ   e   U	S:X  a>  U S:w  a7  [$        R&                  " UR(                  [$        R*                  5      (       d   eg g g ! , (       d  f       g = f)Nr  r  r0   z6TODO: implemented SeriesGroupBy.corrwith. See GH 32293reasonr  r  r7  r	  r[   r  rD   r  ACBCCACBCCr  r  FrJ   r  r  r  r   r   rA   )rw  r  markxfailapplymarkerr   r   r   tupler   rM   r  rx  ry  -_results_for_groupbys_with_missing_categoriesr  r   rZ  r   
issubdtyper   integer)r  requestr+  rP   
unobservedr)   r!  r  r(   zero_or_nanr   r  s               r   ?test_series_groupby_on_2_categoricals_unobserved_zeroes_or_nansr5    s    !56#{{  K ! 
 	D!	 f$u+F daDKHUQY	

B +uT{E$KteDkRJ">6DZZ' 2UZCGLN
.
1C--]]H
 J
 	$ZF?OKjjo$$3;MNN  aNe3}}V\\2::6666 4%
 
 	s   G
G c           	      X   U S:X  a  [         R                  " S5        [        [        [	        S5      [	        S5      S9[        [	        S5      [	        S5      S9/ SQS	.5      n/ S
QnUR                  SS/SS9n[        X5      n[        X05      " U6 nU H  nXeR                  ;  a  M   e   g )Nr  2ngroup does not return the Categories on the indexr  r  r7  111112r  r  r  r  r  )rj   2)rk   r<  )rL   1)rL   r<  r  r  TrJ   )	rw  r  r   r   r   rM   r   r  r!   )r  rP   unobserved_catsdf_grpr)   r*   r  s          r   >test_dataframe_groupby_on_2_categoricals_when_observed_is_truer@    s    
 !HI	 f$u+F f$t*E)	

B GOZZ'*TZ:F">6D
&
)4
0C))### r   c           	         U S:X  a  [         R                  " S5        [        [        [	        S5      [	        S5      S9[        [	        S5      [	        S5      S9/ SQS	.5      n/ S
QnUR                  SS/US9n[        X5      nU(       d7  U S;   a1  [         R                  " [        SS9   [        X@5      " U6   S S S 5        g [        X@5      " U6 n[        U    nU[        R                  L aA  UR                  U   R                  5       R                  5       R                  5       (       d   eg UR                  U   U:H  R                  5       R                  5       (       d   eg ! , (       d  f       g = f)Nr  r7  r  r  r7  r8  r9  r:  r  r;  r  r  rJ   r  r  r   )rw  r  r   r   r   rM   r   rx  ry  r  r/  r   r   r  isnullr-   )r  rK   rP   r>  r?  r)   r*   r   s           r   ?test_dataframe_groupby_on_2_categoricals_when_observed_is_falserC    s?    !HI	 f$u+F f$t*E)	

B GOZZ'*XZ>F">6D*>>]]H
 F+T2
 	
&
)4
0C<^LH266ww'..0446::<<<<(H499;??AAAA
 
 	s   )E""
E0c                  >   / SQ/ SQ/ SQS.n [        U 5      n[        R                  " US   [        R                  " SSS5      5      nX!S	'   UR                  S	S
/SSSS9nUS   R                  S5      nUR                  S5      S   n[        R                  " XE5        g )N)r   r   rD   rZ   r  )rX   rV   rX   rV   r  r   r   r   r]   r   r   TFr  r   rK   r6   )	r   r   r   r   r  rM   r  r   r   )rX   rP   r  r$  r(   r   s         r   3test_series_groupby_categorical_aggregation_getitemrF  $  s     &6?STA	1B
&&EBKK2q1
2CwKZZ%(4dUZSFE]v&Fzz&!%(H6,r   zfunc, expected_valuesc                     [        / SQ/ SQ[        / SQ5      S.5      R                  S5      nUR                  S5      R	                  U 5      n[        SU0[        / SQSS	9S
9n[        R                  " X45        g )Nr   )r   rZ   rZ   r[   r[   )r   r   r   r   rZ   )idr$  r  rH  r$  r  rF  r   r    )r   r   r  rM   r  r   r   r   )r  rJ  rP   r(   r   s        r   $test_groupby_agg_categorical_columnsrI  1  su     
!% 1	

 io  ZZ!%%d+F	/"%	*IH &+r   c                  x   [        S[        / SQ/ SQS905      n [        SSS/0[        R                  " SS/5      S9nU R	                  / SQ5      R                  [        R                  5      n[        R                  " X!5        U R	                  / SQ5      R                  5       n[        R                  " X!5        g )	Nrj   r  r  r7  r[   rZ   r    r  )
r   r   r   rY  rM   r  r	   r:   r   r   rP   r   r(   s      r   test_groupby_agg_non_numericrL  F  s    	C_QR	SB#1vbhh1v.>?HZZ	"&&v~~6F&+ZZ	"**,F&+r   r  c                    [        S/[        S/SS9R                  R                  5       S.5      nUR	                  S5      S   n[        X 5      " 5       n[        S/[        S/SS9SUS   R                  S	9n[        R                  " X45        g )
Ni  rU   r4  r<  r|  rj   rk   r   r!   ra   r   )
r   r	   r  
as_orderedrM   r  r   r   r   r   )r  rP   
df_groupedr(   r   s        r   <test_groupby_first_returned_categorical_instead_of_dataframerQ  Q  s     
$fcU*&E&I&I&T&T&VW	XBC%JZ&(F 	UD6,3bgmmH 6,r   c            	      2   [         R                  " SS/5      n SU R                  l        [	        / SQ[        / SQ[        U 5      S9S.5      n[	        SS	S
/0[        U SS9S9nUR                  SSSS9R                  5       n[        R                  " X25        g )NrZ   r[   F)rZ   r\   r]   rm   r  r7  r^   r   r   g      @rU   r   r   r   )r   rY  flags	writeabler   r   r   r   rM   r6   r   r   )rQ   rP   r   r(   s       r   test_read_only_category_no_sortrU  `  s    88QFD DJJ	\eDk!RS
B sS#J/7GSV7WXHZZ%%Z8==?F&+r   c                     [        / SQ/ SQS.5      n U S   R                  S5      R                  R                  / SQSS9U S'   [        S	S	S
.S	SS
.SSS
.SSS
.S.5      nUR	                  SSS9n[        / SQ/ SQSSSS9Ul        U R                  SS/SS9R                  5       R                  5       n[        R                  " X!5        g )N)smalllargerX  rX  rl  rX  rX  rl  )rL   rj   rj   rL   rj   rL   rj   rL   )r   r   r   r4  )tinyrW  rl  rX  Tr   r   )rj   rL   rZ   r\   r[   r   r!   r   )r   r   ra   r   FrJ   )r   r   r  set_categoriesrename_axisr   r%   rM   r>   rq  r   r   rK  s      r   #test_sorted_missing_category_valuesr\  l  s    		 <	

B  	5		
		^^@$^O uI !$1%A&1%		
H ##E#8H',7H ZZZ7<<>FFHF&+r   c                     [        S/ SQ05      n U S   R                  S5      U S'   U R                  S5      R                  R	                  5       n[        / SQ[        / SQSS9SU S   R                  S9n[        R                  " X5        U R                  S5      R                  SS05      nUR                  5       n[        R                  " X5        g )	Ncol_numrZ   rZ   r[   r\   r4  col_catr8  r   rN  r1   )r   r   rM   r`  r1   r	   r   r   r   r   r  to_framer   r  s      r   1test_agg_cython_category_not_implemented_fallbackrb    s    	I|,	-ByM((4ByMZZ	"**002F II.m!!	H 6,ZZ	"&&	7';<F  "H&+r   c                  P   [        / SQ/ SQSS[        R                  S// SQ/ SQS.5      n U R                  SS	05      n U R	                  S
S/5      R                  S 5      n[        R                  " SS/SS//SS9n[        SS/SS/SS/S.US9n[        R                  " X5        g )N)rZ   rZ   rZ   rZ   r  r  g?g333333?)r   r   r   fee)rj   rk   numerical_col
object_colcategorical_colrg  r4  rj   rk   c                 >    U R                  5       R                  5       $ rt   )rZ  rA   r  s    r   rx   7test_aggregate_categorical_with_isnan.<locals>.<lambda>  s    2779==?r   rZ   r[   r|  r   r   )re  rf  rg  r   )
r   r   r   r   rM   r  r   r   r   r   r   s       r   %test_aggregate_categorical_with_isnanrj    s    	!346;	

B 
%z2	3BZZc
#''(BCF""QFQF#3:FEVa& !1v

 H &+r   c                     [        / SQ/ SQS.5      n [        R                  " / SQSS9nU S   R                  U5      U S'   Sn[        R
                  " [        US	9   U R                  S
5      S   R                  [        5      U S'   S S S 5        U R                  5       n[        / SQ/ SQ/ SQS.5      nUS   R                  U5      US'   US   R                  U5      US'   [        R                  " X45        g ! , (       d  f       Nx= f)N)rZ   rZ   rZ   r[   r[   r\   )WaitingOnTheWay	Deliveredrl  rm  rl  )
package_idstatus)rl  rm  rn  Tr   rp  zusing SeriesGroupBy.maxr   ro  last_status)rn  rn  rn  rm  rm  rl  )ro  rp  rq  )r   r   CategoricalDtyper   r   r   r   rM   r   r5   r   r   )rP   delivery_status_typer   r(   r   s        r   test_categorical_transformrt    s   	,
	

B ..7 h<&&';<BxL
#C		#	#M	=JJ|4X>HHM= 
> WWYF,	
H, "(+223GHHX '}5<<=QRH]&+A 
>	=s   +C99
Dc                     [        / SQ5      n/ SQn[        X"US.5      n[        SS/5      n[        R                  " XU/SS/S9n[	        S[
        R                  [
        R                  S/US	S
9[	        S[
        R                  [
        R                  S/US	S
9S.nXp   nU(       a-  UR                  5       R                  [
        R                  5      nUR                  SS/US9S	   n	[        X5      " 5       n
[        R                  " X5        g N)r   r   rZ   rZ   )r   rZ   rZ   r   r  r   rZ   r   rU   r   rV   r   )r1   r4   rJ   )r   r   r   r"   r	   r   r   rv  r   r;  rM   r  r   r   )r  rK   r  r  rP   r   r   expected_dictr   srs_grpr(   s              r   Ftest_series_groupby_first_on_categorical_col_grouped_on_2_categoricalsry    s    
 l
#C
C	S1	2B1vD

!
!4,sCj
ACBFFBFFA.#>2662661-s=M
 "H??$++BHH5jj#shj7<GW#%F6,r   c                 6   [        / SQ5      n/ SQn[        X"US.5      n[        SS/5      n[        R                  " XU/SS/S9n[	        S[
        R                  [
        R                  S/US	S
9[	        S[
        R                  [
        R                  S/US	S
9S.nXp   R                  5       nU(       a-  UR                  5       R                  [
        R                  5      nUR                  SS/US9n	[        X5      " 5       n
[        R                  " X5        g rv  )r   r   r   r"   r	   r   r   ra  rv  r   r;  rM   r  r   r   )r  rK   r  r  rP   r   r   rw  r   r?  r(   s              r   Btest_df_groupby_first_on_categorical_col_grouped_on_2_categoricalsr{    s    
 l
#C
C	S1	2B1vD

!
!4,sCj
ACBFFBFFA.#>2662661-s=M
 "++-H??$++BHH5ZZc
XZ6FV"$F&+r   c                     [        [        / SQ/ SQS9[        S5      S.5      n U R                  SSSS9nUR                  n[
        R                  " S	S
/SS9[
        R                  " S/SS9[
        R                  " / SS9S.nUR                  5       UR                  5       :X  d   eUR                  5        H  n[        R                  " X$   X4   5        M      g )N)rU   rU   r   r  r7  r\   )r"  r+   r"  Fr   r   rZ   intpr<  r[   )rU   r   rV   )
r   r   r   rM   indicesr   rY  rI  r   r  )rP   r   r(   r   r"  s        r   2test_groupby_categorical_indices_unused_categoriesr  4  s    	?K8	

B jjUUj;G__FXXq!fF+XXqc(XXb'H
 ;;=HMMO+++{{}
##FK? r   c           	         [        S/ SQ05      nUS   R                  S5      US'   [        UR                  S5      S   U 5      " 5       n[	        [        / SQ5      S[        / SQSS9S9n[        R                  " X25        g )Nr   r8  r4  rU   r   )ra   r!   )	r   r   r  rM   r	   r   r   r   r   )r  rP   r(   r   s       r   1test_groupby_last_first_preserve_categoricaldtyper  H  sr     
C#	$BgnnZ(BsGRZZ_S)402FISic0JH 8,r   c                  2   [        SS/SS/SS/S.5      n U R                  SSS.S9n U R                  S	S
/SS9R                  5       S   n[	        SS/[
        R                  " [        SS/S	S9[        SS/S
S9/5      SS9n[        R                  " X5        g )NrZ   r[   r   r  r  r4  r^   r<  r   rU   TrJ   rV   r   r   )
r   r   rM   r:   r	   r   r   r   r   r   r  s      r   )test_groupby_categorical_observed_nuniquer  T  s    	!Qq!fB8<	=B	z
;	<BZZc
TZ2::<SAF	
A$$q!f3/1A1a&s1ST
 H 6,r   c            
      H   [         R                  " SS/SS9n [        SS/SS/SS//SS/S	9R                  SU 05      nUR	                  S5      S   R                  5       n[        SS/[        SS/SS
9S[         R                  " SS/SS9S9n[        R                  " X#5        g )NrW  bigTr   rZ   r[   grpdescriptionrr   r   rN  )
r   rr  r   r   rM   r5   r	   r   r   r   )r   rP   r(   r   s       r   ,test_groupby_categorical_aggregate_functionsr  c  s    GU+;TJE	
W5zAw<05-:P
fmU#$  ZZ}-113F	QF'!!gu-=tL	H 6,r   c                 N   [        SS// SQS9n[        [        SS// SQS9SS/S.5      nUR                  SXS	9nUR                  5       nU (       a  [        S
SS/0US9nO[	        / SQ/ SQ5      n[        S
/ SQ0US9nSUR
                  l        [        R                  " XV5        g )NrZ   r[   r8  r7  r\   rD   )rw   rg   rw   )rK   rv  rg   r    )r\   rD   r   )	r   r   rM   rA   r   r!   ra   r   r   )rK   rv  r  rP   r   r(   r   r!   s           r   test_groupby_categorical_dropnar  u  s    
q!f
3C	aV	B!QP	QB	C(	:BVVXFcAq6]#6 I6c9-U;HNN&+r   
index_kind)r   singlemultic                    US:X  a6  U(       d/  SnU R                  [        R                  R                  US95        O!US:w  a  U(       d  [        R                  " SS9  [        [        / SQ/ SQUS9[        S	5      S
.5      nUS:X  a  S/n	O>US:X  a  S/n	UR                  U	5      nO#US:X  a  SS/n	US   US'   UR                  U	5      n[        XH5      n
UR                  W	XUS9nU(       d7  US;   a1  [        R                  " [        SS9   [        X5      " U
6   S S S 5        g [        X5      " U
6 nU(       a&  UR                  R                  S5      R                   nOUS   R"                  R                   n[%        / SQ5      n[&        R(                  " X5        US:X  a<  UR                  R                  S5      R                   n[&        R(                  " X5        g g ! , (       d  f       g = f)Nr0   zDGH#49950 - corrwith with as_index=False may not have grouping columnr$  r   /Result doesn't have categories, nothing to testr[   rZ   r[   r\   rZ   rD   r\   r[   r   rD   r^   r   r  r  rA  rE  r  r  r   )r-  rw  r+  r,  r  r   r   r   r  r   rM   rx  ry  r  r!   r   r   r  r   r   r   )r2  r  r   rK   r  r  r   r   rP   rI  r)   r   	op_resultr(   r   s                  r   test_category_order_reducerr    s    #HTFKK--S-9:	w	xLM	\lGTq	

B Wu	x	u\\$	w	T{c74\\$">6D	D8	JB*>>]]H
 B'.
 	+T2I11#6AA3##..\"H&+W11$7BB
f/ 
 
 	s   G
G,r  r  c                    [        [        / SQ/ SQUS9[        S5      S.5      nUS:X  a  S/nUR                  U5      nO#US:X  a  SS	/nUS   US	'   UR                  U5      n[	        X65      nUR                  WXUS
9n	US:X  a  [        OS n
Sn[        R                  " XS9   [        X5      " U6 nS S S 5        WR                  R                  S5      R                  n[        / SQ5      n[        R                  " X5        US:X  a<  UR                  R                  S	5      R                  n[        R                  " X5        g g ! , (       d  f       N= f)Nr  r  r   rD   r^   r  r   r  rA  rE  r  z%DataFrameGroupBy.fillna is deprecatedr   )r   r   r   r  r   rM   r   r   r   r  r!   r   r   r   r   )r  r   rK   transformation_funcr  r   rP   rI  r)   r   warnr   r  r(   r   s                  r   test_category_order_transformerr    s5    
\lGTq	

B Xu\\$	w	T{c74\\$"#6;D	D8	JB/8;=D
1C		#	#D	4B4d;	 
5__--c2==F\"H&+W11$7BB
f/  
5	4s   #E
Emethodheadtailc                 r   [        [        / SQ/ SQUS9[        S5      S.5      nUS:X  a  S/nO>US:X  a  S/nUR                  U5      nO#US	:X  a  SS
/nUS   US
'   UR                  U5      nUR	                  WXUS9n[        X5      " 5       n	US:X  a  U	S   R                  R                  n
O%U	R                  R                  S5      R                  n
[        / SQ5      n[        R                  " X5        US	:X  a<  U	R                  R                  S
5      R                  n
[        R                  " X5        g g )Nr  r  r   rD   r^   r   r   r  r  rA  rE  )r   r   r   r  rM   r  r  r   r!   r   r   r   r   )r  r   rK   r  r  r   rP   rI  r   r  r(   r   s               r   test_category_order_head_tailr    s%    
\lGTq	

B Wu	x	u\\$	w	T{c74\\$	D8	JB#%IW3##..11#6AA\"H&+W11$7BB
f/ r   )rO   r  r   c                 v   US:X  a  US:X  d  U (       d  US:w  a  [         R                  " S5        [        [        / SQ/ SQUS9[	        S5      S.5      nUS:X  a  S	/nO>US
:X  a  S	/nUR                  U5      nO#US:X  a  S	S/nUS	   US'   UR                  U5      nUR                  WXUS9nUS:X  a  US:X  a  [        OS n	Sn
[        R                  " XS9   [        X5      " S 5      nS S S 5        US:X  d  U (       d   US:X  a  WS	   R                  R                  nO%WR                  R                  S	5      R                  n[        / SQ5      n[        R                   " X5        US:X  a<  UR                  R                  S5      R                  n[        R                   " X5        g g ! , (       d  f       N= f)Nr   r   z(No categories in result, nothing to testr  r  r   rD   r^   r   r  r  rA  rE  rO   r~   r   c                      U R                  SS9$ )NTrn   )rA   rv   s    r   rx   +test_category_order_apply.<locals>.<lambda>  s    !%%T%2Jr   )rw  r  r   r   r   r  rM   r   r   r   r  r  r   r!   r   r   r   )r  r   rK   r  r  r   rP   rI  r   r  r   r  r(   r   s                 r   test_category_order_applyr    s   
 	+*"7w.>?	\lGTq	

B Wu	x	u\\$	w	T{c74\\$	D8	JB"g-*2G=TD
CC		#	#D	4B'(JK	 
5+X:3H3##..11#6AA\"H&+W11$7BB
f/  
5	4s   F**
F8c                    US:w  a  U (       d  [         R                  " SS9  [        R                  " SSS5      n[	        / SQXCS9n[        U[        S5      S	.5      nUS:X  a  S
/nO>US:X  a  S
/nUR                  U5      nO#US:X  a  S
S/nUS
   US'   UR                  U5      nUR                  WXSS9nUR                  5       n	U(       a  / SQO/ SQn
[        XR                  US
S9nU (       aA  [        SU
05      nUS:X  a'  [        R                  " [        XS.5      5      Ul        OFXl        O?US:X  a"  [        [        U5      [        U5      U
S.5      nO[        [        U5      U
S	.5      n[         R"                  " X5        g )Nr   r  r$  i'  rb  r  r   rD   r^   r   r  r  rA  TrE  )r\   r[   rZ   )r[   rZ   r\   )r   r   ra   rU   )r   rA  )r   rA  rU   )rw  r  r   r   r   r   r   r  rM   rA   r   r   r   
from_framer!   r	   r   r   )r  r   r  r   r   grouperrP   rI  r   r(   r   r!   r   s                r   test_many_categoriesr  '  sa    WXLM4R(J,:OG	uQx0	1BWu	x	u\\$	w	T{c74\\$	D8	FBVVXF 9)D++W3E c4[) '2295=V3WXHN"N	w	6%=uDQR6%=t<=&+r   cat_columnsrI  c                    [        / SQ/ SQS.5      nX    R                  S5      X '   Sn[        U 5      [        U5      -  (       a  [        OS n[        R
                  " XCS9   UR                  U5        S S S 5        g ! , (       d  f       g = f)Nr_  )rD   r]   r   rm   r^   r4  z+The default of observed=False is deprecatedr   )r   r   setr   r   r   rM   )r  rI  rP   r   klasss        r   test_groupby_default_deprr  O  si     
L9	:Bo,,Z8BO
7C -D	9MtE		#	#E	5


4 
6	5	5s   "A==
Ba1c                    U(       a4  US:X  a.  [        [        S5      (       a   e[        R                  " S5        OUS:X  a/  SnU R	                  [        R
                  R                  US95        OXUS:X  aR  U(       dK  [        U5      S:w  a<  U(       d5  U(       d.  SnU R	                  [        R
                  R                  US95        [        / SQ/ S	Q/ S
QS.5      nUR                  SSS.5      nSU;  a  UR                  SS9nUR                  XQUS9nU(       a  US   n[        X75      n	U(       dE  US;   a?  USS/:X  a7  [        R                  " [        SS9   UR                  " U//U	Q76   S S S 5        g UR                  " U//U	Q76 n
[!        X5      " U	6 nU(       a  U(       d  US:X  a  UR#                  U5      nU(       dA  [$        R&                  " UR(                  S S  Vs/ s H  oS4PM     snSU4/-   5      Ul        OU(       d
  XS/-   Ul        [*        R,                  " X5        g ! , (       d  f       g = fs  snf )Nr0   z*corrwith not implemented for SeriesGroupByz1GH#32293: attempts to call SeriesGroupBy.corrwithr$  r:   rZ   zGH#52848 - raises a ValueError)r   r   rZ   )r[   r\   r\   r@  )r  rA  rU   r4  )r  rA  rA  rr   r  rU   r  r  r  r   r>   rb  r
  )r  r   rw  r  r-  r+  r,  r   r   r   rG  rM   r   rx  ry  r  r  ra  r   from_tuplesr%   r   rH  )r2  r  rK   r  rB  rI  r   rP   r   r)   r(   r   inds                r   test_agg_listr  [  s    ~3=*5555@A	:	%AFKK--S-9:)#IN.FKK--S-9:	)99E	FB	*J7	8B4WWTW"	t	BBW">6D*>>4DRV<CW]]H
 FFN#+d+
 	VV^$,t,Fr*D1H[Nf$<$$^4%11"*"2"23B"78"732Y"78S.<Q;RR
 "22OOF%%
 
 	 9s   H1)I1
H?)ir   numpyr   rw  pandasr   r   r   r   r   r   r	   r
   pandas._testing_testingr   pandas.api.typingr   pandas.tests.groupbyr   r   r,   r/  r+  filterwarningsrR   r   r   r   parametrizer  r&  r.  r5  r>  rL  rN  rQ  rU  r\  r`  rf  ri  rt  r{  r   renamer  r  r  r  r  r  r  r  r  r  r  r  r  r   r  NaTr  fixturer  r  r  r"   r  r  r  r  r  r"  r5  r@  rC  rF  r:   r/   rI  rL  rQ  rU  r\  rb  rj  rt  r   boolry  r{  r  r  r  r  r  r  r  r  r  r  r  r  ru   r   r   <module>r     ss          + 8 DF66 E21 
2661 
2661 Q1 1 RVV1 bff1 bff1 BFF1 
2661  BFF!1" bff#1$ 
266%1& 
266'1( q)1* BFF+1, -1. 
266/10 FF666691 -@ UV( W(dN,<-, T5M2!- 3!-H UVr, Wr,j,(E*+* 2	j*93?@#J'ic2E)4DE	
 $K( 5 5	
& u6& 7'(&D+*-,( T5M2dE]3$/ 0 4 3@(V,2 -&$ v 
a	!Qq!f56 
a		 	 !4	5aS1v7NO	a	!Qq!f56--90x<1B 	8W%&	(G$%	7#$	7#$	--&"-J-%, T5M2, 3,D T5M2/, 3/,d-8-0,2   ,,IZ8)DSRUJ 		
 	<""		
2&32& bffbff'=># ?#  0 ug&67- 8-  ug&67eT]3- 4 8-0  ""5'A+!3:CPT( 
 5%.1,-
 %	
  ##$eU^UC$%<eL5%.)
 ' 1aArvvrvvq!D	
 ##$eU^UC$%<eL5%.)
 ' 1aArvvrvvq!D	
9(+X-Y+X-- 9	!;<, =,,"
#*L17h$4 eT]3'B 4'BT UV	- W	- nni 6<<";<,	,", '6!23- 4-	,*,Z,,,65,p '6!23-
-- 4-0 '6!23,
,, 4,0@( '6!23- 4---$," 'CDT5M2-0 3 E-0` '':;T5M20 3 <0@ 'CDFF#34T5M20 3 5 E0B 'CD#@AT5M2#0 3 B E#0L 'CD$, E$,N cC:(>?#sS#J!78 9 @ u64&4,!78.& 9 7.&r   