
    Mh"                    D   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S rS rS rS r\R6                  R9                  SSS/5      S  5       rS! rS" rS# r S$ r!\R6                  R9                  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      \R6                  R9                  S/SS/5      S0 5       5       r"S1 r#S2 r$S3 r%\R6                  R9                  SSS/5      \R6                  R9                  S4SS/5      \R6                  R9                  S5SS/5      S6 5       5       5       r&S7 r'S8 r(S9 r)S: r*S; r+\R6                  R9                  S<S=/\" \," S>5      5      S S?/S@SA/SB.4\" \," S>5      5      R[                  SC 5      SA/S S@/SB.4\" \," SD5      5      S S?/S@SA/SB.4/5      SE 5       r.SF r/SG r0SH r1\R6                  R9                  SISSJS/4SSKSL/4SSKS/4SSJSL/4/5      SM 5       r2SN r3SO r4SP r5\R6                  R9                  SSS/5      SQ 5       r6\R6                  R9                  SSS/5      SR 5       r7SS r8ST r9SU r:\R6                  R9                  SVS\" \
Rv                  " \" / SWQSXSY9/ SZQ/S&S*/S[9/ S(QS\S]94S\" \" / SWQSXSY9/ SZQ/ S(QS^.5      4/5      S_ 5       r<\R6                  R9                  S`S\R(                  \Rz                  /5      Sa 5       r>\R~                  Sb 5       r@\R6                  R9                  ScSdSe/5      Sf 5       rA\R6                  R9                  ScSdSe/5      \R6                  R9                  S4SS/5      Sg 5       5       rB\R6                  R9                  ShS\
Rv                  " \	" Si/S>-  Sj/S>-  -   SXSkSl9\	" / SmQSXSnSl9\	" SS/S>-  5      /5      / SoQ4S\
R                  " \" SiSj/SSp9\" / SqQSSp9\	" SS/5      // SrQS[9SASAS>S>\R(                  \R(                  S@S@\R(                  \R(                  S?S?/4S\
R                  " \" SiSj/SSp9\" / SqQSSp9\	" SS/5      // SrQS[9SASAS>S>\R(                  \R(                  S@S@\R(                  \R(                  S?S?/4/5      Ss 5       rDSt rE\R6                  R9                  Su/ SvQ/ SwQ/5      Sx 5       rFSy rGSz rHS{ rIS| rJS} rK\R6                  R9                  S4SS/5      S~ 5       rLS rM\R6                  R9                  S\R                  / SWQ4\R                  / SZQ4/5      S 5       rPS rQ\R6                  R9                  SSS/5      S 5       rRS rSS rTS rUS rVS rW\R6                  R9                  SSS/5      S\XS4\Y4S j5       rZ\R6                  R9                  SSS/5      S\XS4\Y4S j5       r[S r\\R6                  R9                  SSS/5      S 5       r]S r^S r_S r`\R6                  R9                  S/ SQ5      \R6                  R9                  SSS/5      S 5       5       ra\R6                  R9                  SSS/5      \R6                  R9                  SSS/5      S 5       5       rb\R6                  R9                  S/ SQ5      \R6                  R9                  SSS/5      \R6                  R9                  SSS/5      S 5       5       5       rc\R6                  R9                  S/ SQ5      \R6                  R9                  S/ SQ5      \R6                  R9                  SSS/5      S 5       5       5       rd\R6                  R9                  S/ SQ5      S 5       re\R6                  R9                  SS&S*S&S*//5      \R6                  R9                  SS&S*S&S*//5      S 5       5       rf\R6                  R9                  S/SS/5      \R6                  R9                  SS/SS-//5      S 5       5       rgg)    )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     W/var/www/html/env/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varc                     [        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_statsI   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                   " [6        US$9   UR4                  R                  USS9R                  [        5      nS S S 5        [        R8                  " XXS
   5        [        R8                  " UR4                  R                  USS9R                  S+ 5      US
   5        S,n[        R                   " [6        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                   " [6        US$9   UR                  [:        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        [        R8                  " UR4                  R                  USS9RA                  [        RB                  5      US
   5        [        R                  " UR                  USS9RA                  [        RB                  5      U5        [        S
/ S2Q05      n[0        R2                  " UR4                  / S3QS)9nS*n[        R                   " [6        US$9   UR4                  R                  USS9R                  [        5      nS S S 5        [        R8                  " XXS
   5        [        R8                  " UR4                  R                  USS9R                  S4 5      US
   5        S,n[        R                   " [6        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%                  [D        5      n[        URF                  RH                  URF                  RJ                  S99n[        / S6QUS9nS
UR*                  l&        [        R8                  " XT5        / S:Qn[        RN                  RQ                  S5      RS                  S!SS;S<9n[         RT                  " UUSS99n[        [        RN                  RQ                  S5      RW                  S=5      5      nUR                  USS9R                  5       nUR                  [        RX                  " U5      SS9R                  5       n[        UURH                  SS9n
UR[                  U
5      n[        R                  " XT5        UR                  USS9nUR]                  5       nUR^                  Ra                  5       n[        RX                  " U5      Rc                  U5      nURc                  U5      n[        US/ S:QS>9nUR                  USSS?9R]                  5       n[        R                  " UU5        [         RT                  " [        Rd                  " S5      Rg                  S@5      USS99n[        U5      n[        Rh                  " URk                  SSA9R*                  Rm                  S!5      U5        [)        / SBQS-  5      n[        Rh                  " URk                  SSA9R*                  Rm                  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>u   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\   zstring[pyarrow_numpy])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   )7r   r   r   listr   nanrH   r1   tmassert_frame_equalr	   r<   rm   	transformrx   ry   assert_produces_warningDeprecationWarningrJ   copyr   r&   objectastypepdcutr   FutureWarning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   U   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		#	#$6c	B 
Cvvq!f~""$HAq64HN'9#vE&}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 
C	B 
>	= 
>	= 
>	=& 
>	= 
>	=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>@  s    RWWQQ%7r   zusing DataFrameGroupBy.meanr|   rU   r]   r{   c                     gNrU   rr   rs   s    r   ru   r   Q  s    r   )r   r   r   r   r   r   rH   r   r   rJ   r   r   r1   r   r   aggr	   r   r   )
r   r   r   rh   rK   r   r   r   r$   r   s
             r   
test_applyr  0  su    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		#	#$6c	B{+ 
C6, 
>	= 
C	Bs   8 F%3F6%
F36
Gc           	      f   [        / 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  [        XaUS	S
//[        S5      SS9n[        R                  " Xv5        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  [        XaU/[        S5      SS9n[        R                  " Xv5        [        / 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                  " Xv5        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&  [        XcR"                  R$                  S,S//SS'/5      n[        R                  " Xv5        S- HO  nUu  pUR'                  U5      nX3R"                  U:H  UR(                  U:H  -     n[        R                  " Xv5        MQ     / S.Q/ S/Q/ S0QS1.n[        U5      n[*        R,                  " US	   [.        R0                  " SS2S35      5      nXS4'   UR                  S4S5/S6U S79nUR                  S(5      nUR                  S4S5/SU S79nUR                  S(5      R3                  5       n[        R                  " Xv5        g )8Nr^   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   )r   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)rF   r   r   rK   r   r   r   r$   rS   groups_single_keyr&   groups_double_keykeyrQ   ir
  groupsgroups2s                     r   test_observedr"  U  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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",,S1vv{rww!|45
f/	 8 &+2	A
 
1B
&&EBKK2q1
2CwK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   )      @r)  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_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 )NrV   r      i0u  r   '  )r
  int_idother_idr   categoryr
  )r
  r.  r/  TrE   rU   )r   r   r   r   r   r
  r   strrH   r*   r&   r   r5   r.  r/  )rK   r   r$   s      r   test_observed_perfr2    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_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   r5  r~   rP   )	ri   r   r   r   r   r<  r   r   r   r?   rX   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rU   rU   rV   r5  r4  r=  )ri   r   r<  )r   r>  rP   rQ   r   r>  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_levelsr?  rK   r   r$   r&   r   r   s
             r   test_unobserved_in_indexrI    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   r4  r5  r6  r
  rE   r   rV   r8  r9  )	r   r   r   r   rH   r   r   r   r:  )rF   rK   r   r$   r   s        r   test_observed_groups_with_nanrK  7  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  r4  r5  )r
  serr
  FrE   rM  r   )
r   r   r   r	   r   rH   r4   ry   r   r   )r
  rM  rK   r$   r   s        r   test_observed_nthrN  L  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  r4  rd   )s1s2rP  rE   rV   )
r   r   r   r	   r   rH   r,   r  r   r   )rF   rP  rQ  rK   r$   r   s         r   #test_dataframe_categorical_with_nanrR  W  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  rT  )rF   r   r  r,   r   r9  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   rT  r  rK   r$   aggrr   s	            r   0test_dataframe_categorical_ordered_observed_sortrY  k  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_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 )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_indexrc    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_columnsrf    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artistri  r0  rj  FrE   r   r   r\   r   r?   XYr~   r]   )r   r   r   r   rH   r*   unstackr   r   r   r   ro   re  rh   r	   r   r   )rK   gcatr$   exp_columnsr   s        r   test_unstack_categoricalrq    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   pytestraises
ValueErrorrH   r1   )seriesr   s     r   test_bins_unequal_lenrx    sx    RVVRVVQ1aAq!<=F66&--/((!,D 
z)O	Pt!!# 
Q	P	Ps   : B##
B1rw  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ABBAr0  r9  FrE   r]   )rH   r	   r   rU  r   rF  r   r   )rw  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   r5  )r      r  )e   f   g   )r
  rf   rg   r
  rf   FTr  rU   rV   r4  r   r  r     rn   c                 &   > TR                   U S4   $ )Nrf   )loc)rrK   s    r   ru   test_as_index.<locals>.<lambda>*  s    "&&C.r   z*A grouping .* was excluded from the resultr|   r   )r   rP   rP   r~   )Nrl  rg   r   )r   r   rH   r<   r
  r   r   r   r   r   r	   r   r   r&   )r$   r   r   r   rb  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   rk  bacFr   )	r   r   r   r   r   r   rH   r,   r&   )r   rK   r#   nosort_indexs       r   test_preserve_categoriesr  Q  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  o  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   )r_  r_  r  )payloadr  r  r  r_  r9  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   r<  rB  rC  Tr   FrE   r   )	r   r   r   rU   rU   rU   rW   rW   rW   r`  rO   rR   rT   rY   rP   r   rU   r?   )r	   r   r   r   r   rV  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  testry  rf   rg   r  r  r4  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                  \   [        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   r-  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  r4  rU   rV   rU   ry  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  K  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  r4  r  ry  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  g  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   )freqr[  r<  )key1key2rh   r  r  FrE   r  r   rh   r   r?   r   rX   r   rV   r]   )r   r   r   r   r\  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, expectedrA  r0  r9  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 )NrA  r0  r9  r  r5  r  r   rP   Tr  rt   )r   r	   rH   r<   r   rE  )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   rE  )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   r0  rg   rd   rG   rI   rU   r   )r   r   r	   rD  )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><  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  A  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   )r_  r  )rX   r   ri   r   r  r   r4  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   H  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  X  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      $ )Nr_  r=   vaur	  )r   ry   )rowss    r   ru   /test_get_nonexistent_category.<locals>.<lambda>n  s1    2u-.		"e8L7MNr   )r   r   rt  ru  KeyErrorrH   rJ   rK   s    r   test_get_nonexistent_categoryr  i  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ABCDr4  r  rV   皙?r?   cat_1cat_2r  r  r  r  rE   r  r+   r.   r-   (empty group due to unobserved categoriesr|   )rt  skipr   r   r   r   rH   hasattrr  ru  rv  r   )reduction_funcrF   rK   r%   expected_lengthseries_groupbyr  r$   s           r   0test_series_groupby_on_2_categoricals_unobservedr!  t  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 32293reasonr  r  r4  r  rV   r  r?   r  ACBCCACBCCr  r  FrE   r  r  r  r|   r   r<   )rt  r  markxfailapplymarkerr   r   r   tupler   rH   r  ru  rv  -_results_for_groupbys_with_missing_categoriesr  r   rW  r   
