
    Mh 2                        S r SSKrSSKrSSKJrJr  SSKrSSKJ	r	J
r
JrJrJrJrJr  SSKJr  SSKJs  Jr  \R.                  R1                  SSSSS	S
S\R2                  " S\R.                  R5                  S5      /S9SSS/
5      S 5       rS rS rS rS rS r S r!\R.                  R1                  SS\RD                  4S\RF                  4S	\RH                  4S\RJ                  4S\RL                  4S\RN                  4S\RP                  4SS 4SS 4/	5      S 5       r)\R.                  R1                  SS\RD                  4SS 4S	S  4S\RN                  4S\RP                  4/5      S! 5       r*S" r+\R.                  R1                  S#/ S$Q5      \R.                  R1                  S%\" S&5      \" S'5      /5      S( 5       5       r,\R.                  R1                  S)/ S*Q5      S+ 5       r-\R.                  R1                  S/ S,Q5      S- 5       r.\R.                  R1                  S./ S/Q5      S0 5       r/\R.                  R1                  S1S2S3/5      \R.                  R1                  S4/ S5Q5      \R.                  R1                  S%\R`                  " / S6QS7S89\R`                  " / S6QS9S89\R`                  " / S:QS;S89\R`                  " / S:QS<S89\R`                  " / S=QS>S89/5      S? 5       5       5       r1g)@z
test cython .agg behavior
    N)is_float_dtypeis_integer_dtype)	DataFrameIndexNaTSeries	Timedelta	Timestampbdate_rangeop_namecountsumstdvarsemmeanmedianzignore::RuntimeWarning)marksprodminmaxc                 v  ^  SSSSSSSSSS[         R                  [         R                  /SS/S-  [         R                  R                  S5      R	                  S5      S	.n[        U5      n[         R                  UR                  SS
S2S4'   U 4S jnUR                  S/SS9R                  S5      nU VVs0 s H  u  pVXS" US   5      _M     nnn[        SU05      nSUR                  l
        U" U5      n[        R                  " X5        UR                  SS/5      n0 n	U H&  u  u  pnU" US   5      U	R                  U
0 5      U'   M(     [        U	5      R                  R                  SS9nSS/UR                  l        SUl
        U" U5      S   nT S;   a  [        R"                  " X5        g g s  snnf )Nr      g      ?AB         r   r   C
   r    c                 &   > [        U T5      " 5       $ N)getattr)xr   s    \/var/www/html/env/lib/python3.13/site-packages/pandas/tests/groupby/aggregate/test_cython.py<lambda>(test_cythonized_aggers.<locals>.<lambda>8   s    71g&(    )axisT)future_stack)r   r   )npnanrandomdefault_rngstandard_normalr   locdropgroupbyindexnametmassert_frame_equal
setdefaultTstacknamesassert_series_equal)r   datadfopgroupedcatgroupexpresultexpdcat1cat2s   `           r&   test_cythonized_aggersrH      s   , Aq!Q1abffbff=3Z!^YY""1%55b9D
 
