
    m*id                        S SK r S SKrS SKJr  S SKrS SKrS SKJ	r	  S SK
J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  S SKJr  S SKJr  S SKJr  \R<                  R?                  S	S
S/5      \R<                  R?                  S/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ\R@                  \R@                  \R@                  //5      S 5       5       r!S r"\R<                  R?                  SS
S/5      S 5       r#\R<                  R?                  SS
S/5      \R<                  R?                  S/ SQ/ SQ\RH                  \RH                  \RH                  /S\RH                  S/S\RH                  S/S\RH                  S//5      S  5       5       r%\R<                  R?                  S!S"S#\RL                  " S/\'S$9\RL                  " \RH                  /S%S$94S&S"\RL                  " \RH                  /S%S$9\RL                  " S/\'S$94S&S&\RL                  " \RH                  /S%S$9\RL                  " \RH                  /S%S$94S#S%\RL                  " \RH                  /S%S$9\RL                  " \RH                  /S%S$94/5      S' 5       r(\R<                  R?                  SS
S/5      \R<                  R?                  S(/ S)Q5      S* 5       5       r)\R<                  R?                  S+S
\RH                  \R@                  /S4S
\RH                  S,\R@                  /S4S\RH                  \RT                  /S4S\RH                  S\RT                  /S4/5      S- 5       r+\R<                  R?                  SS
S/5      S. 5       r,\R<                  R?                  SS
S/5      S/ 5       r-\R<                  R?                  S0S1S2/5      S3 5       r.\R<                  R?                  S0S1S2/5      S4 5       r/\R<                  R?                  S5S1S S6/S,S7/S,S6/S8.4S2S,S7/S S6/S S7/S8.4/5      \R<                  R?                  S9SS/5      S: 5       5       r0\R<                  R?                  S\" S;5      \" S<5      4S=/5      \R<                  R?                  S>/ S?Q5      S@ 5       5       r1\R<                  R?                  S0SASB/5      SC 5       r2SD r3SE r4SF r5SG r6SH r7SI r8SJ r9SK r:SL r;SM r<\R<                  R?                  SNSOSP/5      SQ 5       r=\R<                  R?                  SNSOSP/5      SR 5       r>SS r?\R<                  R?                  SNSOSP/5      SN\@4ST j5       rA\R<                  R?                  S(/ SUQ5      SV 5       rBSW rC\R<                  R?                  SN/ SXQ5      SY 5       rD\R<                  R?                  SNSOSP/5      SZ 5       rE\R<                  R?                  S[S S,/5      \R<                  R?                  S\SS/5      S] 5       5       rF\R<                  R?                  S[S S,/5      S^ 5       rGS_ rH\R<                  R                  \R<                  R?                  S`SS/5      \R<                  R?                  SaSS/5      \R<                  R?                  SbSS/5      \R<                  R?                  ScSS/5      \R<                  R?                  SdSe/SeSf//5      Sg 5       5       5       5       5       5       rJSh rKSi rLSj rMSk rN\R<                  R?                  Sl/ SmQ\" Sn5      \RT                  \" Sn5      /S\" S,/\R                  " So/SpSq9SSr94/ SmQ\R                  " SsS,S,5      \RT                  \R                  " SsS,S,5      /S\" S,/\R                  " So/SpSq9SSr94/ StQ\R                  " SsS,S,5      \RT                  \R                  " SsS,S,5      \RT                  \R                  " SsS,S,5      /S\" S6S6/\R                  " SoSu/SpSq9SSr94/ SvQ\R                  " SsS,S,5      \RT                  \R                  " SsS,S,5      \RT                  \R                  " SsS,S,5      /S\" S6S,/\R                  " SoSu/SpSq9SSr94/5      Sw 5       rQSx rRSy rSSz rTS{ rU\R<                  R?                  S[S S|/5      S} 5       rVS~ rWS rX\R<                  R?                  S(/ SQ5      \R<                  R?                  SSASS,S,S.S6S7S./04SBSS,S6S.S6SS./04SOSS,S,S.S6S7S./04SPSS,S6S.S6SS./04SS,S6S.S6S6S./SS.4/5      S 5       5       rYS rZ\R<                  R?                  SS\R                  4S\R                  4S\R                  4S\R                  4S\R                  4S\R                  4SO\R                  4SP\R                  4SAS 4SBS 4S\R                  4\R                  " S\Z\R                  " S5      S9/5      S 5       rf\R<                  R?                  S/ SQS,\RH                  S6S,\RH                  S6S,\RH                  S6/	S./ SQ/ SQS./5      \R<                  R?                  S/ SQ5      S 5       5       rg\R<                  R?                  S/ SQ5      \R<                  R?                  SS S,/5      \R<                  R?                  SSS/5      \R<                  R?                  S`SS/5      S 5       5       5       5       rhS rig)    N)ascii_lowercase)iNaT)pandas_dtype)na_value_for_dtype)	DataFrame
MultiIndexSeries	Timestamp
date_rangeisna)get_groupby_method_args)_test_decoratorsagg_funcanyallvals)foobarbaz)r    r   )r   r   r            )r   r   r   r   r   r   )      ?       @      @)r           r   )r   r   r   )TTT)TFF)FFFc           	      l   [        S/S-  S/S-  -   US-  S.5      n[        [        U5      " U5      nU (       a!  [        [	        U5      5      (       a  US:X  a  Sn[        U/S-  S/[
        R                  " SS/S	S
9S9n[        UR                  S	5      U5      " U S9n[        R                  " Xe5        g )Nar   br   )keyvalr   Fr$   r#   namecolumnsindexskipna)
r   getattrbuiltinsr   r   pdIndexgroupbytmassert_frame_equal)r+   r   r   dfexpexpectedresults          d/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/pandas/tests/groupby/test_reductions.pytest_groupby_bool_aggsr8      s    ( 
C519uqy0B	CB (H
%d
+C #d4j//h%&7		E7"((C:E*JH RZZ&1@F&+    c                      [        / SQS[        R                  S/S[        R                  S/// SQS9n [        SS/S	S//S
S/SS/S9nSUR                  l        U R                  S5      R                  5       n[        R                  " X!5        g )N)r   r   r   r   r   r   r   ABCr(   TFr=   r>   r'   r<   )	r   npnanr)   r&   r0   r   r1   r2   r3   r5   r6   s      r7   test_anyrC   ?   s    		BFFE*Q,>?
B 
t}%Sz!QH HNNZZ_  "F&+r9   bool_agg_funcc                     [        SS//SS/S9nUR                  S/5      n[        X 5      " 5       nUR                  [        R
                  " S/5      5      n[        R                  " X45        g )NTr!   r?   r   )r   r0   r,   set_axisr@   arrayr1   r2   )rD   r3   grp_byr6   r5   s        r7    test_bool_aggs_dup_column_labelsrI   L   s\     
T4L>C:	6BZZ_FV+-F{{288QC=)H&+r9   dataFTc                     [        USS9n[        X05      " US9n[        U[        R                  " S/5      SS9nUR	                  / SQ5      R                  XS9n[        R                  " Xe5        g )Nbooleandtyper*   r   r)   rN   r   )r	   r,   r@   rG   r0   aggr1   assert_series_equal)rD   r+   rJ   serexpected_datar5   r6   s          r7   test_masked_kleene_logicrT   W   sc     Y
'C C/v>Mm288QC=	JH[[#'''EF6,r9   zdtype1,dtype2,exp_col1,exp_col2floatFloat64rM   rL   Int64c                 <   S[         R                  /n[        [        R                  " X@S9[        R                  " XAS9S.5      nUR                  SS/5      R                  SSS9n[        X#S.[         R                  " S/5      S9n[        R                  " Xg5        g )	Nr   rM   )col1col2r   r   Fr*   r)   )	r@   rA   r   r.   rG   r0   rP   r1   r2   )dtype1dtype2exp_col1exp_col2rJ   r3   r6   r5   s           r7   test_masked_mixed_typesr`   p   s    > =D	$-rxx7ST
B ZZA##E%#8F(=RXXqc]SH&+r9   rN   )rW   rV   rL   c                    U" [         R                  S/US9nSnU(       d  U S:X  a  [         R                  nU" U/[        R                  " S/5      SS9nUR	                  SS/5      R                  XS9n[        R                  " Xv5        g )Nr   rM   Tr   rL   rO   r*   )r.   NAr@   rG   r0   rP   r1   assert_equal)rD   rN   r+   frame_or_seriesobjexpected_resr5   r6   s           r7   test_masked_bool_aggs_skipnarg      sv     255!*E
2CLmu,uu~RXXqc])TH[[!Q $$]$BFOOF%r9   zbool_agg_func,data,expected_resr   c                     U" U[         S9nUR                  S/[        U5      -  5      R                  U 5      nU" U/[        R
                  " S/5      SS9n[        R                  " XV5        g )NrM   r   boolrO   )objectr0   lenrP   r@   rG   r1   rc   )rD   rJ   rf   rd   re   r6   r5   s          r7   test_object_type_missing_valsrl      sY     $f
