+
    xȇi.                        R t ^ RIt^ RIt^ RIHtHt ^ RIt^ RIH	t	H
t
HtHtHtHtHt ^ RIHt ]P&                  P)                  RRRRRR	R
]P*                  ! R]P&                  P-                  R4      .R7      RRR.
4      R 4       tR tR tR tR tR t]P&                  P)                  RR
]P:                  3R]P<                  3R]P>                  3R]P@                  3R]PB                  3R]PD                  3R]PF                  3RR 3RR 3.	4      R 4       t$]P&                  P)                  RR
]P:                  3RR 3RR 3R]PD                  3R]PF                  3.4      R 4       t%R  t&]P&                  P)                  R!. R6O4      ]P&                  P)                  R"]! R#4      ]! R$4      .4      R% 4       4       t']P&                  P)                  R&. R7O4      R' 4       t(]P&                  P)                  R. R8O4      R( 4       t)]P&                  P)                  R). R9O4      R- 4       t*]P&                  P)                  R.R/R0.4      ]P&                  P)                  R1. R:O4      ]P&                  P)                  R"]PV                  ! . R;OR*R27      ]PV                  ! . R;OR3R27      ]PV                  ! . R<OR4R27      ]PV                  ! . R<OR+R27      ]PV                  ! . R=OR,R27      .4      R5 4       4       4       t,R# )>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                   a  R ^ ^ ^ ^ ^^^^^R\         P                  \         P                  .RR R.^,          R\         P                  P                  ^4      P	                  ^4      /p\        V4      p\         P                  VP                  R&   V 3R lpVP                  R.^R7      P                  R 4      pV UUu/ uF  w  rVWS! VR,          4      bK  	  ppp\        RV/4      pR VP                  n
        V! V4      p\        P                  ! W4       VP                  R R.4      p/ p	V F*  w  w  rpV! VR,          4      V	P                  V
/ 4      V&   K,  	  \        V	4      P                  P                  4       pR R.VP                  n        RVn
        V! V4      R,          pS R9   d   \        P"                  ! W4       R# R# u uppi )	Ag      ?BCc                 &   < \        V S4      ! 4       # N)getattr)xr   s   &z/Users/max/.openclaw/workspace/postharvest/venv/lib/python3.14/site-packages/pandas/tests/groupby/aggregate/test_cython.py<lambda>(test_cythonized_aggers.<locals>.<lambda>7   s    71g&(    )axisN):   
   r$   r   )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   f           r   test_cythonized_aggersrB      s   , 	aAq!Q1abffbff=c3Z!^RYY""1%55b9D
 
4B&&BFF;	(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   =Gc            
         \        R \        P                  P                  ^4      P	                  ^ ^^24      R\        P                  P                  ^4      P	                  ^ ^^24      P                  R4      /4      p V P                  R 4      R,          P                  4       pV P                  R 4      R,          P                  \        P                  4      p\        P                  ! W4       R# )abboolN)r   r&   r(   r)   integersastyper-   r   aggr0   r6   )framer>   expecteds      r   test_cython_agg_booleanrL   O   s    &&q)221a<&&q)221a<CCFK	
E ]]3$))+F}}S!#&**2773H6,r"   c            	         \        R \        P                  P                  ^4      P	                  ^ ^^24      RRR.^,          /4      p Rp\
        P                  ! \        VR7      ;_uu_ 4        V P                  R 4      R,          P                  RR7       RRR4       \        R \        P                  P                  ^4      P	                  ^ ^^24      RRR.^,          /4      p V R.,          P                  V R ,          4      P                  RR7      p\        . V R ,          P                  4       P                  4       \        . R	R
7      R7      p\        P                  ! W#4       R#   + '       g   i     L; i)rD   rE   foobarKCannot use numeric_only=True with SeriesGroupBy.mean and non-numeric dtypesmatchTnumeric_onlyNstrdtype)r.   columns)r   r&   r(   r)   rG   pytestraises	TypeErrorr-   r   sort_valuesdrop_duplicatesr   r0   r1   )rJ   msgr>   rK   s       r   test_cython_agg_nothing_to_aggr_   ]   s0   	bii##A&//1b93QS@STE XC	y	,	,c3$$$$7 
- 	bii##A&//1b93QS@STE C5\!!%*-222EF
Cj$$&668b&H
 &+ 
