
    Mh                        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  \R8                  R;                  SS	S
/5      \R8                  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 \R8                  R;                  SS	S
/5      S 5       r!\R8                  R;                  SS	S
/5      \R8                  R;                  S/ SQ/ SQ\RD                  \RD                  \RD                  /S\RD                  S/S\RD                  S/S\RD                  S//5      S 5       5       r#\R8                  R;                  S S!S"\RH                  " S/\%S#9\RH                  " \RD                  /S$S#94S%S!\RH                  " \RD                  /S$S#9\RH                  " S/\%S#94S%S%\RH                  " \RD                  /S$S#9\RH                  " \RD                  /S$S#94S"S$\RH                  " \RD                  /S$S#9\RH                  " \RD                  /S$S#94/5      S& 5       r&\R8                  R;                  SS	S
/5      \R8                  R;                  S'/ S(Q5      S) 5       5       r'\R8                  R;                  S*S	\RD                  \R<                  /S4S	\RD                  S+\R<                  /S4S
\RD                  \RP                  /S4S
\RD                  S\RP                  /S4/5      S, 5       r)\R8                  R;                  SS	S
/5      S- 5       r*\R8                  R;                  SS	S
/5      S. 5       r+\R8                  R;                  S/S0S1/5      S2 5       r,\R8                  R;                  S/S0S1/5      S3 5       r-\R8                  R;                  S4S0S S5/S+S6/S+S5/S7.4S1S+S6/S S5/S S6/S7.4/5      \R8                  R;                  S8SS/5      S9 5       5       r.\R8                  R;                  S\" S:5      \" S;5      4S</5      \R8                  R;                  S=/ S>Q5      S? 5       5       r/\R8                  R;                  S/S@SA/5      SB 5       r0SC r1SD r2SE r3SF r4SG r5SH r6SI r7SJ r8SK r9SL r:\R8                  R;                  SMSNSO/5      SP 5       r;\R8                  R;                  SMSNSO/5      SQ 5       r<SR r=\R8                  R;                  SMSNSO/5      SM\>4SS j5       r?\R8                  R;                  S'/ STQ5      SU 5       r@SV rA\R8                  R;                  SM/ SWQ5      SX 5       rB\R8                  R;                  SMSNSO/5      SY 5       rCSZ rD\R8                  R                  \R8                  R;                  S[SS/5      \R8                  R;                  S\SS/5      \R8                  R;                  S]SS/5      \R8                  R;                  S^SS/5      \R8                  R;                  S_S`/S`Sa//5      Sb 5       5       5       5       5       5       rFSc rGSd rHSe rISf rJ\R8                  R;                  Sg/ ShQ\" Si5      \RP                  \" Si5      /S\" S+/\R                  " Sj/SkSl9SSm94/ ShQ\R                  " SnS+S+5      \RP                  \R                  " SnS+S+5      /S\" S+/\R                  " Sj/SkSl9SSm94/ SoQ\R                  " SnS+S+5      \RP                  \R                  " SnS+S+5      \RP                  \R                  " SnS+S+5      /S\" S5S5/\R                  " SjSp/SkSl9SSm94/ SqQ\R                  " SnS+S+5      \RP                  \R                  " SnS+S+5      \RP                  \R                  " SnS+S+5      /S\" S5S+/\R                  " SjSp/SkSl9SSm94/5      Sr 5       rMSs rNSt rOSu rPSv rQ\R8                  R;                  SwS Sx/5      Sy 5       rRSz rSS{ rT\R8                  R;                  S'/ S|Q5      \R8                  R;                  S}S@S~S+S+S.S5S6S./04SAS~S+S5S.S5SS./04SNS~S+S+S.S5S6S./04SOS~S+S5S.S5SS./04SS+S5S.S5S5S./SS.4/5      S 5       5       rUS rV\R8                  R;                  SS\R                  4S\R                  4S\R                  4S\R                  4S\R                  4S\R                  4SN\R                  4SO\R                  4S@S 4SAS 4S\R                  4\R                  " S\V\R                  " S5      S9/5      S 5       rb\R8                  R;                  S/ SQS+\RD                  S5S+\RD                  S5S+\RD                  S5/	S./ SQ/ SQS./5      \R8                  R;                  S/ SQ5      S 5       5       rc\R8                  R;                  S/ SQ5      \R8                  R;                  SS S+/5      \R8                  R;                  SSS/5      \R8                  R;                  S[SS/5      S 5       5       5       5       rdS reg)    N)ascii_lowercase)iNaT)pandas_dtype)na_value_for_dtype)	DataFrame
MultiIndexSeries	Timestamp
date_rangeisna)_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          V/var/www/html/env/lib/python3.13/site-packages/pandas/tests/groupby/test_reductions.pytest_groupby_bool_aggsr7      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%   r/   r   r0   r1   r2   r4   r5   s      r6   test_anyrB   >   s    		BFFE*Q,>?
B 
t}%Sz!QH HNNZZ_  "F&+r8   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   r/   r+   set_axisr?   arrayr0   r1   )rC   r2   grp_byr5   r4   s        r6    test_bool_aggs_dup_column_labelsrH   K   s\     
T4L>C:	6BZZ_FV+-F{{288QC=)H&+r8   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(   rM   r   )r	   r+   r?   rF   r/   aggr0   assert_series_equal)rC   r*   rI   serexpected_datar4   r5   s          r6   test_masked_kleene_logicrS   V   sc     Y
'C C/v>Mm288QC=	JH[[#'''EF6,r8   zdtype1,dtype2,exp_col1,exp_col2floatFloat64rL   rK   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   rL   )col1col2r   r   Fr)   r(   )	r?   r@   r   r-   rF   r/   rO   r0   r1   )dtype1dtype2exp_col1exp_col2rI   r2   r5   r4   s           r6   test_masked_mixed_typesr_   o   s    > =D	$-rxx7ST
B ZZA##E%#8F(=RXXqc]SH&+r8   rM   )rV   rU   rK   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   rL   Tr   rK   rN   r)   )r-   NAr?   rF   r/   rO   r0   assert_equal)rC   rM   r*   frame_or_seriesobjexpected_resr4   r5   s           r6   test_masked_bool_aggs_skipnarf      sv     255!*E
2CLmu,uu~RXXqc])TH[[!Q $$]$BFOOF%r8   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 )NrL   r   boolrN   )objectr/   lenrO   r?   rF   r0   rb   )rC   rI   re   rc   rd   r5   r4   s          r6   test_object_type_missing_valsrk      sY     $f
-C[[!s4y)--m<F~RXXqc]&QHOOF%r8   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)NrL   z boolean value of NA is ambiguousmatchr   Fr)   )	r	   r-   ra   ri   pytestraises	TypeErrorr/   rO   )rC   rQ   s     r6   'test_object_NA_raises_with_skipna_falserr      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%   rM    )r   ri   r+   r/   r(   rh   r0   rb   )rc   rC   kwargsrd   r5   r4   s         r6   
test_emptyrv      si     $3i#?i#fc]F

