+
    xȇi                       ^ RI H t  ^ RIt^ RIt^ RIHt ^ RIt^ RIHtH	t	H
t
HtHtHtHt ^ RIHt ^ RIHt ^ RIHt ]P,                  3R lt/ RR	bR
RbR^ bR]P,                  bR]P,                  bR]P,                  bR]P,                  bR]P,                  bR]P,                  bR]P,                  bR]P,                  bR]P,                  bR]P,                  bR^ bR^bR]P,                  bR]P,                  bR^ R]P,                  R]P,                  R]P,                  R^ R ]P,                  /CtR! tR" tR# tR$ tR% tR& tR' tR( t R) t!R* t"]PF                  PI                  R+R	R.4      R, 4       t%R- t&R. t'R/ t(R0 t)R1 t*R2 t+R3 t,R4 t-]PF                  PI                  R5R6. RO]	! . ROR6R77      3R6R8.. RO]	! . ROR6R77      ]! . RO4      .3R6R9.. RO]	! . ROR6R77      ]	! . ROR6R77      .3.4      ]PF                  PI                  R:R	R.4      R; 4       4       t.R< t/R= t0R> t1]PF                  PI                  R+R	R.4      R? 4       t2R@ t3RA t4RB t5RC t6RD t7]PF                  PI                  RERF.]! ]8! ^4      4      RG^ ^.RH^^./3]! ]8! ^4      4      Ps                  RI 4      RG^.RH^ ^./3]! ]8! ^4      4      RG^ ^.RH^^./3.4      RJ 4       t:RK t;RL t<RM t=]PF                  PI                  RNRORP.4      RQ 4       t>]PF                  PI                  RRRRSR.3RRTRU.3RRTR.3RRSRU.3.4      RV 4       t?RW t@RX tARY tBRZ tC]PF                  PI                  R+R	R.4      R[ 4       tD]PF                  PI                  R+R	R.4      R\ 4       tER] tFR^ tGR_ tH]PF                  PI                  R`R	]! ]P                  ! ]! . RORaRb7      . RO.R6R8.Rc7      . RORdRe7      3R]
! R6]! . RORaRb7      R8. RORd. RO/4      3.4      Rf 4       tJ]PF                  PI                  RgR]P,                  ]P                  .4      Rh 4       tL]P                  Ri 4       tN]PF                  PI                  RjRkRl.4      Rm 4       tO]PF                  PI                  RjRkRl.4      ]PF                  PI                  RnRR.4      Ro 4       4       tP]PF                  PI                  RpR	]P                  ! ]! Rq.^,          Rr.^,          ,           RaRGRs7      ]! . RORaRHRs7      ]! RR.^,          4      .4      . RO3R]P                  ! ]	! RqRr.RRt7      ]	! . RORRt7      ]! RR.4      .. RORc7      ^^^^]P,                  ]P,                  ^^]P,                  ]P,                  ^^.3R]P                  ! ]	! RqRr.RRt7      ]	! . RORRt7      ]! RR.4      .. RORc7      ^^^^]P,                  ]P,                  ^^]P,                  ]P,                  ^^.3.4      Ru 4       tRRv tSRw tTRx tURy tVRz tWR{ tX]PF                  PI                  RnRR.4      R| 4       tYR} tZ]PF                  PI                  R~]P                  . RO3]P                  . RO3.4      R 4       t]R t^]PF                  PI                  RRR.4      R 4       t_R t`R taR tbR tcR td]PF                  PI                  RRR.4      R R l4       te]PF                  PI                  RRR.4      R R l4       tfR tg]PF                  PI                  RRR.4      R 4       thR tiR tjR tk]PF                  PI                  R. RO4      ]PF                  PI                  R+R	R.4      R 4       4       tl]PF                  PI                  RRR.4      ]PF                  PI                  R+R	R.4      R 4       4       tm]PF                  PI                  R. RO4      ]PF                  PI                  RRR.4      ]PF                  PI                  R+R	R.4      R 4       4       4       tn]PF                  PI                  R. RO4      ]PF                  PI                  R. RO4      ]PF                  PI                  R+R	R.4      R 4       4       4       to]PF                  PI                  R. RO4      R 4       tp]PF                  PI                  R:R	R.4      ]PF                  PI                  RR.RR9..4      R 4       4       tqR# )    )datetimeN)Pandas4Warning)CategoricalCategoricalIndex	DataFrameIndex
MultiIndexSeriesqcut)SeriesGroupBy)get_groupby_method_argsc                V   R p\         P                  ! \        WA4      VR7      p\        V\        4      '       dQ   / pV P
                   F$  pW,          P                  WSV,          R7      Wg&   K&  	  \        WeR7      P                  4       # V P                  WSR7      P                  4       # )zhReindex to a cartesian production for the groupers,
preserving the nature (Categorical) of each grouper
c                     \        V \        \        34      '       dL   V P                  p\        P                  ! \
        P                  ! \        V4      4      WP                  R 7      p V # )
categoriesordered)	
isinstancer   r   r   
from_codesnparangelenr   )ar   s   & u/Users/max/.openclaw/workspace/postharvest/venv/lib/python3.14/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                     \        V P                  ^4      pR pV P                  VRR7      P                  P	                  V4      pVP
                  P                  ^ ,          R8X  g   Q hR# )   c           	          R V P                  4       RV P                  4       RV P                  4       RV P                  4       /# r9   r6   r0   r7   rH   )groups   &r   	get_stats2test_apply_use_categorical_name.<locals>.get_statsT   s8    599;599;U[[]EJJL	
 	
r   FobservedCN)r   rN   groupbyDapplyr"   r   )dfcatsrJ   r)   s   &   r   test_apply_use_categorical_namerT   Q   sX    a=D
 ZZuZ-//55i@F<<a C'''r   c                  *   \        . R
O. RORR7      p \        R . RORV /4      p\        \        R4      RRR7      p\        R ^^^\        P
                  ./VR7      pVP                  RRR7      P                  4       p\        P                  ! WC4       R	# )r   bTr   abcdnamer   r!   FrL   N	r   r   r   rV   rV   rV   cr[   r[   r   rV   r[   d	   r_   r_      r`   r`      rF      )
r   r   r   listr   nanrO   r7   tmassert_frame_equal)rS   data	exp_indexexpectedr)   s        r   
test_basicrj   `   s    5'D
 c6TBCD fCFI#1a01CH\\#\.335F&+r   c            	      >   \        . RO. RORR7      p \        . RO. RORR7      p\        RV RVR. RO/4      pVP                  RRR7      p\        . RORRR7      p\        R\	        . ROVR	7      /4      pVP                  RR
