
    A>i                    J   S SK J r   S SKrS SKrS SKJ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S	_S
S_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S_S\R,                  _S\R,                  _S \R,                  \R,                  \R,                  S \R,                  S.ErS rS rS rS  rS! rS" rS# rS$ r S% r!S& r"\RF                  RI                  S'S	S/5      S( 5       r%S) r&S* r'S+ r(S, r)S- r*S. r+S/ r,S0 r-\RF                  RI                  S1S2/ S3Q\	" / S4QS2S594S2S6// S7Q\	" / S4QS2S59\" / S8Q5      /4S2S9// S:Q\	" / S4QS2S59\	" / S4QS2S59/4/5      \RF                  RI                  S;S	S/5      S< 5       5       r.S= r/S> r0S? r1\RF                  RI                  S'S	S/5      S@ 5       r2SA r3SB r4SC r5SD r6SE r7\RF                  RI                  SFSG/\" \8" SH5      5      S SI/SSJ/SK.4\" \8" SH5      5      Rs                  SL 5      SJ/S S/SK.4\" \8" SM5      5      S SI/SSJ/SK.4/5      SN 5       r:SO r;SP r<SQ r=\RF                  RI                  SRSSST/5      SU 5       r>\RF                  RI                  SVSSWS/4SSXSY/4SSXS/4SSWSY/4/5      SZ 5       r?S[ r@S\ rAS] rBS^ rC\RF                  RI                  S'S	S/5      S_ 5       rD\RF                  RI                  S'S	S/5      S` 5       rESa rFSb rGSc rH\RF                  RI                  SdS	\" \R                  " \" / SeQSfSg9/ ShQ/S2S6/Si9/ S4QSjSk94S\
" \" / SeQSfSg9/ ShQ/ S4QSl.5      4/5      Sm 5       rJ\RF                  RI                  SnS\R,                  \R                  /5      So 5       rL\R                  Sp 5       rN\RF                  RI                  SqSrSs/5      St 5       rO\RF                  RI                  SqSrSs/5      \RF                  RI                  SuSS/5      Sv 5       5       rP\RF                  RI                  SwS	\R                  " \" Sx/SH-  Sy/SH-  -   SfSzS{9\" / S|QSfS}S{9\" SS/SH-  5      /5      / S~Q4S\R                  " \	" SxSy/SS9\	" / SQSS9\" SS/5      // SQSi9SJSJSHSH\R,                  \R,                  SS\R,                  \R,                  SISI/4S\R                  " \	" SxSy/SS9\	" / SQSS9\" SS/5      // SQSi9SJSJSHSH\R,                  \R,                  SS\R,                  \R,                  SISI/4/5      S 5       rRS rSS rTS rUS rVS rWS rX\RF                  RI                  SuSS/5      S 5       rYS rZ\RF                  RI                  S\R                  / SeQ4\R                  / ShQ4/5      S 5       r]S r^\RF                  RI                  SSS/5      S 5       r_S r`S raS rbS rcS rd\RF                  RI                  SSS/5      S\eSu\f4S j5       rg\RF                  RI                  SSS/5      S\eSu\f4S j5       rhS ri\RF                  RI                  SSS/5      S 5       rjS rkS rlS rm\RF                  RI                  S/ SQ5      \RF                  RI                  S'S	S/5      S 5       5       rn\RF                  RI                  SSS/5      \RF                  RI                  S'S	S/5      S 5       5       ro\RF                  RI                  S/ SQ5      \RF                  RI                  SSS/5      \RF                  RI                  S'S	S/5      S 5       5       5       rp\RF                  RI                  S/ SQ5      \RF                  RI                  S/ SQ5      \RF                  RI                  S'S	S/5      S 5       5       5       rq\RF                  RI                  S/ SQ5      S 5       rr\RF                  RI                  S;S	S/5      \RF                  RI                  SS/SS9//5      S 5       5       rsg)    )datetimeN)Pandas4Warning)CategoricalCategoricalIndex	DataFrameIndex
MultiIndexSeriesqcut)SeriesGroupBy)get_groupby_method_argsc                 ,   S n[         R                  " [        XA5      US9n[        U[        5      (       aB  0 nU R
                   H  nX   R                  XSU   S9Xg'   M     [        XeS9R                  5       $ U R                  XSS9R                  5       $ )zhReindex to a cartesian production for the groupers,
preserving the nature (Categorical) of each grouper
c                     [        U [        [        45      (       aH  U R                  n[        R                  " [
        R                  " [        U5      5      XR                  S9n U $ )N
categoriesordered)	
isinstancer   r   r   
from_codesnparangelenr   )ar   s     d/var/www/html/land-tabula/venv/lib/python3.13/site-packages/pandas/tests/groupby/test_categorical.pyf)cartesian_product_for_groupers.<locals>.f   sK    a*K899J&&		#j/*z99A     names
fill_valueindex)	r	   from_productmapr   dictcolumnsreindexr   
sort_index)resultargsr   r    r   r"   rescols           r   cartesian_product_for_groupersr-      s    
 ##CL>E*d## >>C{**5_*MCH "*5577>>%>7BBDDr   allTanyFcountcorrwithfirstidxmaxidxminlastmaxmeanmedianminnthnuniqueprod   quantilesem)sizeskewkurt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r9   r6   r0   r7   rI   )groups    r   	get_stats2test_apply_use_categorical_name.<locals>.get_statsT   s0    99;99;[[]JJL	
 	
r   Fobservedr   C)r   rO   groupbyDapplyr"   r   )dfcatsrK   r)   s       r   test_apply_use_categorical_namerU   Q   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                  " XC5        g )N	r   r   r   brX   rX   crY   rY   r   rX   rY   dTr   	r=   r=   r=      r]   r]      rG      r   rX   abcdrX   namer   r   r=   r]   rG   r!   FrM   )
r   r   r   listr   nanrP   r7   tmassert_frame_equal)rT   data	exp_indexexpectedr)   s        r   
test_basicrk   `   s    5'D
 6TBCD fCFI#1a01CH\\#\.335F&+r   c                     [        / SQ/ SQSS9n [        / SQ/ SQSS9n[        X/ 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                  " Xe5        g )Nr   r   rX   rX   r   rX   zTr   rY   r[   rY   r[   rY   r[   yr=   r]   r^   rG   ABvaluesru   FrM   rb   rw   )r^      r   r!   numeric_only)r   r   rP   r   r
   rD   rf   rg   )cat1cat2rS   gbexp_idxrj   r)   s          r   test_basic_single_grouperr   n   s    +QUVD+QUVD	LA	BB	C%	(BS$GG(F9G$DEFHVVV&F&+r   c                 4   [        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                  " X1S/   5        UR                  S5      nUR                  SS/   n[
        R                  " X45        S nUR                  U5      nUS/   R                  SS/   n[        SS/SS9Ul        U (       a  SO[        nUS   R                  U5      US'   [
        R                  " X45        g )Nr=   zJohn P. Doer]   z	Jane Dove	person_idperson_namer&   FrM   c                     U $ N xs    r   <lambda>#test_basic_string.<locals>.<lambda>   s    1r   r   c                 >    U R                  S5      R                  S   $ )Nr   r   )drop_duplicatesilocr   s    r   r   test_basic_string.<locals>.f   s      /44Q77r   rc   str)r   r   r   rP   	transformrf   rg   r   r   rR   r   r"   objectastype)using_infer_stringr   gr)   rj   r   dtypes          r   test_basic_stringr   z   s   
]	a-=/ABm,	A #1==1Am			;-%	0A[[%F&]O"45}-Fvvq!f~H&+8 WWQZF-!&&1v.HAq64HN'EVE&}5<<UCH]&+r   c                     [        S/ SQ05      n [        R                  " U R                  / SQS9nU R                  R	                  USS9R                  [        5      n[        R                  " X S   5        [        R                  " U R                  R	                  USS9R                  S 5      U S   5        U R	                  USS9R                  [        5      nU S/   n[        R                  " X#5        U R	                  USS9nUR                  S 5      n[        R                  " X S/   5        UR                  S	 5      nUR                  [        5      nUR                  [        R                  R                  5      nUR                  S
 5      n[        R                  " XPS/   SS9  [        R                  " X`S/   SS9  [        R                  " XpS/   5        [        R                  " XS/   5        [        R                  " U R                  R	                  USS9R                  [        R                  5      U S   5        [        R                  " U R	                  USS9R                  [        R                  5      U 5        g )Nr   )r_         )r   
         (   binsFrM   c                 .    [         R                  " U 5      $ r   r   rD   xss    r   r   &test_basic_monotonic.<locals>.<lambda>       RVVBZr   c                 ,    [         R                  " U SS9$ Nr   axisr   r6   r   s    r   r   r      s    bffRa&8r   c                 ,    [         R                  " U SS9$ r   r   r   s    r   r   r      s    rvvbq'9r   c                 @    [         R                  R                  U 5      $ r   )r   maximumreducer   s    r   r   r      s    rzz'8'8'<r   )check_dtype)r   pdcutr   rP   r   rD   rf   assert_series_equalrg   r6   r   r   r   filterr.   )	rS   rY   r)   rj   gbcresult2result3result4result5s	            r   test_basic_monotonicr      s   	C%	&B
rtt-.ATT\\!e\,66s;F6c7+
Q'112GH"S' ZZEZ*44S9F3%yH&+
**Q*
'C]]89F&cU),mm9:GmmC GmmBJJ--.Gmm<=G'se9%@'se9%@'se9-'se9- 244<<E<:AA"&&I2c7S"**Q*7>>rvvFKr   c                  d   [        S/ SQ05      n [        R                  " U R                  / SQS9nU R                  R	                  USS9R                  [        5      n[        R                  " X S   5        [        R                  " U R                  R	                  USS9R                  S 5      U S   5        U R	                  USS9R                  [        5      nU S/   n[        R                  " X#5        [        R                  " U R	                  USS9R                  S 5      U S/   5        g )	Nr   )r_   r   r   )ir   r   r   r   r   r   FrM   c                 .    [         R                  " U 5      $ r   r   r   s    r   r   *test_basic_non_monotonic.<locals>.<lambda>   r   r   c                 .    [         R                  " U 5      $ r   r   r   s    r   r   r      s    266":r   )
r   r   r   r   rP   r   rD   rf   r   rg   )rS   rY   r)   rj   s       r   test_basic_non_monotonicr      s    	C)	*B
rtt23ATT\\!e\,66s;F6c7+
Q'112GH"S' ZZEZ*44S9F3%yH&+


