
    h#                       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 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     ]/var/www/html/shao/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)r   from_productmapreindex
sort_index)resultargsr   r   r   indexs         r   cartesian_product_for_groupersr'      s9    
 ##CL>E>>%>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r3   r0   r*   r1   rA   )groups    r   	get_stats2test_apply_use_categorical_name.<locals>.get_statsJ   s0    99;99;[[]JJL	
 	
r   Fobservedr   C)r
   rG   groupbyDapplyr&   r   )dfcatsrC   r$   s       r   test_apply_use_categorical_namerM   F   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   brP   rP   crQ   rQ   r   rP   rQ   dTr   	   rU   rU      rV   rV      r?      r   rP   abcdrP   namer   r   rU   rV   r?   r&   FrE   r   r   rP   rP   r   rP   zrQ   rS   rQ   rS   rQ   rS   yrU   rV   rW   r?   ABvaluesrf   rh   )rW      r   numeric_onlyzJohn P. Doez	Jane Dove	person_idperson_namecolumnsc                     U $ N xs    r   <lambda>test_basic.<locals>.<lambda>v   s    1r   r   c                 >    U R                  S5      R                  S   $ )Nrm   r   )drop_duplicatesilocrs   s    r   r   test_basic.<locals>.f}   s      /44Q77r   7DataFrameGroupBy.apply operated on the grouping columnsmatchr\   str)rX         )r   
         (   )binsusing SeriesGroupBy.sumc                 .    [         R                  " U 5      $ rq   r   r<   xss    r   ru   rv          RVVBZr   zusing DataFrameGroupBy.sumc                 ,    [         R                  " U SS9$ Nr   axisr   r0   r   s    r   ru   rv      s    bffRa&8r   c                 ,    [         R                  " U SS9$ r   r   r   s    r   ru   rv      s    rvvbq'9r   zusing DataFrameGroupBy.maxc                 @    [         R                  R                  U 5      $ rq   )r   maximumreducer   s    r   ru   rv      s    rzz'8'8'<r   )check_dtype)rX   r   r   )ir   r   r   r   r   c                 .    [         R                  " U 5      $ rq   r   r   s    r   ru   rv      r   r   c                 .    [         R                  " U 5      $ rq   r   r   s    r   ru   rv      s    266":r   )rU   r   r   r   r   rU   rV   rW   r?   )labelsr   foobarbazquxd   r9   r   r?   )r   r   sortrF      future_stackr*   r1   r;   r3   z25%z50%z75%r0   )6r   r   r   listr   nanrH   r1   tmassert_frame_equalr	   r<   rm   	transformrx   ry   assert_produces_warningFutureWarningrJ   copyr   r&   objectastypepdcutr   assert_series_equalr0   r   r   filterr(   r   rh   r   r   r\   randomdefault_rngintegersr   standard_normalasarrayr"   describecodesargsorttaker   repeatassert_index_equalstackget_level_values) using_infer_stringrL   data	exp_indexexpectedr$   cat1cat2rK   gbexp_idxrt   gr   msgdtyperQ   gbcresult2result3result4result5levelsr   groupeddesc_resultidx
ord_labelsord_dataexp_catsexpcexps                                    r   
test_basicr   V   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)NrV      r   rP   r   r   rX   rU   Index1Index2)r   r   r   r   r&   levelrF      z&you will need to pass a length-1 tupler|   )r   r   r   r   r   rangerH   r   r   r   	get_groupr   )rF   rK   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 )Nrf      rg   )highmedlowr?   g      (@)rB   doseoutcomes)r   r   r   Tr   rB   r   r   )r   sort_remaining)r   r   r   r   r   r   )rf   rf   rf   rg   rg   rg   r   rV   r*   r&   r\   )r   r   r   r   r   rH   value_countsr#   r   r   from_arraysr	   r   r   rK   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   rP   r   )missingdenserh   r   r   TrE   r   )r   rU          @rh   )r&   ro   c                 ,    [         R                  " U SS9$ r   )r   r1   rs   s    r   ru   test_apply.<locals>.<lambda>A  s    RWWQQ%7r   zusing DataFrameGroupBy.meanr|   rU   r]   r{   c                     gNrU   rr   rs   s    r   ru   r   R  s    r   )r   r   r   r   r   r   rH   r   r   rJ   r   r   r1   r   r   aggr	   r   )
r   r   r   rh   rK   r   r   r   r$   r   s
             r   