7      p\        P                  ! We4       R# )r   Tr   ABvaluesFrL   rX   r!   numeric_onlyNr   r   rV   rV   r   rV   zr[   r]   r[   r]   r[   r]   yr_   r`   ra   rF   )ra      r   )r   r   rO   r   r
   rC   re   rf   )cat1cat2rR   gbexp_idxri   r)   s          r   test_basic_single_grouperr}   n   s    +QUVD+QUVD	CsD(LA	BB	C%	(BS$GG(F9G$DEFHVVV&F&+r   c                 r   \        ^R.^R.^R..RR.R7      p\        VP                  4      VR&   VP                  R.RR7      pVP	                  R 4      p\
        P                  ! W1R.,          4       VP                  R4      pVP                  ^ ^.,          p\
        P                  ! W44       R	 pVP                  V4      pVR.,          P                  ^ ^.,          p\        ^^.RR
7      Vn        V '       d   RM\        pVR,          P                  V4      VR&   \
        P                  ! W44       R# )r_   zJohn P. Doez	Jane Dove	person_idperson_namer&   FrL   c                     V # N xs   &r   <lambda>#test_basic_string.<locals>.<lambda>   s    1r   c                 F    V P                  R 4      P                  ^ ,          # )r   )drop_duplicatesilocr   s   &r   r   test_basic_string.<locals>.f   s      /44Q77r   rY   strN)r   r   r   rO   	transformre   rf   r   r   rQ   r   r"   objectastype)using_infer_stringr   gr)   ri   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                     \        R . R
O/4      p \        P                  ! V P                  . ROR7      pV P                  P	                  VRR7      P                  \        4      p\        P                  ! W R ,          4       \        P                  ! V P                  P	                  VRR7      P                  R 4      V R ,          4       V P	                  VRR7      P                  \        4      pV R .,          p\        P                  ! W#4       V P	                  VRR7      pVP                  R 4      p\        P                  ! W R .,          4       VP                  R 4      pVP                  \        4      pVP                  \        P                  P                  4      pVP                  R 4      p\        P                  ! WPR .,          RR7       \        P                  ! W`R .,          RR7       \        P                  ! WpR .,          4       \        P                  ! WR .,          4       \        P                  ! V P                  P	                  VRR7      P                  \        P                  4      V R ,          4       \        P                  ! V P	                  VRR7      P                  \        P                  4      V 4       R	# )r   binsFrL   c                 .    \         P                  ! V 4      # r   r   rC   xss   &r   r   &test_basic_monotonic.<locals>.<lambda>       RVVBZr   c                 2    \         P                  ! V ^ R7      # r   axisr   r6   r   s   &r   r   r      s    bffRa&8r   c                 2    \         P                  ! V ^ R7      # r   r   r   s   &r   r   r      s    rvvbq'9r   c                 @    \         P                  P                  V 4      # r   )r   maximumreducer   s   &r   r   r      s    rzz'8'8'<r   )check_dtypeN)rb         )r   
         (   )r   pdcutr   rO   r   rC   re   assert_series_equalrf   r6   r   r   r   filterr.   )	rR   r[   r)   ri   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                     \        R . RO/4      p \        P                  ! V P                  . ROR7      pV P                  P	                  VRR7      P                  \        4      p\        P                  ! W R ,          4       \        P                  ! V P                  P	                  VRR7      P                  R 4      V R ,          4       V P	                  VRR7      P                  \        4      pV R .,          p\        P                  ! W#4       \        P                  ! V P	                  VRR7      P                  R 4      V R .,          4       R# )	r   r   FrL   c                 .    \         P                  ! V 4      # r   r   r   s   &r   r   *test_basic_non_monotonic.<locals>.<lambda>   r   r   c                 .    \         P                  ! V 4      # r   r   r   s   &r   r   r      s    266":r   N)rb   r   r   )ir   r   r   r   r   )
r   r   r   r   rO   r   rC   re   r   rf   )rR   r[   r)   ri   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            	         \        R . RO/4      p \        P                  ! V P                  . R	O\	        \        R4      4      R7      pV P                  VRR7      P                  \        4      p\        VP                  P                  VP                  P                  R7      p\        . ROVR7      pR VP                  n        \         P"                  ! W$4       R# )
r   rW   )labelsFrL   r   r!   N)r_   r   r   r   r   r_   r`   ra   rF   )r   r   r   r   r   rc   rO   rQ   r   r   rn   r   r   r
   r"   rY   re   r   )rR   r[   r)   rh   ri   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                  Z   . R
Op \         P                  P                  ^4      P                  ^ ^^
R7      p\        P
                  ! WRR7      p\        \         P                  P                  ^4      P                  R4      4      pVP                  VRR7      P                  4       pVP                  \         P                  ! V4      RR7      P                  4       p\        WP                  RR7      pVP                  V4      p\        P                  ! WE4       VP                  VRR7      pVP!                  4       pVP"                  P%                  4       p	\         P                  ! V4      P'                  V	4      p
VP'                  V	4      p\	        V
R. R
OR7      pVP                  VRRR7      P!                  4       p\        P                  ! W4       \        P
                  ! \         P(                  ! ^4      P+                  ^4      V RR7      p\        V4      p\        P,                  ! VP/                  4       P0                  P3                  ^ 4      V4       \5        . RO^,          4      p\        P,                  ! VP/                  4       P0                  P3                  ^4      V4       R	# )foor?   Tr   FrL   r   )r   r   sortrM   Nr   barbazquxr   rF   r0   r7   rB   r9   z25%z50%z75%r6   )r   randomdefault_rngintegersr   r   r   standard_normalrO   r7   asarrayr   r   r'   re   rf   describecodesargsorttaker   repeatassert_index_equalstackr"   get_level_valuesr   )levelsr   rS   rg   r)   ri   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           
         \        \        P                  ! ^^^4      \        \	        RR.4      \        ^
4      .^ .^,          ^.^,          ,           \        ^
4      .RR.R7      R7      pVP                  R.V R7      p\        \        P                  ! ^^^4      \        \	        RR.4      \        ^4      .^ .^,          \        ^4      .RR.R7      R7      pVP                  R	4      p\        P                  ! WC4       R# )
r`   r   rV   Index1Index2)r   r   r   rg   r"   levelrM   N)r   )
r   r   r   r	   r   rangerO   	get_groupre   rf   )rM   rR   r   ri   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            
         \        R R.^,          R.^,          ,           R. RO^,          R\        P                  ! R4      /4      p \        V P                  . RORR7      V n        V P                  R 4      R,          P                  4       pVP                  ^ RR7      p. ROp\        V. RORR7      p. RO\        V4      .p\        P                  ! VR R.R	7      p\        ^.^,          VR
R7      p\        P                  ! W4       R# )rI   rl   rm   doseoutcomesg      (@Tr   )r   sort_remainingr   r0   r"   rY   N)highmedlow)r   r   r   )r   r   r   r   r   r   )rl   rl   rl   rm   rm   rm   )r   r   r   r   r   rO   value_countsr(   r   r	   from_arraysr
   re   r   rR   r)   r"   ri   s       r   (test_sorting_with_different_categoricalsr     s    	cUQY#**Q.		$	

B "''.DdSBGZZ (557FQt<F8E*@$OE+-=e-DEE""5&0ABEqcAgU9H6,r   r   c                    \        \        R 4      V R7      p\        \        R4      RR.V R7      p\        P                  ! \	        V4      4      p\        RVRVRV/4      pVP                  RR.R	R
7      p\        P                  ! W!.RR.R7      p\        . ROVR.R7      pVP                  R 4      p\        P                  ! W4       VP                  4       p\        P                  ! W4       VP                  \        P                  4      p\        P                  ! W4       \        P                  ! W!.RR.R7      p\        ^VR7      pVP                  R 4      p\        P                  ! W4       R# )abcr   aaar   rV   r   missingdensern   TrL   r   )r"   r&   c                 2    \         P                  ! V ^ R7      # r   )r   r7   r   s   &r   r   test_apply.<locals>.<lambda>:  s    RWWQQ%7r   r!   c                     ^# r_   r   r   s   &r   r   r  F  s    Qr   N)r   r_          @)r   rc   r   r   r   r   rO   r	   r   rQ   re   rf   r7   aggr
   r   )	r   r   r   rn   rR   r   r   ri   r)   s	   &        r   
test_applyr  *  s2    UW5E $u+3*gNGYYs5z"F	Iw&I	JBjj)W-j=G 
 
 '!1)W9M
NCC(DH]]78F&+\\^F&+[[!F&+ 
 
 '!1)W9M
NCas#H]];'F6,r   c           	         \        . RO. RORR7      p\        . RO. RORR7      p\        RVRVR. RO/4      pRR.^,          VR&   VP                  . ROV R	7      p\        P                  ! W#RR.^,          .. ROR
7      p\        R\        . ROVR7      /4      P                  4       pVP                  4       pV '       g   \        WrVRR..\        R4      ^ R7      p\        P                  ! W4       VP                  RR.V R	7      p\        P                  ! W#.RR.R
7      p\        R. ROR. RO/VR7      pVP                  4       pV '       g(   \        TW#.\        R4      V'       d   R^ RR/M^ R7      p\        P                  ! W4       R# )r   Tr   rl   rm   rn   r   r   rN   rL   r   r!   ABCr   AB Nrq   rr   rt   ru   rw   )rl   rm   rN   )r   r   r   r   )r   r   rO   r	   r   r
   r(   rC   r-   rc   re   rf   )	rM   r   ry   rz   rR   r{   rh   ri   r)   s	   &&       r   test_observedr  J  ss    +QUVD+QUVD	CsD(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!S"-	
 &+r   c                    R \        . RO. RORR7      R. ROR. RO/p\        V4      pVP                  R V R7      pVP                  4       p\	        \        R4      R \        R4      RR7      p\        RR	R	.RR
^./VR7      pV '       g3   \	        \        R4      R \        R4      RR7      pVP                  V4      p\        P                  ! WF4       R# )catTr   intsvalrL   abr   )rY   r   r   g      ?      4@r!   Nr   rV   r   rV   r   rV   r[   r_   r_   r`   r`   r   r   r   r   )	r   r   rO   r7   r   rc   r'   re   rf   )rM   r]   rR   groups_single_keyr)   rh   ri   r"   s   &       r   test_observed_single_columnr  v  s     	{ _d
 		A 
1B

58
<##%F T
4;I &3*edBZ@	RH KeUT
 ##E*&+r   c                 N   R \        . RO. R	ORR7      R. R
OR. RO/p\        V4      pVP                  R R.V R7      pVP                  R4      p\        R. ROR \        . RO. R	ORR7      R. RO/4      P	                  R R.4      pV '       g'   \        WRP                  P                  ^^..R R.4      p\        P                  ! WE4       R FW  pVw  rxVP                  V4      pW"P                  V8H  VP                  V8H  ,          ,          p\        P                  ! WE4       KY  	  R# )r  Tr   r  r  rL   r7   Nr  r  r  r  )      $@g      >@r  g      D@rq   r_   r`   r_   r`   ))r   r_   )rV   r`   )rV   r_   )r   r`   )r   r   rO   r  	set_indexr-   r  rn   re   rf   r   r  )	rM   r]   rR   groups_double_keyr)   ri   keyr[   is	   &        r   test_observed_two_columnsr    s"    	{ _d
 		A 
1B

E6?X
F""6*F+;$$ L	
 i   1vv}}q!f-v
 &+ 8",,S1vv{rww!|45