1u
%//0EFC5	r   c            	         [        S/ SQ05      n [        R                  " U R                  / SQ[	        [        S5      5      S9nU R                  USS9R                  [        5      n[        UR                  R                  UR                  R                  S9n[        / SQUS	9nSUR                  l        [         R"                  " X$5        g )
Nr   )r=   r   r   r   r   r=   r]   r^   rG   ra   )labelsFrM   r   r!   )r   r   r   r   r   rd   rP   rR   r   r   rw   r   r   r
   r"   rc   rf   r   )rS   rY   r)   ri   rj   s        r   test_basic_cut_groupingr      s    	C&	'B
rtt_[f-FGAZZEZ*005F !4!4ahh>N>NOIl)4HHNN6,r   c                     / SQ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[        XR                  SS9nUR                  U5      n[        R                  " XE5        UR                  US
S9nUR!                  5       nUR"                  R%                  5       n	[         R                  " U5      R'                  U	5      n
UR'                  U	5      n[	        U
S/ SQS9nUR                  US
S
S9R!                  5       n[        R                  " X5        [        R
                  " [         R(                  " S5      R+                  S5      U SS9n[        U5      n[        R,                  " UR/                  5       R0                  R3                  S5      U5        [5        / SQS-  5      n[        R,                  " UR/                  5       R0                  R3                  S5      U5        g )Nfoobarbazquxr]   r   rG   r   r@   Tr   r   rG   FrM   r   )r   r   sortrN      r0   r7   rC   r9   z25%z50%z75%r6   r=   )r   randomdefault_rngintegersr   r   r   standard_normalrP   r7   asarrayr   r   r'   rf   rg   describecodesargsorttaker   repeatassert_index_equalstackr"   get_level_valuesr   )levelsr   rT   rh   r)   rj   r~   groupeddesc_resultidx
ord_labelsord_dataexp_catsexpcexps                  r   test_more_basicr      s   )FII!!!$--a-<E!!%>DRYY**1-==gFGD\\$\/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+0 !!"))A,"5"5a"8&$OD
4
 C+++-33DDQGM