test_applyr  1  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           	         U(       a3  U(       d,  U R                  [        R                  R                  SS95        [	        / SQ/ SQSS9n[	        / SQ/ SQSS9n[        X4/ S	QS
.5      nSS/S-  US'   UR                  / SQUS9n[        R                  " X4SS/S-  // SQS9n[        S[        / S	QUS905      R                  5       nUR                  5       n	U(       d  [        XUSS//[        S5      SS9n[        R                  " X5        UR                  SS/US9n[        R                  " X4/SS/S9n[        / S	Q/ SQS.US9nUR                  5       n	U(       d  [        XU/[        S5      SS9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&  [        XR*                  R,                  S.S//S!S)/5      n[        R                  " X5        S/ HP  nUu  nnUR/                  U5      n	XUR*                  U:H  UR0                  U:H  -     n[        R                  " X5        MR     / S0Q/ S1Q/ S2QS3.n
[        U
5      n[2        R4                  " US   [6        R8                  " SS4S55      5      nUUS6'   UR                  S6S7/S8US99nUR'                  S*5      n	UR                  S6S7/SUS99nUR'                  S*5      R;                  5       n[        R                  " X5        g ):NzTODO(infer_string)reasonr^   r_   Tr   ra   rb   rd   re   r   r   rV   rG   )rf   rg   rG   rE   r   rh   r]   ABCr   r   rf   rg   )r   r   r   r   )rh   rG   AB)r   rP   r   rP   r   rP   rQ   rU   rU   rV   rV   r   r   r   r   )catintsvalr  abr   )r\   r   r   g      ?      4@r   )r  r  r  r1   )      $@g      >@r  g      D@rU   rV   rU   rV   )r  r  r  rU   ))r   rU   )rP   rV   )rP   rU   )r   rV   )r   r   r?   r   r?   rU   rU   r   r   r   r   2   <   F   )rS   rQ   er   r   rS   rQ   r   r   r   r   rW   r   r   Fas_indexrF   )applymarkerpytestmarkxfailr   r   rH   r   r   r	   r#   r<   r'   r   r   r   r1   r   r"   r  	set_indexr  rh   r   r  r   r   r   linspacereset_index)requestr   rF   r   r   rK   r   r   r   r$   rS   groups_single_keyr&   groups_double_keykeyrQ   ir  groupsgroups2s                       r   test_observedr)  V  s    (FKK--5I-JK+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TlDJ1
 &+  _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1",,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)rW   rW   r?   rX   rd   )r   r      "   )C1C2C3r-  )rU   rV   rW   r   r  r.  rE   r   )      @r0  g      @g      @)r  g      Y@g      i@g      A@)r-  r/  r]   r1   )r   r   r   r\   rH   r   r   r'   rh   r  r   r   )rF   rS   rK   rh   r$  r   r   r$   s           r   test_observed_codes_remapr1    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 )NrV   r      i0u  r   '  )r  int_idother_idr   categoryr  )r  r5  r6  TrE   rU   )r   r   r   r   r   r  r   r   rH   r*   r&   r   r5   r5  r6  )rK   r   r$   s      r   test_observed_perfr8    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   rQ   r   r	  r   rU   rV   rW   r  valsr  rE   r   rV   int64r   rU   )r   rQ   )r   r   rH   r'  r   r   assert_dict_equal)rF   r  rK   r   r$   r   s         r   test_observed_groupsrA    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   r;  r~   rP   )	ri   r   r   r   r   rB  r   r   r   r?   rX   r   a2)	r   r   r   r   rB  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rU   rU   rV   r;  r:  rC  )ri   r   rB  )r   rD  rP   rQ   r   rD  rP   rn   FrE   rQ   rU   	r   r   r   rU   rU   rU   rV   rV   rV   rW   r   rU   rV   )r   r   r]   )