f/	 8r   c                    R . R	OR. R
OR. RO/p\        V4      p\        P                  ! VR ,          \        P                  ! ^ ^
^4      4      pW2R&   VP                  RR.RV R7      pVP                  R4      pVP                  RR.RV R7      pVP                  R4      P                  4       p\        P                  ! WW4       R# )r   r   r   r   Fas_indexrM   r7   TN)r      rF   r#  rF   r_   r_   r   r   r   r   2   <   F   )r]   r[   er   r   r]   r[   )
r   r   r   r   linspacerO   r  reset_indexre   rf   )rM   r]   rR   r  groupsr)   groups2ri   s   &       r   test_observed_with_as_indexr-    s     	%+2	A
 
1B
&&EBKK2q1
2CwKZZ%(58ZLFZZFjj'5)D8jLG{{6"..0H&+r   c                    R . R	OR. R
OR. RO/p\        V4      p\        P                  ! VR ,          . RO4      pRVn        VP	                  VR.V R7      p\
        P                  ! V. R
O.RR.R7      p\        R . ROR. RO/VR7      pV '       g   \        WcP                  . R
O.RR.4      pVP                  R4      p\        P                  ! Wv4       R# )C1C2C3r  rL   r   r!   r7   N)ra   ra   rF   rb   rw   )r   d      "   )r_   r`   ra      )      @r6  g      @g      @)r  g      Y@g      i@g      A@)r   r   r   rY   rO   r	   r   r-   rn   r  re   rf   )rM   r]   rR   rn   r  r   ri   r)   s   &       r   test_observed_codes_remapr7    s    	|T<7IJA	1BVVBtHl+FFK

FD>H
E

 
 &,!7t}
MC	#T+EFcH 1}}l3eT]
 ""6*F&+r   c                     \        R \        P                  P                  ^4      P	                  ^ ^RR7      R\        P                  P                  ^4      P	                  ^ ^RR7      R\        P                  P                  ^4      P	                  ^ RRR7      R^ /4      p V P
                  P                  \        4      P                  R4      V R &   V P                  . RORR	7      pVP                  4       pVP                  P                  ^ ,          P                  4       V P
                  P                  4       8X  g   Q hVP                  P                  ^,          P                  4       V P                  P                  4       8X  g   Q hVP                  P                  ^,          P                  4       V P                  P                  4       8X  g   Q hR
# )r  i0u  r   int_idother_id'  r   categoryTrL   N)r  r9  r:  )r   r   r   r   r   r  r   r   rO   r0   r"   r   r;   r9  r:  )rR   r   r)   s      r   test_observed_perfr=    sb    
299((+44Q%4Hbii++A.773U7K		--a099!U9O1		

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           
      \   \        . R
O. ROR7      p\        RVR. RO/4      pVP                  RV R7      pVP                  pV '       d!   R \	        ^ ^.RR7      R\	        ^.RR7      /pM,R \	        ^ ^.RR7      R\	        . RR7      R\	        ^.RR7      /p\
        P                  ! WE4       R	# )r   r[   rV   r   r  valsrL   int64r   N)r   r[   r   r  r_   r`   ra   )r   r   rO   r+  r   re   assert_dict_equal)rM   r  rR   r   r)   ri   s   &     r   test_observed_groupsrE    s     o/
BC	E3	2	3B


58
,AXXF1vW5sE1#W<UV 1vW-r)s'*
 *r   c           	         \        R \        R\        P                  R.\	        R4      R7      /\	        R4      R7      pVP                  R WR7      pVP                  pR\        RR.4      /pV '       g$   V\        P                  \        R	.4      /,          pV'       g    VR
\        . 4      R\        . 4      /,          p\        P                  ! WE4       R# )r  r   adbr?  xyzr!   rM   dropnar   rs   rv   rV   r]   N)
r   r   r   rd   rc   rO   r+  r   re   rD  )rJ  rM   rR   r   r)   ri   s   &&    r   test_groups_na_categoryrK    s    		S"&&#.4;GH5k
B 	

58
;AXXFUC:&'HRVVUC5\**S%)S%)44*r   z,keys, expected_values, expected_index_levelsr   r   rV   a2test_seriesc                    \        R \        . RO. ROR7      R\        . RO. ROR7      R. ROR. RO/4      P                  R R.4      pRV 9  d   VP                  RR7      pVP	                  V RR7      pV'       d
   VR,          pVP                  4       p\        V 4      ^8X  d   TpM. RO^. RO,          .p\        VVV R7      p\        RV/VR	7      p	V'       d
   V	R,          p	\        P                  ! Wi4       R
# )r   r?  rL  rV   r[   r   FrL   )r   r   r!   Nr_   r_   r`   rC  rF   rb   r5  )rx   r#  	   	r   r   r   r_   r_   r_   r`   r`   r`   r   r_   r`   )
r   r   r  droprO   rC   r   r	   re   assert_equal)
keysexpected_valuesexpected_index_levelsrM  rR   r{   r)   r"   r   ri   s
   &&&&      r   test_unobserved_in_indexrY    s    , 
Y9=+iI>		

 id  $WWSW!	D5	)BWVVXF
4yA~%,a)m<!

 #/u=HC=OOF%r   c           
      X   \        R \        R\        P                  R.. R
OR7      R. RO/4      pVP	                  R V R7      pVP
                  pV '       d   R\        ^ ^.RR7      /pM+R\        ^ ^.RR7      R\        . RR7      R\        . RR7      /p\        P                  ! W44       R	# )r  r   rV   r]   r?  r@  rL   rA  rB  N)r   rV   r]   rC  )	r   r   r   rd   rO   r+  r   re   rD  )rM   rR   r   r)   ri   s   &    r   test_observed_groups_with_nanr[  M  s    	;RVVS1oNI	

B 	

58
,AXXF1vW56 1vW-r)r)

 *r   c                  N   \        R \        P                  \        P                  .. ROR7      p \        . RO4      p\	        RV RV/4      pVP                  RRR7      R,          P                  ^ 4      pVR,          P                  ^ .,          p\        P                  ! W44       R# )	r   r?  r  serFrL   Nr  rC  )
r   r   rd   r
   r   rO   r:   r   re   r   )r  r]  rR   r)   ri   s        r   test_observed_nthr^  b  s~    
sBFFBFF+
HC