1F
1&
1CS[[+];=F44t4HOOF%r8   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!   rL   r    r!   r   r   r   r%   rM   rZ   )r{   rT   r?   iinfofinfominmaxr   r/   r+   r-   r.   r0   r1   )	rw   any_real_numpy_dtypeinfo	min_value	max_valuer2   gbr5   r4   s	            r6   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 &+r8   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intprL   r|   r    z!The behavior of DataFrameGroupBy.z with all-NA valuesrm   r)   r      r!   r}   rZ   )r?   r   r   r   r   r	   repeatranger@   r/   FutureWarningr0   assert_produces_warningr+   r-   r.   r1   )r*   rw   float_numpy_dtyper   r   r2   r   warnmsgr5   valuesr4   s               r6   "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   rV   	c_Integerr   rU   
c_Floatingr%   r   r;   r<   r$   rZ   r>   )r   r-   to_datetimedttz_localizeiloc	to_periodastyper+   r/   r.   dropr0   r1   )funcr   r   r2   r5   r4   s         r6   $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\&+r8   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$   rZ   )r   r/   r+   r-   r.   r0   r1   )r   rI   r2   groupedr5   expected_valuer4   s          r6   2test_groupby_non_arithmetic_agg_int_like_precisionr   /  s     
!Qd+	,BjjoGW%'F	7	a	6	a C&13#/0!38OPH&+r8   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!   crL   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?   r@   r/   r+   r   	set_index
sort_indexr0   r1   )any_real_nullable_dtyper   r*   rw   na_valuer2   r   r   r5   ilocsr4   s              r6   test_first_last_skipnar   M  s     ",/F"GHH	#C3?C3?	

 &
B 
Cd	#BRF6"F ##!"	
 