-	,s   -)E((E8	c                     \        R \        P                  P                  ^4      P	                  ^ ^^24      RRR.^,          R\
        P                  ! R^2RR7      /4      p Rp\        P                  ! \        VR	7      ;_uu_ 4        V P                  R4      P                  P                  R
R7       RRR4       R#   + '       g   i     R# ; i)rD   rE   rN   rO   datesnowr   )periodsfreqrP   rQ   TrS   N)r   r&   r(   r)   rG   pd
date_rangerY   rZ   r[   r-   ra   r   )rJ   r^   s     r   )test_cython_agg_nothing_to_agg_with_datesrg   s   s    &&q)221a<%"$R]]5"5A	
E XC	y	,	,c  %%4%8 
-	,	,	,s   ,B<<C	c                     \        R . ROR. ROR\        P                  P                  ^4      P	                  ^4      R\        P                  P                  ^4      P	                  ^4      /4      p V P                  R 4      R,          P                  R	 4      p\        R^R^R^/R^R^R^/.\        RR.R R
7      RR7      p\        P                  ! W4       R# )r   rN   rO   r   onetwothreer   Dc                 >    V P                  4       P                  4       # r   )value_countsto_dictr   s   &r   r    -test_cython_agg_return_dict.<locals>.<lambda>   s    ANN,<,D,D,Fr"   r/   )r.   r/   N)rN   rO   rN   rO   rN   rO   rN   rN   )ri   ri   rj   rk   rj   rj   ri   rk   )r   r&   r(   r)   r*   r-   rI   r   r   r0   r6   )r8   tsrK   s      r   test_cython_agg_return_dictrt      s    	IM&&q)99!<&&q)99!<		