C	E3s+	,BZZZ.u599!<F%y~~qc"H6,r   c                    \        \        P                  R \        P                  R .. ROR7      p\        . RO4      p\	        RVRV/4      pVP                  RV R7      P                  4       P                  4       pV '       d    \	        R\        R .. ROR7      R^./4      pM=\	        R\        . RO. ROR7      R^\        P                  \        P                  ./4      p\        P                  ! WE4       R# )r   r?  s1s2rL   Nr  rw   )
r   r   rd   r
   r   rO   r2   r*  re   rf   )rM   r`  ra  rR   r)   ri   s   &     r   #test_dataframe_categorical_with_nanrb  m  s    	bffc2663/O	LB		B	D"dB'	(BZZxZ0668DDFF;uA4!M
 k/oNq"&&"&&)
 &+r   c                    \        . RO. ROV R7      p\        . RO4      p\        RVRV/4      pVP                  RWR7      R,          P	                  R4      p\        VP
                  P                  RR7      p\        VP                  4      pV'       g   RWwP                  4       &   \        W78H  4      '       g'   R	V  R
V RV RV 2p\        P                  ! V4       R# R# )r]   r   r   labelr  )rM   r   r2   r   rB  zDLabels and aggregation results not consistently sorted
for (ordered=z, observed=z, sort=z
)
Result:
N)r]   r   rV   r   r]   rV   )r   rV   r   r]   )r   r
   r   rO   	aggregater"   arrayisnar.   pytestfail)	r   rM   r   rd  r  rR   r)   aggrmsgs	   &&&      r   0test_dataframe_categorical_ordered_observed_sortrl    s     &-E
 /
0C	GUE3/	0B ZZ(Z>uEOOPWXF 6<<%%X6E&,,D%YY[u}#9Kz Gx! 	
 	C r   c                  @   \         P                  ! R ^R7      p \        P                  P	                  ^4      P                  ^ ^^
R7      p\        P                  ! WRR7      p\        \        P                  P	                  ^4      P                  R	4      4      pVP                  VRR7      P                  4       pVP                  \        P                  ! V4      RR7      P                  4       pVP                  V 4      p\        VP                  VP                  RR7      Vn        \         P"                  ! WE4       VP                  VRR7      pVP%                  4       pVP&                  P)                  4       pVP+                  V4      p	VP+                  V4      p
V
P                  V	RR7      P%                  4       p\         P"                  ! Wu4       \         P,                  ! VP                  VP                  4       \         P,                  ! VP                  P/                  ^ 4      VP                  P/                  ^ 4      4       \        P                  ! \        P0                  ! ^4      P3                  ^4      V RR7      p\        V4      p\         P,                  ! VP5                  4       P                  P/                  ^ 4      V4       \7        . R
O^,          4      p\         P,                  ! VP5                  4       P                  P/                  ^4      V4       R# )z
2014-01-01)periodsr   Tr   FrL   r   Nr   r   )r   
date_ranger   r   r   r   r   r   r   r   rO   r7   r   r'   r   r"   re   rf   r   r   r   r   r   r   r   r   r   r   )r   r   rS   rg   r)   ri   r   r   r   r   r   r   r   s                r   test_datetimerp    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                     \         P                  P                  ^4      p . ROpV P                  ^ ^^R7      p\        P
                  ! W!RR7      p\        \         P                  ! \         P                  ! ^4      ^4      P                  R^4      \        R4      R7      pW4R&   VP                  R4      P                  ^ RR7      P                  4       pV\        R4      ,          P                  VP                  RR	7      P                  4       p\        \        P
                  ! . ROVRR7      RR
7      Vn        \"        P$                  ! WV4       VP                  RRR	7      P                  4       pV\        R4      ,          P                  VP                  RR	7      P                  4       p\        \        P
                  ! . ROVRR7      RR
7      Vn        \"        P$                  ! WV4       R# )r`   r   Tr   rW   r   rS   Fr   rL   r   Nr   r   r_   r`   ra   )r   r   r   r   r   r   r   r   r   reshaperc   r  rO   rC   r   r   r"   re   rf   )sr   r   rS   rR   r)   ri   s          r   test_categorical_indexrv    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                     \        . RO. RORR7      p \        \        P                  P	                  ^4      P                  R4      V R7      pVP                  . RO^,          4      P                  4       p\        P                  ! VP                  4       P                  V 4       \        P                  ! VP                  4       P                  P                  V P                  4       R# )	r   Tr   r   N)r   r   r   r   r   )r   rF   rw   )r   r   r   r   r   r   rO   r   re   r   r   r&   assert_categorical_equalrn   )rS   rR   r)   s      r   !test_describe_categorical_columnsry    s    $/D
 
299((+;;GDd	SBZZq()224F&,,.00$7 6 6 = =t{{Kr   c            
         \        R \        ^
4      RRR.^,          R\        R4      ^,          /4      p V R,          P                  R4      V R&   V P	                  RR.RR7      R ,          P                  4       P                  4       pVP                  4       p\        RR.RRR	7      p\        P                  ! VP                  V4       \        P                  ! VP                  P                  VP                  4       VR,          VR,          ,           p\        ^^.\        R
R.RR7      R7      p\        P                   ! W$4       R# )r   mediumrl   rm   artistXYXXYr<  FrL   r   rY   XYr   r!   N)r   r   rc   r   rO   r0   unstackr   r   re   r   r&   rx  rn   r
   r   r   )rR   gcatr)   exp_columnsri   s        r   test_unstack_categoricalr    s   		eBiC:>8T']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                     \        \        P                  \        P                  ^^^^^^^^.
4      p \        P                  ! V P                  4       P                  ^4      p\        P                  ! \        RR7      ;_uu_ 4        V P                  V4      P                  4        RRR4       R#   + '       g   i     R# ; i)r_   z$Grouper and axis must be same lengthmatchN)r
   r   rd   r   r   rJ  rn   rh  raises
ValueErrorrO   r7   )seriesr   s     r   test_bins_unequal_lenr    s~    RVVRVVQ1aAq!<=F66&--/((!,D 
z)O	P	Pt!!# 
Q	P	P	Ps    B//C 	r  rg   rl   rm   c                     V ^,           # r  r   )r   s   &r   r   r     s    S1Wr   c                     V P                  \        \        R 4      RR7      RR7      pVP                  \        4      p\        V\	        VP                  4       4      R7      p\        P                  ! W44       R# )ABBAr<  rB  FrL   r!   N)rO   r
   rc   re  r   rV  re   r   )r  rg   rO   r)   ri   s   &&   r   test_categorical_seriesr    sW      nnVDL
CenTGt$Fd"2499;"?@H6,r   c                  Z  a \        R \        . RO. RO4      R. ROR. RO/4      oSP                  R R.RRR7      P                  4       p \        R \        ^^.SP                  P                  P
                  R7      R^
^.R^e^./. ROR7      p\        P                  ! W4       V3R lpSP                  R V.RRR7      P                  4       p \        R \        ^^.SP                  P                  P
                  R7      R	^
^.R^
^.R^e^./4      p\        P                  ! W4       \        . ROR R7      pSP                  R V.RRR7      P                  4       p \        R R
R.R^
^.R^e^./4      p\        P                  ! W4       R R.p\        R \        ^^.SP                  P                  P
                  R7      R^
^.R^e^./. ROR7      pR FV  p\        \        R4      VR7      Sn        SP                  VRRR7      P                  4       p \        P                  ! W4       KX  	  R# )r  rl   rm   FTr!  r?  r   c                 .   < SP                   V R 3,          # )rl   )loc)rrR   s   &r   r   test_as_index.<locals>.<lambda>8  s    "&&C.r   level_1r   rV   r   Nr   r_   r`   r`   rC  )r      r  )e   f   g   )r  rl   rm   )r   rV   rV   )Nr  rm   )r   r   rO   rC   r  r   re   rf   r
   r   rc   r"   )r)   ri   r   ru  group_columnsrY   rR   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C:"b#s	
H &+ CLM;1v"&&**2G2GH"b#s	

 "H !e40MEDIMMO
f/	 !r   c            	         \        R 4      p \        R\        \        R4      V RR7      /4      p\        W RRR7      p\        \        R4      V RRR7      p\        P
                  ! VP                  RRRR7      P                  4       P                  V4       \        P
                  ! VP                  RRRR7      P                  4       P                  V4       R	# )
r   rl   baTr   r~  bacFr   N	rc   r   r   r   re   r   rO   r2   r"   r   rR   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            	         \        R 4      p \        R\        \        R4      V RR7      /4      p\        W RRR7      p\        \        R4      \        R 4      RRR7      p\        P
                  ! VP                  RRRR7      P                  4       P                  V4       \        P
                  ! VP                  RRRR7      P                  4       P                  V4       R	# )
r   rl   r  Fr   r~  r  Tr   Nr  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,   r/  r0  c                    \        R . ROR. ROR\        \        R4      \        R4      RR7      R\        \        R4      \        R4      RR7      /4      p\        R R	R
\        P                  .RRR\        P                  .R\        \        R4      \        R4      RR7      R\        \        R4      \        R4      RR7      /4      pVP                  V RRR7      P                  RR7      pVP                  V RRR7      P                  RR7      P                  4       pVP                  VP                  R7      p\        P                  ! W54       \        P                  ! WE4       R# )rl   rm   r/  abaabr  Fr   r0  Tr  g      ?g      9@r  byr"  rM   ro   r   N)r_   r`   r_   r_   r`   )r            r4  )r   r   rc   r   rd   rO   r7   r*  r'   r&   re   rf   )r,   rR   exp_fullresult1r   ri   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           
         \        . RORR7      p\        R. R
ORV/4      pVP                  R4      p\        W@4      ! 4       p\        RR	R.R\	        WP
                  R7      /4      P                  R4      p\        P                  ! WV4       VP                  R4      R,          p\        Wp4      ! 4       pVR,          p\        P                  ! WV4       R# )r2   Tr   payloadr,   rB  N)r2   r  r  r  rr  )rr  r  rr  r  )
r   r   rO   getattrr
   r   r  re   rf   r   )funcrn   r[   rR   r   r)   ri   sgbs   &&      r   test_preserve_on_ordered_opsr    s     	:DIA	I/:	;B


9AQF	RHeVF''%BCi	  &+ **Y

&CS!FH6,r   c                     \        \        P                  P                  ^4      P	                  ^	4      4      p \        P
                  ! . RO4      p\        P                  ! V. RORR7      pV P                  VRR7      P                  4       pV P                  VRR7      P                  4       p\        VP                  VP                  VP                  R7      Vn        \        P                  ! W44       \        P
                  ! . R	O4      p\        P                  ! V. R
ORR7      pV P                  VRR7      P                  4       pV P                  VRR7      P                  4       P!                  VP                  4      p\        VP                  VP                  VP                  R7      Vn        \        P                  ! W44       R# )r`   Tr   FrL   r   NrR  rS  )	r   r   r   r_   r_   r_   ra   ra   ra   rs  )r
   r   r   r   r   rf  r   r   rO   r7   r   r"   r   r   re   r   r'   )rg   r   rS   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                  0   \        . RO. RORR7      p \        R . R	ORV /4      pVP                  RRR7      P                  4       pVR ,          P                  p\
        P                  ! ^^^\
        P                  .4      p\        P                  ! W#4       R# )
