
    A>i.                        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  \R&                  R)                  SSSSS	S
S\R*                  " S\R&                  R-                  S5      /S9SSS/
5      S 5       rS rS rS rS rS r\R&                  R)                  SS\R:                  4S\R<                  4S	\R>                  4S\R@                  4S\RB                  4S\RD                  4S\RF                  4SS 4SS 4/	5      S 5       r$\R&                  R)                  SS\R:                  4SS 4S	S 4S\RD                  4S\RF                  4/5      S  5       r%S! r&\R&                  R)                  S"/ S#Q5      \R&                  R)                  S$\" S%5      \" S&5      /5      S' 5       5       r'\R&                  R)                  S(/ S)Q5      S* 5       r(\R&                  R)                  S/ S+Q5      S, 5       r)\R&                  R)                  S-/ S.Q5      S/ 5       r*\R&                  R)                  S0S1S2/5      \R&                  R)                  S3/ S4Q5      \R&                  R)                  S$\RV                  " / S5QS6S79\RV                  " / S5QS8S79\RV                  " / S9QS:S79\RV                  " / S9QS;S79\RV                  " / S<QS=S79/5      S> 5       5       5       r,g)?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                 x  ^  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                  5       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    i/var/www/html/land-tabula/venv/lib/python3.13/site-packages/pandas/tests/groupby/aggregate/test_cython.py<lambda>(test_cythonized_aggers.<locals>.<lambda>7   s    71g&(    )axis)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_aggersrG      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/


!
!
#CCjCIIOCH[F/!
v+ "! :s   9F6c                     [        [        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U R                  S5      S   R                  [        R                  5      n[        R                  " X5        g )	Nr   r      2   boolabrM   rN   )r   r+   r-   r.   integersastyper2   r   aggr5   r;   )framerC   expecteds      r&   test_cython_agg_booleanrT   O   s    &&q)221a<&&q)221a<CCFK	
E ]]3$))+F}}S!#&**2773H6,r)   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S9S9n[        R                  " X#5        g ! , (       d  f       N= f)Nr   r   rI   rJ   foobar   rL   KCannot use numeric_only=True with SeriesGroupBy.mean and non-numeric dtypesmatchrM   rN   Tnumeric_onlystrdtype)r3   columns)r   r+   r-   r.   rO   pytestraises	TypeErrorr2   r   sort_valuesdrop_duplicatesr   r5   r6   )rR   msgrC   rS   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
Cj$$&668b&H
 &+ 
-	,s   "D66
E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   rI   rJ   rV   rW   rX   nowr   )periodsfreq)rM   rN   datesrY   rZ   rN   Tr\   )r   r+   r-   r.   rO   pd
date_rangerb   rc   rd   r2   rm   r   )rR   rg   s     r&   )test_cython_agg_nothing_to_agg_with_datesrp   s   s    &&q)221a<"$]]5"5A	
E XC	y	,c  %%4%8 
-	,	,s   2)B$$
B2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)rV   rW   rV   rW   rV   rW   rV   rV   )onerr   twothreers   rs   rr   rt   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   )rs   rr   rt   rW   rV   r4   )r3   r4   )r   r+   r-   r.   r/   r2   rQ   r   r   r5   r;   )r=   tsrS   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                     [        SSS9n [        / SQS-  [        U S9nUR                  S 5      nUR	                  5       nUR                  [        R                  5      R                  [        5      n[        R                  " X45        g )Nz1/1/2000rJ   )rk   )r   r   r    rv   Er!   )r`   r3   c                     U R                   $ r#   )monthrz   s    r&   r'   &test_cython_fail_agg.<locals>.<lambda>   s    177r)   )
r   r   objectr2   r   rQ   r+   rP   r5   r;   )drr}   r?   summedrS   s        r&   test_cython_fail_aggr      sg    	Z	,B	)B.fB	GBjj*+G[[]F{{266"))&1H6,r)   z
op, targopfirstc                      U R                   S   $ Nr   ilocrz   s    r&   r'   r'      s    AFF1Ir)   lastc                      U R                   S   $ )Nr   rz   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 S:X  a  SS0O0 nU S	;  a  SUS
'   UR                  U5      R                  U S SS9nUR                  U5      R                  " U40 UD6n[        R                  " XV5        g )Nr   i  r   rJ   )sizer   ddofr   )r   r   r*   Taltr]   )r   r+   r-   r.   r/   rO   rP   floatr2   _cython_agg_generalrQ   r5   r6   )r>   targopr=   labelskwargsrC   rS   s          r&   test__cython_agg_generalr      s     
299((+;;DA	BBYY""1%..q"4.@GGNF%Kfa[RF	""vZZ33BDt3TFzz&!%%f77H&+r)   c                 l    [        U 5      S:  a  [        R                  " U 5      $ [        R                  $ r   )lenr+   r   r,   rz   s    r&   r'   r'      s"    SVaZRYYq\CRVVCr)   c                 ,    [         R                  " U SS9$ )Nr   )r   )r+   r   rz   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   rI   observedTr   c                    > T" U 5      $ r#    )r%   r   s    r&   r'   /test_cython_agg_empty_buckets.<locals>.<lambda>   s	    vayr)   )	r   ranger2   rn   cutr   rQ   r5   r6   )r>   r   r   r=   grpsgrC   rS   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   rM   )ra   r   rX   rI   r_   r   r   Tr      )rl   )r   r   $   r   )r4   orderedr3   r   )r   r   i  r   r   )r   r+   arangeintr2   rn   r   r   interval_rangeCategoricalIndexrM   r5   r6   )r   r=   r   rC   	intervalsrS   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   rL   rM   r|   rN   r   )r   r   r   r2   	aggregater5   r6   )r>   r<   r=   r3   rS   rC   s         r&   "test_cython_with_timestamp_and_natr      sh     
!QtSk2	3B1a&s#E #c{+59HZZ_&&r*F(+r)   rQ   )r   r   r   r   r   r   r   r   ohlccumprodcumsumshiftanyallquantiler   r   rankcummincummaxc                 `   [        / SQ/ SQS.5      nSUR                  R                  S   R                  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blocksvaluesflags	writeabler2   rQ   copyr5   assert_equal)rQ   r=   rC   rS   s       r&    test_read_only_buffer_source_aggr     s    6 
5I	

B 05BGGNN1"",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   rI   r   r         r      ru   	   Int64r_   )r   r   float64)r   )r   r   FT)convert_integer)r   rn   arrayNAr$   r2   assignrP   convert_dtypesr5   r;   )r   r=   rC   df2rS   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   )r3   ra   r`   )	r   rn   r   r   r2   r   r   r5   r6   )r`   r=   rC   rS   s       r&   &test_count_masked_returns_masked_dtyper   M  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   r   r   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 )
Nr   )rM   rM   rN   rN   )keycolr   
always_intr   r   r   r   )rn   r   r   r2   
Int64Dtyper   r`   r   Float64Dtyper$   r   )r<   r   actionr   r=   r?   expected_dtyperC   s           r&   test_cython_agg_EA_known_dtypesr   ]  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)   )-__doc__numpyr+   rb   pandas.core.dtypes.commonr   r   pandasrn   r   r   r   r   r	   r
   r   pandas._testing_testingr5   markparametrizeparamfilterwarningsrG   rT   rh   rp   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r)   r&   <module>r      s.    
      ;;--.FGH		
 	(,)(,B-,,
9)(- 		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)   