
    Mh\)              
       ,   S SK rS SKrS SKJr  S SKJs  Jr  S SK	r
S SK	JrJr  S SKJr  \R                   " \R"                  \R$                  \R&                  \R(                  SS// SQS9S 5       rS	 r\R.                  R0                  S
 5       rS rS r\R.                  R9                  SSS/5      \R.                  R9                  S/ SQ5      S 5       5       rS rS r\R.                  R9                  SSS/5      \R.                  R9                  S/ SQ5      \R.                  R9                  S/ SQ/ SQ4/ SQ/ SQ4/ SQ/ SQ4/5      S 5       5       5       r \R.                  R9                  SSS/5      S 5       r!\R.                  R9                  SSS /5      S! 5       r"\RF                  \R.                  R9                  SSS/5      \R.                  R9                  S"S#\RH                  " S$5      RJ                  4S%/5      S& 5       5       5       r&S' r'g)(    N)UnsupportedFunctionCall)	DataFrameSeriesInt64Float64)znp.int32znp.int64z
np.float32z
np.float64r   r   )paramsidsc                    U R                   nUnUS:X  a  [        R                  nOUS:X  a  [        R                  n[        R                  " U5      R
                  S:X  a   [        R                  " U5      R                  O[        R                  " U5      R                  n[        R                  " U5      R
                  S:X  a   [        R                  " U5      R                  O[        R                  " U5      R                  nXU4$ )zN
Fixture of dtypes with min and max values used for testing
cummin and cummax
r   r   i)
paramnpint64float64dtypekindiinfominfinfomax)requestr   np_typemin_valmax_vals        V/var/www/html/env/lib/python3.13/site-packages/pandas/tests/groupby/test_cumulative.pydtypes_for_minmaxr      s     MMEG((	)	** 88G!!S( 	XXg""  88G!!S( 	XXg""  G$$    c                  
   [        S/S-  SS.5      n U R                  S5      S   R                  5       nU R                  SSS9S   R                  S	 5      nSUl        [
        R                  " X5        [        S/S
-  SS.5      n U S   R                  [        5      U S'   U R                  S5      S   R                  5       nU R                  SSS9S   R                  S 5      nSUl        [
        R                  " X5        g )Nb
      keyvaluer"   r#   F
group_keysc                 "    U R                  5       $ Ncumprodxs    r   <lambda>&test_groupby_cumprod.<locals>.<lambda>3   
    AIIKr   d   c                 "    U R                  5       $ r'   r(   r*   s    r   r,   r-   :   r.   r   )	r   groupbyr)   applynametmassert_series_equalastypefloat)dfactualexpecteds      r   test_groupby_cumprodr;   .   s    	C52:2	3BZZw'//1Fzz%Ez27;AABWXHHM6,	C53;3	4BW+$$U+BwKZZw'//1Fzz%Ez27;AABWXHHM6,r   c                  0   [        S/S-  SS.5      n U R                  S5      S   R                  5       n[        / SQSS9n[        R
                  " X5        U R                  SS	S
9S   R                  S 5      nSUl        [        R
                  " X5        g )Nr      順 r!   r"   r#   )r>   l    d(	 l     I5 l      Fx:^ r3   Fr$   c                 "    U R                  5       $ r'   r(   r*   s    r   r,   /test_groupby_cumprod_overflow.<locals>.<lambda>K   s
    !))+r   )r   r1   r)   r   r4   r5   r2   r3   )r8   r9   r:   numpy_results       r   test_groupby_cumprod_overflowrC   ?   s     
C519w7	8BZZw'//1FMH 6,::e:6w?EEL  L60r   c                     [        SS[        R                  S// SQS.5      n U R                  S5      R	                  SSS9n[        S[        R                  [        R                  // S	QS
.5      n[
        R                  " X5        g )N   r    )rE   r    g      @)ar   crF   TF)numeric_onlyskipna)rE   r    g      @)r   rG   )r   r   nanr1   r)   r4   assert_frame_equal)r8   resultr:   s      r   1test_groupby_cumprod_nan_influences_other_columnsrM   Q   so    	RVVQ	

B ZZ_$$$u$EF2662662EFH&+r   c                     U S   nU S   n[        / SQ/ SQS.5      n/ SQnUR                  U5      n[        SU05      R                  U5      nUR                  S5      R                  5       n[        R
                  " Xv5        UR                  SS	S
9R                  R                  S 5      R                  5       n[        R
                  " Xv5        X%R                  SS/S4'   US-   UR                  SS/S4'   X&R                  / SQS4'   US-   UR                  SS/S4'   UR                  S5      R                  5       n[        R
                  " XvSS9  UR                  SS	S
9R                  R                  S 5      R                  5       n[        R
                  " XvSS9  UR                  SS05      n[        R                  UR                  / SQS4'   [        S[        R                  S[        R                  S[        R                  S[        R                  S/05      nUR                  S5      R                  5       n[        R
                  " Xv5        UR                  SS	S
9R                  R                  S 5      R                  5       n[        R
                  " Xv5        [        S/[        R                  " S/5      S.5      n[        [        R                  " S5      S/SS9nUR                  S5      S   R                  5       n[        R                  " Xg5        [        / SQ/ SQS.5      nUR                  S5      R                   R                  5       n[        / SQSS9n[        R                  " Xv5        g ) Nr   rE   rE   rE   rE   rE   r    r    r    r       r=   rQ   r    r    rQ   r    rE   AB)rQ   rQ   rQ   r    r    r    r    rE   rT   rS   Fr$   c                 "    U R                  5       $ r'   cumminr*   s    r   r,   test_cummin.<locals>.<lambda>l   
    r   r          r    rQ   rZ      T)check_exactc                 "    U R                  5       $ r'   rV   r*   s    r   r,   rX   w   
    AHHJr   r7   r   r    r=   rZ   r=   rQ   c                 "    U R                  5       $ r'   rV   r*   s    r   r,   rX      rY   r   2001rF   r   r   indexr3   rF   rE   r    rE   )rE   r    r    r?   )r   r6   r1   rW   r4   rK   rT   r2   to_framelocr   rJ   pdto_datetimer   r5   r   )r   r   r   base_dfexpected_minsr8   r:   rL   s           r   test_cumminrn   _   s   a E"G 6=UVWG,M		B#}-.55e<HZZ_##%F&+ZZZ.00667KLUUWF&+ "FFAq63;!A+BFFAq63;&-LLs"# '!HLL!QZZ_##%F&=


35
)++112FGPPR  &= nnc7^,G%'VVGKKc!"#2661bffaKLMH__S!((*F&+.00667KLUUW  &+ 
!2>>6(#;<	=BbnnV,QCcBHZZ_S!((*F8, 
3	4BZZ_%%'Fic*H6,r   methodrW   cummaxr   )UInt64r   r   r7   booleanc                    [        / SQ[        R                  /S-  S.5      nUS   R                  U5      US'   UR	                  S5      n[        S[        R                  /S-  0US9n[        X05      " 5       n[        R                  " XE5        [        US   U 5      " 5       R                  5       n[        R                  " XE5        g )NrO      rR   rT   rS   r   )	r   r   rJ   r6   r1   getattrr4   rK   rh   )ro   r   rl   groupedr:   rL   s         r   test_cummin_max_all_nan_columnrx      s     6bffX\JKG3<&&u-GCLooc"G#x!|,E:HW%'F(+WS\6*,557F(+r   c                    U S   nU S   n[        / SQ/ SQS.5      n/ SQnUR                  U5      n[        SU05      R                  U5      nUR                  S5      R                  5       n[        R
                  " Xv5        UR                  SS	S
9R                  R                  S 5      R                  5       n[        R
                  " Xv5        X%R                  SS/S4'   X&R                  / SQS4'   UR                  S5      R                  5       n[        R
                  " Xv5        UR                  SS	S
9R                  R                  S 5      R                  5       n[        R
                  " Xv5        UR                  SS05      n[        R                  UR                  / SQS4'   [        S[        R                  S[        R                  S[        R                  S[        R                  S/05      nUR                  S5      R                  5       n[        R
                  " Xv5        UR                  SS	S
9R                  R                  S 5      R                  5       n[        R
                  " Xv5        [        S/[        R                  " S/5      S.5      n[        [        R                  " S5      S/SS9nUR                  S5      S   R                  5       n[        R                  " Xg5        [        / SQ/ SQS.5      nUR                  S5      R                   R                  5       n[        / SQSS9n[        R                  " Xv5        g )Nr   r    rO   rP   rR   )rQ   r=   r=   r=   r    rQ   rQ   rQ   rT   rS   Fr$   c                 "    U R                  5       $ r'   rp   r*   s    r   r,   test_cummax.<locals>.<lambda>   rY   r   rZ   r\   c                 "    U R                  5       $ r'   r{   r*   s    r   r,   r|      r`   r   r7   ra   r=   rQ   c                 "    U R                  5       $ r'   r{   r*   s    r   r,   r|      rY   r   rE   rc   rd   r   re   rF   rg   )r    rE   rE   )r    rE   r    r?   )r   r6   r1   rp   r4   rK   rT   r2   rh   ri   r   rJ   rj   rk   r   r5   r   )r   r   r   rl   expected_maxsr8   r:   rL   s           r   test_cummaxr      s   a E"G 6=UVWG,M		B#}-.55e<HZZ_##%F&+ZZZ.00667KLUUWF&+ "FFAq63;&-LLs"#ZZ_##%F&+


35
)++112FGPPR  &+ nnc7^,G%'VVGKKc!"#2661bffaKLMH__S!((*F&+.00667KLUUW  &+ 
!2>>6(#;<	=BbnnV,QCcBHZZ_S!((*F8, 
3	4BZZ_%%'Fic*H6,r   c                  X   [        [        S5       V s/ s H   n [        R                  R                  U -   PM"     sn 5      n[        SXR                  R                  S5      S.5      nUR                  S5      nUR                  5       nUSS/   n[        R                  " XE5        g s  sn f )Nr[   rE   zM8[ns]rS   rT   CrS   rT   r   )r   rangerj   NaT_valuer   _valuesviewr1   rp   r4   rK   )nserr8   gbresexps         r   &test_cummax_i8_at_implementation_boundr      s     U1X6X"&&--!#X6
7C	;;+;+;H+EF	GB	CB
))+C
c3Z.C## 7s   'B')r7   r   r   zgroups,expected_datarE   rE   rE   )rE   NNrE   r    rQ   rE   Nr    )rE   rQ   rQ   c                    [        S[        / SQUS905      nUR                  5       nUR                  U5      S   n[	        X`5      " SS9n[        X1SS9n[
        R                  " XE5        [
        R                  " Xx5        g )NrF   r   ru   FrI   )r   r3   )r   r   copyr1   rv   r4   rK   r5   )	ro   r   groupsexpected_datar8   origr   rL   r:   s	            r   test_cummin_max_skipnar      sq     
CE:;	<B779D	F	C	 BR .Fms;H "#6,r   c                 :   [        [        R                  SS// SQS.5      nUR                  / SQ5      SS/   n[	        X 5      " SS9n[        [        R                  [        R                  [        R                  // SQS.5      n[
        R                  " X45        g )	N       @)r   r   r   rd   r   rF   r   Fr   )r   r   rJ   r1   rv   r4   rK   )ro   r8   r   rL   r:   s        r   $test_cummin_max_skipna_multiple_colsr      st     
"&&#s+/B	CB	I	Sz	*BR .F7oNOH&+r   funcr)   cumsumc                 ^   [        / SQ/ SQS.5      nUR                  S5      nSn[        R                  " [        US9   [        X 5      " SSS	5        S S S 5        [        R                  " [        US9   [        X 5      " SS
9  S S S 5        g ! , (       d  f       N@= f! , (       d  f       g = f)Nrg   r   rR   rS   z+numpy operations are not valid with groupbymatchrE   r    rQ   )foo)r   r1   pytestraisesr   rv   )r   r8   gmsgs       r   test_numpy_compatr   	  s~     
3	4B


3A
7C	.c	:Aq! 
;	.c	:Q 
;	: 
;	:	:	:s   B4B
B
B,z	dtype,valrq   uint64)r   l         c                     U[         R                  /n[        SS/US.US9nUR                  S5      nUR	                  U 5      n[        SU0US9n[
        R                  " Xg5        g )NrE   )grpr   ru   r   r   )rj   NAr   r1   	transformr4   rK   )ro   r   valdatar8   rw   rL   r:   s           r   #test_nullable_int_not_cast_as_floatr     sb     <D	Aq6-U	;BjjGv&F#tE2H&+r   c                  ~   [        SS[        R                  /S[        R                  S// SQ// SQS9n [        S[        R                  /[        R                  S/SS//SS	/S9nU R                  S
5      R	                  5       n[
        R                  " X!5        U R                  S
SS9R	                  5       n[
        R                  " X!5        Sn[
        R                  " [        US9   U R                  S
5      R	                  SS9nS S S 5        U R	                  SS9n[
        R                  " X!5        Sn[
        R                  " [        US9   U R                  S
5      R                  SS9nS S S 5        U R                  SS9n[
        R                  " X!5        g ! , (       d  f       N= f! , (       d  f       NE= f)NrE   r    	   )rQ   r=   r   r   )columnsr=   rT   r   rS   F)as_indexz1DataFrameGroupBy.cumsum with axis=1 is deprecatedr   )axisz2DataFrameGroupBy.cumprod with axis=1 is deprecated)
r   r   rJ   r1   r   r4   rK   assert_produces_warningFutureWarningr)   )r8   r:   rL   r   s       r   test_cython_api2r   '  s_    
Q266NQNI>	XB1bff+{QF;c3ZPHZZ_##%F&+ ZZeZ,335F&+ >C		#	#M	=C''Q'/ 
>yyay H&+
>C		#	#M	=C((a(0 
>zzqz!H&+ 
>	= 
>	=s   )FF.
F+.
F<)(numpyr   r   pandas.errorsr   pandas.util._test_decoratorsutil_test_decoratorstdpandasrj   r   r   pandas._testing_testingr4   fixtureint32r   float32r   r   r;   mark
skip_ubsanrC   rM   rn   parametrizerx   r   r   r   r   r   skip_if_32bitr   r   r   r    r   r   <module>r      s"     1 ) )   HHbhh

BJJKP%	%6-" 1 1",3-l Hh#78"TU
, V 9
,1-h	$ Hh#78"?@	O$	L!	O$- A 9- Hh#78, 9, )X!67
  8
  Hh#788RXXh/3346JK, 9 
,,r   