KaO
PC+++-33DDQGMr   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UR                  S5      n[        R                  " XC5        g )Nr]      r   rX   r   r   r_   r=   Index1Index2)r   r   r   rh   r"   levelrN      )r   )
r   r   r   r	   r   rangerP   	get_grouprf   rg   )rN   rS   r   rj   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 [[ F&+r   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 )Nru      rv   )highmedlowrG   g      (@)rJ   doseoutcomes)r   r   r   Tr   rJ   r   r   )r   sort_remaining)r   r   r   r   r   r   )ru   ru   ru   rv   rv   rv   r   r]   r0   r"   rc   )r   r   r   r   r   rP   value_countsr(   r   r	   from_arraysr
   rf   r   rS   r)   r"   rj   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   c                    [        [        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        UR                  [        R                  5      n[        R                  " X5        [        R                  " X!/SS	/S9n[        SUS9nUR                  S 5      n[        R                  " X5        g )Nabcr   aaar   rX   r   )missingdenserw   r  r  TrM   r   )r   r=          @rw   )r"   r&   c                 ,    [         R                  " U SS9$ r   )r   r7   r   s    r   r   test_apply.<locals>.<lambda>:  s    RWWQQ%7r   r=   r!   c                     gNr=   r   r   s    r   r   r  F  s    Qr   )r   rd   r   r   r   r   rP   r	   r   rR   rf   rg   r7   aggr
   r   )	r   r  r  rw   rS   r   r   rj   r)   s	            r   
test_applyr  *  s*    UW5E $u+3*gNGYYs5z"F	w&I	JBjj)W-j=G 
 
 '!1)W9M
NCC(DH]]78F&+\\^F&+[[!F&+ 
 
 '!1)W9M
NCas#H]];'F6,r   c                    [        / SQ/ SQSS9n[        / SQ/ SQSS9n[        X#/ SQS.5      nS	S
/S-  US'   UR                  / SQU S9n[        R                  " X#S	S
/S-  // SQS9n[        S[        / SQUS905      R                  5       nUR                  5       nU (       d  [        XrUS	S
//[        S5      SS9n[        R                  " X5        UR                  SS/U S9n[        R                  " X#/SS/S9n[        / SQ/ SQS.US9nUR                  5       nU (       d"  [        UX#/[        S5      U(       a  SSS.OSS9n[        R                  " X5        g )Nrm   rn   Tr   rp   rq   rs   rt   r   r   r]   rO   )ru   rv   rO   rM   r   rw   r!   ABCr   r   ru   rv   )r   r   r   r   )rw   rO   AB )r   r   rP   r	   r   r
   r(   rD   r-   rd   rf   rg   )	rN   r   r{   r|   rS   r}   ri   rj   r)   s	            r   test_observedr  J  sc    +QUVD+QUVD	LA	BBenq BsG 
Oh	7B&&	eU^a'(I (F<y$IJKVVXHVVXF1TE5>2DKA
 &+	S#J	2B&&|C:FI&BC9H VVXF1LJ1C!"-	
 &+r   c                 ~   [        / 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                  " XF5        g )Nr   rX   r   rX   r   rX   rY   Tr   r=   r=   r]   r]   r   r   r   r   catintsvalr  rM   abr  )rc   r   r   g      ?      4@r   )r  r  r!   )	r   r   rP   r7   r   rd   r'   rf   rg   )rN   r[   rS   groups_single_keyr)   ri   rj   r"   s           r   test_observed_single_columnr  v  s      _d
 	A 
1B

58
<##%F T
4;I 3*dBZ@	RH KeUT
 ##E*&+r   c           	          [        / SQ/ SQSS9/ SQ/ SQS.n[        U5      n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&  [        XRR                  R                  SS//SS	/5      n[        R                  " XE5        S HO  nUu  pxUR                  U5      nX"R                  U:H  UR                  U:H  -     n[        R                  " XE5        MQ     g )Nr  r  Tr   r  r  r  r  r  rM   r7   )      $@g      >@r  g      D@rm   r=   r]   r=   r]   )r  r  r  r=   r]   ))r   r=   )rX   r]   )rX   r=   )r   r]   )r   r   rP   r  	set_indexr-   r  rw   rf   rg   r   r  )	rN   r[   rS   groups_double_keyr)   rj   keyrY   is	            r   test_observed_two_columnsr&    s     _d
 	A 
1B

E6?X
F""6*F+$$ !	
 i   1vv}}q!f-v
 &+ 8",,S1vv{rww!|45
f/	 8r   c                 r   / SQ/ SQ/ SQS.n[        U5      n[        R                  " US   [        R                  " SSS5      5      nX2S	'   UR                  S	S
/SU S9nUR                  S5      nUR                  S	S
/SU S9nUR                  S5      R                  5       n[        R                  " XW5        g )N)r   r   rG   r   rG   r=   r=   r   r   r   r   2   <   F   )r[   rY   er   r   r[   rY   r   r   r   r   r   r   r^   r   r   Fas_indexrN   r7   T)
r   r   r   r   linspacerP   r  reset_indexrf   rg   )rN   r[   rS   r  groupsr)   groups2rj   s           r   test_observed_with_as_indexr4    s     &+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)r^   r^   rG   r_   rs   )r   d      "   )C1C2C3r9  )r=   r]   r^   r   r  r:  rM   r   )      @r<  g      @g      @)r   g      Y@g      i@g      A@)r9  r;  r!   r7   )r   r   r   rc   rP   r	   r   r-   rw   r  rf   rg   )rN   r[   rS   rw   r#  r   rj   r)   s           r   test_observed_codes_remapr=    s    <7IJA	1BVVBtHl+FFK

FD>H
E

 
 &,!7t}