r   rV   Tr   FrL   NrZ   r\   r^   )
r   r   rO   r7   rn   r   rf  rd   re   assert_numpy_array_equal)rS   rg   r)   r   s       r   #test_categorical_no_compress_stringr    s~    5'D
 c6TBCD\\#\.335FC[F
((Aq!RVV$
%C,r   c            	         \        R R.^,          R\        . R	O4      /4      p V P                  R 4      P                  4       R,          p\	        \        . RR.R7      \	        . RR R7      RR7      p\
        P                  ! W4       R# )
rl   Nrm   traintestr?  r   r   rY   r   )r  r  r  )r   r   rO   r2   r
   re   r   rR   r)   ri   s      r    test_groupby_empty_with_categoryr    sv     
C$!S+6P*QR	SBZZ_""$S)FBFG#45Rxc2H
 6,r   c                     \        R \        P                  P                  ^4      P	                  ^ R^
4      /4      p \        ^ RR4       Uu. uF  q RVR,            2NK  	  pp\        W"4      pV P                  R .RR7      p \        P                  ! V P                  \        ^ RR4      RVR	7      V R
&   V P                  R
.RR7      R
,          P                  4       pV\        VP                  R R7      ,          p\        VP                  VP                  P                   R7      Vn        \"        P$                  ! WE4       R# u upi )valuer;  i  z - i  T)r  	ascendingi)  F)rightr   value_grouprL   c                 B    \        V P                  4       ^ ,          4      # )r   )floatsplitr   s   &r   r   test_sort.<locals>.<lambda>  s    eAGGIaL.Ar   )r  r   N)r   r   r   r   r   r   r   sort_valuesr   r   r  rO   r0   sortedr"   r   rY   re   r   )rR   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   Ec           
      ~   \        . RO. RO. RO. RO. RO. RO. RO.. ROR7      p\        VR,          VR7      VR&   VP                  RV RR7      P                  4       pV '       d   ^^<.^^.^^(.^
^
..p. ROpM^
^
.^^.^^(.^^<..p. ROp\        VRR.\	        VRVR7      R	7      p\
        P                  ! W64       R
# )	(7.5, 10]r   r   r   r   r   Fr   rX   r&   r"   N)r  r   r   )r  r#  r   )(2.5, 5]rb   r   )(5, 7.5]r5  r   )r  rF   r%  )(0, 2.5]r_   r&  )r  rx   r'  )r   r   r   )r  r  r  r  )r  r  r  r  )r   r   rO   r2   r   re   rf   )r   r   rR   r)   data_valuesindex_valuesri   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                    \        R \        R^^4      \        R^^4      \        R^^4      \        R^^4      \        R^^4      \        R^^4      \        R^^4      .R. ROR. RO/. ROR7      p\        VR ,          VR7      VR &   V '       dB   ^^<.^^.^^(.^
^
..p\        R^^4      \        R^^4      \        R^^4      \        R^^4      .pM@^
^
.^^.^^(.^^<..p\        R^^4      \        R^^4      \        R^^4      \        R^^4      .p\        VRR.\        VR VR7      R7      pVP	                  R V RR	7      P                  4       p\        P                  ! We4       R
# )dti  r   r   r   r   rX   r  Fr   N)r   r#  rb   r5  rF   r_   rx   r$  )r  r   r   )r   r   r   r   rO   r2   re   rf   )r   r   rR   r  r  ri   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                  P   \        R \        . RO. R	OR7      R. R
O/4      p \        . R	OR R7      pV P                  R RR7      P                  P                  4       p\        . ROVRR7      p\        P                  ! W#4       V P                  R RR7      P                  P                  ^ R7      p\        . ROVRR7      p\        P                  ! W#4       V P                  R RR7      P                  P                  ^R7      p\        ^^\        P                  .VRR7      p\        P                  ! W#4       V P                  R RR7      P                  P                  ^R7      p\        ^\        P                  \        P                  .VRR7      p\        P                  ! W#4       R# )rl   r?  rm   r   FrL   	min_countNr   r   rV   r  r_   r`   r_   )ra   r_   r   )r   r   r   rO   rm   rC   r
   re   r   r   rd   rR   expected_idxr)   ri   s       r   test_empty_sumr  _  sQ   		k/oFY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                  p   \        R \        . RO. R	OR7      R. R
O/4      p \        . R	OR R7      pV P                  R RR7      P                  P                  4       p\        . ROVRR7      p\        P                  ! W#4       V P                  R RR7      P                  P                  ^ R7      p\        . ROVRR7      p\        P                  ! W#4       V P                  R RR7      P                  P                  ^R7      p\        ^^\        P                  .VRR7      p\        P                  ! W#4       R# )rl   r?  rm   r   FrL   r  Nr  r  r  )r`   r_   r_   )r   r   r   rO   rm   r<   r
   re   r   r   rd   r  s       r   test_empty_prodr  {  s    		k/oFY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                      \        R \        \        R4      4      R\        \        \        P                  ! RR^R7      4      ^,          4      R\
        P                  ! ^	4      /4      p V P                  R R.RR7      P                  4       p\        P                  ! \        . RO4      \        \        P                  ! RR^R7      4      .R R.R	7      p\        R^ ^^^^^^\
        P                  ^.	/VR
7      p\        P                  ! W4       R# )key1	abcbabcbakey2z2018-06-01 001min)freqrn  rn   FrL   r   r!   Nr  )r   r   rc   r   ro  r   r   rO   r7   r	   r#   rd   re   rf   )rR   r)   r   ri   s       r   ,test_groupby_multiindex_categorical_datetimer    s     
K[ 12KR]]?KLqP biil	

B ZZ(5Z9>>@F

!
!(oFANO	
 vC (Q1aAq"&&!$DESQH&+r   zas_index, expectedr<  rB  r   r   )r"   rg   rY   c           	          \        R \        . RORR7      R. R	OR. R
O/4      pVP                  R R.V RR7      R,          P                  4       p\        P
                  ! W14       R# )r   r<  rB  rV   r   Tr!  NrO  r  rC  )r   r
   rO   rC   re   rU  )r"  ri   rR   r)   s   &&  r   ,test_groupby_agg_observed_true_single_columnr    sY    6 
	fYj13	3	R
B ZZc
XZEcJNNPFOOF%r   r    c                     \        . RO. RORR7      p\        . RO. RORR7      pVP                  ^V R7      p\        P                  ! W24       R# )r   Fr   Nr   r\   )Nr   rV   r[   )r   shiftre   rU  )r    ctri   r+   s   &   r   
test_shiftr    sH    	)=u
B *>H ((1(
,COOC"r   c                    V P                  4       R,          pVR,          P                  R4      VR&   VR,          P                  R4      VR&   \        . RO4      VR&   VP                  R.^R7      pV# )	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
:NrF   Nrl   r<  rm   rN   rP   r   rw   )copyr   r
   rT  )rR   df_cats   & r   r  r    sj    " WWYr]F+$$Z0F3K+$$Z0F3K&F3K[[#Q['FMr   	operationr  rQ   c                    \        . R	OV R,          P                  RR7      p\        . R
OV R,          P                  RR7      p\        P                  ! W#.4      p\	        . ROVRR7      P                  4       pV P                  RR.RR7      R,          p\        Wa4      ! \        4      p\        P                  ! Wu4       R# )r   rl   r  rm   rN   rg   r"   rY   TrL   N)r   r   r   r   )onethreer  two)r`   rF   r_   ra   )r   r   r	   r   r
   r(   rO   r  rC   re   r   )r  r  lev_alev_br"   ri   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   rM   c                 @   \         P                  ! \        R R.RR7      \        . RORR7      .RR.R7      P                  4       w  r4\	        . ROVRR7      pV P                  RR.VR	7      R,          p\        Wb4      ! \        4      p\        P                  ! Wu4       R
# )r   r   Fr   rl   rm   r   rN   r  rL   Nr  r  r  )r`   rF   r   r_   r   ra   )
r	   r#   r   	sortlevelr
   rO   r  rC   re   r   )r  rM   r  r"   _ri   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   r  r   c                     \        W2R R7      pV P                  RR.VR7      R ,          P                  R 4      p\        P                  ! WT4       R# )rN   r  rl   rm   rL   c                 F    R V P                  4       RV P                  4       /# r9   r6   r  r   s   &r   r   8test_seriesgroupby_observed_apply_dict.<locals>.<lambda>F  s    5!%%'5!%%'2r   N)r
   rO   rQ   re   r   )r  rM   r"   rg   ri   r)   s   &&&&  r   &test_seriesgroupby_observed_apply_dictr
    sJ    \ 437H^^S#J^:3?EE2F 6,r   c                     V P                  R R.RR7      R,          P                  4       pV P                  R R.RR7      P                  4       R,          p\        P                  ! W!4       R# )rl   rm   FrL   rN   N)rO   r7   re   r   )r  ri   r)   s   &  r   4test_groupby_categorical_series_dataframe_consistentr  K  sX    ~~sCj5~9#>CCEH^^S#J^7<<>sCF6,r   c                    \        R \        RR.VR7      R^^./R R.R7      pVP                  4       pVP                  R V R7      P	                  \         P
                  RR7      P                  4       p\        P                  ! WC4       R	# )
NameBobGregr   Itemr   rL   T)skipnaN)	r   r   r  rO   r  rC   r*  re   rf   )rM   r   rR   ri   r)   s   &&   r   $test_groupby_cat_preserves_structurer  R  s|    		eV_g>AO 
B wwyH 	

