
    4i*              
       *   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S
 rS rS rS rS rS rS r\R<                  R?                  SSS/5      \R<                  R?                  S/ SQ5      S 5       5       r S r!S r"S r#S r$S r%S r&\R<                  R?                  SSS/5      \R<                  R?                  S/ SQ5      \R<                  R?                  S/ SQ/ S Q4/ S!Q/ S"Q4/ S#Q/ S Q4/5      S$ 5       5       5       r'\R<                  R?                  SSS/5      S% 5       r(\R<                  R?                  S&S'S(/5      S) 5       r)\RT                  \R<                  R?                  SSS/5      \R<                  R?                  S*S+\RV                  " S,5      RX                  4S-/5      S. 5       5       5       r-S/ r.g)0    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        f/var/www/html/dynamic-report/venv/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>J   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_columnsrN   P   so    	RVVQ	

B ZZ_$$$u$EF2662662EFH&+r   c                    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
                  " Xe5        UR                  SSS	9R                  R                  S
 5      R                  5       n[        R
                  " Xe5        g )Nr   rE   rE   rE   rE   r    r    r    r       r=   rR   r    r    rR   r    rE   ABrR   rR   rR   r    r    r    r    rE   rU   rT   Fr$   c                 "    U R                  5       $ r'   cumminr*   s    r   r,   test_cummin.<locals>.<lambda>i   
    r   )	r   r6   r1   rY   r4   rK   rU   r2   to_frame)r   r   base_dfexpected_minsr8   r:   rM   s          r   test_cumminr_   ^   s    a E 6=UVWG,M		B#}-.55e<HZZ_##%F&+ZZZ.00667KLUUWF&+r   c                 @   U S   nU S   n[        / SQ/ SQS.5      n/ SQn[        SU05      R                  U5      nUR                  U5      n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                  " XuSS9  UR                  SSS9R                  R                  S 5      R                  5       n[
        R                  " XuSS9  g )Nr   rE   rP   rQ   rS   rV   rU   r          r    rR   ra      rT   T)check_exactFr$   c                 "    U R                  5       $ r'   rX   r*   s    r   r,   1test_cummin_min_value_for_dtype.<locals>.<lambda>}   
    AHHJr   )
r   r6   locr1   rY   r4   rK   rU   r2   r\   )r   r   r   r]   r^   r:   r8   rM   s           r   test_cummin_min_value_for_dtyperj   m   s   a E"G 6=UVWG,M#}-.55e<H		B!FFAq63;!A+BFFAq63;&-LLs"# '!HLL!QZZ_##%F&=