MC#+EFcH 1}}l3eT]
 ""6*F&+r   c            
      p   [        [        R                  R                  S5      R	                  SSSS9[        R                  R                  S5      R	                  SSSS9[        R                  R                  S5      R	                  SSSS9SS.5      n U R
                  R                  [        5      R                  S5      U S	'   U R                  / S
QSS9nUR                  5       nUR                  R                  S   R                  5       U R
                  R                  5       :X  d   eUR                  R                  S   R                  5       U R                  R                  5       :X  d   eUR                  R                  S   R                  5       U R                  R                  5       :X  d   eg )Nr]   r      i0u  r   '  )r  int_idother_idr   categoryr  )r  rA  rB  TrM   r=   )r   r   r   r   r   r  r   r   rP   r0   r"   r   r;   rA  rB  )rS   r   r)   s      r   test_observed_perfrD    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   rY   r   r  r   r=   r]   r^   r  valsr  rM   r   r]   int64r   r=   )r   rY   )r   r   rP   r2  r   rf   assert_dict_equal)rN   r  rS   r   r)   rj   s         r   test_observed_groupsrM    s     o/
BC	3	2	3B


58
,AXXF1vW5E1#W<UV 1vW-r)s'*
 *r   c           	         [        S[        S[        R                  S/[	        S5      S90[	        S5      S9nUR                  SXS9nUR                  nS[        SS	/5      0nU (       d  U[        R                  [        S
/5      0-  nU(       d  U[        / 5      [        / 5      S.-  n[        R                  " XE5        g )Nr  r   adbrF  xyzr!   rN   dropnar   ro   rr   )rX   r[   )
r   r   r   re   rd   rP   r2  r   rf   rL  )rR  rN   rS   r   r)   rj   s         r   test_groups_na_categoryrS    s    		S"&&#.4;GH5k
B 	

58
;AXXFUC:&'HRVVUC5\**%)%)44*r   z,keys, expected_values, expected_index_levelsr   )r   	   r   rG  r   rX   )	rx   r   r   r   r   rT  r   r   r   rG   r_   r   a2)	r   r   r   r   rT  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r=   r=   r]   rG  rF  rU  )rx   r   rT  )r   rV  rX   rY   r   rV  rX   r   FrM   rY   r=   	r   r   r   r=   r=   r=   r]   r]   r]   r^   r   r=   r]   )r   r   r!   )
r   r   r"  droprP   rD   r   r	   rf   assert_equal)
keysexpected_valuesexpected_index_levelsrW  rS   r}   r)   r"   r   rj   s
             r   test_unobserved_in_indexra    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   rX   r[   rF  rG  rH  r  rM   r   r]   rJ  rK  )	r   r   r   re   rP   r2  r   rf   rL  )rN   rS   r   r)   rj   s        r   test_observed_groups_with_nanrc  M  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  rF  rG  )r  serr  FrM   re  r   )
r   r   re   r
   r   rP   r:   r   rf   r   )r  re  rS   r)   rj   s        r   test_observed_nthrf  b  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  rF  rs   )s1s2rh  rM   r]   )
r   r   re   r
   r   rP   r2   r1  rf   rg   )rN   rh  ri  rS   r)   rj   s         r   #test_dataframe_categorical_with_nanrj  m  s    	bffc2663/O	LB		B	"'	(BZZxZ0668DDFFuA!M
 !/oN"&&"&&)
 &+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[        R                  " U5        g g )N)r[   r   rX   r   r[   rX   )r   rX   r  r[   r   )labelr  rl  )rN   r   r  r2   r   rK  r  zDLabels and aggregation results not consistently sorted
for (ordered=z, observed=z, sort=z
)
Result:
)r   r
   r   rP   	aggregater"   arrayisnar.   pytestfail)	r   rN   r   rl  r  rS   r)   aggrmsgs	            r   0test_dataframe_categorical_ordered_observed_sortrt    s     &-E
 /
0C	U/	0B ZZ(Z>uEOOPWXF 6<<%%X6E&,,D%YY[u}#9Kz Gx! 	
 	C 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                  5       R                  R/                  S5      U5        [7        / SQS-  5      n[         R,                  " UR5                  5       R                  R/                  S5      U5        g )Nz
2014-01-01rG   )periodsr]   r   r   r   Tr   r   FrM   r   r   r   r=   )r   
date_ranger   r   r   r   r   r   r   r   rP   r7   r   r'   r   r"   rf   rg   r   r   r   r   r   r   r   r   r   r   )r   r   rT   rh   r)   rj   r   r   r   r   r   r   r   s                r   test_datetimerx    sD   ]]<3FII!!!$--a-<E!!%>DRYY**1-==gFGD\\$\/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;,,.44EEaH3O
KaO
PC;,,.44EEaH3Or   c                     [         R                  R                  S5      n / SQnU R                  SSSS9n[        R
                  " X!SS9n[        [         R                  " [         R                  " S5      S5      R                  S	S5      [        S
5      S9nX4S'   UR                  S5      R                  SSS9R                  5       nU[        S
5         R                  UR                  SS9R                  5       n[        [        R
                  " / SQUSS9SS9Ul        ["        R$                  " XV5        UR                  SSS9R                  5       nU[        S
5         R                  UR                  SS9R                  5       n[        [        R
                  " / SQUSS9SS9Ul        ["        R$                  " XV5        g )Nr]   r   r   rG   r   r   Tr   ra   r   rT   Fr   rM   r   r=   r]   r^   r   )r   r   r   r   r   r   r   r   r   reshaperd   r"  rP   rD   r   r   r"   rf   rg   )sr   r   rT   rS   r)   rj   s          r   test_categorical_indexr~    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                  5       R                  U 5        [        R                  " UR                  5       R                  R                  U R                  5        g )
N)r   r   r   r   r   Tr   r]   )r   rG   r   rs   r_   )r   r   r   r   r   r   rP   r   rf   r   r   r&   assert_categorical_equalrw   )rT   rS   r)   s      r   !test_describe_categorical_columnsr    s    $/D
 
299((+;;GDd	SBZZq()224F&,,.00$7 6 6 = =t{{Kr   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   ru   rv   r_   XYXXYr]   )r   mediumartistr  rC  r  FrM   r   r   rc   r   rG   XYr   r!   )r   r   rd   r   rP   r0   unstackr   r   rf   r   r&   r  rw   r
   r   r   )rS   gcatr)   exp_columnsrj   s        r   test_unstack_categoricalr    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)Nr=   r]   r^   rG   z$Grouper and axis must be same lengthmatch)r
   r   re   r   r   rR  rw   rp  raises
ValueErrorrP   r7   )seriesr   s     r   test_bins_unequal_lenr    sx    RVVRVVQ1aAq!<=F66&--/((!,D 
z)O	Pt!!# 
Q	P	Ps   : B##
B1r  rh   rG   r^   r]   ru   rv   c                     U S-   $ r
  r   )r   s    r   r   r     s    S1Wr   rx   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ABBArC  rK  FrM   r!   )rP   r
   rd   rm  r   r^  rf   r   )r  rh   rP   r)   rj   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TR                  SU/SS	S
9R                  5       n [        [        SS/TR                  R                  R
                  S9SS/SS/SS/S.5      n[        R                  " X5        [        / SQSS9nTR                  SU/SS	S
9R                  5       n [        SS/SS/SS/S.5      n[        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 )Nr=   r]   r]   rG  )r      r  )e   f   g   )r  ru   rv   r  ru   FTr.  r=   r]   rF  r   r  r     r   c                 &   > TR                   U S4   $ )Nru   )loc)rrS   s    r   r   test_as_index.<locals>.<lambda>8  s    "&&C.r   r   )r  level_1ru   rv   )r   rX   rX   r   r   rX   )Nr  rv   r  )r   r   rP   rD   r  r   rf   rg   r
   r   rd   r"   )r)   rj   r   r}  group_columnsrc   rS   s         @r   test_as_indexr  #  s    	y)4 	