r   r   r  droprH   r<   r   r   r   assert_equal)
keysexpected_valuesexpected_index_levelsrE  rK   r   r$   r&   r   r   s
             r   test_unobserved_in_indexrO    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   rP   rS   r:  r;  r<  r  rE   r   rV   r>  r?  )	r   r   r   r   rH   r'  r   r   r@  )rF   rK   r   r$   r   s        r   test_observed_groups_with_nanrQ  =  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	  r:  r;  )r  serr  FrE   rS  r   )
r   r   r   r	   r   rH   r4   ry   r   r   )r  rS  rK   r$   r   s        r   test_observed_nthrT  R  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	  r:  rd   )s1s2rV  rE   rV   )
r   r   r   r	   r   rH   r,   r!  r   r   )rF   rV  rW  rK   r$   r   s         r   #test_dataframe_categorical_with_nanrX  ]  s    	bffc2663/O	LB		B	"'	(BZZxZ0668DDFFuA!M
 !/oN"&&"&&)
 &+r   rF   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)rS   r   rP   r   rS   rP   )r   rP   r   rS   r   )labelr  rZ  )rF   r   r  r,   r   r?  r   zDLabels and aggregation results not consistently sorted
for (ordered=z, observed=z, sort=z
)
Result:
)	r   r	   r   rH   	aggregater&   arrayisnar(   )	r   rF   r   rZ  r  rK   r$   aggrr   s	            r   0test_dataframe_categorical_ordered_observed_sortr_  q  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-01r?   )periodsrV   r   r   r   Tr   r   FrE   r   r   r   r   rU   )r   
date_ranger   r   r   r   r   r   r   r   rH   r1   r   r"   r   r&   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   rL   r   r$   r   r   r   r   r   r   r   r   s                r   test_datetimerc    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 )NrV   r   r   r?   r   r   Tr   rZ   rn   rL   Fr   rE   r   rU   rV   rW   r~   )r   r   r   r   r   r   r   r   r   reshaper   r  rH   r<   r   r   r&   r   r   )sr   r   rL   rK   r$   r   s          r   test_categorical_indexri    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   rV   )r   r?   rn   rd   rX   r   )r   r   r   r   r   r   rH   r   r   r   r   ro   assert_categorical_equalrh   )rL   rK   r$   s      r   !test_describe_categorical_columnsrl    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   rf   rg   rX   XYXXYrV   )r   mediumartistro  r7  rp  FrE   r   r   r\   r   r?   XYr~   r]   )r   r   r   r   rH   r*   unstackr   r   r   r   ro   rk  rh   r	   r   r   )rK   gcatr$   exp_columnsr   s        r   test_unstack_categoricalrw    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)NrU   rV   rW   r?   z$Grouper and axis must be same lengthr|   )r	   r   r   r   r   dropnarh   r  raises
ValueErrorrH   r1   )seriesr   s     r   test_bins_unequal_lenr}    sx    RVVRVVQ1aAq!<=F66&--/((!,D 
z)O	Pt!!# 
Q	P	Ps   : B##
B1r|  r   r?   rW   rU   rV   rf   rg   c                     U S-   $ r  rr   )r   s    r   ru   ru     s    S1Wr   ri   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ABBAr7  r?  FrE   r]   )rH   r	   r   r[  r   rL  r   r   )r|  r   rH   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rU   rV   rV   r;  )r      r  )e   f   g   )r  rf   rg   r  rf   FTr  rU   rV   r:  r   r  r     rn   c                 &   > TR                   U S4   $ )Nrf   )loc)rrK   s    r   ru   test_as_index.<locals>.<lambda>0  s    "&&C.r   z*A grouping .* was excluded from the resultr|   r   )r   rP   rP   r~   )Nrr  rg   r   )r   r   rH   r<   r  r   r   r   r   r   r	   r   r   r&   )r$   r   r   r   rh  group_columnsr\   rK   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   rf   baTr   rq  bacFr   )	r   r   r   r   r   r   rH   r,   r&   )r   rK   r#   nosort_indexs       r   test_preserve_categoriesr  W  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)rU   rV   rU   rU   rV   )r      r      r,  abaabr  Fr   T)rf   rg   r-  r.  r   g      ?g      9@r  )r-  r.  byr  rF   rj   rn   )r   r   r   r   r   rH   r1   r!  r"   ro   r   r   )rK   exp_fullcolresult1r   r   s         r   test_preserve_categorical_dtyper  u  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)r,   r  r  r  Tr   )re  re  r  )payloadr  r  r  re  r?  r  )
r   r   rH   getattrr	   r   r  r   r   r   )funcrh   rQ   rK   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 )NrV   rB  rH  rI  Tr   FrE   r   )	r   r   r   rU   rU   rU   rW   rW   rW   rf  rO   rR   rT   rY   rP   r   rU   r?   )r	   r   r   r   r   r\  r   r   rH   r1   r   r&   r   r   r   r   r"   r   rh   r   assert_numpy_array_equal)r   r   rL   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 )NrW   )trainr  testr~  rf   rg   r  r  r:  r   r   r\   r   )r   r   rH   r,   r	   r   r   rK   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                  Z   [        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valuerV   r   r4  r   i  z - i  T)r  	ascendingi)  F)rightr   value_grouprE   c                 :    [        U R                  5       S   5      $ )Nr   )floatsplitrs   s    r   ru   test_sort.<locals>.<lambda>  s    eAGGIaL.Ar   )r%  r~   )r   r   r   r   r   r   r   sort_valuesr   r   r  rH   r*   sortedr&   r   r\   r   r   )rK   r&  r   
cat_labelsresr   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]rX   r   )(5, 7.5]r   r   )r  r?   r  )(0, 2.5]rU   r  )r  ri   r  )r   r   r   rn   r   r   Fr   rU   r  rX   r   r   r   r   )r  r  r  r  )r  r  r  r  r   r   r[   ro   r&   )r   r   rH   r,   r   r   r   )r   r   rK   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  ri   rU   rV   rX   )r   r   rX   r   r?   rU   ri   r  )dtr   r   rn   r  r   r  r   r   r   r   r   r   r[   r  Fr   )r   r   r   r   rH   r,   r   r   )r   r   rK   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   rP   r	  r:  rU   rV   rU   r~  rf   r~   FrE   )rW   rU   r   rg   r   	min_countrU   rW   rV   )r   r   r   rH   rg   r<   r	   r   r   r   r   rK   expected_idxr$   r   s       r   test_empty_sumr  Q  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	  r:  r  r~  rf   r~   FrE   )rV   rU   rU   rg   r   r  rU   rV   )r   r   r   rH   rg   r6   r	   r   r   r   r   r  s       r   test_empty_prodr  m  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1minrW   )freqra  rB  )key1key2rh   r  r  FrE   r	  r   rh   r   r?   r   rX   r   rV   r]   )r   r   r   r   rb  r   r   rH   r1   r   r    r   r   r   )rK   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, expectedrG  r7  r?  r  r   rt   )r&   r   r\   r   rP   rt   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 )NrG  r7  r?  r  r;  r  r   rP   Tr  rt   )r   r	   rH   r<   r   rK  )r  r   rK   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 )NrR   Fr   )Nr   rP   rQ   rU   r   )r   shiftr   rK  )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
Nr?   rf   r7  rg   rd   rG   rI   rU   r   )r   r   r	   rJ  )rK   df_cats     r   r  r    sl    " WWYr]F+$$Z0F3K+$$Z0F3K&F3K[[#Q['FMr   	operationr  rJ   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   rf   r  )onethreer  tworg   )rV   r?   rU   rW   rG   r   r&   r\   TrE   rJ   using np.sumr   r|   )r   r   r   r   r	   r#   rH   r   r   r   r  r<   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  rf   rg   r   rV   r?   rU   rW   rG   r  r  z.The 'downcast' keyword in fillna is deprecatedr|   r   infer)downcastrE   r   r  )r   r    r   	sortlevelr	   r   r   r   r   r   fillnarH   r  r<   r   )	r  rF   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   rf   r  )r  r  r  r  r  r  r  r  rg   )rV   rV   r?   r?   rU   rU   rW   rW   r   r  )rf   rg   Nc                     [        X2SS9nU R                  SS/US9S   R                  S 5      n[        R                  " XT5        g )NrG   r  rf   rg   rE   c                 D    U R                  5       U R                  5       S.$ )Nr3   r0   r  rs   s    r   ru   8test_seriesgroupby_observed_apply_dict.<locals>.<lambda>B  s    !%%'!%%'2r   )r	   rH   rJ   r   r   )r  rF   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 )Nrf   rg   FrE   rG   )rH   r1   r   r   )r  r   r$   s      r   4test_groupby_categorical_series_dataframe_consistentr  G  sX    ~~sCj5~9#>CCEH^^S#J^7<<>sCF6,r   code)rU   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)Nrd   )re  r  )rX   r   ri   r   r	  r   r:  z+DataFrame.groupby with axis=1 is deprecatedr|   rU   F)r   rF   z5The 'axis' keyword in DataFrame.groupby is deprecatedr   )r   r   r   r   r   r   r   rH   r1   Tr   )r  rK   r  r   r   r$   gb2r   s           r   test_groupby_categorical_axis_1r  N  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   rU   rV   )NameItemr	  r
  rn   rE   T)skipna)	r   r   r   rH   r  r<   r!  r   r   )rF   r   rK   r   r$   s        r   $test_groupby_cat_preserves_structurer  ^  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)Nr^   r?   r=   r  z'vau'r|   r=   c                 b    [        U R                  S   S   /U R                  S   S   /S.5      $ )Nre  r=   vaur  )r   ry   )rowss    r   ru   /test_get_nonexistent_category.<locals>.<lambda>t  s1    2u-.		"e8L7MNr   )r   r   r  rz  KeyErrorrH   rJ   rK   s    r   test_get_nonexistent_categoryr  o  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ABCDr:  r  rV   皙?r?   cat_1cat_2r  r  r  r  rE   r  r+   r.   r-   (empty group due to unobserved categoriesr|   )r  skipr   r   r   r   rH   hasattrr  rz  r{  r   )reduction_funcrF   rK   r%   expected_lengthseries_groupbyr  r$   s           r   0test_series_groupby_on_2_categoricals_unobservedr&  z  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  r+   z6TODO: implemented SeriesGroupBy.corrwith. See GH 32293r  r  r  r:  r  rV   r  r?   r  ACBCCACBCCr  r  FrE   r  r  r   r|   r   r<   )r  r!  r  r  r  r   r   r   tupler   rH   r  rz  r{  -_results_for_groupbys_with_missing_categoriesr  r   r]  r   