35
)++112FGPPR  &=r   c                 0   [        / SQ/ SQS.5      n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                  " X25        UR                  SSS9R                  R                  S 5      R                  5       n[        R                  " X25        g )NrP   rQ   rS   rU   r7   r   r    r=   ra   r=   r    rR   rE   rT   Fr$   c                 "    U R                  5       $ r'   rX   r*   s    r   r,   0test_cummin_nan_in_some_values.<locals>.<lambda>   r[   r   )r   r6   r   rJ   ri   r1   rY   r4   rK   rU   r2   r\   r   r]   r:   rM   s       r   test_cummin_nan_in_some_valuesrp      s    6=UVWGnnc7^,G%'VVGKKc!"#2661bffaKLMH__S!((*F&+.00667KLUUW  &+r   c                      [        S/[        R                  " S/5      S.5      n [        [        R                  " S5      S/SS9nU R	                  S5      S   R                  5       n[        R                  " X5        g NrE   2001rF   r   r   r   )indexr3   rF   )r   pdto_datetimer   r1   rY   r4   r5   r8   r:   rM   s      r   test_cummin_datetimery      `    	!2>>6(#;<	=BbnnV,QCcBHZZ_S!((*F8,r   c                      [        / SQ/ SQS.5      n U R                  S5      R                  R                  5       n[	        / SQSS9n[
        R                  " X5        g )NrE   r    rE   )rE   r    r    rt   rF   r   r?   )r   r1   r   rY   r   r4   r5   rL   s      r   test_cummin_getattr_seriesr}      G    	3	4BZZ_%%'Fic*H6,r   methodrY   cummaxr   )UInt64r   r   r7   booleanc                    US:X  a  [         R                  O[        R                  n[	        / SQU/S-  S.5      nUS   R                  U5      US'   UR                  S5      n[	        SU/S-  0US9n[        X@5      " 5       n[        R                  " XV5        [        US   U 5      " 5       R                  5       n[        R                  " XV5        g )Nr7   rP      rS   rU   rT   r   )r   rJ   rv   NAr   r6   r1   getattrr4   rK   r\   )r   r   itemr]   groupedr:   rM   s          r   test_cummin_max_all_nan_columnr      s     g%266255D6dVaZHIG3<&&u-GCLooc"G#vz*%8HW%'F(+WS\6*,557F(+r   c                    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
                  " Xe5        UR                  SSS	9R                  R                  S
 5      R                  5       n[        R
                  " Xe5        g )Nr   rP   rQ   rS   rR   r=   r=   r=   r    rR   rR   rR   rU   rT   Fr$   c                 "    U R                  5       $ r'   r   r*   s    r   r,   test_cummax.<locals>.<lambda>   r[   r   )	r   r6   r1   r   r4   rK   rU   r2   r\   )r   r   r]   expected_maxsr8   r:   rM   s          r   test_cummaxr      s    a E 6=UVWG,M		B#}-.55e<HZZ_##%F&+ZZZ.00667KLUUWF&+r   c                    U S   nU S   n[        / SQ/ SQS.5      n/ SQnUR                  U5      nX%R                  SS/S4'   [        SU05      R                  U5      n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        g )Nr   r    rP   rQ   rS   r   ra   rU   rc   rT   Fr$   c                 "    U R                  5       $ r'   r   r*   s    r   r,   1test_cummax_min_value_for_dtype.<locals>.<lambda>   rh   r   )
r   r6   ri   r1   r   r4   rK   rU   r2   r\   )r   r   r   r]   r   r8   r:   rM   s           r   test_cummax_min_value_for_dtyper      s    a E"G 6=UVWG,M		B!FFAq63;#}-.55e<H&-LLs"#ZZ_##%F&+


35
)++112FGPPR  &+r   c                 0   [        / SQ/ SQS.5      n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                  " X25        UR                  S	S
S9R                  R                  S 5      R                  5       n[        R                  " X25        g )NrP   rQ   rS   rU   r7   rl   r=   rR   rT   Fr$   c                 "    U R                  5       $ r'   r   r*   s    r   r,   0test_cummax_nan_in_some_values.<locals>.<lambda>   r[   r   )r   r6   r   rJ   ri   r1   r   r4   rK   rU   r2   r\   ro   s       r   test_cummax_nan_in_some_valuesr      s     6=UVWGnnc7^,G%'VVGKKc!"#2661bffaKLMH__S!((*F&+.00667KLUUW  &+r   c                      [        S/[        R                  " S/5      S.5      n [        [        R                  " S5      S/SS9nU R	                  S5      S   R                  5       n[        R                  " X5        g rr   )r   rv   rw   r   r1   r   r4   r5   rx   s      r   test_cummax_datetimer      rz   r   c                      [        / SQ/ SQS.5      n U R                  S5      R                  R                  5       n[	        / SQSS9n[
        R                  " X5        g )Nr|   )r    rE   rE   rt   rF   )r    rE   r    r   r?   )r   r1   r   r   r   r4   r5   rL   s      r   test_cummax_getattr_seriesr      r~   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 )Nrb   rE   zM8[ns]rT   rU   CrT   rU   r   )r   rangerv   NaT_valuer   _valuesviewr1   r   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    rR   rE   Nr    )rE   rR   rR   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   r   FrI   )r   r3   )r   r   copyr1   r   r4   rK   r5   )	r   r   groupsexpected_datar8   origr   rM   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   rt   r   rF   r   Fr   )r   r   rJ   r1   r   r4   rK   )r   r8   r   rM   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)Nr|   r   rS   rT   z+numpy operations are not valid with groupby)matchrE   r    rR   )foo)r   r1   pytestraisesr   r   )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,valr   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   r   r   r   )rv   r   r   r1   	transformr4   rK   )r   r   valdatar8   r   rM   r:   s           r   #test_nullable_int_not_cast_as_floatr   4  sb     <D	Aq6-U	;BjjGv&F#tE2H&+r   c                 4   [        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
U S9R	                  5       n[
        R                  " X25        g )NrE   r    	   )rR   r=   r   r   )columnsr=   rU   r   rT   )as_index)r   r   rJ   r1   r   r4   rK   )r   r8   r:   rM   s       r   test_cython_api2r   D  s    
 
Q266NQNI>	XB1bff+{QF;c3ZPHZZhZ/668F&+r   )/numpyr   r   pandas.errorsr   pandas.util._test_decoratorsutil_test_decoratorstdpandasrv   r   r   pandas._testing_testingr4   fixtureint32r   float32r   r   r;   rC   rN   r_   rj   rp   ry   r}   markparametrizer   r   r   r   r   r   r   r   r   r   skip_if_32bitr   r   r   r    r   r   <module>r      s/     1 ) )   HHbhh

BJJKP%	%6-"1",,>*,-- Hh#78"TU, V 9,, ,(,--	$ 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   