issubdtyper   integer)r  requestr*  rK   
unobservedr%   r   r  r$   zero_or_nanr   r  s               r   ?test_series_groupby_on_2_categoricals_unobserved_zeroes_or_nansr4    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  r4  111112r  r  r  r  r  )rf   2)rg   r;  )rG   1)rG   r;  r  r  TrE   )	rt  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  r6  r  r  r4  r7  r8  r9  r  r:  r  r  rE   r  r  r|   )rt  r  r   r   r   rH   r   ru  rv  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_falserB    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_getitemrE    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  rG  r   r  rC  r~   r]   )r   r   r  rH   r  r   r   r   )r  rG  rK   r$   r   s        r   $test_groupby_agg_categorical_columnsrH    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  r4  rV   rU   r]   r  )
r   r   r   rV  rH   r  r	   r5   r   r   rK   r   r$   s      r   test_groupby_agg_non_numericrK  4  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   r0  r9  ry  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_dataframerP  ?  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  r4  rY   r   r   g      @rP   r~   r   r   )r   rV  flags	writeabler   r   r   r   rH   r1   r   r   )rL   rK   r   r$   s       r   test_read_only_category_no_sortrT  N  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largerW  rW  ri  rW  rW  ri  )rG   rf   rf   rG   rf   rG   rf   rG   )r   r   r   r0  )tinyrV  ri  rW  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   rn  r   r   rJ  s      r   #test_sorted_missing_category_valuesr[  Z  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   r0  col_catr5  r~   rM  r,   )r   r   rH   r_  r,   r	   r   r   r   r   r  to_framer   r  s      r   1test_agg_cython_category_not_implemented_fallbackra    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_colrf  r0  rf   rg   c                 >    U R                  5       R                  5       $ rq   )rW  r<   r  s    r   ru   7test_aggregate_categorical_with_isnan.<locals>.<lambda>  s    2779==?r   rU   rV   ry  r   r   )rd  re  rf  r   )
r   r   r   r   rH   r  r   r   r   r   r   s       r   %test_aggregate_categorical_with_isnanri    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	Deliveredrk  rl  rk  )
package_idstatus)rk  rl  rm  Tr   ro  zusing SeriesGroupBy.maxr|   rn  last_status)rm  rm  rm  rl  rl  rk  )rn  ro  rp  )r   r   CategoricalDtyper   r   r   r   rH   r   r0   r   r   )rK   delivery_status_typer   r$   r   s        r   test_categorical_transformrs    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   rs  r   r8  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_categoricalsrx    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 ru  )r   r   r   r    r	   r   r   r`  rs  r   r8  rH   r  r   r   )r  rF   r
  r  rK   r   r   rv  r   r>  r$   s              r   Btest_df_groupby_first_on_categorical_col_grouped_on_2_categoricalsrz  	  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  r4  rW   )r  r  r  Fr   r   rU   intpr9  rV   )rP   r   rQ   )
r   r   r   rH   indicesr   rV  rF  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   r5  r0  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  6  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  r0  rY   r9  r   rP   TrE   rQ   r~   r   )
r   r   rH   r5   r	   r   r   r   r   r   r  s      r   )test_groupby_categorical_observed_nuniquer  B  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 )NrV  bigTr   rU   rV   grpdescriptionrn   r~   rM  )
r   rq  r   r   rH   r0   r	   r   r   r   )r   rK   r$   r   s       r   ,test_groupby_categorical_aggregate_functionsr  Q  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   r5  r4  rW   r?   )rt   rc   rt   )rF   rs  rc   r]   )rW   r?   r   )	r   r   rH   r<   r   r&   r\   r   r   )rF   rs  r
  rK   r   r$   r   r&   s           r   test_groupby_categorical_dropnar  c  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  r>  rD  r  r  r|   )r,  rt  r*  r+  r  r   r   r   r  r   rH   ru  rv  r  r&   r   r   r
  r   r   r   )r1  r  r   rF   r  r  r   r   rK   rF  r%   r   	op_resultr$   r   s                  r   test_category_order_reducerr  t  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  r>  rD  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   rF  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  r>  rD  )r   r   r   r  rH   r  r
  r   r&   r   r   r   r   )r  r   rF   r  r  r   rK   rF  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  r>  rD  rJ   r{   r|   c                      U R                  SS9$ )NTrj   )r<   rs   s    r   ru   +test_category_order_apply.<locals>.<lambda>  s    !%%T%2Jr   )rt  r  r   r   r   r  rH   r   r   r   r  r
  r   r&   r   r   r   )r  r   rF   r  r  r   rK   rF  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!'7!2zW7LRVD
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'  r_  r  r   r?   rY   r   r  r  r>  TrD  )rW   rV   rU   )rV   rU   rW   )r   r   r\   rP   )r   r>  )r   r>  rP   )rt  r  r   r   r   r   r   r  rH   r<   r   r   r   
from_framer&   r	   r   r   )r  r   r  r   r   grouperrK   rF  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_columnsrF  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   r0  z+The default of observed=False is deprecatedr|   )r   r   setr   r   r   rH   )r  rF  rK   r   klasss        r   test_groupby_default_deprr  =  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 )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   r=  )r  r>  rP   r0  )r  r>  r>  rn   r  rP   r  r  r  r|   r9   r_   )r  r   rt  r  r,  r*  r+  r   r   r   rD  rH   r   ru  rv  r  r  r`  r   from_tuplesro   r   rE  )r1  r  rF   r  r?  rF  r   rK   r   r%   r$   r   inds                r   test_agg_listr  I  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?)hr   numpyr   rt  pandasr   r   r   r   r   r   r	   r
   pandas._testing_testingr   pandas.api.typingr   pandas.tests.groupbyr   r   r'   r.  rM   r   r   r   r*  parametrizer  r"  r*  r2  r;  rI  rK  rN  rR  rY  r]  rc  rf  rq  rx  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!  r4  r?  rB  rE  r5   r*   rH  rK  rP  rT  r[  ra  ri  rs  r1  boolrx  rz  r~  r  r  r  r  r  r  r  r  r  r  r  rr   r   r   <module>r     s          + 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 -@(dN,<-, T5M2!- 3!-Hk,\,(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	- 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   