-C[[!s4y)--m<F~RXXqc]&QHOOF%r9   c                     [        [        R                  /[        S9n[        R
                  " [        SS9   UR                  S/5      R                  U SS9  S S S 5        g ! , (       d  f       g = f)NrM   z boolean value of NA is ambiguousmatchr   Fr*   )	r	   r.   rb   rj   pytestraises	TypeErrorr0   rP   )rD   rR   s     r7   'test_object_NA_raises_with_skipna_falsers      sP     "%%
'C	y(J	KQC]59 
L	K	Ks   !A!!
A/c                     U [         L a  SS/0OSS0nU " S0 UDS[        0D6n[        UR                  UR                  5      U5      " 5       nU " S0 UDS[
        0D6n[        R                  " XE5        g )Nr(   r!   r&   rN    )r   rj   r,   r0   r)   ri   r1   rc   )rd   rD   kwargsre   r6   r5   s         r7   
test_emptyrw      si     $3i#?i#fc]F

1F
1&
1CS[[+];=F44t4HOOF%r9   howidxminidxmaxc           	         U[         L d	  U[        L a  g SU;   a  [        R                  O[        R                  nU" U5      R
                  nU" U5      R                  n[        / SQX4XC/S.US9nUR                  S5      n[        X`5      " 5       n[        SSS/0[        R                  " SS	/SUS
9S9n[        R                  " Xx5        g )Nint)r   r   r   r   r!   r"   rM   r!   r"   r   r   r   r&   rN   r[   )r|   rU   r@   iinfofinfominmaxr   r0   r,   r.   r/   r1   r2   )	rx   any_real_numpy_dtypeinfo	min_value	max_valuer3   gbr6   r5   s	            r7   test_idxmin_idxmax_extremesr      s     s"&:e&C 44288"((D)*..I)*..I	)	!MN"
B 
CBRF	q!fRXXq!f3>RSH &+r9   c                 X   [         R                  " U5      R                  n[         R                  " U5      R                  n[	        [        [         R                  " [        SS5      SS9SS9[        [         R                  U[         R                  UU[         R                  U[         R                  [         R                  [         R                  /
US9S.5      nUR                  S5      nU (       a  S O[        nS	U S
3n[        R                  " XxS9   [        Xa5      " U S9n	S S S 5        U (       a  SSSS[         R                  /n
O[         R                  n
[	        SU
0[        R                  " [        SS5      SSS9S9n[        R                   " W	U5        g ! , (       d  f       N}= f)Nr      r   )repeatsintprM   r}   r!   z!The behavior of DataFrameGroupBy.z with all-NA valuesrn   r*   r      r"   r~   r[   )r@   r   r   r   r   r	   repeatrangerA   r0   FutureWarningr1   assert_produces_warningr,   r.   r/   r2   )r+   rx   float_numpy_dtyper   r   r3   r   warnmsgr6   valuesr5   s               r7   "test_idxmin_idxmax_extremes_skipnar      sJ    *+//I*+//I			%1+q9HFFFFFFFFFFFF (	

B( 
CB4}D-cU2E
FC		#	#D	4!0 
5Q1bff%	fRXXeAqk6JH &(+ 
5	4s   F
F)zfunc, valuesr   r   )c_intc_floatc_datenumeric_onlyc                    [        / SQ/ SQ/ SQ/ SQS.5      n[        R                  " US   5      US'   US   R                  R	                  S5      US'   US   US   R
                  S	   -
  US
'   US   R                  R                  S5      US'   US   R                  S5      US'   US   R                  S5      US'   [        UR                  S5      U 5      " US9n[        U[        R                  " SS/SS9S9nU(       a  UR                  S/S9nOUS   US'   US   US
'   US   US'   US   US'   US   US'   [        R                  " XE5        g )Nr<   r<   r=   r=   r   r   r   r   )gGz@g=
ףp=@gRQ @g?)2019201820162017)r&   r   r   r   r   z
US/Pacific	c_date_tzr   c_timedeltaWc_periodr   rW   	c_Integerr   rV   
c_Floatingr&   r   r<   r=   r%   r[   r?   )r   r.   to_datetimedttz_localizeiloc	to_periodastyper,   r0   r/   dropr1   r2   )funcr   r   r3   r6   r5   s         r7   $test_idxmin_idxmax_returns_int_typesr     se    
(!/6		

B >>"X,/BxLloo11,?B{O8r(|'8'8';;B}\__..s3BzNk((1B{O)}++I6B|RZZ'.LIFrxxc
'HIH==(=4 ( 2"*8"4'1$W-H[%i0H\&+r9   z2011-01-15 12:50:28.502376z2011-01-20 12:50:28.593448)l    m;-Ll    m;-Lmethod)countr   r   firstlastc                 >   [        SS/US.5      nUR                  S5      n[        X05      " 5       nU S:X  a  SnO,U S:X  a  US   nO U S:X  a  US   nO[        US	   U 5      " 5       n[        S	U/0[        R                  " S/SS
9S9n[
        R                  " XF5        g )Nr   r}   r!   r   r   r   r   r   r"   r%   r[   )r   r0   r,   r.   r/   r1   r2   )r   rJ   r3   groupedr6   expected_valuer5   s          r7   2test_groupby_non_arithmetic_agg_int_like_precisionr   0  s     
!Qd+	,BjjoGW%'F	7	a	6	a C&13#/0!38OPH&+r9   r   r   c           
         [        [        U 5      5      n[        / SQUSUS[        R                  [        R                  /USUS[        R                  [        R                  /S.U S9nUR                  SUS9n[        Xc5      nU" US9n/ S	Q/ S
Q/ SQ/ SQS.X24   n	UR                  U	   R                  S5      n
U(       a  U
R                  5       n
[        R                  " X5        g )N)r   r   r   r   r   r   r         @r!   r"   crM   r!   )sortr*   )r   r   r   )r   r   r   )r   r      )r   r   r   ))r   T)r   F)r   T)r   F)r   r   r   r@   rA   r0   r,   r   	set_index
sort_indexr1   r2   )any_real_nullable_dtyper   r+   rx   na_valuer3   r   r   r6   ilocsr5   s              r7   test_first_last_skipnar   N  s     ",/F"GHH	#C3?C3?	

 &
B 
Cd	#BRF6"F ##!"	
 
kE wwu~'',H&&(&+r9   c                      [        [        R                  R                  S5      R	                  S5      / SQS9n / SQU S'   U R                  S5      nSn[        R                  " [        US9   UR                  S	S
9nS S S 5        U R                  S S 2S	S 24   R                  S	S
9nWR                  R                  S	5      n[        R                  " XE   UR                  S5      5        [        SSS9U S'   U R                  S5      nSn[         R"                  " [$        US9   [        R                  " [        US9   UR                  S	S
9  S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N(= f! , (       d  f       g = f)Nr   )
   r   )r<   r=   r>   Dr?   )
r   r   r   r   r   r   r   r   r   r   r<   z1DataFrameGroupBy.idxmax with axis=1 is deprecatedrn   r   axisz
2016-01-01r   periodsEz>'>' not supported between instances of 'Timestamp' and 'float')r   r@   randomdefault_rngstandard_normalr0   r1   r   r   rz   r   r)   get_level_valuesrQ   	droplevelr   rp   rq   rr   )r3   r   warn_msgresaltindexergb2r   s           r7   test_idxmin_idxmax_axis1r   j  s:   	
		a 009CW
B -BsG	CBBH		#	#M	BiiQi 
C ''!QR%.

Q

'Cii((+G3<s);<r2BsG
**S/C
JC	y	,''XFJJAJ G 
-	, 
C	B GF 
-	,s0   ,E"E?<E.E?
E+.
E<	8E??
Fc                  ~    [        / SQ/ SQS.5      n U R                  S5      S   R                  5       S   S:X  d   eg )N)r<   r<   r<   r<   r<   )ij  i  io  i`  l    @~ )userconnectionsr   r   r<   l    ,fL )r   r0   mean)r3   s    r7   test_groupby_mean_no_overflowr     sD    	-I	

B ::fm,113C8<OOOOr9   c            	      @   [        [        R                  " [        S5      5      SS/S-  S.5      n U R	                  S5      S   R                  5       n[        [        R                  " SS/5      S[        R                  " SS/SS	9S
9n[        R                  " X5        g )Nr   r<   r=   r   )timecatr   r   r   r%   r&   r)   )
r   r.   to_timedeltar   r0   r   r	   r/   r1   rQ   r3   r6   r5   s      r7   test_mean_on_timedeltar     s    	BOOE"I6SzA~N	OBZZv&++-F
AfBHHc3Ze4TH 6,r9   c                  "   [         R                  R                  S5      R                  S5      n [         R                  U S S S2'   [        U 5      n[         R                  R                  S5      R                  SSSS9R                  [        5      n[         R                  US S S2'   UR                  U5      R                  5       nSn[        R                  " [        US9   UR                  U5      R                  [         R                  5      nS S S 5        [        R                   " UW5        [        [         R                  R                  S5      R                  S	5      5      nSn[        R                  " [        US9   UR                  U5      R                  [         R                  5      nS S S 5        UR                  U5      R                  5       n[        R                   " WU5        g ! , (       d  f       N= f! , (       d  f       NV= f)
Nr     r   2   size   zusing DataFrameGroupBy.medianrn   )r   r   )r@   r   r   r   rA   r   integersr   rU   r0   medianr1   r   r   rP   	nanmedianr2   )arrr3   labelsr6   r   r4   rsxps           r7   test_cython_medianr     so   
))


"
2
24
8CvvC!H	3BYY""1%..q"4.@GGNF66F4R4LZZ&&(F
)C		#	#M	=jj $$R\\2 
>&#&	299((+;;IF	GB
)C		#	#M	=ZZ##BII. 
>	F		"	"	$B"b! 
>	= 
>	=s   !/G//H /
G= 
Hc                 h   [        [        R                  R                  S5      R	                  SSS5      5      n[        SSS5      n[        R                  " US   U5      nUR                  X0S9R                  5       nUR                  X0S9R                  S 5      n[        R                  " XE5        g )	Nr   r   ,     7   r   observedc                 "    U R                  5       $ )N)r   xs    r7   <lambda>(test_median_empty_bins.<locals>.<lambda>  s
    r9   )r   r@   r   r   r   r   r.   cutr0   r   rP   r1   r2   )r   r3   grpsbinsr6   r5   s         r7   test_median_empty_binsr    s    	299((+44QC@	ABB?D66"Q%DZZZ0779Fzz$z2667KLH&+r9   c                  f   [        / SQ/ SQSS/-  S.5      n U R                  S5      R                  5       nSU;   d   eU R                  S5      R                  SS	9nSU;   d   eU R                  S5      R                  5       nSU;   d   eU R                  S5      R                  SS	9nSU;   d   eg )
N)   r     r  r   r   mama)nniissr  r  Fr   )r   r0   r   r   )aar6   s     r7   test_max_min_non_numericr
    s    	*,a6(lS	TBZZ!!#F6>>ZZ!!u!5F6>>ZZ!!#F6>>ZZ!!u!5F6>>r9   c                    [        / SQ/ SQ/ SQS.5      nUR                  5         U (       d-  U(       a%  [        UR                  R                  5      S:X  d   e UR                  S5      nUS/   R                  5       n[        R                  " / SQSS	9n[        S/ S
Q0US9n[        R                  " XF5        US/   R                  5       n[        R                  " / SQSS	9n[        S/ SQ0US9n[        R                  " XF5        g )N)r   r   r   r   r   )r   r   r   r   F)r!   r"   r   der;   r   r<   r>   r   r%   )r"   r  r  r[   )r!   r   r  )r   _consolidate_inplacerk   _mgrblocksr0   r   r.   r/   r1   r2   r   )using_array_managerusing_infer_stringr3   r   r6   eir5   s          r7   $test_max_min_object_multiple_columnsr    s    
 
 ,*	

B +=s277>>"a'DD1	CBY]]_F	)#	&B#/r:H&+Y]]_F	)#	&B#/r:H&+r9   c                  8   [         R                  " [        / SQ5      SS9R                  R                  n [        [        R                  S[        R                  // SQU S.5      nUR                  SSS	9S
   R                  5       S
   n[         R                  " [        SS/S
S9SS9R                  R                  n[        R                  " X#5        UR                  S5      S
   R                  5       nSUR                  l        [        R                  " X#5        g )N)
2019-05-09r  r  z%Y-%m-%d)format1)r   r   r   r   r"   Fas_indexr   r  r%   )r.   r   r	   r   dater   r@   rA   r0   r   r1   rQ   r)   r&   )datesr3   r6   r5   s       r7   test_min_date_with_nansr    s    NN9::b 
 
"&&#rvv.YUK	LBZZeZ,S1557<F~~l+#6zb  6,ZZ_S!%%'FHNN6,r9   c                     [        S[        /5      n [        R                  " SS/[        R                  S9nU R                  U5      nUR                  SS9n[        SS0[        R                  S9n[        R                  " X4SS9  UR                  SS9n[        S[        0[        R                  S9n[        R                  " X4SS9  UR                  SS9n[        S[        R                  05      n[        R                  " X4SS9  g )Nr   rM   r   	min_countTcheck_exactr   )r	   r   r@   rG   int64r0   r   r1   rQ   r   rA   )rR   r#   r   r6   r5   s        r7   test_max_inatr$    s    
!T
C
((Aq6
*C	S	BVVaV Fq!fBHH-H6>VVaV Fq$irxx0H6> VVaV Fq"&&k"H6>r9   c                  R   [        S[        S[        S-   /5      n U R                  / SQ5      nUR                  SS9n[        [        R
                  [        R
                  [        S-   S.5      nUR                  R                  [        5      Ul        [        R                  " X#SS9  g )Nr   r   )r   r   r   r   r  r   Tr!  )r	   r   r0   r   r@   rA   r)   r   r|   r1   rQ   )rR   r   r6   r5   s       r7   test_max_inat_not_all_nar&    s~     !T1dQh'
(C	\	"BVVaV F "&&RVVq9:H^^**3/HN6>r9   r   r   r   c                    SS/n[         R                  " SSSS9n[        XS.5      n[        UR	                  S5      S   U 5      " 5       n[         R
                  " SS/SS	9n[        X%SS
9n[        R                  " XF5        g )Nr   r   2020Yr   freqr}   r!   r"   r%   r)   r&   )	r.   period_ranger   r,   r0   r/   r	   r1   rQ   r   groupsr   r3   r6   idxr5   s          r7   $test_groupby_aggregate_period_columnr1    sv     VFoofac:G	.	/BRZZ_S)402F
((Aq6
$Cgs3H6,r9   c                    SS/n[         R                  " SSSS9n[        XS.5      n[        UR	                  S5      U 5      " 5       n[         R
                  " SS/SS9n[        S	U0US
9n[        R                  " XF5        g )Nr   r   r(  r)  r*  r}   r!   r%   r"   r[   )r.   r-  r   r,   r0   r/   r1   r2   r.  s          r7   #test_groupby_aggregate_period_framer3  ,  su     VFoofac:G	.	/BRZZ_d+-F
((Aq6
$C#ws3H&+r9   c                     [        / SQ[        S5      [        R                  /S-  S.5      R	                  [
        5      n U R                  S5      R                  5       n[        SS/SS	/[        R                  [        R                  /S.5      R                  S5      R	                  [
        5      n[        R                  " X5        [        / SQ[        S5      [        S5      S.5      R	                  [
        5      n U R                  S5      R                  5       n[        SS/SS	/S
S/S.5      R                  S5      R	                  [
        5      n[        R                  " X5        g )Nr   abcdr   )r#   rY   rZ   r#   r<   r=   r!   r   r   r   )r   listr@   rA   r   rj   r0   r   r   r1   r2   r   r   s      r7   #test_aggregate_numeric_object_dtyper7  :  s"    
$d6lRVVHqLQ
fVn  ZZ""$F#Jc
RVVRVV<LM	
 
5		  &+ 
$d6lE!HM
fVn  ZZ""$F3*sCj1a&IJ	5		 
 &+r9   c                 \   [        S/SS9R                  R                  5       n[        S/US.5      nUR	                  S5      R                  SU 05      n[        SS/0[        R                  " S/SS9S	9nUS   R                  UR                  5      US'   [        R                  " X45        g )
Nr"   categoryrM   i  r<   r=   r<   r=   r%   r[   )r	   r   
as_orderedr   r0   rP   r.   r/   r   rN   r1   r2   )r   dsr3   r6   r5   s        r7   %test_aggregate_categorical_lost_indexr=  X  s     
Z	(	,	,	7	7	9B	$b)	*BZZ_  #t-F#uRXXtf3-GHH SM((2HSM&+r9   )rW   Int32rV   Float32rL   c                 Z   U S:X  a  SnOU S:X  a  SnOSn[        SS/XS-   /S.5      nUS	   R                  U 5      US	'   UR                  S
5      nUR                  5       nUR                  S S R                  S
5      n[        R                  " XE5        UR                  5       nUR                  SS  R                  S
5      n[        R                  " Xg5        UR                  SS9n[        S	[        R                  /0UR                  U S9n	[        R                  " X5        UR                  SS9n
[        R                  " X5        [        / SQU[        R                  US-   /S.5      nUS	   R                  U 5      US	'   UR                  S
5      nUR                  5       n[        R                  " X5        UR                  5       n[        R                  " X5        UR                  SS9n[        R                  " X5        UR                  SS9n[        R                  " UU	5        g )NrW   l   .D3 rL   r   r   r   r   )idtsrB  rA  r   r  rO   )r   r   r   d   )r   r   r0   r   r   r   r1   r2   r   r.   rb   r)   )rN   rB  r3   r   r6   r5   res_maxexpected_maxresult2	expected2res_max2df2r   result3res_max3result4res_max4s                    r7   test_groupby_min_max_nullablerN  f  s    	)		1a&!V5	6B$xu%BtH	D	BVVXFwwr{$$T*H&+ffhG7712;((.L'0ffqf!G4"%%/uMI'-vvv"H(. 9RQ,?@
ACD	  'CI
++d
CggiG',wwyH(1ggg$G'-www%H(I.r9   c            
      8   [         R                  " S/S-  SS/S9n [        U [         R                  " [        R
                  " S[        R                  S95      S.5      nUR                  SSS	9nUR                  5       n[         R                  " SS/U R                  SS
9n[        S[         R                  " S[         R                  /SS90US9n[        R                  " X55        UR                  5       nSUR                  S'   [        R                  " X55        g )Nr   r   r   )
categoriesrM   r:  r<   Fr   rN   r&   r=   UInt64r[   	   )r   r   )r.   Categoricalr   rG   r@   arangeuint64r0   r   CategoricalIndexrN   rb   r1   r2   r   r   )r   r3   r   r   r0  r5   s         r7   (test_min_max_nullable_uint64_empty_grouprX    s    
..!rq!f
5C	288BIIb		,J#KL	MB	C%	(B
&&(C


q!fCIIC
@C#rxxBEE
(CDCPH#(
&&(CHMM$#(r9   )r   r   r   r   c           	      t   [        [        R                  " S/[        S5      SS9[        R                  " S/SS/SS9SS.5      n[	        UR                  S	S
S9U 5      " 5       n[        R                  " SS/S	SS9n[        [        R                  " SS /SS/SS9SS /S.US9n[        R                  " X$5        g )Nr<   ABT)rP  orderedr   r   g?)rY   rZ   valuerY   Fr   r=   )rJ   r&   r[  )rZ   r\  r[   )	r   r.   rT  r6  r,   r0   rW  r1   r2   )r   r3   r6   r0  r5   s        r7    test_groupby_min_max_categoricalr]    s     
NNC5T$ZNNNA3Aq64H	

B RZZZ7>@F


C:FD
ICNNAt9!QN4[	
 H &+r9   c           
          Un[        S/SSS.US9R                  S S n[        UR                  S5      U 5      " 5       n[        SS/U[        R
                  " / USS9S9n[        R                  " XE5        g )	Nr!   r   rM   r   r"   r   rQ  )r(   rN   r)   )r   r   r,   r0   r.   r/   r1   r2   )r   string_dtype_no_objectrN   r3   r6   r5   s         r7   test_min_empty_string_dtyper`    st     #E	#Ss35	A	F	Fr	JBRZZ_d+-Fc
%rxx%c/RH &+r9   r   test_seriesc                    US:X  a  g U nUS;   a  0 nOUS;   a  SU0nOUS;   a  0 nOSU0nU[         R                  pvUS;   a  SnUS:X  a  S	OS
nOUS;   aJ  U(       a6  US:X  a0  UR                  S:X  a   UR                  [         R                  L a  SnOSnUS:X  a  SOSnO7US;   a  S[        R
                  pvOUS:  a  [         R                  nOUS:X  a  Sn[        S/[         R                  /S.US9nU(       a  US   OUn	[        X5      n
U	R                  US   5      n[        X5      nUS;   a4  SU SU S3n[        R                  " [        US9   U" U
0 UD6  S S S 5        g U" U
0 UD6n[         R                  " S/SUS 9nU(       d  US:X  a  U(       d  US:X  a  S OSn[        XUUS!9nO[        SU0XS"9n[        R                   " UU5        g ! , (       d  f       g = f)#Ncorrwith)r   r   ry   rz   r   r   stdvar)kurtr   )r   nuniquequantilesemr   )r   r   ri   r   FT)r   rg  r   r   pyarrowrW   r#  r   r   )ry   rz   float64sumr   r   r}   rM   r"   r!   )	r   r   rf  prodrh  ri  skewrd  re  zdtype 'z' does not support operation ''rn   r~   )r)   rN   r&   rO   )r.   rb   storager   r@   rA   r   r   r0   r,   rp   rq   rr   r/   r	   r1   rc   )r_  reduction_funcr   ra  rN   rv   expected_dtyper   r3   re   argsr   r   r   r6   r)   r&   r5   s                     r7   test_string_dtype_all_nart    s    #"E 	 	 	8	#y)	J	Jy)%*BEEN'"0E"9t	7	7 &(*"%%'$N$N,6A	/	/)2BFF	Q	5	 	#beeW-U	;B "S'bC">7D	RW	BR(F 
 
 w<^<LAN]]9C0D#F# 1T$V$FHHcUE2En.&>V+Ct.^RVWc>2%VOOFH% 10s   	G
G c           	      "   U n[        S/[        R                  /S.US9nUR                  S5      nUR	                  US9nUS:X  a  SO[        R                  n[        SU0[        R
                  " S/SUS	9US
9n[        R                  " XW5        g )Nr   r}   rM   r!   r  r   r   r"   r~   rO   )r   r.   rb   r0   rl  r/   r1   r2   )r_  r   rN   r3   r   r6   r\  r5   s           r7   test_string_dtype_empty_sumrv  !  s     #E	#beeW-U	;B	CBVViV(Fq.BbeeE	eBHHcUEB%H &+r9   c            	         [        / SQ/ SQ[        [        R                  [        R                  S/5      / SQS.5      n U R	                  S5      nUS/   R                  5       nUS   R                  5       R                  5       n[        R                  " X#5        US   R                  5       R                  5       (       a   eg )N)z-04-23z-05-06z-05-07)z2013-04-23 00:00:00z2013-05-06 00:00:00z2013-05-07 00:00:00OE)zlog080001.logzlog.logxlsx)z
Unnamed: 0DateappFilerz  r|  )r   r	   r@   rA   r0   r   to_framer1   r2   r   r   )r3   r   rr  s       r7   test_max_nan_bugr  /  s    	8
 2662664018		

B 
F	B
F8A
6
!!#A!y~~##%%%%%r9   r   dropnar  with_nankeysjoejimc           	         SnSn[        SSS9n[        [        R                  R	                  S5      R                  [        [        5      U5      [        R                  R	                  S5      R                  Xu5      [        R                  R	                  S5      R                  SXe5      S.5      nU(       a{  UR                  S[        05      nS UR                  S	S S
2S4'   S UR                  SS S2S4'   S UR                  SS S2S4'   S UR                  SS S2S4'   S UR                  SS S2S4'   UR                  5       n	UR                  XBU S9n
U
S   R                  US9nUR                  XBU S9n
U
S   R                  [         R                  US9nU(       d  UR#                  SS9nU(       a  [$        R&                  " XSS9  O[$        R(                  " XSS9  [$        R(                  " X5        g )NrC  r   z
2015-08-23r   r   r   )r  r  julier  r   r   r  r   %   r           rS  )r  r   r  T)r   F)check_names)r   r   r@   r   r   choicer6  r   r   r   rU   loccopyr0   rg  applyr	   reset_indexr1   rQ   r2   )r   r  r  r  r  nmdaysr3   original_dfgrleftrights                r7   test_series_groupby_nuniquer  C  s    	A
AlB/D	99((+2243H!L99((+224;YY**1-66q!?	

B YY'(#qu"ue|#qu"ue|!%qu"ug~!%qu"ug~!%qu"ug~'')K	D$	7Bg;f-D	D$	7BwKfnnV<E!!t!,
t>
du="*r9   c                  6   [        [        S5      [        S5      [        S5      S.5      n [        [        S5      / SQ/ SQS.5      nU R                  SS	S
9R                  5       n[        R
                  " X!5        [        S5      Ul        SUR                  l        UR                  SS9nU R                  S5      R                  5       n[        R
                  " X!5        U R                  SS 05      R                  S5      R                  S	S9n[        R
                  " X!5        [        S/S-  S/S-  S.[        S5      S9nSUR                  l        U R                  SS 05      R                  S5      R                  5       n[        R
                  " X!5        g )Nabbaccabxaccabbacxr;   abc)r   r   r   )r   r   r   r<   Fr  r?   r   r  r   r   )r=   r>   r[   )
r   r6  r0   rg  r1   r2   r)   r&   r   replacerB   s      r7   test_nuniquer  k  sH   	hd8n4>R	SBtE{KLHZZeZ,446F&+ %[HNHNN}}S})HZZ_$$&F&+ ZZd$,,S1999GF&+ sQwaS1W5T%[IHHNNZZd$,,S199;F&+r9   c                  $   [        / SQ/ SQ/ SQ/ SQ/ SQ// SQS9n U R                  SS	/5      S
   R                  5       n[        R                  " U R
                  U R                  /5      n[        S/S-  S
US9n[        R                  " X5        g )N)rC  r   Alice)   r   Bob)i,  r   Charlie)ipr   Dan)r   r   Edith)amountrA  r&   r?   rA  r  r&   r   r   r   )
r   r0   rg  r   from_arraysrA  r  r	   r1   rQ   )rJ   r6   r)   r5   s       r7   test_nunique_with_objectr    s    	
 )	D \\4*+F3;;=F""DGGT[[#9:EqcAgF%8H6,r9   c                      [        S[        S9n U R                  SS9R                  5       n[        SSS9n[        R
                  " X5        g )Nr&   r~   r   levelr#  )r	   rj   r0   rg  r1   rQ   )rJ   r6   r5   s      r7   test_nunique_with_empty_seriesr    sA    vV,D\\\"**,F61H6,r9   c                     [        [        S5      [        S5      [        S5      // SQS.5      R                  S5      n U R                  [        R
                  " SS95      S	   R                  5       nU R                  [        R
                  " SS95      S	   R                  [        R                  5      n[        R                  " X5        g )
Nz2016-06-28 09:35:35z2016-06-28 16:09:30z2016-06-28 16:46:28)r  23)r   rJ   r   h)r+  rJ   )r   r
   r   r0   r.   Grouperrg  r  r	   r1   rQ   testr6   r5   s      r7   test_nunique_with_timegrouperr    s     /0/0/0
 $	
	 i 	 \\"**#./7??AF||BJJC01&9??OH6,r9   zkey, data, dropna, expected)r   r   r   z
2019-01-01r   r#   r%   r,  i  )r   r   r   yr  r  )r   r   r   r   r  c                     [        XS.5      nUR                  S/5      S   R                  US9n[        R                  " XS5        g )N)r#   rJ   r#   rJ   r  )r   r0   rg  r1   rQ   )r#   rJ   r  r5   r3   r6   s         r7   test_nunique_with_NaTr    sC    V 
3-	.BZZ (000?F6,r9   c                     [        / SQ[        R                  " S/SS9S9n U R                  / SQ5      R	                  5       n[        S/[
        R                  " S/5      U R                  S	9n[        R                  " X5        g )
N)r   r   r   r<   level_0r%   r?   r   r   r   )r)   r(   )
r   r.   r/   r0   rg  r@   rG   r(   r1   r2   r  s      r7   )test_nunique_preserves_column_level_namesr    s^    Y#Y(GHD\\)$,,.F!BHHaSM4<<HH&+r9   c                      [        [        SS5      S/S9n U R                  / SQ5      S   R                  S5      n[	        / SQSS9n[
        R                  " X5        g )	Nz
2008-12-31z
2009-01-02r  r?   )r   r   r   rg  )r   r   r   r%   )r   r   r0   	transformr	   r1   rQ   r   s      r7   $test_nunique_transform_with_datetimer    sO    	:lL9F8	LBZZ	"6*44Y?Fif-H6,r9   c                     [        S/5      R                  S5      nUS S nUR                  X S9nUR                  5       nU (       a  [        / US S SS9nO[        S/USS9n[        R
                  " XE5        g )Nr   r9  r   r   r#  rO   )r	   r   r0   rg  r1   rQ   )r   r   rR   r   r6   r5   s         r7   test_empty_categoricalr    ss    
!+

Z
(C
bq'C	S	,BZZ\F"CG7;1#S86,r9   c                  0   [        SS[        R                  S/5      n U R                  / SQ5      nSn[        R
                  " [        US9   UR                  [        R                  5      nS S S 5        Sn[        R
                  " [        US9   UR                  [        R                  5      nS S S 5        UR                  5       n[        R                  " WU5        [        R                  " WU5        g ! , (       d  f       N= f! , (       d  f       N^= f)Nr   r   r   )r   r   r   r   zusing SeriesGroupBy.sumrn   zusing np.sum)r	   r@   rA   r0   r1   r   r   rP   r-   rl  r  rQ   )sr   r   r6   rF  r5   s         r7   test_intercept_builtin_sumr    s    S"&&#&'Aii%G
#C		#	#M	=X\\* 
> C		#	#M	=--- 
> {{}H68,7H- 
>	= 
>	=s    C6 D6
D
Dr   c           	         SnSn[         R                  n[        R                  " XX3X"U/SS9n[	        / SQUS.5      nUR                  S5      R                  U S9nU S	:X  aM  [	        S
[        R                  " / SQSS90[        R                  " / SQSS9S9n[        R                  " Xg5        g [	        S
[        R                  " [        R                  /S-  SS90[        R                  " / SQSS9S9n[        R                  " Xg5        g )NTFrL   rM   )r   r   r   r   r   r   r   r:  r<   r  r   r=   )r   r   r   rW   r   r%   r[   r   )r@   rA   r.   rG   r   r0   rl  r/   r1   r2   rb   )r   r"   r!   nadfgr3   r6   r5   s           r7   !test_groupby_sum_mincount_booleanr    s    AA	B
((A"!*)
<C	.S9	:BZZ_  9 5FA~"((9G45((93/
 	f/"((BEE7Q;g67((93/
 	f/r9   c                     [        / SQ/ SQ/ SQS.SS9n U R                  S5      n[        R                  " / SQSSS9nUS   R	                  SS	9n[        [        R                  /S
-  SUSS9n[        R                  " X45        UR	                  SS	9n[        [        R                  /S
-  [        R                  /S
-  S.SUS9n[        R                  " X45        g )N)r   r   r   r   rW   rM   r!   r~   r"   r   r  r   )rN   r)   r&   )r"   r   )rN   r)   )
r   r0   r.   r/   rl  r	   rb   r1   rQ   r2   )r3   r   r0  r6   r5   s        r7   0test_groupby_sum_below_mincount_nullable_integerr  %  s    	C7	SBjjoG
((93g
6CS\*Fruugk#FH6,[[1[%Fw{"%%1=WTWXH&+r9   c                     [        / SQ[        R                  " S5      [        R                  " S5      [        R                  " S5      [        R                  /S.5      n [        R                  " SS9nU R	                  S5      nUR                  5       n[        S	X/0[        R                  " S
S/SS9S9n[        R                  " X45        US	   R                  5       n[        R                  " X4S	   5        US	   R                  SS9n[        U[        R                  /SS	UR                  S9n[        R                  " X45        g )N)r   r   r   r   1d2d3dr}   r   )r  r!   r"   r   r   r%   r[   r  zm8[ns])rN   r&   r)   )r   r.   	TimedeltaNaTr0   rl  r/   r1   r2   rQ   r	   r)   )r3   td3r   r   r5   s        r7   #test_groupby_sum_timedelta_with_natr  4  s    	,,t$bll4&8",,t:LbffU	

B ,,A
C	CB
&&(C#z*"((Aq62LMH#(
S'++-C3.
S'+++
"CsBFFm8#X^^TH3)r9   )int8int16int32r#  float32rk  rV  zmethod,datar3   r}   r   r   r#  )r3   out_typec                    [        SSS.SSS.SSS.SSS./5      nUR                  R                  U 5      US'   SU;  a  / US'   SU;   a  US   nOU nUS	   n[        U5      nUR                  R                  U5      US'   UR                  S
SS9  UR	                  S
5      n[        Xq5      " US   6 n[        R                  " X5        g )Nr   r}   r   r   r   r"   rs  r  r3   r!   T)inplace)r   r"   r   r   r0   r,   r1   r2   )	rN   r   rJ   r3   r  r4   df_outgrpdts	            r7   %test_groupby_non_arithmetic_agg_typesr  L  s     
q	+11-=QQ?OP
B ddkk% BsGTVT
#
t*Cs^F((//(+F3K
S$'::c?DtF|,A!$r9   c                  "    SSK Jn  U" U SS0UD6$ )Nr   )ri  ddofr   )scipy.statsri  )rs  rv   ri  s      r7   	scipy_semr  t  s    '1'''r9   z	op,targopr   r   rd  re  rl  rm  c                      U R                   S   $ )Nr   r   r   s    r7   r   r     s    AFF1Ir9   c                      U R                   S   $ )Nr  r   s    r7   r   r     s    166":r9   ri  scipy)marksc                 $   [        [        R                  R                  S5      R	                  S5      5      n[        R                  R                  S5      R                  SSSS9R                  [        5      n[        UR                  U5      U 5      " 5       nU S;   a  S O[        nSU  3n[        R                  " XVS9   UR                  U5      R                  U5      nS S S 5        [        R                  " UW5        g ! , (       d  f       N&= f)	Nr   r   r   r   r   )r   r   r   ri  zusing DataFrameGroupBy.rn   )r   r@   r   r   r   r   r   rU   r,   r0   r   r1   r   rP   r2   )optargopr3   r   r6   r   r   r5   s           r7   test_ops_generalr  z  s    $ 
299((+;;DA	BBYY""1%..q"4.@GGNFRZZ',.F::4D#B4
(C		#	#D	4::f%))&1 
5&(+ 
5	4s    !D
Dr   )	r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   function)r   r   re  c                    US:X  a  SOSn[         R                  " U/S-  [        S9n[        R                  " / SQSSS	9n[        S
U0US9R                  S5      n[        U SS9R                  S5      n[        Xa5      " 5       n[        R                  " Xu5        UR                  U5      n[        R                  " Xu5        UR                  U/5      n[        R                  " S
U4/5      Ul        [        R                  " Xu5        g )Nre  g      ?g      ?r   rM   r   r!   rW   r~   r"   r[   rV   )r@   rG   rU   r.   r/   r   r   r0   r,   r1   r2   rP   r   from_tuplesr(   )r   r  outputr   r0  r5   r/  r6   s           r7   ,test_apply_to_nullable_integer_returns_floatr    s     %S3F
((F8a<u
-C
((93g
6C#s3/66yAHvW-55c:FV&(F&+ZZ!F&+ZZ
#F!--X.?@H&+r9   r  )
rl  rm  r   r   r   r   rn  rd  re  ri  r   r+   c                 j  ^ ^^ [        S/5      nTS:X  a  UnSnOUR                  nSn[        R                  " [        US9   UR                  STUS9nS S S 5        T S:X  aa  [        WT 5      " TS9nUR                  SS9R                  UU U4S	 j5      n	U(       a  U	R                  TS
9n	[        R                  " X5        g [        WT 5      " 5       nUR                  SS9R                  UU 4S j5      n	U(       a  U	R                  TS
9n	[        R                  " X5        g ! , (       d  f       N= f)Nr   zAThe 'axis' keyword in DataFrame.groupby is deprecated and will bez+DataFrame.groupby with axis=1 is deprecatedrn   )r  r   r   rn  r*   r  c                 &   > [        U T5      " TTS9$ )N)r   r+   r,   )r  r   r  r+   s    r7   r   3test_regression_allowlist_methods.<locals>.<lambda>  s    gan$v>r9   r   c                 $   > [        U T5      " TS9$ )Nr   r  )r  r   r  s    r7   r   r    s    '!R.d:Sr9   )
r   Tr1   r   r   r0   r,   r  r   r2   )
r  r   r+   r   	raw_frameframer   r   r6   r5   s
   ```       r7   !test_regression_allowlist_methodsr    s   , 1#IqyQ;		#	#M	=--ad-> 
> 
V|"%V4==q=)//>
 ***5H
f/"%'==q=)//0ST***5H
f/# 
>	=s   D$$
D2c                     SS/SS/SS/SS/SS/SS/SS/SS	/SS
/SS/SS/SS/SS/SS//n [        U SS/SS9nUR                  S/5      R                  5       R                  5       n[        S/S/S.SS9n[        R
                  " X#5        g )Nr   r  )   r   r  r        r   r   +   r   /   r  X   r<   r=   r#  )r(   rN   l   N+R@r:  rM   )r   r0   rm  r  r1   r2   )rJ   r3   r6   r5   s       r7   "test_groupby_prod_with_int64_dtyper    s     
B	
B	
B	
B	
A	
B	
B	
A	
A	
B	
A	
B	
B	
BD  
4#s7	;BZZ##%113Fs*<)=>gNH&+r9   )jr-   datetimer   stringr   numpyr@   rp   pandas._libs.tslibsr   pandas.core.dtypes.commonr   pandas.core.dtypes.missingr   pandasr.   r   r   r	   r
   r   r   pandas._testing_testingr1   pandas.tests.groupbyr   pandas.utilr   tdmarkparametrizerA   r8   rC   rI   rb   rT   rG   ri   r`   rg   r  rl   rs   rw   r   r   r   r   r   r   r   r   r   r  r
  r  r  r$  r&  r1  r3  r7  strr=  rN  rX  r]  r`  rt  rv  r  slowr  r  r  r  r  r/   r  r  r  r  r  r  r  r  r  r  r  r   r   rd  re  rl  rm  r   r   r   param
skip_if_nor  r  r  r  ru   r9   r7   <module>r     s     "   $ 2 9    8 . eU^4
	 $,% 5&,"
, 5%.9, :, 5%.9
	ruu	u	ruud	ruue

-
 :
- % HHdV4(HHbeeWI.		
 HHbeeWI.HHdV4(		
 HHbeeWI.HHbeeWI.		
 HHbeeWI.HHbeeWI.		
':	,;:	, 5%.9"AB	& C :	& %	'	266"D)	&	rvv&.	&& 5%.9: :: 5%.9& :& 8 45, 6,( 8 45%, 6%,P 	aVA1a&IJ	aVA1a&IJ $7, 8,@ 
 2323	
 	/	 #KL, M	,& & 12, 3,64P-",,",>-$?(? %0
- 1
- %0
, 1
,,< %0
, 
, 1
, "UV,/ W,/^)" !@A, B,, %0, 1, q!f-u6R& 7 .R&j q!f-
, .
,&( %/E4=1dE]3dE]35'E5>!:;+ < 4 4 2 0 +D,2-&--" ! |$bffi.EFA3bhhu59G		
 WWT1a "&&"''$1*=>A3bhhu59G		
 &a#a#a# Aq63*5!AO	
 &a#a#a# Aq63*5!AO	
3%(R-S(R-,-
-." q"g.0 /0,,*0 P 	4*!!,<=>?	$qq)+;<=>	aa(*:;<=	aa(*:;<=	*!!,<=7ST	%	%6( 		299							%&	%&	"''UIR]]7-CD"	,#"	,  -RUUAq"%%Aruua8	
 !'9:	 %>?, @	,(  !Q(D%=1$/0 0 2 )$0@,r9   