issubdtyper   integer)r#  r"  r  rK   
unobservedr%   r%  r  r$   zero_or_nanr   r  s               r   ?test_series_groupby_on_2_categoricals_unobserved_zeroes_or_nansr3    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  r:  111112r  r  r  r  r  )rf   2)rg   r:  )rG   1)rG   r:  r  r  TrE   )	r  r!  r   r   r   rH   r   r  r&   )r#  rK   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  r5  r  r  r:  r6  r7  r8  r  r9  r  r  rE   r  r   r|   )r  r!  r   r   r   rH   r   rz  r{  r  r.  r   r   r  isnullr(   )r#  rF   rK   r<  r=  r%   r  r   s           r   ?test_dataframe_groupby_on_2_categoricals_when_observed_is_falserA    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   r?   rU   r  )rS   rQ   rS   rQ   r  r   r   r   rX   r   r   TFr  r   rF   r1   )	r   r   r   r   r   rH   r  r   r   )rS   rK   r  r'  r$   r   s         r   3test_series_groupby_categorical_aggregation_getitemrD    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   rU   rU   rV   rV   )r   r   r   r   rU   )idr'  r  rF  r'  r  rI  r~   r]   )r   r   r  rH   r  r   r   r   )r  rM  rK   r$   r   s        r   $test_groupby_agg_categorical_columnsrG  &  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 )	Nrf   r  r	  r:  rV   rU   r]   r  )
r   r   r   r\  rH   r  r	   r5   r   r   rK   r   r$   s      r   test_groupby_agg_non_numericrJ  ;  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  rP   r7  r?  r~  rf   rg   r~   r&   r\   r   )
r   r	   r  
as_orderedrH   r  r   r   r   r   )r  rK   
df_groupedr$   r   s        r   <test_groupby_first_returned_categorical_instead_of_dataframerO  F  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 )NrU   rV   F)rU   rW   rX   ri   r
  r:  rY   r   r   g      @rP   r~   r   r   )r   r\  flags	writeabler   r   r   r   rH   r1   r   r   )rL   rK   r   r$   s       r   test_read_only_category_no_sortrS  U  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largerV  rV  ro  rV  rV  ro  )rG   rf   rf   rG   rf   rG   rf   rG   )r   r   r   r7  )tinyrU  ro  rV  Tr   r   )rf   rG   rU   rW   rV   r   r&   r   )r   r   r\   r   FrE   )r   r   r  set_categoriesrename_axisr   ro   rH   r9   rt  r   r   rI  s      r   #test_sorted_missing_category_valuesrZ  a  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rU   rU   rV   rW   r7  col_catr;  r~   rL  r,   )r   r   rH   r^  r,   r	   r   r   r   r   r  to_framer   r  s      r   1test_agg_cython_category_not_implemented_fallbackr`    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)rU   rU   rU   rU   r  r  g?g333333?)r   r   r   fee)rf   rg   numerical_col