4B&&BFF1R63;	(B ggse!g$,,S1G18
9:335:C
9
S#J
CCIIN[F&& jj#s$GD&e*,U3Z.b!$'  '
D/


!
!t
!
4CCjCIIOCH[F/!
v+ "! :s   9F5c                  4   [        [        R                  R                  S5      R	                  SSS5      [        R                  R                  S5      R	                  SSS5      R                  S5      S.5      n U R                  S5      S   R                  5       nS	n[        R                  " [        US
9   U R                  S5      S   R                  [        R                  5      nS S S 5        [        R                  " UW5        g ! , (       d  f       N&= f)Nr   r      2   boolabrN   rO   zusing SeriesGroupBy.meanmatch)r   r,   r.   r/   integersastyper3   r   r6   assert_produces_warningFutureWarningaggr<   )framerD   msgexpecteds       r&   test_cython_agg_booleanrZ   P   s    &&q)221a<&&q)221a<CCFK	
E ]]3$))+F
$C		#	#M	===%c*..rww7 
> 68,	 
>	=s   72D		
Dc                  ~   [        [        R                  R                  S5      R	                  SSS5      SS/S-  S.5      n S	n[
        R                  " [        US
9   U R                  S5      S   R                  SS9  S S S 5        [        [        R                  R                  S5      R	                  SSS5      SS/S-  S.5      n U S/   R                  U S   5      R                  SS9n[        / U S   R                  5       R                  5       / S9n[        R                  " X#5        g ! , (       d  f       N= f)Nr   r   rJ   rK   foobar   rM   KCannot use numeric_only=True with SeriesGroupBy.mean and non-numeric dtypesrP   rN   rO   Tnumeric_only)r4   columns)r   r,   r.   r/   rR   pytestraises	TypeErrorr3   r   sort_valuesdrop_duplicatesr6   r7   )rW   rX   rD   rY   s       r&   test_cython_agg_nothing_to_aggrh   `   s   ii##A&//1b9QS@STE XC	y	,c3$$$$7 
- ii##A&//1b9QS@STE C5\!!%*-222EF
%*((*::<bH &+ 
-	,s   "D..
D<c            
      j   [        [        R                  R                  S5      R	                  SSS5      SS/S-  [
        R                  " SSS	S
9S.5      n Sn[        R                  " [        US9   U R                  S5      R                  R                  SS9  S S S 5        g ! , (       d  f       g = f)Nr   r   rJ   rK   r\   r]   r^   nowr   )periodsfreq)rN   rO   datesr_   rP   rO   Tr`   )r   r,   r.   r/   rR   pd
date_rangerc   rd   re   r3   rm   r   )rW   rX   s     r&   )test_cython_agg_nothing_to_agg_with_datesrp   t   s    &&q)221a<"$]]5"5A	
E XC	y	,c  %%4%8 
-	,	,s   2)B$$
B2c                     [        / SQ/ SQS.5      n Sn[        R                  " [        US9   U R	                  SSS9R                  5         S S S 5        [        R                  " [        US9   U R	                  SSS9R                  5         S S S 5        [        R                  " [        US9   U R	                  SSS9R                  5         S S S 5        [        R                  " [        US9   U R	                  SSS9R                  5         S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nq= f! , (       d  f       g = f)	N)r   r      )rr      rJ   )r%   yz+DataFrame.groupby with axis=1 is deprecatedrP   r   rb   )levelr*   )r   r6   rT   rU   r3   r   )r>   rX   s     r&   test_cython_agg_frame_columnsrv      s    	3	4B
7C		#	#M	=



+002 
>		#	#M	=



+002 
>		#	#M	=



+002 
>		#	#M	=



+002 
>	= 
>	=	=	=	=	=	=	=s/   D.D'.D8.E	
D$'
D58
E	
Ec                     [        / SQ/ SQ[        R                  R                  S5      R	                  S5      [        R                  R                  S5      R	                  S5      S.5      n U R                  S5      S   R                  S 5      n[        S	S	S	S
.SSS	S
./[        SS/SS9SS9n[        R                  " X5        g )N)r\   r]   r\   r]   r\   r]   r\   r\   )onerx   twothreery   ry   rx   rz   r      )r   r   r    Dr   r   c                 >    U R                  5       R                  5       $ r#   )value_countsto_dictr%   s    r&   r'   -test_cython_agg_return_dict.<locals>.<lambda>   s    ANN,<,D,D,Fr)   r   )ry   rx   rz   r]   r\   r5   )r4   r5   )r   r,   r.   r/   r0   r3   rV   r   r   r6   r<   )r>   tsrY   s      r&   test_cython_agg_return_dictr      s    	IM&&q)99!<&&q)99!<		

B 
C		!	!"F	GB1q	)1Q+KLUEN-H
 2(r)   c                  P   [        SSS9n [        / SQS-  U S9nUR                  S 5      nUR                  5       nSn[        R
                  " [        US	9   UR                  [        R                  5      nS S S 5        [        R                  " UW5        g ! , (       d  f       N&= f)
Nz1/1/2000rK   )rk   )r   r   r    r|   Er!   r4   c                     U R                   $ r#   )monthr   s    r&   r'   &test_cython_fail_agg.<locals>.<lambda>   s    177r)   zusing SeriesGroupBy.sumrP   )
r   r   r3   r   r6   rT   rU   rV   r,   r<   )drr   r@   summedrX   rY   s         r&   test_cython_fail_aggr      s    	Z	,B	)B.b	9Bjj*+G[[]F
#C		#	#M	=;;rvv& 
> 68, 
>	=s    B
B%z
op, targopfirstc                      U R                   S   $ Nr   ilocr   s    r&   r'   r'      s    AFF1Ir)   lastc                      U R                   S   $ )Nr   r   s    r&   r'   r'      s    166":r)   c                 @   [        [        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      R                  U S SS9nU[        R                  ;   a  [        OS 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   i  r   rK   )sizeTaltra   zusing DataFrameGroupBy.rP   )r   r,   r.   r/   r0   rR   rS   floatr3   _cython_agg_generalcom_cython_tablerU   r6   rT   rV   r7   )r?   targopr>   labelsrD   warnrX   rY   s           r&   test__cython_agg_generalr      s     
299((+;;DA	BBYY""1%..q"4.@GGNFZZ33BDt3TF"c&7&77=TD#B4
(C		#	#D	4::f%))&1 
5 &(+ 
5	4s   !D
Dc                 l    [        U 5      S:  a  [        R                  " U 5      $ [        R                  $ r   )lenr,   r   r-   r   s    r&   r'   r'      s"    SVaZRYYq\CRVVCr)   c                 ,    [         R                  " U SS9$ )Nr   )ddof)r,   r   r   s    r&   r'   r'      s    "&&+r)   c                 R  ^ [        / SQ5      n[        SSS5      nUR                  [        R                  " US   U5      US9nUR                  U S SS9nUR                  [        R                  " US   U5      US9nUR                  U4S j5      n[        R                  " Xg5        g )	N   r      r   7   rJ   observedTr   c                    > T" U 5      $ r#    )r%   r   s    r&   r'   /test_cython_agg_empty_buckets.<locals>.<lambda>   s	    vayr)   )	r   ranger3   rn   cutr   rV   r6   r7   )r?   r   r   r>   grpsgrD   rY   s    `      r&   test_cython_agg_empty_bucketsr      s     
<	 BB?D 	

266"Q%&
:A""24d"CF


266"Q%&
:Auu()H&+r)   c           	         [        / SQS/S9n[        R                  " SSS[        S9nUR	                  [
        R                  " US   U5      U S9R                  S	S S
S9n[
        R                  " SSSS9n[        S/ SQ0[
        R                  " USS
S9S9nU (       a  XUR                  S:g     n[        R                  " X55        UR	                  [
        R                  " US   U5      U S9R                  SS S
S9n[        S/ SQ0[
        R                  " USS
S9S9nU (       a  XUR                  S:g     n[        R                  " X55        g )Nr   rN   )rb   r   r^   rJ   dtyper   r   Tr      )rl   )r   r   $   r   )r5   orderedr   r   )r   r   i  r   r   )r   r,   arangeintr3   rn   r   r   interval_rangeCategoricalIndexrN   r6   r7   )r   r>   r   rD   	intervalsrY   s         r&   $test_cython_agg_empty_buckets_nanopsr      s@    
<#	/B99QAS)DZZr#w-ZAUU4d V F !!!Ra0I	m!!)#tDH JJ!O,&+ ZZr#w-ZAUUDt V F 	o!!)#tDH JJ!O,&+r)   r?   )r   r   r   r   r=   z2016-10-14 21:00:44.557z17088 days 21:00:44.557c                     [        SS/U[        /S.5      n[        SS/SS9n[        SU[        /0US9nUR                  S5      R	                  U 5      n[
        R                  " XE5        g )Nr   r   rM   rN   r   rO   r   )r   r   r   r3   	aggregater6   r7   )r?   r=   r>   r4   rY   rD   s         r&   "test_cython_with_timestamp_and_natr     sh     
!QtSk2	3B1a&s#E #c{+59HZZ_&&r*F(+r)   rV   )r   r   r   r   r   r   r   r   ohlccumprodcumsumshiftanyallquantiler   r   rankcummincummaxc                 L   [        / SQ/ SQS.5      nSUR                  R                  S   R                  l        UR                  S/5      R                  SU 05      nUR                  5       R                  S/5      R                  SU 05      n[        R                  " X#5        g )N)gffffff@g@g@gffffff@g      @)setosar   r   r   r   )sepal_lengthspeciesFr   r   r   )
r   _mgrarraysflags	writeabler3   rV   copyr6   assert_equal)rV   r>   rD   rY   s       r&    test_read_only_buffer_source_aggr     s    6 
5I	

B ).BGGNN1%ZZ$((.#)>?Fwwy  )-11>32GHHOOF%r)   )
r   r   r   r   r   r   r   r   r   r   c                    [        SS/S-  [        R                  " SSSSSSS	S
S[        R                  /
SS9S.5      n[	        UR                  S5      S   U 5      " 5       nUR                  US   R                  S5      S9n[	        UR                  S5      S   U 5      " 5       nU S;   a  SnOSnUR                  US9n[        R                  " X$5        g )Nr   r   rJ   r   r   rr   rs   r      r{   	   Int64r   )r   r   float64)r   )r   r   FT)convert_integer)r   rn   arrayNAr$   r3   assignrS   convert_dtypesr6   r<   )r   r>   rD   df2rY   r   s         r&   test_cython_agg_nullable_intr   >  s    $ 
sa1aAq!Q1bee<GL	

B RZZ_S)735F
))bgnnY/)
0Cs{{3',g68H$$&&&GH6,r)   r   )r   Float64booleanc           	      4   [        SS/[        R                  " S[        R                  /U S9[        R                  " SS/U S9S.5      nUR	                  S5      R                  5       n[        SS//[        S/SS9SS/S	S
9n[        R                  " X#5        g )Nr   r   r   r   r   r   r   r    r   )r4   rb   r   )	r   rn   r   r   r3   r   r   r6   r7   )r   r>   rD   rY   s       r&   &test_count_masked_returns_masked_dtyper   a  s    	Q1bee*E21a&.	

B ZZ_""$F
Qqc,sCjH &+r)   with_naTFzop_name, action)	)r   	large_int)r   always_float)r   r   )r   r   )r   r   )r   preserve)r   r   )r   r   )r   r   )r   r   rr   rs   r   r   Int8)g?g?g333333?g?Float32r   )TTFFr   c                 ^   U(       a  [         R                  U S'   [        / SQU S.5      nUR                  S5      nUS:X  a  [         R                  " 5       nOUS:X  ad  [        U R                  5      (       a  U R                  nO[        U R                  5      (       a  U R                  nOk[         R                  " 5       nOUUS:X  a=  [        U R                  5      (       a  U R                  nO([         R                  " 5       nOUS:X  a  U R                  n[        XQ5      " 5       nUS	   R                  W:X  d   eUR                  U5      nUS	   R                  U:X  d   e[        US	   U5      " 5       nUR                  U:X  d   eUS	   R                  U5      nUR                  U:X  d   eg )
Nrr   )rN   rN   rO   rO   )keycolr   
always_intr   r   r   r   )rn   r   r   r3   
Int64Dtyper   r   r   Float64Dtyper$   r   )r=   r   actionr   r>   r@   expected_dtyperD   s           r&   test_cython_agg_EA_known_dtypesr   q  s]   : %%Q	/=	>BjjG	;	$**%%!ZZNdjj))!ZZN]]_N	>	!$**%%!ZZN__.N	:	W&(F%=.000w'F%=.000WU^W-/F<<>)))U^%%g.F<<>)))r)   )2__doc__numpyr,   rc   pandas.core.dtypes.commonr   r   pandasrn   r   r   r   r   r	   r
   r   pandas._testing_testingr6   pandas.core.commoncorecommonr   markparametrizeparamfilterwarningsrH   rZ   rh   rp   rv   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r)   r&   <module>r     s9    
          ;;--.FGH		
 	(,)(,B- ,(
93)(
- 		299						%&	%&

,
, 		CD	+,			,	,,B >?
Y019=V3WX	, @	, 	2&32&  --( "AB, C, T5M2" 

W-
V,
%Y7
%Y7
+9=	&*	# 38&*r)   