6H
-	Y]]4	(	  &+r   c                      \        R . ROR\        ^4      /4      p \        P                  ! \        RR7      ;_uu_ 4        V P                  R 4      P                  R 4       RRR4       R#   + '       g   i     R# ; i)rD   r  z'vau'r  c                 N    \        R V P                  R,          R,          ./4      # )r  vaurr  )r   r   )rowss   &r   r   /test_get_nonexistent_category.<locals>.<lambda>g  s    Y		"e@T?U7V-Wr   Nrq   )r   r   rh  r  KeyErrorrO   rQ   rR   s    r   test_get_nonexistent_categoryr  c  sR    	E/aA	BB	xw	/	/


5 WX 
0	/	/	/s   "A++A<	c                    V R 8X  d   \         P                  ! R4       \        R\        \	        R4      \	        R4      R7      R\        \	        R4      ^,          \	        R4      R7      RR	.^,          /4      p\        W4      pV'       d   ^M^pVP                  RR.VR
7      R,          pV R8X  d   \        WP4      '       d   Q hR# \        WP4      pV'       g=   V R9   d6   \         P                  ! \        RR7      ;_uu_ 4        V! V!   RRR4       R# V! V!  p\        V4      V8X  g   Q hR#   + '       g   i     R# ; i)ngroupngroup is not truly a reductioncat_1AABBABCDr?  cat_2r	  r  皙?rL   r1   N(empty group due to unobserved categoriesr  r4   r3   )rh  skipr   r   rc   r   rO   hasattrr  r  r  r   )reduction_funcrM   rR   r*   expected_lengthseries_groupbyr  r)   s   &&      r   0test_series_groupby_on_2_categoricals_unobservedr+  j  s   !56	[f$v,G[daDLIcUQY	

B #>6D#aOZZ' 2XZFwON#>::::
.
1C*>>]]H
 
 J
 	$ZFv;/)))
 
 	s   D00E	c                 V   V R 8X  d   \         P                  ! R4       V R8X  d2   \         P                  P                  RR7      pVP	                  V4       \        R\        \        R4      \        R4      R7      R	\        \        R
4      ^,          \        R4      R7      RR.^,          /4      p\        R4      \        R4      \        R4      \        R4      \        R4      .p\        W4      pVP                  RR	.RR7      R,          p\        W`4      pV R9   d6   \         P                  ! \        RR7      ;_uu_ 4        V! V!   RRR4       R# V! V!  p\        V ,          p	V FX  p
VP                  V
,          p\         P"                  ! V	4      '       d   \         P"                  ! V4      '       d   KP  W8X  d   KX  Q h	  V	^ 8X  dL   V R9   d:   \$        P&                  ! VP(                  \$        P*                  4      '       g   Q hR# V R9   g   Q hR# R#   + '       g   i     R# ; i)r  r  r1   z6TODO: implemented SeriesGroupBy.corrwith. See GH 32293reasonr  r   r  r?  r"  r	  r  r#  ACBCCACBCCFrL   r$  r  Nr%  )r0   r;   r?   )rC   r/   )rh  r&  markxfailapplymarkerr   r   rc   tupler   rO   r  r  r  -_results_for_groupbys_with_missing_categoriesr  r   rg  r   
issubdtyper   integer)r(  requestr4  rR   
unobservedr*   r*  r  r)   missing_fillinr   r  s   &&          r   ?test_series_groupby_on_2_categoricals_unobserved_zeroes_or_nansr>    s    !56#{{  K ! 
 	D!	[f$u+F[daDKHcUQY	

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   HH(	c                    V R 8X  d   \         P                  ! R4       \        R\        \	        R4      \	        R4      R7      R\        \	        R4      \	        R4      R7      R	. RO/4      p. ROpVP                  RR.R
R7      p\        W4      pV R8X  d
   \        pRpMRpRp\        P                  ! WVR7      ;_uu_ 4        \        W04      ! V!  pRRR4       V F  pVXP                  9  d   K  Q h	  R#   + '       g   i     L.; i)r  2ngroup does not return the Categories on the indexr  r   r  r?  r"  111112r  TrL   r1   'DataFrameGroupBy.corrwith is deprecatedNr
  r  r#  r#  r#  r#  )rl   2)rm   rF  )rN   1)rN   rF  )rh  r&  r   r   rc   rO   r   r   re   assert_produces_warningr  r"   )	r(  rR   unobserved_catsdf_grpr*   warnwarn_msgr+   r  s	   &        r   >test_dataframe_groupby_on_2_categoricals_when_observed_is_truerM    s    
 !HI	[f$u+F[f$t*E)	

B GOZZ'*TZ:F">6D#<		#	#D	9	9f-t4 
: #))###  
:	9s   C88D	c                 \   V R 8X  d   \         P                  ! R4       \        R\        \	        R4      \	        R4      R7      R\        \	        R4      \	        R4      R7      R	. RO/4      p. ROpVP                  RR.VR
7      p\        W4      pV'       gF   V R9   d?   \         P                  ! \        RR7      ;_uu_ 4        \        WP4      ! V!   RRR4       R# V R8X  d
   \        pRpMRpRp\        P                  ! WxR7      ;_uu_ 4        \        WP4      ! V!  p	RRR4       \        V ,          p
V'       d4   V R8X  d-   X	P                  V,          V
8H  P                  4       RJ g   Q hR# V
\         P"                  J dH   X	P                  V,          P%                  4       P                  4       P                  4       '       g   Q hR# X	P                  V,          V
8H  P                  4       P                  4       '       g   Q hR#   + '       g   i     R# ; i  + '       g   i     EL; i)r  r@  r  r   r  r?  r"  rA  rB  r  rL   r$  r  Nr1   rC  r
  r?   TrD  rE  r%  )rh  r&  r   r   rc   rO   r   r  r  r  r   re   rH  r8  r  r.   r   rd   isnull)r(  rM   using_python_scalarsrR   rI  rJ  r*   rK  rL  r+   ri   s   &&&        r   ?test_dataframe_groupby_on_2_categoricals_when_observed_is_falserQ    s    !HI	[f$u+F[f$t*E)	

B GOZZ'*XZ>F">6D*>>]]H
 
 F+T2
 	#<		#	#D	9	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-
 
 	 
:	9	9s   HHH	H+	c                  b   R . R	OR. R
OR. RO/p \        V 4      p\        P                  ! VR ,          \        P                  ! ^ ^^4      4      pW!R&   VP                  RR.RRRR7      pVR ,          P                  R4      pVP                  R4      R ,          p\        P                  ! WE4       R# )r   r   r   r   TFr"  r   rM   r7   N)r   r#  rF   r_   r  )r]   r[   r]   r[   )	r   r   r   r   r)  rO   r  re   r   )r]   rR   r  r+  r)   ri   s         r   3test_series_groupby_categorical_aggregation_getitemrT    s    	u&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                    \        R . ROR. ROR\        . RO4      /4      P                  R 4      pVP                  R4      P	                  V 4      p\        RV/\        . R	ORR7      R7      p\        P                  ! W44       R# )
idr+  r  r   r!   Nr   )r   r_   r_   r`   r`   )r   r   r   r   r_   rS  )r   r   r  rO   r  r   re   rf   )r  rW  rR   r)   ri   s   &&   r   $test_groupby_agg_categorical_columnsrW  (  s{     
/o[1	

 io  ZZ!%%d+F	/"%	*IH &+r   c                     \        R \        . RO. ROR7      /4      p \        R ^^./\        P                  ! ^^.4      R7      pV P	                  . RO4      P                  \        P                  4      p\        P                  ! W!4       V P	                  . RO4      P                  4       p\        P                  ! W!4       R# )rl   r?  r!   Nr  r  r  )
r   r   r   rf  rO   r  r
   r;   re   rf   rR   ri   r)   s      r   test_groupby_agg_non_numericrZ  =  s    	C_QR	SB#1vbhh1v.>?HZZ	"&&v~~6F&+ZZ	"**,F&+r   r  c           
      D   \        R R.R\        R.RR7      P                  P                  4       /4      pVP	                  R 4      R,          p\        W 4      ! 4       p\        R.\        R.R R7      RVR,          P                  R7      p\        P                  ! W44       R# )	rl   i  rm   rV   r<  rB  r   r"   rY   r   N)
r   r
   r  
as_orderedrO   r  r   r   re   r   )r  rR   
df_groupedr)   ri   s   &    r   <test_groupby_first_returned_categorical_instead_of_dataframer_  H  s     
C$fcU*&E&I&I&T&T&VW	XBC%JZ&(F 	UD6,3bgmmH 6,r   c                  N   \         P                  ! ^^.4      p RV P                  n        \	        R. ROR\        . RO\        V 4      R7      /4      p\	        RRR./\        V RR7      R7      pVP                  RRRR	7      P                  4       p\        P                  ! W24       R
# )r_   Fr   rV   r?  r  g      @r   r   r   N)r_   ra   rb   rx   r  )r   rf  flags	writeabler   r   r   r   rO   r7   re   rf   )rS   rR   ri   r)   s       r   test_read_only_category_no_sortrc  W  s    88QFD DJJ		lC\eDk!RS
B sS#J/7GSV7WXHZZ%%Z8==?F&+r   c                     \        R . ROR. RO/4      p V R ,          P                  R4      P                  P                  . ROR	R
7      V R &   \        RR^ R^ /RR^ R^/RR^R^/RR^R^//4      pVP	                  RRR7      p\        . RO. ROR	R RR7      Vn        V P                  RR .RR7      P                  4       P                  4       p\        P                  ! W!4       R# )r   smalllarger{  r   rN   rl   r<  tinyTr   r"   r   )r   r   rY   r   FrL   N)re  rf  rf  rf  r{  rf  rf  r{  )rN   rl   rl   rN   rl   rN   rl   rN   )rg  re  r{  rf  )r   r   r  set_categoriesrename_axisr   r&   rO   r?   r  re   rf   rY  s      r   #test_sorted_missing_category_valuesrj  c  s   	 	 ;	

B  	5		
		^^@$^O uI S!S!$c1c1%sAsA&c1c1%		
H ##E#8H',7H ZZZ7<<>FFHF&+r   c                     \        R . RO/4      p V R ,          P                  R4      V R&   V P                  R 4      P                  P	                  4       p\        . RO\        . ROR R7      RV R,          P                  R7      p\        P                  ! W4       V P                  R 4      P                  RR/4      pVP                  4       p\        P                  ! W4       R# )	col_numr<  col_catr   r\  r2   N)r_   r_   r`   ra   rC  )r   r   rO   rm  r2   r
   r   r   re   r   r  to_framerf   r  s      r   1test_agg_cython_category_not_implemented_fallbackro    s    	I|,	-ByM((4ByMZZ	"**002F II.m!!	H 6,ZZ	"&&	7';<F  "H&+r   c                  j   \        R . ROR. RORRR\        P                  R.R. ROR. RO/4      p V P                  RR/4      p V P	                  R R.4      P                  R	 4      p\        P                  ! ^^.^^..RR
7      p\        R^^ .R^ ^ .R^ ^ ./VR7      p\        P                  ! W4       R# )rl   rm   numerical_colr#  g?g333333?
object_colcategorical_colr<  c                 >    V P                  4       P                  4       # r   )rg  rC   r  s   &r   r   7test_aggregate_categorical_with_isnan.<locals>.<lambda>  s    2779==?r   r   r   N)r_   r_   r_   r_   r  )r   r   r   fee)rl   rm   )
r   r   rd   r   rO   r  r	   r   re   rf   r   s       r   %test_aggregate_categorical_with_isnanrw    s    	c346;	

B 
%z2	3BZZc
#''(BCF""QFQF#3:FEaV1a&1v

 H &+r   c            	         \        R . ROR. RO/4      p \        P                  ! . RORR7      pV R,          P                  V4      V R&   V P	                  R 4      R,          P                  \        4      V R&   V P                  4       p\        R . ROR. ROR. R	O/4      pVR,          P                  V4      VR&   \        P                  ! W#4       R# )

package_idstatusTr   last_statusN)r_   r_   r_   r`   r`   ra   )WaitingOnTheWay	Deliveredr|  r}  r|  )r|  r}  r~  )r|  r|  r|  r|  r|  r|  )
r   r   CategoricalDtyper   rO   r   r6   r  re   rf   )rR   delivery_status_typer)   ri   s       r   test_categorical_transformr    s    	, 
	