object_colcategorical_colre  r7  rf   rg   c                 >    U R                  5       R                  5       $ rq   )r]  r<   r  s    r   ru   7test_aggregate_categorical_with_isnan.<locals>.<lambda>  s    2779==?r   rU   rV   r~  r   r   )rc  rd  re  r   )
r   r   r   r   rH   r  r   r   r   r   r   s       r   %test_aggregate_categorical_with_isnanrh    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)rU   rU   rU   rV   rV   rW   )WaitingOnTheWay	Deliveredrj  rk  rj  )
package_idstatus)rj  rk  rl  Tr   rn  zusing SeriesGroupBy.maxr|   rm  last_status)rl  rl  rl  rk  rk  rj  )rm  rn  ro  )r   r   CategoricalDtyper   r   r   r   rH   r   r0   r   r   )rK   delivery_status_typer   r$   r   s        r   test_categorical_transformrr    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   rU   rU   )r   rU   rU   r   r	  r   rU   r   rP   r   rQ   r~   )r,   r/   rE   )r   r   r   r    r	   r   r   ry  r   r>  rH   r  r   r   )r  rF   r  r  rK   r   r   expected_dictr   srs_grpr$   s              r   Ftest_series_groupby_first_on_categorical_col_grouped_on_2_categoricalsrw    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 rt  )r   r   r   r    r	   r   r   r_  ry  r   r>  rH   r  r   r   )r  rF   r  r  rK   r   r   ru  r   r=  r$   s              r   Btest_df_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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)rP   rP   r   r	  r:  rW   )r%  r  r%  Fr   r   rU   intpr?  rV   )rP   r   rQ   )
r   r   r   rH   indicesr   r\  rL  r   r  )rK   r   r$   r   r%  s        r   2test_groupby_categorical_indices_unused_categoriesr}  )  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   r;  r7  rP   r~   )r\   r&   )	r   r   r  rH   r	   r   r   r   r   )r  rK   r$   r   s       r   1test_groupby_last_first_preserve_categoricaldtyper  =  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 )NrU   rV   r   r  r	  r7  rY   r?  r   rP   TrE   rQ   r~   r   )
r   r   rH   r5   r	   r   r   r   r   r   r  s      r   )test_groupby_categorical_observed_nuniquer  I  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 )NrU  bigTr   rU   rV   grpdescriptionrn   r~   rL  )
r   rp  r   r   rH   r0   r	   r   r   r   )r   rK   r$   r   s       r   ,test_groupby_categorical_aggregate_functionsr  X  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 )NrU   rV   r;  r:  rW   r?   )rt   rc   rt   )rF   ry  rc   r]   )rW   r?   r   )	r   r   rH   r<   r   r&   r\   r   r   )rF   ry  r  rK   r   r$   r   r&   s           r   test_groupby_categorical_dropnar  j  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)Nr+   zDGH#49950 - corrwith with as_index=False may not have grouping columnr  r   /Result doesn't have categories, nothing to testrV   rU   rV   rW   rU   r?   rW   rV   r   r?   rY   r   r  r  rD  rC  r  r   r|   )r  r  r  r  r!  r   r   r   r  r   rH   rz  r{  r  r&   r   r   r  r   r   r   )r"  r  r   rF   r#  r  r   r   rK   rL  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   r?   rY   r  r   r  rD  rC  r  z%DataFrameGroupBy.fillna is deprecatedr|   )r   r   r   r  r   rH   r   r   r   r  r&   r   r   r   r   )r  r   rF   transformation_funcr  r   rK   rL  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   r?   rY   r   r   r  r  rD  rC  )r   r   r   r  rH   r  r  r   r&   r   r   r   r   )r  r   rF   r  r  r   rK   rL  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   )rJ   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   r?   rY   r   r  r  rD  rC  rJ   r{   r|   c                      U R                  SS9$ )NTrj   )r<   rs   s    r   ru   +test_category_order_apply.<locals>.<lambda>  s    !%%T%2Jr   )r  r!  r   r   r   r  rH   r   r   r   r  r  r   r&   r   r   r   )r  r   rF   r  r  r   rK   rL  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'  re  r  r   r?   rY   r   r  r  rD  TrC  )rW   rV   rU   )rV   rU   rW   )r   r   r\   rP   )r   rD  )r   rD  rP   )r  r!  r   r   r   r   r   r  rH   r<   r   r   r   
from_framer&   r	   r   r   )r  r   r  r   r   grouperrK   rL  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_columnsrL  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]  )r?   rX   r   ri   rY   r7  z+The default of observed=False is deprecatedr|   )r   r   setr   r   r   rH   )r  rL  rK   r   klasss        r   test_groupby_default_deprr  D  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(       d@  [$        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 )Nr+   z*corrwith not implemented for SeriesGroupByz1GH#32293: attempts to call SeriesGroupBy.corrwithr  r5   rU   zGH#52848 - raises a ValueError)r   r   rU   )rV   rW   rW   rC  )r  rD  rP   r7  )r  rD  rD  rn   r  rP   r  r  r   r|   r9   re   )r"  r   r  r!  r  r  r  r   r   r   rJ  rH   r   rz  r{  r  r  r_  r   from_tuplesro   r   rK  )r"  r  rF   r#  rE  rL  r   rK   r   r%   r$   r   inds                r   test_agg_listr  P  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   H0)I0
H>)ir   numpyr   r  pandasr   r   r   r   r   r   r	   r
   pandas._testing_testingr   pandas.api.typingr   pandas.tests.groupbyr   r   r'   r.  r  filterwarningsrM   r   r   r   parametrizer  r)  r1  r8  rA  rO  rQ  rT  rX  r_  rc  ri  rl  rw  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&  r3  r>  rA  rD  r5   r*   rG  rJ  rO  rS  rZ  r`  rh  rr  r   boolrw  ry  r}  r  r  r  r  r  r  r  r  r  r  r  rr   r   r   <module>r     ss          + 8 DF66 E"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o, Wo,d,(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   