B 
C		!	!"F	GB
E1gq	)E1eQ+KLUEN-H
 2(r"   c                  *   \        R ^2R7      p \        . RO^
,          \        V R7      pVP                  R 4      pVP	                  4       pVP                  \        P                  4      P                  \        4      p\        P                  ! W44       R# )z1/1/2000)rc   )rW   r.   c                     V P                   # r   )monthrp   s   &r   r    &test_cython_fail_agg.<locals>.<lambda>   s    177r"   N)r   r   r   rl   E)
r
   r   objectr-   r   rI   r&   rH   r0   r6   )drrs   r:   summedrK   s        r   test_cython_fail_aggr}      sg    	Z	,B	)B.fB	GBjj*+G[[]F{{266"))&1H6,r"   z
op, targopfirstc                 (    V P                   ^ ,          #     ilocrp   s   &r   r    r       s    AFF1Ir"   lastc                 (    V P                   R,          # )   r   rp   s   &r   r    r       s    166":r"   c                    \        \        P                  P                  ^4      P	                  R4      4      p\        P                  P                  ^4      P                  ^ ^2RR7      P                  \        4      pV R8X  d   R^/M/ pV R	9  d   ^ VR&   VP                  V4      P                  V RRR7      pVP                  V4      P                  ! V3/ VB p\        P                  ! WV4       R# )
r$   i  )sizer   ddofr#   NTaltrT   )r~   r   )r   r&   r(   r)   r*   rG   rH   floatr-   _cython_agg_generalrI   r0   r1   )r9   targopr8   labelskwargsr>   rK   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                 n    \        V 4      ^ 8  d   \        P                  ! V 4      # \        P                  # r   )lenr&   r   r'   rp   s   &r   r    r       s"    SVaZRYYq\CRVVCr"   c                 2    \         P                  ! V ^R7      # )r   )r   )r&   r   rp   s   &r   r    r       s    "&&+r"   c                 v  a \        . RO4      p\        ^ ^7^4      pVP                  \        P                  ! V^ ,          V4      VR7      pVP                  V RRR7      pVP                  \        P                  ! V^ ,          V4      VR7      pVP                  V3R l4      p\        P                  ! Wg4       R# )   observedNTr   c                    < S! V 4      # r    )r   r   s   &r   r    /test_cython_agg_empty_buckets.<locals>.<lambda>   s	    vayr"   r         )	r   ranger-   re   cutr   rI   r0   r1   )r9   r   r   r8   grpsgr>   rK   s   &f&     r   test_cython_agg_empty_bucketsr      s     
<	 BB?D 	

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


266"Q%&
:Auu()H&+r"   c           	         \        . ROR.R7      p\        P                  ! ^ ^^\        R7      pVP	                  \
        P                  ! VR,          V4      V R7      P                  RRRR7      p\
        P                  ! ^ ^^R	7      p\        R. RO/\
        P                  ! VRRR
7      R7      pV '       d   WUP                  ^ 8g  ,          p\        P                  ! W54       VP	                  \
        P                  ! VR,          V4      V R7      P                  RRRR7      p\        R. RO/\
        P                  ! VRRR
7      R7      pV '       d   WUP                  ^8g  ,          p\        P                  ! W54       R# )r   rD   )rX   rV   r   r   NTr   )rd   )r/   orderedr.   r   r   )r   r   $   r   )r   r   i  r   )r   r&   arangeintr-   re   r   r   interval_rangeCategoricalIndexrD   r0   r1   )r   r8   r   r>   	intervalsrK   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"   r9   r7   z2016-10-14 21:00:44.557z17088 days 21:00:44.557c                     \        R ^ ^.RV\        ./4      p\        ^ ^.R R7      p\        RV\        ./VR7      pVP                  R 4      P	                  V 4      p\
        P                  ! WE4       R# )rD   rE   rr   r   N)r   r   r   r-   	aggregater0   r1   )r9   r7   r8   r.   rK   r>   s   &&    r   "test_cython_with_timestamp_and_natr      sl     
C!QtSk2	3B1a&s#E #c{+59HZZ_&&r*F(+r"   rI   c                 l   \        R . ROR. RO/4      pRVP                  P                  ^ ,          P                  P                  n        VP                  R.4      P                  R V /4      pVP                  4       P                  R.4      P                  R V /4      p\        P                  ! W#4       R# )sepal_lengthspeciesFN)gffffff@g@g@gffffff@g      @)setosar   r   r   r   )r   _mgrblocksvaluesflags	writeabler-   rI   copyr0   assert_equal)rI   r8   r>   rK   s   &   r    test_read_only_buffer_source_aggr     s    6 
5I	

B 05BGGNN1"",ZZ$((.#)>?Fwwy  )-11>32GHHOOF%r"   c                    \        R R R.^,          R\        P                  ! ^^^^^^^^^	\        P                  .
RR7      /4      p\	        VP                  R 4      R,          V 4      ! 4       pVP                  VR,          P                  R4      R7      p\	        VP                  R 4      R,          V 4      ! 4       pV R
9   d   RpMRpVP                  VR7      p\        P                  ! W$4       R	# )r   r   Int64rV   float64)r   FT)convert_integerN)r   r   )r   re   arrayNAr   r-   assignrH   convert_dtypesr0   r6   )r   r8   r>   df2rK   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"   rW   r   Float64booleanc                 R   \        R ^^.R\        P                  ! ^\        P                  .V R7      R\        P                  ! ^^.V R7      /4      pVP	                  R 4      P                  4       p\        ^^..\        ^.R R7      RR.RR7      p\        P                  ! W#4       R# )r   r   rV   r   rr   r   )r.   rX   rW   N)	r   re   r   r   r-   r   r   r0   r1   )rW   r8   r>   rK   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, actionrV   Int8Float32c                    V'       d   \         P                  V ^&   \        R. RORV /4      pVP                  R4      pVR8X  d   \         P                  ! 4       pMVR8X  dg   \        V P                  4      '       d   V P                  pM\        V P                  4      '       d   V P                  pMn\         P                  ! 4       pMXVR8X  d?   \        V P                  4      '       d   V P                  pM)\         P                  ! 4       pMVR8X  d   V P                  p\        WQ4      ! 4       pVR,          P                  X8X  g   Q hVP                  V4      pVR,          P                  V8X  g   Q h\        VR,          V4      ! 4       pVP                  V8X  g   Q hVR,          P                  V4      pVP                  V8X  g   Q hR# )	   keycol
always_int	large_intalways_floatpreserveN)rD   rD   rE   rE   )re   r   r   r-   
Int64Dtyper   rW   r   Float64Dtyper   r   )r7   r   actionr   r8   r:   expected_dtyper>   s   &&&&    r   test_cython_agg_EA_known_dtypesr   ]  sa   : %%Q	E/=	>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"   )r~   r   r   r   )r   r   r   r   r   r   r   r   ohlccumprodcumsumshiftanyallquantiler~   r   rankcummincummax)
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   )r   r   )r~   r   )r   r   )r   r$   r      )g?g?g333333?g?)TTFF)-__doc__numpyr&   rY   pandas.core.dtypes.commonr   r   pandasre   r   r   r   r   r   r	   r
   pandas._testing_testingr0   markparametrizeparamfilterwarningsrB   rL   r_   rg   rt   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"   