B ..7 h<&&';<BxL

<0:DDSIB}WWYF,   	
H, "(+223GHHX&+r   c                0    V ^8  d   QhR\         R\        /# r`   r  rM   r   bool)formats   "r   __annotate__r    s     - -
--r   c           	      T   \        . R
O4      p. ROp\        RVRVRV/4      p\        ^ ^.4      p\        P                  ! WU.RR.R7      pR\	        ^ \
        P                  \
        P                  ^.VRR7      R\	        ^\
        P                  \
        P                  ^ .VRR7      /pWp,          pV'       d.   VP                  4       P                  \
        P                  4      pVP                  RR.VR7      R,          p	\        W4      ! 4       p
\        P                  ! W4       R	# r   r   rV   r[   r   r2   r   r5   rL   N)r   r   r_   r_   )r   r_   r_   r   )r   r   r	   r#   r
   r   rd   rJ  r   rA  rO   r  re   r   )r  rM   r  r  rR   rz   r   expected_dictri   srs_grpr)   s   &&         r   Ftest_series_groupby_first_on_categorical_col_grouped_on_2_categoricalsr    s    
 l
#C
C	Cc3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                0    V ^8  d   QhR\         R\        /# r  r  )r  s   "r   r  r    s     , ,
,,r   c           	      b   \        . R
O4      p. ROp\        RVRVRV/4      p\        ^ ^.4      p\        P                  ! WU.RR.R7      pR\	        ^ \
        P                  \
        P                  ^.VRR7      R\	        ^\
        P                  \
        P                  ^ .VRR7      /pWp,          P                  4       pV'       d.   VP                  4       P                  \
        P                  4      pVP                  RR.VR7      p	\        W4      ! 4       p
\        P                  ! W4       R	# r  )r   r   r	   r#   r
   r   rd   rn  rJ  r   rA  rO   r  re   rf   )r  rM   r  r  rR   rz   r   r  ri   rJ  r)   s   &&         r   Btest_df_groupby_first_on_categorical_col_grouped_on_2_categoricalsr    s    
 l
#C
C	Cc3S1	2B1vD

!
!4,sCj
ACBFFBFFA.#>2662661-s=M
 "++-H??$++BHH5ZZc
XZ6FV"$F&+r   c            
         \        R \        . RO. ROR7      R\        ^4      /4      p V P                  R RRR7      pVP                  pR\
        P                  ! ^ ^.RR	7      R\
        P                  ! ^.RR	7      R\
        P                  ! . RR	7      /pVP                  4       VP                  4       8X  g   Q hVP                  4        F&  p\        P                  ! W$,          W4,          4       K(  	  R
# )r  rV   r   r[   r?  r,   Fr   intprB  N)rV   rV   r   r  )
r   r   r   rO   indicesr   rf  rV  re   r  )rR   r   r)   ri   r  s        r   2test_groupby_categorical_indices_unused_categoriesr  $  s    	;?K58	