kE wwu~'',H&&(&+r8   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 deprecatedrm   r   axisz
2016-01-01r   periodsEz>'>' not supported between instances of 'Timestamp' and 'float')r   r?   randomdefault_rngstandard_normalr/   r0   r   r   ry   r   r(   get_level_valuesrP   	droplevelr   ro   rp   rq   )r2   r   warn_msgresaltindexergb2r   s           r6   test_idxmin_idxmax_axis1r   i  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   r/   mean)r2   s    r6   test_groupby_mean_no_overflowr     sD    	-I	

B ::fm,113C8<OOOOr8   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   r/   r   r	   r.   r0   rP   r2   r5   r4   s      r6   test_mean_on_timedeltar     s    	BOOE"I6SzA~N	OBZZv&++-F
AfBHHc3Ze4TH 6,r8   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.medianrm   )r   r   )r?   r   r   r   r@   r   integersr   rT   r/   medianr0   r   r   rO   	nanmedianr1   )arrr2   labelsr5   r   r3   rsxps           r6   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    r6   <lambda>(test_median_empty_bins.<locals>.<lambda>  s
    r8   )r   r?   r   r   r   r   r-   cutr/   r   rO   r0   r1   )r   r2   grpsbinsr5   r4   s         r6   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&+r8   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   r/   r   r   )aar5   s     r6   test_max_min_non_numericr	    s    	*,a6(lS	TBZZ!!#F6>>ZZ!!u!5F6>>ZZ!!#F6>>ZZ!!u!5F6>>r8   c                    [        / SQ/ SQ/ SQS.5      nUR                  5         U (       d%  [        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                  " X55        US/   R                  5       n[        R                  " / SQSS	9n[        S/ SQ0US9n[        R                  " X55        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  rZ   )r    r   r  )r   _consolidate_inplacerj   _mgrblocksr/   r   r-   r.   r0   r1   r   )using_array_managerr2   r   r5   eir4   s         r6   $test_max_min_object_multiple_columnsr    s    
 
 ,*	

B 277>>"a'''	CBY]]_F	)#	&B#/r:H&+Y]]_F	)#	&B#/r:H&+r8   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?   r@   r/   r   r0   rP   r(   r%   )datesr2   r5   r4   s       r6   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,r8   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   rL   r   	min_countTcheck_exactr   )r	   r   r?   rF   int64r/   r   r0   rP   r   r@   )rQ   r"   r   r5   r4   s        r6   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>r8   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   r/   r   r?   r@   r(   r   r{   r0   rP   )rQ   r   r5   r4   s       r6   test_max_inat_not_all_nar$    s~     !T1dQh'
(C	\	"BVVaV F "&&RVVq9:H^^**3/HN6>r8   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+   r/   r.   r	   r0   rP   r   groupsr   r2   r5   idxr4   s          r6   $test_groupby_aggregate_period_columnr/    sv     VFoofac:G	.	/BRZZ_S)402F
((Aq6
$Cgs3H6,r8   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!   rZ   )r-   r+  r   r+   r/   r.   r0   r1   r,  s          r6   #test_groupby_aggregate_period_framer1  +  su     VFoofac:G	.	/BRZZ_d+-F
((Aq6
$C#ws3H&+r8   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"   rX   rY   r"   r;   r<   r    r   r   r   )r   listr?   r@   r   ri   r/   r   r   r0   r1   r   r   s      r6   #test_aggregate_numeric_object_dtyper5  9  s"    
$d6lRVVHqLQ
fVn  ZZ""$F#Jc
RVVRVV<LM	
 
5		  &+ 
$d6lE!HM
fVn  ZZ""$F3*sCj1a&IJ	5		 
 &+r8   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!   categoryrL   i  r;   r<   r;   r<   r$   rZ   )r	   r   
as_orderedr   r/   rO   r-   r.   r   rM   r0   r1   )r   dsr2   r5   r4   s        r6   %test_aggregate_categorical_lost_indexr;  W  s     
Z	(	,	,	7	7	9B	$b)	*BZZ_  #t-F#uRXXtf3-GHH SM((2HSM&+r8   )rV   Int32rU   Float32rK   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 )NrV   l   .D3 rK   r   r   r   r   )idtsr@  r?  r   r  rN   )r   r   r   d   )r   r   r/   r   r   r   r0   r1   r   r-   ra   r(   )rM   r@  r2   r   r5   r4   res_maxexpected_maxresult2	expected2res_max2df2r   result3res_max3result4res_max4s                    r6   test_groupby_min_max_nullablerL  e  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.r8   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   )
categoriesrL   r8  r;   Fr   rM   r%   r<   UInt64rZ   	   )r   r   )r-   Categoricalr   rF   r?   arangeuint64r/   r   CategoricalIndexrM   ra   r0   r1   r   r   )r   r2   r   r   r.  r4   s         r6   (test_min_max_nullable_uint64_empty_grouprV    s    
..!rq!f
5C	288BIIb		,J#KL	MB	C%	(B
&&(C


q!fCIIC
@C#rxxBEE
(CDCPH#(
&&(CHMM$#(r8   )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)rN  orderedr   r   g?)rX   rY   valuerX   Fr   r<   )rI   r%   rY  )rY   rZ  rZ   )	r   r-   rR  r4  r+   r/   rU  r0   r1   )r   r2   r5   r.  r4   s        r6    test_groupby_min_max_categoricalr[    s     
NNC5T$ZNNNA3Aq64H	

B RZZZ7>@F


C:FD
ICNNAt9!QN4[	
 H &+r8   c           
         [         R                  " S5        S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                  " X45        g )Npyarrowzstring[pyarrow_numpy]r    r   rL   r   r!   r   rO  )r'   rM   r(   )
ro   importorskipr   r   r+   r/   r-   r.   r0   r1   )r   rM   r2   r5   r4   s        r6   test_min_empty_string_dtyper_    s     	"#E	#Ss35	A	F	Fr	JBRZZ_d+-Fc
%rxx%c/RH &+r8   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Filerc  re  )r   r	   r?   r@   r/   r   to_framer0   r1   r   r   )r2   r   rr  s       r6   test_max_nan_bugrh    s    	8
 2662664018		

B 
F	B
F8A
6
!!#A!y~~##%%%%%r8   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 )NrA  r   z
2015-08-23r   r   r   )rm  rl  juliero  r   r   rm  r   %   rl           rQ  )r  r   ri  T)r   F)check_names)r   r   r?   r   r   choicer4  r   r   r   rT   loccopyr/   nuniqueapplyr	   reset_indexr0   rP   r1   )r   ri  r  rj  rk  nmdaysr2   original_dfgrleftrights                r6   test_series_groupby_nuniquer    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="*r8   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   rt  r   r   )r<   r=   rZ   )
r   r4  r/   ry  r0   r1   r(   r%   r   replacerA   s      r6   test_nuniquer    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&+r8   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)rA  r   Alice)   r   Bob)i,  r   Charlie)ipr   Dan)r   r   Edith)amountr?  r%   r>   r?  r  r%   r   r   r   )
r   r/   ry  r   from_arraysr?  r  r	   r0   rP   )rI   r5   r(   r4   s       r6   test_nunique_with_objectr    s    	
 )	D \\4*+F3;;=F""DGGT[[#9:EqcAgF%8H6,r8   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	   ri   r/   ry  r0   rP   )rI   r5   r4   s      r6   test_nunique_with_empty_seriesr  2  sA    vV,D\\\"**,F61H6,r8   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   rI   r   h)r)  rI   )r   r
   r   r/   r-   Grouperry  rz  r	   r0   rP   testr5   r4   s      r6   test_nunique_with_timegrouperr  :  s     /0/0/0
 $	
	 i 	 \\"**#./7??AF||BJJC01&9??OH6,r8   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"   rI   r"   rI   rt  )r   r/   ry  r0   rP   )r"   rI   ri  r4   r2   r5   s         r6   test_nunique_with_NaTr  K  sC    V 
3-	.BZZ (000?F6,r8   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.   r/   ry  r?   rF   r'   r0   r1   r  s      r6   )test_nunique_preserves_column_level_namesr  {  s^    Y#Y(GHD\\)$,,.F!BHHaSM4<<HH&+r8   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   ry  )r   r   r   r$   )r   r   r/   	transformr	   r0   rP   r   s      r6   $test_nunique_transform_with_datetimer    sO    	:lL9F8	LBZZ	"6*44Y?Fif-H6,r8   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   r7  r   r   r!  rN   )r	   r   r/   ry  r0   rP   )r   r   rQ   r   r5   r4   s         r6   test_empty_categoricalr    ss    
!+

Z
(C
bq'C	S	,BZZ\F"CG7;1#S86,r8   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.sumrm   zusing np.sum)r	   r?   r@   r/   r0   r   r   rO   r,   sumrz  rP   )sr   r   r5   rD  r4   s         r6   test_intercept_builtin_sumr    s    S"&&#&'Aii%G
#C		#	#M	=X\\* 
> C		#	#M	=--- 
> {{}H68,7H- 
>	= 
>	=s    C6 D6
D
Dr  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 )NTFrK   rL   )r   r   r   r   r   r   r   r8  r;   r  r   r<   )r   r   r   rV   r   r$   rZ   r   )r?   r@   r-   rF   r   r/   r  r.   r0   r1   ra   )r  r!   r    nadfgr2   r5   r4   s           r6   !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/r8   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   rV   rL   r    r}   r!   r   r  r   )rM   r(   r%   )r!   r   )rM   r(   )
r   r/   r-   r.   r  r	   ra   r0   rP   r1   )r2   r   r.  r5   r4   s        r6   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&+r8   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$   rZ   r  zm8[ns])rM   r%   r(   )r   r-   	TimedeltaNaTr/   r  r.   r0   r1   rP   r	   r(   )r2   td3r   r   r4   s        r6   #test_groupby_sum_timedelta_with_natr    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)r8   )int8int16int32r!  float32float64rT  zmethod,datar2   r|   r   r   r!  )r2   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!   argsr  r2   r    T)inplace)r   r!   r   r   r/   r+   r0   r1   )	rM   r   rI   r2   r  r3   df_outgrpdts	            r6   %test_groupby_non_arithmetic_agg_typesr    s     
q	+11-=QQ?OP
B ddkk% BsGTVT
#
t*Cs^F((//(+F3K
S$'::c?DtF|,A!$r8   c                  "    SSK Jn  U" U SS0UD6$ )Nr   )semddofr   )scipy.statsr  )r  ru   r  s      r6   	scipy_semr    s    '1'''r8   z	op,targopr   r   stdvarr  prodc                      U R                   S   $ )Nr   r   r   s    r6   r   r      s    AFF1Ir8   c                      U R                   S   $ )Nr  r   s    r6   r   r   !  s    166":r8   r  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   r  zusing DataFrameGroupBy.rm   )r   r?   r   r   r   r   r   rT   r+   r/   r   r0   r   rO   r1   )optargopr2   r   r5   r   r   r4   s           r6   test_ops_generalr    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   r  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 )Nr  g      ?g      ?r   rL   r   r    rV   r}   r!   rZ   rU   )r?   rF   rT   r-   r.   r   r   r/   r+   r0   r1   rO   r   from_tuplesr'   )r   r  outputr   r.  r4   r-  r5   s           r6   ,test_apply_to_nullable_integer_returns_floatr  2  s     %S3F
((F8a<u
-C
((93g
6C#s3/66yAHvW-55c:FV&(F&+ZZ!F&+ZZ
#F!--X.?@H&+r8   r  )
r  r  r   r   r   r   skewr  r  r  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 deprecatedrm   )r  r   r   r  r)   r  c                 &   > [        U T5      " TTS9$ )N)r   r*   r+   )r  r   r  r*   s    r6   r   3test_regression_allowlist_methods.<locals>.<lambda>v  s    gan$v>r8   r   c                 $   > [        U T5      " TS9$ )Nr   r  )r  r   r  s    r6   r   r  }  s    '!R.d:Sr8   )
r   Tr0   r   r   r/   r+   rz  r   r1   )
r  r   r*   r   	raw_frameframer   r   r5   r4   s
   ```       r6   !test_regression_allowlist_methodsr  Q  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   rp  rq        r   r   +   r   /   rr  X   r;   r<   r!  )r'   rM   l   N+R@r8  rL   )r   r/   r  r{  r0   r1   )rI   r2   r5   r4   s       r6   "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&+r8   )fr,   datetimer   stringr   numpyr?   ro   pandas._libs.tslibsr   pandas.core.dtypes.commonr   pandas.core.dtypes.missingr   pandasr-   r   r   r	   r
   r   r   pandas._testing_testingr0   pandas.utilr   tdmarkparametrizer@   r7   rB   rH   ra   rS   rF   rh   r_   rf   r  rk   rr   rv   r   r   r   r   r   r   r   r   r   r   r	  r  r  r"  r$  r/  r1  r5  strr;  rL  rV  r[  r_  rh  slowr  r  r  r  r  r.   r  r  r  r  r  r  r  r  r  r  r  r   r   r  r  r  r  r   r   r   param
skip_if_nor  r  r  r  rt   r8   r6   <module>r     s{     "   $ 2 9    . 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	,&( %/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@,r8   