B ZZutZDHHJF1v"&&**2G2GHbs	

 "H &+ 	!AZZ
UTZBFFHF1v"&&**2G2GHBxbs		
H &+ 	U+AZZ
UTZBFFHF:bs	
H &+ CLM1v"&&**2G2GHbs	

 "H !e40MEDIMMO
f/	 !r   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        g )
Nr  ru   baTr   r  bacFr   	rd   r   r   r   rf   r   rP   r2   r"   r   rS   r(   nosort_indexs       r   test_preserve_categoriesr  b  s    eJ 
CT$ZJPTUV	WB!*$SQJ#DKTPSTL


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


3UU
399;AA<r   c            	         [        S5      n [        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  ru   r  Fr   r  r  Tr   r  r  s       r   &test_preserve_categories_ordered_falser  s  s    eJ	CT$ZJPUVW	XB!*%cRJ $DKeeRUVL


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


3UU
399;AA<r   r,   r9  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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        g )N)r=   r]   r=   r=   r]   )r      r      r8  abaabr  Fr   T)ru   rv   r9  r:  r  g      ?g      9@r  byr/  rN   ry   r   )r   r   rd   r   re   rP   r7   r1  r'   r&   rf   rg   )r,   rS   exp_fullresult1r   rj   s         r   test_preserve_categorical_dtyper    s    
 %d7mUUSd7mUTR		

B sBFF#bff%d5kd5k5Qd5kd5k4P		
H jjC%%j@EESWEXG


cD5
9	4	 	 
 8H',',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)r2   r  r  r  Tr   )rz  rz  r  )payloadr,   r  r  rz  rK  r,   )
r   r   rP   getattrr
   r   r"  rf   rg   r   )funcrw   rY   rS   r   r)   rj   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                  d   [        [        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        g )Nr]   rT  rZ  r[  Tr   FrM   r   )	r   r   r   r=   r=   r=   r^   r^   r^   r{  )r
   r   r   r   r   rn  r   r   rP   r7   r   r"   r   r   rf   r   r'   )rh   r   rT   r)   r   s        r   test_categorical_no_compressr    sE   "))''*::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'r   c                     [        / 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                  " X#5        g )NrW   rZ   Tr   r\   r`   rX   FrM   r   r=   r]   rG   )
r   r   rP   r7   rw   r   rn  re   rf   assert_numpy_array_equal)rT   rh   r)   r   s       r   #test_categorical_no_compress_stringr    sz    5'D
 6TBCD\\#\.335FC[F
((Aq!RVV$
%C,r   c            	          [        S /S-  [        / SQ5      S.5      n U R                  S5      R                  5       S   n[	        [        / SS/S9[	        / S	SS
9SS9n[
        R                  " X5        g )Nr^   )trainr  testr  ru   rv   r  r  rF  r   r   rc   r   )r   r   rP   r2   r
   rf   r   rS   r)   rj   s      r    test_groupby_empty_with_categoryr    sr     
$!+6P*QR	SBZZ_""$S)FBFG#45Rxc2H
 6,r   c                  \   [        S[        R                  R                  S5      R	                  SSS5      05      n [        SSS5       Vs/ s H  o SUS-    3PM     nn[        X"5      nU R                  S/S	S
9n [        R                  " U R                  [        SSS5      SUS9U S'   U R                  S/SS9S   R                  5       nU[        UR                  S S9   n[        UR                  UR                  R                   S9Ul        ["        R$                  " XE5        g s  snf )Nvaluer]   r   r@  r   i  z - i  T)r  	ascendingi)  F)rightr   value_grouprM   c                 :    [        U R                  5       S   5      $ )Nr   )floatsplitr   s    r   r   test_sort.<locals>.<lambda>  s    eAGGIaL.Ar   )r$  r   )r   r   r   r   r   r   r   sort_valuesr   r   r  rP   r0   sortedr"   r   rc   rf   r   )rS   r%  r   
cat_labelsr+   r   s         r   	test_sortr    s    
GRYY2215>>q%LM	NB*/5#*>?*>Q3q3wi *>F?V,J	G9	5B
%5#&eJB} **m_u*
5m
D
J
J
LC
fSYY$AB
CC @CI3$ @s   D)c           
      T   [        / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ// SQS	9n[        US
   US9US
'   UR                  S
U SS9R                  5       nU (       a  SS/SS/SS/SS//n/ SQnOSS/SS/SS/SS//n/ SQn[        USS/[	        US
US9S9n[
        R                  " X65        g )N)	(7.5, 10]r   r   )r  r   r   )(2.5, 5]r_   r   )(5, 7.5]r   r   )r  rG   r)  )(0, 2.5]r=   r*  )r  rx   r+  )r   r   r   r   r   r   Fr   r=   r*  r_   r   r   r   r   )r  r  r  r  )r  r  r  r  r   r   rb   r&   r"   )r   r   rP   r2   r   rf   rg   )r   r   rS   r)   data_valuesindex_valuesrj   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  rx   r=   r]   r_   )r   r   r_   r   rG   r=   rx   r(  )dtr   r   r   r  r   r*  r   r   r   r   r   r   rb   r  Fr   )r   r   r   r   rP   r2   rf   rg   )r   r   rS   r  r  rj   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   rX   r  rF  r=   r]   r=   r  ru   r   FrM   )r^   r=   r   rv   r   	min_countr=   r^   r]   )r   r   r   rP   rv   rD   r
   rf   r   r   re   rS   expected_idxr)   rj   s       r   test_empty_sumr  _  sM   	/oFYW