B jjUUj;G__FRXXq!fF+RXXqc(RXXb'H
 ;;=HMMO+++{{}
##FK? r   c           	          \        R . RO/4      pVR ,          P                  R4      VR&   \        VP                  R 4      R,          V 4      ! 4       p\	        \        . RO4      R\        . ROR R7      R7      p\        P                  ! W24       R# )r   r<  rV   r   )rY   r"   NrC  )	r   r   r  rO   r
   r   r   re   r   )r  rR   r)   ri   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                  `   \        R ^^.R^^.R^
^./4      p V P                  R RRR/R7      p V P                  R R.RR7      P                  4       R,          p\	        ^^.\
        P                  ! \        ^^.R R7      \        ^^.RR7      .4      RR7      p\        P                  ! W4       R	# )
r   rV   r[   r<  rB  TrL   r   r   N)
r   r   rO   r;   r
   r	   r   r   re   r   r  s      r   )test_groupby_categorical_observed_nuniquer  D  s    	C!Qq!fcB8<	=B	#z3
;	<BZZc
TZ2::<SAF	
A$$q!f3/1A1a&s1ST
 H 6,r   c            
      p   \         P                  ! R R.RR7      p \        ^R .^R.^R ..RR.R7      P                  RV /4      pVP	                  R4      R,          P                  4       p\        RR .\        ^^.RR7      R\         P                  ! R R.RR7      R7      p\        P                  ! W#4       R	# )
re  bigTr   grpdescriptionr   r   r\  N)
r   r  r   r   rO   r6   r
   r   re   r   )r   rR   r)   ri   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                 r   \        ^^.. ROR7      p\        R\        ^^.. ROR7      R^^./4      pVP                  RWR7      pVP                  4       pV '       d   \        R^^./VR7      pM!\	        . RO. RO4      p\        R. RO/VR7      pRVP
                  n        \        P                  ! WV4       R# )	r_   r?  r   rv   rI  r!   NrC  )ra   rF   r   )	r   r   rO   rC   r   r"   rY   re   rf   )rM   rJ  r  rR   r{   r)   ri   r"   s   &&      r   test_groupby_categorical_dropnar  e  s    
q!f
3C	CaV	BC!QP	QB	C(	:BVVXFcAq6]#6 I6c9-U;HNN&+r   
index_kindsinglemultic           	         VR 8X  dB   V'       g:   VR8w  d3   RpV P                  \        P                  P                  VR7      4       M&VR8w  d    V'       g   \        P                  ! RR7       \        R\        . RO. ROVR7      R\        ^4      /4      pVR8X  d   R.p	MDVR8X  d   R.p	VP                  V	4      pM(VR	8X  d"   RR
.p	VR,          VR
&   VP                  V	4      p\        WH4      p
VP                  X	WVR7      pV'       gF   VR9   d?   \        P                  ! \        RR7      ;_uu_ 4        \        W4      ! V
!   RRR4       R# VR 8X  d
   \        pRpMRpRp\        P                   ! WR7      ;_uu_ 4        \        W4      ! V
!  pRRR4       V'       d'   XP"                  P%                  R4      P&                  pMXR,          P(                  P&                  p\+        . RO4      p\        P,                  ! VV4       VR	8X  d?   VP"                  P%                  R
4      P&                  p\        P,                  ! VV4       R# R#   + '       g   i     R# ; i  + '       g   i     L; i)r1   r  zDGH#49950 - corrwith with as_index=False may not have grouping columnr-  r   /Result doesn't have categories, nothing to testr   r   rV   r  rL  rS  r$  r  NrC  r
  r`   r_   r`   ra   r_   rF   ra   r`   r%  )r6  rh  r4  r5  r&  r   r   r   r  r   rO   r  r  r  r   re   rH  r"   r   r   r  r   r   )r;  r"  r   rM   r(  r  r   rk  rR   rV  r*   r{   rK  rL  	op_resultr)   ri   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	9B/6	 
:11#6AA3##..\"H&(+W11$7BB
fh/ )
 
 	 
:	9s   8II'I$	'I7	c           	      R   \        R \        . RO. R	OVR7      R\        ^4      /4      pVR8X  d   R .pVP                  V4      pM(VR8X  d"   R R.pVR ,          VR&   VP                  V4      p\	        W64      pVP                  XWVR7      p	\        W4      ! V!  p
V
P                  P                  R 4      P                  p\        . R	O4      p\        P                  ! W4       VR8X  d>   V
P                  P                  R4      P                  p\        P                  ! W4       R# R# )
r   r   rV   r  r  rL  rS  Nr  r  )r   r   r   r  r   rO   r  r"   r   r   r   re   r   )r"  r   rM   transformation_funcr  r   rR   rV  r*   r{   r  r)   ri   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 \        . R	O. R
OVR7      R\        ^4      /4      pVR8X  d   R .pMDVR8X  d   R .pVP                  V4      pM(VR8X  d"   R R.pVR ,          VR&   VP                  V4      pVP	                  XWVR7      p\        W4      ! 4       p	VR8X  d   V	R ,          P                  P                  p
M%V	P                  P                  R 4      P                  p
\        . R
O4      p\        P                  ! W4       VR8X  d>   V	P                  P                  R4      P                  p
\        P                  ! W4       R# R# )r   r   rV   r   r  r  rL  rS  Nr  r  )r   r   r   r  rO   r  r  r   r"   r   r   re   r   r"  r   rM   r  r  r   rR   rV  r{   r  r)   ri   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   c           	      &   VR 8X  d   VR8X  g   V '       g   VR8w  d   \         P                  ! R4       \        R\        . RO. ROVR7      R\	        ^4      /4      pVR8X  d   R.pMDVR8X  d   R.pVP                  V4      pM(VR8X  d"   RR.pVR,          VR&   VP                  V4      pVP                  XWVR	7      p\        W4      ! R
 4      p	VR 8X  g	   V '       g&   VR8X  d   V	R,          P                  P                  p
M%V	P                  P                  R4      P                  p
\        . RO4      p\        P                  ! W4       VR8X  d>   V	P                  P                  R4      P                  p
\        P                  ! W4       R# R# )r   r   z(No categories in result, nothing to testr   r   rV   r  r  rL  rS  c                 &    V P                  R R7      # )Tro   )rC   r   s   &r   r   +test_category_order_apply.<locals>.<lambda>
  s    aeee.Fr   Nr  r  )rh  r&  r   r   r   r  rO   r  r  r   r"   r   r   re   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#$FGI+X:3H3##..11#6AA\"H&+W11$7BB
f/ r   c                 P   VR 8w  d    V '       g   \         P                  ! RR7       \        P                  ! RRR4      p\	        . ROWCR7      p\        RVR\        ^4      /4      pVR 8X  d   R.pMDVR8X  d   R.pVP                  V4      pM(VR8X  d"   RR	.pVR,          VR	&   VP                  V4      pVP                  XWR
R7      pVP                  4       p	V'       d   . ROM. ROp
\        WP                  VRR7      pV '       dE   \        RV
/4      pVR8X  d*   \        P                  ! \        RVR	V/4      4      Vn        MJWn        MCVR8X  d%   \        R\        V4      R	\        V4      RV
/4      pM\        R\        V4      RV
/4      p\         P"                  ! W4       R# )r   r  r-  i'  r   r   rV   r  r  rL  TrS  )r   r   rY   Nrr  r  )ra   r`   r_   )r`   r_   ra   )rh  r&  r   r   r   r   r   r  rO   rC   r   r   r	   
from_framer"   r
   re   rf   )r"  r   r  r   r   grouperrR   rV  r{   r)   rg   r"   ri   s   &&&&         r   test_many_categoriesr    sv    WXLM4R(J,:OG	C#uQx0	1BWu	x	u\\$	w	T{c74\\$	D8	FBVVXF 9)D++W3E c4[) '229c5$PU=V3WXHN"N	w	c6%=$usDQRc6%=#t<=&+r   rV  a1c           	      F   V'       d7   VR 8X  d0   \        \        R 4      '       d   Q h\        P                  ! R4       M8VR 8X  d2   RpV P	                  \        P
                  P                  VR7      4       \        R. ROR. ROR. RO/4      pVP                  RRRR/4      pRV9  d   VP                  RR7      pVP                  WQVR	7      pV'       d
   VR,          p\        W74      p	V'       gU   VR9   dN   VRR.8X  dE   \        P                  ! \        R
R7      ;_uu_ 4        VP                  ! V..V	O5!   RRR4       R# VP                  ! V..V	O5!  p
\        W4      ! V	!  pV'       d!   V'       g   VR8X  d   VP!                  V4      pV'       gE   \"        P$                  ! VP&                  RR  Uu. uF  qR3NK  	  upRV3.,           4      Vn        MV'       g   . VOVNVn        \(        P*                  ! W4       R#   + '       g   i     R# ; iu upi )r1   z*corrwith not implemented for SeriesGroupByz1GH#32293: attempts to call SeriesGroupBy.corrwithr-  r  rL  rV   r<  r   r  r$  r  Nr?   r
  )r   r   r_   )r`   ra   ra   rP  r%  rr  )r'  r   rh  r&  r6  r4  r5  r   r   rT  rO   r   r  r  r  r  rn  r	   from_tuplesr&   re   rU  )r;  r"  rM   r(  rM  rV  rk  rR   r{   r*   r)   ri   inds   &&&&&&       r   test_agg_listr  ?  s    ~3=*5555@A	:	%AFKK--S-9:	D)T9c9E	FB	D*dJ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   'H
<H
H	)r   rQ  r   rC  )	rx   r#  r   r   r   rQ  r   r   r   rP  )	r   r   r   r   rQ  r   r   r   r   rO  r  )r  r  r  r  r  r  r  r  )r`   r`   rF   rF   r_   r_   ra   ra   r  )rl   rm   N)r   r  r  )rQ   r  r   )rr   numpyr   rh  pandas.errorsr   pandasr   r   r   r   r   r	   r
   r   pandas._testing_testingre   pandas.api.typingr   pandas.tests.groupbyr   rd   r-   r8  rT   rj   r}   r   r   r   r   r   r   r   r4  parametrizer  r  r  r  r-  r7  r=  rE  rK  rY  r[  r^  rb  rl  rp  rv  ry  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  r+  r>  rM  rQ  rT  r;   r0   rW  rZ  r_  rc  rj  ro  rw  r  r  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 A
BFF
BFF	266	1	266;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	C!Qq!f56 
a		 	 !4	5aS#1v7NO	a	C!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   