B $O#>L ZZeZ,..224FiC8H6, ZZeZ,..22Q2?FiC8H6, ZZeZ,..22Q2?Fq!RVVnl=H6, ZZeZ,..22Q2?Fq"&&"&&)<cBH6,r   c                  0   [        [        / SQ/ SQS9/ SQS.5      n [        / SQSS9nU R                  SSS	9R                  R                  5       n[        / S
QUSS9n[        R                  " X#5        U R                  SSS	9R                  R                  SS9n[        / S
QUSS9n[        R                  " X#5        U R                  SSS	9R                  R                  SS9n[        SS[        R                  /USS9n[        R                  " X#5        g )Nr  r  rF  r  r  ru   r   FrM   )r]   r=   r=   rv   r   r  r=   r]   )r   r   r   rP   rv   r<   r
   rf   r   r   re   r  s       r   test_empty_prodr  {  s    	/oFYW
B $O#>L ZZeZ,..335FiC8H6, ZZeZ,..33a3@FiC8H6, ZZeZ,..33a3@Fq!RVVnl=H6,r   c                     [        [        [        S5      5      [        [        [        R                  " SSSS95      S-  5      [
        R                  " S5      S.5      n U R                  SS	/S
S9R                  5       n[        R                  " [        / SQ5      [        [        R                  " SSSS95      /SS	/S9n[        SSSSSSSS[
        R                  S/	0US9n[        R                  " X5        g )N	abcbabcbaz2018-06-01 001minr^   )freqrv  rT  )key1key2rw   r  r  FrM   r  r   rw   r   rG   r   r_   r   r]   r!   )r   r   rd   r   rw  r   r   rP   r7   r	   r#   re   rf   rg   )rS   r)   r   rj   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, expectedrY  rC  rK  r  r   r   )r"   rh   rc   r   rX   r   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 )NrY  rC  rK  r  rG  r  r   rX   Tr.  r   )r   r
   rP   rD   rf   r]  )r/  rj   rS   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 )NrZ   Fr   )Nr   rX   rY   r=   r   )r   shiftrf   r]  )r    ctrj   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
NrG   ru   rC  rv   rs   rO   rQ   r=   r   )copyr   r
   r\  )rS   df_cats     r   r  r    sl    " WWYr]F+$$Z0F3K+$$Z0F3K&F3K[[#Q['FMr   	operationr  rR   c                 P   [        / 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[        Xa5      " [        5      n[        R                  " Xu5        g )N)r   r   r   r   ru   r  )onethreer  tworv   )r]   rG   r=   r^   rO   rh   r"   rc   TrM   )r   r   r	   r   r
   r(   rP   r  rD   rf   r   )r  r  lev_alev_br"   rj   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W(-F6,r   rN   c                    [         R                  " [        SS/SS9[        / SQSS9/SS/S9R                  5       u  p4[	        / S	QUS
S9nU R                  SS/US9S
   n[        Xb5      " [        5      n[        R                  " Xu5        g )Nr   r   Fr   r  r  r  ru   rv   r   )r]   rG   r   r=   r   r^   rO   r  rM   )
r	   r#   r   	sortlevelr
   rP   r  rD   rf   r   )r  rN   r  r"   _rj   r   r)   s           r   )test_seriesgroupby_observed_false_or_noner    s    
 &&eU^U;4eD	
 Cj ik E -UEHnnc3Z(n;C@GW(-F6,r   zobserved, index, datar   r   ru   r  )r  r  r  r  r  r  r  r  rv   )r]   r]   rG   rG   r=   r=   r^   r^   r   r  )ru   rv   Nc                     [        X2SS9nU R                  SS/US9S   R                  S 5      n[        R                  " XT5        g )NrO   r  ru   rv   rM   c                 D    U R                  5       U R                  5       S.$ )Nr9   r6   r  r   s    r   r   8test_seriesgroupby_observed_apply_dict.<locals>.<lambda>F  s    !%%'!%%'2r   )r
   rP   rR   rf   r   )r  rN   r"   rh   rj   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 )Nru   rv   FrM   rO   )rP   r7   rf   r   )r  rj   r)   s      r   4test_groupby_categorical_series_dataframe_consistentr  K  sX    ~~sCj5~9#>CCEH^^S#J^7<<>sCF6,r   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   r=   r]   )NameItemr  r  r   rM   T)skipna)	r   r   r   rP   r  rD   r1  rf   rg   )rN   r   rS   rj   r)   s        r   $test_groupby_cat_preserves_structurer  R  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)Nrm   rG   )rE   r  z'vau'r  rE   c                 >    [        SU R                  S   S   /05      $ )Nr  rz  vau)r   r   )rowss    r   r   /test_get_nonexistent_category.<locals>.<lambda>g  s    Y		"e@T?U7V-Wr   )r   r   rp  r  KeyErrorrP   rR   rS   s    r   test_get_nonexistent_categoryr%  c  sH    	/aA	BB	xw	/


5 WX 
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ABCDrF  r  r]   皙?rG   cat_1cat_2r  r  r-  r.  rM   r  r1   r4   r3   (empty group due to unobserved categoriesr  )rp  skipr   r   rd   r   rP   hasattrr  r  r  r   )reduction_funcrN   rS   r*   expected_lengthseries_groupbyr  r)   s           r   0test_series_groupby_on_2_categoricals_unobservedr6  j  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  aF  U S;   a7  [$        R&                  " UR(                  [$        R*                  5      (       d   eg U S;   d   eg g ! , (       d  f       g = f)Nr'  r(  r1   z6TODO: implemented SeriesGroupBy.corrwith. See GH 32293reasonr)  r  rF  r  r]   r+  rG   r,  ACBCCACBCCr-  r.  FrM   r  r/  r0  r  r   )r0   r;   r@   )rD   r/   )rp  r1  markxfailapplymarkerr   r   rd   tupler   rP   r  r  r  -_results_for_groupbys_with_missing_categoriesr  r   ro  r   
issubdtyper   integer)r3  requestr?  rS   
unobservedr*   r5  r  r)   missing_fillinr   r  s               r   ?test_series_groupby_on_2_categoricals_unobserved_zeroes_or_nansrI    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B>RNjjo''BGGCLLc>STT  99==rzz::::!^333	 %
 
 	s   G
G(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/SS9n[        X5      nU S:X  a	  [        nSnOS nSn[        R                  " XVS9   [        X05      " U6 nS S S 5        U H  nUWR                  ;  a  M   e   g ! , (       d  f       N*= f)Nr'  2ngroup does not return the Categories on the indexr)  r  rF  111112r+  r+  r+  r+  r,  )ru   2)rv   rP  )rO   1)rO   rP  r-  r.  TrM   r1   'DataFrameGroupBy.corrwith is deprecatedr  r  )rp  r1  r   r   rd   rP   r   r   rf   assert_produces_warningr  r"   )	r3  rS   unobserved_catsdf_grpr*   warnwarn_msgr+   r  s	            r   >test_dataframe_groupby_on_2_categoricals_when_observed_is_truerX    s    
 !HI	 f$u+F f$t*E)	

B GOZZ'*TZ:F">6D#<		#	#D	9f-t4 
: #))###  
:	9s   *C
C+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   [        XP5      " U6   S S S 5        g U S:X  a	  [        nSnOS nSn[        R                  " XxS9   [        XP5      " U6 n	S S S 5        [        U    n
U(       a,  U S:X  a&  W	R                  U   U
:H  R                  5       SL d   eg U
[         R"                  L aA  W	R                  U   R%                  5       R                  5       R                  5       (       d   eg W	R                  U   U
:H  R                  5       R                  5       (       d   eg ! , (       d  f       g = f! , (       d  f       N= f)Nr'  rK  r)  r  rF  rL  rM  rN  r,  rO  r-  r.  rM   r/  r0  r  r1   rR  r  r@   T)rp  r1  r   r   rd   rP   r   r  r  r  r   rf   rS  rC  r  r.   r   re   isnull)r3  rN   using_python_scalarsrS   rT  rU  r*   rV  rW  r+   rj   s              r   ?test_dataframe_groupby_on_2_categoricals_when_observed_is_falser\    s    !HI	 f$u+F f$t*E)	

B GOZZ'*XZ>F">6D*>>]]H
 F+T2
 	#<		#	#D	9f-t4 
: =^LH& 8(H499;tCCC	RVV	ww'..0446::<<<<(H499;??AAAA-
 
 	 
:	9s   )G(G
G
G$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   rG   r=   r  )r[   rY   r[   rY   r-  r   r   r   r_   r   r   TFr/  r   rN   r7   )	r   r   r   r   r0  rP   r  rf   r   )r[   rS   r  r2  r)   rj   s         r   3test_series_groupby_categorical_aggregation_getitemr_    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   r=   r=   r]   r]   )r   r   r   r   r=   )idr2  r  ra  r2  r  r[  r   r!   )r   r   r"  rP   r  r   rf   rg   )r  r_  rS   r)   rj   s        r   $test_groupby_agg_categorical_columnsrb  (  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 )	Nru   r  r  rF  r]   r=   r!   r  )
r   r   r   rn  rP   r  r
   r;   rf   rg   rS   rj   r)   s      r   test_groupby_agg_non_numericre  =  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  rX   rC  rK  r  ru   rv   r   r"   rc   r   )
r   r
   r  
as_orderedrP   r  r   r   rf   r   )r  rS   
df_groupedr)   rj   s        r   <test_groupby_first_returned_categorical_instead_of_dataframerj  H  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 )Nr=   r]   F)r=   r^   r_   rx   r  rF  r`   r   r  g      @rX   r   r   r   )r   rn  flags	writeabler   r   r   r   rP   r7   rf   rg   )rT   rS   rj   r)   s       r   test_read_only_category_no_sortrn  W  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largerq  rq  r  rq  rq  r  )rO   ru   ru   rO   ru   rO   ru   rO   )r   r   r   rC  )tinyrp  r  rq  Tr   r   )ru   rO   r=   r^   r]   r   r"   r   )r   r   rc   r   FrM   )r   r   r  set_categoriesrename_axisr   r&   rP   r@   r  rf   rg   rd  s      r   #test_sorted_missing_category_valuesru  c  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)r=   r=   r]   r^   rC  col_catrG  r   rg  r2   )r   r   rP   rx  r2   r
   r   r   rf   r   r  to_framerg   r  s      r   1test_agg_cython_category_not_implemented_fallbackrz    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)r=   r=   r=   r=   r!  r+  g?g333333?)r   r   r   fee)ru   rv   numerical_col
object_colcategorical_colr  rC  ru   rv   c                 >    U R                  5       R                  5       $ r   )ro  rD   r$  s    r   r   7test_aggregate_categorical_with_isnan.<locals>.<lambda>  s    2779==?r   r=   r]   r  r   r   )r}  r~  r  r   )
r   r   re   r   rP   r  r	   r   rf   rg   r   s       r   %test_aggregate_categorical_with_isnanr    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'   U R	                  S5      S   R                  [        5      U S	'   U R                  5       n[        / SQ/ SQ/ S
QS.5      nUS   R                  U5      US'   [        R                  " X#5        g )N)r=   r=   r=   r]   r]   r^   )WaitingOnTheWay	Deliveredr  r  r  )
package_idstatus)r  r  r  Tr   r  r  last_status)r  r  r  r  r  r  )r  r  r  )
r   r   CategoricalDtyper   rP   r   r6   r   rf   rg   )rS   delivery_status_typer)   rj   s       r   test_categorical_transformr    s    	,
	

B ..7 h<&&';<BxL

<0:DDSIB}WWYF,	
H, "(+223GHHX&+r   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   r=   r=   )r   r=   r=   r   r  r   r=   r   rX   r   rY   r   )r2   r5   rM   )r   r   r	   r#   r
   r   re   rR  r   rJ  rP   r  rf   r   )r  rN   r  r  rS   r|   r   expected_dictrj   srs_grpr)   s              r   Ftest_series_groupby_first_on_categorical_col_grouped_on_2_categoricalsr    s    
 l
#C
C	S1	2B1vD

!
!4,sCj
ACBFFBFFA.#>2662661-s=M
 "H??$++BHH5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 r  )r   r   r	   r#   r
   r   re   ry  rR  r   rJ  rP   r  rf   rg   )r  rN   r  r  rS   r|   r   r  rj   rU  r)   s              r   Btest_df_groupby_first_on_categorical_col_grouped_on_2_categoricalsr    s    
 l
#C
C	S1	2B1vD

!
!4,sCj
ACBFFBFFA.#>2662661-s=M
 "++-H??$++BHH5ZZc
XZ6FV"$F&+r   c                     [        [        / SQ/ SQS9[        S5      S.5      n U R                  SSSS9nUR                  n[
        R                  " S	S
/SS9[
        R                  " S/SS9[
        R                  " / SS9S.nUR                  5       UR                  5       :X  d   eUR                  5        H  n[        R                  " X$   X4   5        M      g )N)rX   rX   r   r  rF  r^   )r$  r,   r$  Fr   r   r=   intprK  r]   )rX   r   rY   )
r   r   r   rP   indicesr   rn  r^  rf   r  )rS   r   r)   rj   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   rG  rC  rX   r   )rc   r"   )	r   r   r  rP   r
   r   r   rf   r   )r  rS   r)   rj   s       r   1test_groupby_last_first_preserve_categoricaldtyper  8  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 )Nr=   r]   r   r  r  rC  r`   rK  r   rX   TrM   rY   r   r   )
r   r   rP   r;   r
   r	   r   r   rf   r   r  s      r   )test_groupby_categorical_observed_nuniquer  D  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 )Nrp  bigTr   r=   r]   grpdescriptionr   r   rg  )
r   r  r   r   rP   r6   r
   r   rf   r   )r   rS   r)   rj   s       r   ,test_groupby_categorical_aggregate_functionsr  S  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 )Nr=   r]   rG  rF  r^   rG   )r   rr   r   rQ  rr   r!   )r^   rG   r   )	r   r   rP   rD   r   r"   rc   rf   rg   )rN   rR  r  rS   r}   r)   rj   r"   s           r   test_groupby_categorical_dropnar  e  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                 p   US:X  a<  U(       d5  US:w  a/  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 US:X  a	  [        nSnOS nSn[        R                   " XS9   [        X5      " U
6 nS S S 5        U(       a&  WR"                  R%                  S5      R&                  nOWS   R(                  R&                  n[+        / SQ5      n[        R,                  " UU5        US:X  a=  UR"                  R%                  S5      R&                  n[        R,                  " UU5        g g ! , (       d  f       g = f! , (       d  f       N= f)Nr1   r  zDGH#49950 - corrwith with as_index=False may not have grouping columnr8  r   /Result doesn't have categories, nothing to testr]   r=   r]   r^   r=   rG   r^   r]   r   rG   r`   r   r  rV  r^  r/  r0  r  rR  r  )rA  rp  r?  r@  r1  r   r   r   r"  r   rP   r  r  r  r   rf   rS  r"   r   r   r  r   r   )rF  r/  r   rN   r3  r  r   rs  rS   r^  r*   r}   rV  rW  	op_resultr)   rj   s                    r   test_category_order_reducerr  v  s    #Hx9O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'.
 	#<		#	#D	9B/6	 
:11#6AA3##..\"H&(+W11$7BB
fh/ )
 
 	 
:	9s   HH'
H$'
H5r  r  c                 0   [        [        / 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	[        X5      " U6 n
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   rG   r`   r  r   r  rV  r^  )r   r   r   r"  r   rP   r  r"   r   r   r   rf   r   )r/  r   rN   transformation_funcr  r   rS   r^  r*   r}   r  r)   rj   s                r   test_category_order_transformerr    s    
\lGTq	

B Xu\\$	w	T{c74\\$"#6;D	D8	JB0$7I__--c2==F\"H&+W11$7BB
f/ r   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   rG   r`   r   r   r  r  rV  r^  )r   r   r   r"  rP   r  r  r   r"   r   r   rf   r   r/  r   rN   r  r  r   rS   r^  r}   r  r)   rj   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   )rR   r  r   c                    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[        X5      " S 5      n	US:X  d  U (       d   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   z(No categories in result, nothing to testr  r  r   rG   r`   r   r  r  rV  r^  c                      U R                  SS9$ )NTry   )rD   r   s    r   r   +test_category_order_apply.<locals>.<lambda>
  s    aeee.Fr   )rp  r1  r   r   r   r"  rP   r  r  r   r"   r   r   rf   r   r  s               r   test_category_order_applyr    sW   
 	+*"7w.>?	\lGTq	

B Wu	x	u\\$	w	T{c74\\$	D8	JB#$FGI+X:3H3##..11#6AA\"H&+W11$7BB
f/ r   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  r8  i'  rz  r  r   rG   r`   r   r  r  rV  Tr^  )r^   r]   r=   )r]   r=   r^   )r   r   rc   rX   )r   rV  )r   rV  rX   )rp  r1  r   r   r   r   r   r"  rP   rD   r   r   r	   
from_framer"   r
   rf   rg   )r/  r   r  r   r   grouperrS   r^  r}   r)   rh   r"   rj   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   r^  a1c                    U(       a4  US:X  a.  [        [        S5      (       a   e[        R                  " S5        O4US:X  a.  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  / UQUPUl        [(        R*                  " X5        g ! , (       d  f       g = fs  snf )Nr1   z*corrwith not implemented for SeriesGroupByz1GH#32293: attempts to call SeriesGroupBy.corrwithr8  )r   r   r=   )r]   r^   r^   rU  )r  rV  rX   rC  )r  rV  rV  r   r  rX   r/  r  r0  r  r@   rz  r  )r2  r   rp  r1  rA  r?  r@  r   r   r\  rP   r   r  r  r  r  ry  r	   from_tuplesr&   rf   r]  )rF  r/  rN   r3  rW  r^  rs  rS   r}   r*   r)   rj   inds                r   test_agg_listr  ?  s    ~3=*5555@A	:	%A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
 2T2>2OOF%%
 
 	 9s   GG*
G')tr   numpyr   rp  pandas.errorsr   pandasr   r   r   r   r   r	   r
   r   pandas._testing_testingrf   pandas.api.typingr   pandas.tests.groupbyr   re   r-   rC  rU   rk   r   r   r   r   r   r   r   r   r?  parametrizer  r  r  r&  r4  r=  rD  rM  rS  ra  rc  rf  rj  rt  rx  r~  r  r  r  r   renamer  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  NaTr  fixturer  r
  r  r#   r  r  r  r%  r6  rI  rX  r\  r_  r;   r0   rb  re  rj  rn  ru  rz  r  r  r   boolr  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r   <module>r     s
      (     + 8 DF66 E21 
41 
51 Q1 1 RVV1 bff1 bff1 BFF1 
2661  BFF!1" bff#1$ 
266%1& 
266'1( q)1* A+1, -1. 
266/10 FFFF6666;1 -B(,	,,6LB&	-"NJ,4-, T5M2- 3->),X,6!0H,&,(E*+*+" 2	j*93?@#J'ic2E)4DE	
 $K( 5 5	
& u6& 7'(&D+*-,( T5M2 3@$PN,2L-&$ v 
a	!Qq!f56 
a		 	 !4	5aS1v7NO	a	!Qq!f56--<0~"  t-- .-< 	8W%&	(G$%	7#$	7#$	--&(2--%, 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-"  ""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--,"Y#*L44n$B eT]30B 40Bf	- nni 6<<";<,	,", '6!23- 4-	,*,Z,,,6.,b '6!23-
-- 4-0 '6!23,
,, 4,0@( '6!23- 4---$," 'CDT5M230 3 E30l '':;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 0F 'CD$, E$,N u64&4,!78%& 9 7%&r   