
    Owg\)              
       2   d dl Zd dlZd dlmZ d dlmc mZ d dl	Z
d dl	mZmZ d dlmZ  ej                   ej"                  ej$                  ej&                  ej(                  ddgg d      d        Zd	 Zej.                  j0                  d
        Zd Zd Zej.                  j9                  dddg      ej.                  j9                  dg d      d               Zd Zd Zej.                  j9                  dddg      ej.                  j9                  dg d      ej.                  j9                  dg dg dfg dg dfg dg dfg      d                      Z ej.                  j9                  dddg      d        Z!ej.                  j9                  ddd g      d!        Z"ejF                  ej.                  j9                  dddg      ej.                  j9                  d"d# ejH                  d$      jJ                  fd%g      d&                      Z&d' Z'y)(    N)UnsupportedFunctionCall)	DataFrameSeriesInt64Float64)znp.int32znp.int64z
np.float32z
np.float64r   r   )paramsidsc                    | j                   }|}|dk(  rt        j                  }n|dk(  rt        j                  }t        j                  |      j
                  dk(  rt        j                  |      j                  nt        j                  |      j                  }t        j                  |      j
                  dk(  rt        j                  |      j                  nt        j                  |      j                  }|||fS )zZ
    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        [/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/groupby/test_cumulative.pydtypes_for_minmaxr      s     MMEG((	)	** 88G!!S( 	XXg""  88G!!S( 	XXg""  7G$$    c                     t        dgdz  dd      } | j                  d      d   j                         }| j                  dd      d   j                  d	       }d|_        t        j                  ||       t        dgd
z  dd      } | d   j                  t              | d<   | j                  d      d   j                         }| j                  dd      d   j                  d       }d|_        t        j                  ||       y )Nb
      keyvaluer"   r#   F
group_keysc                 "    | j                         S Ncumprodxs    r   <lambda>z&test_groupby_cumprod.<locals>.<lambda>3       AIIK r   d   c                 "    | j                         S r'   r(   r*   s    r   r,   z&test_groupby_cumprod.<locals>.<lambda>:   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68,	C53;3	4BW+$$U+BwKZZw'//1Fzz%Ez27;AABWXHHM68,r   c                  <   t        dgdz  dd      } | j                  d      d   j                         }t        g dd      }t	        j
                  ||       | j                  dd	
      d   j                  d       }d|_        t	        j
                  ||       y )Nr      順 r!   r"   r#   )r=   l    d(	 l     I5 l      Fx:^ r2   Fr$   c                 "    | j                         S r'   r(   r*   s    r   r,   z/test_groupby_cumprod_overflow.<locals>.<lambda>K   s    !))+ r   )r   r0   r)   r   r3   r4   r1   r2   )r7   r8   r9   numpy_results       r   test_groupby_cumprod_overflowrA   ?   s     
C519w7	8BZZw'//1FMH 68,::e:6w?EEL  L6<0r   c                     t        ddt        j                  dgg dd      } | j                  d      j	                  dd      }t        dt        j                  t        j                  gg d	d
      }t        j                  ||       y )N   r    )rC   r    g      @)ar   crD   TF)numeric_onlyskipna)rC   r    g      @)r   rE   )r   r   nanr0   r)   r3   assert_frame_equal)r7   resultr9   s      r   1test_groupby_cumprod_nan_influences_other_columnsrK   Q   sq    	RVVQ	

B ZZ_$$$u$EF2662662EFH&(+r   c                 *   | d   }| d   }t        g dg dd      }g d}|j                  |      }t        d|i      j                  |      }|j                  d      j                         }t	        j
                  ||       |j                  dd	
      j                  j                  d       j                         }t	        j
                  ||       ||j                  ddgdf<   |dz   |j                  ddgdf<   ||j                  g ddf<   |dz   |j                  ddgdf<   |j                  d      j                         }t	        j
                  ||d       |j                  dd	
      j                  j                  d       j                         }t	        j
                  ||d       |j                  ddi      }t        j                  |j                  g ddf<   t        dt        j                  dt        j                  dt        j                  dt        j                  dgi      }|j                  d      j                         }t	        j
                  ||       |j                  dd	
      j                  j                  d       j                         }t	        j
                  ||       t        dgt        j                  dg      d      }t        t        j                  d      dgd      }|j                  d      d   j                         }t	        j                  ||       t        g dg dd      }|j                  d      j                   j                         }t        g dd      }t	        j                  ||       y ) Nr   rC   rC   rC   rC   rC   r    r    r    r       r<   rO   r    r    rO   r    rC   AB)rO   rO   rO   r    r    r    r    rC   rR   rQ   Fr$   c                 "    | j                         S r'   cumminr*   s    r   r,   ztest_cummin.<locals>.<lambda>l        r   r          r    rO   rW      T)check_exactc                 "    | j                         S r'   rT   r*   s    r   r,   ztest_cummin.<locals>.<lambda>w       AHHJ r   r6   r   r    r<   rW   r<   rO   c                 "    | j                         S r'   rT   r*   s    r   r,   ztest_cummin.<locals>.<lambda>   rV   r   2001rD   r   r   indexr2   rD   rC   r    rC   )rC   r    r    r>   )r   r5   r0   rU   r3   rI   rR   r1   to_framelocr   rH   pdto_datetimer   r4   r   )r   r   r   base_dfexpected_minsr7   r9   rJ   s           r   test_cumminrk   _   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&(+ "BFFAq63;!A+BFFAq63;&-HLL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8V, 
3	4BZZ_%%'Fic*H68,r   methodrU   cummaxr   )UInt64r   r   r6   booleanc                    t        g dt        j                  gdz  d      }|d   j                  |      |d<   |j	                  d      }t        dt        j                  gdz  i|      } t        ||              }t        j                  ||        t        |d   |              j                         }t        j                  ||       y )NrM      rP   rR   rQ   r   )	r   r   rH   r5   r0   getattrr3   rI   re   )rl   r   ri   groupedr9   rJ   s         r   test_cummin_max_all_nan_columnru      s     6bffX\JKG3<&&u-GCLooc"G#x!|,E:H%WWf%'F(F+*WWS\6*,557F(F+r   c                    | d   }| d   }t        g dg dd      }g d}|j                  |      }t        d|i      j                  |      }|j                  d      j                         }t	        j
                  ||       |j                  dd	
      j                  j                  d       j                         }t	        j
                  ||       ||j                  ddgdf<   ||j                  g ddf<   |j                  d      j                         }t	        j
                  ||       |j                  dd	
      j                  j                  d       j                         }t	        j
                  ||       |j                  ddi      }t        j                  |j                  g ddf<   t        dt        j                  dt        j                  dt        j                  dt        j                  dgi      }|j                  d      j                         }t	        j
                  ||       |j                  dd	
      j                  j                  d       j                         }t	        j
                  ||       t        dgt        j                  dg      d      }t        t        j                  d      dgd      }|j                  d      d   j                         }t	        j                  ||       t        g dg dd      }|j                  d      j                   j                         }t        g dd      }t	        j                  ||       y )Nr   r    rM   rN   rP   )rO   r<   r<   r<   r    rO   rO   rO   rR   rQ   Fr$   c                 "    | j                         S r'   rm   r*   s    r   r,   ztest_cummax.<locals>.<lambda>   rV   r   rW   rY   c                 "    | j                         S r'   rx   r*   s    r   r,   ztest_cummax.<locals>.<lambda>   r]   r   r6   r^   r<   rO   c                 "    | j                         S r'   rx   r*   s    r   r,   ztest_cummax.<locals>.<lambda>   rV   r   rC   r`   ra   r   rb   rD   rd   )r    rC   rC   )r    rC   r    r>   )r   r5   r0   rm   r3   rI   rR   r1   re   rf   r   rH   rg   rh   r   r4   r   )r   r   r   ri   expected_maxsr7   r9   rJ   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&(+ "BFFAq63;&-HLL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8V, 
3	4BZZ_%%'Fic*H68,r   c                  T   t        t        d      D  cg c]  } t        j                  j                  | z   ! c}       }t        d||j                  j                  d      d      }|j                  d      }|j                         }|ddg   }t        j                  ||       y c c} w )NrX   rC   zM8[ns]rQ   rR   CrQ   rR   r   )r   rangerg   NaT_valuer   _valuesviewr0   rm   r3   rI   )nserr7   gbresexps         r   &test_cummax_i8_at_implementation_boundr      s     U1X6"&&--!#6
7C	3;;+;+;H+EF	GB	CB
))+C
c3Z.C#s# 7s   $B%)r6   r   r   zgroups,expected_datarC   rC   rC   )rC   NNrC   r    rO   rC   Nr    )rC   rO   rO   c                    t        dt        g d|      i      }|j                         }|j                  |      d   } t	        ||       d      }t        ||d      }t        j                  ||       t        j                  ||       y )NrD   r   rr   FrG   )r   r2   )r   r   copyr0   rs   r3   rI   r4   )	rl   r   groupsexpected_datar7   origr   rJ   r9   s	            r   test_cummin_max_skipnar      s{     
CE:;	<B779D	F	C	 B WR .Fm5s;H "d#68,r   c                 B   t        t        j                  ddgg dd      }|j                  g d      ddg   } t	        ||       d      }t        t        j                  t        j                  t        j                  gg dd      }t        j                  ||       y )	N       @)r   r   r   ra   r   rD   r   Fr   )r   r   rH   r0   rs   r3   rI   )rl   r7   r   rJ   r9   s        r   $test_cummin_max_skipna_multiple_colsr      sz     
"&&#s+/B	CB	I	Sz	*B WR .F7oNOH&(+r   funcr)   cumsumc                 \   t        g dg dd      }|j                  d      }d}t        j                  t        |      5   t        ||       ddd	       d d d        t        j                  t        |      5   t        ||       d
       d d d        y # 1 sw Y   AxY w# 1 sw Y   y xY w)Nrd   r   rP   rQ   z+numpy operations are not valid with groupbymatchrC   r    rO   )foo)r   r0   pytestraisesr   rs   )r   r7   gmsgs       r   test_numpy_compatr   	  s     
3	4B


3A
7C	.c	: "4Aq!"	.c	:  4Q   " "   s   B9B"B"B+z	dtype,valrn   uint64)r   l         c                     |t         j                  g}t        ddg|d|      }|j                  d      }|j	                  |       }t        d|i|      }t        j                  ||       y )NrC   )grpr   rr   r   r   )rg   NAr   r0   	transformr3   rI   )rl   r   valdatar7   rt   rJ   r9   s           r   #test_nullable_int_not_cast_as_floatr     sd     <D	Aq6-U	;BjjGv&F#tE2H&(+r   c                     t        ddt        j                  gdt        j                  dgg dgg d      } t        dt        j                  gt        j                  dgddggdd	g      }| j                  d
      j	                         }t        j                  ||       | j                  d
d      j	                         }t        j                  ||       d}t        j                  t        |      5  | j                  d
      j	                  d      }d d d        | j	                  d      }t        j                  ||       d}t        j                  t        |      5  | j                  d
      j                  d      }d d d        | j                  d      }t        j                  ||       y # 1 sw Y   xY w# 1 sw Y   >xY w)NrC   r    	   )rO   r<   r   r~   )columnsr<   rR   r   rQ   F)as_indexz1DataFrameGroupBy.cumsum with axis=1 is deprecatedr   )axisz2DataFrameGroupBy.cumprod with axis=1 is deprecated)
r   r   rH   r0   r   r3   rI   assert_produces_warningFutureWarningr)   )r7   r9   rJ   r   s       r   test_cython_api2r   '  su    
Q266NQNI>	XB1bff+{QF;c3ZPHZZ_##%F&(+ ZZeZ,335F&(+ >C		#	#M	= 0C''Q'/0yyay H&(+
>C		#	#M	= 1C((a(01zzqz!H&(+0 01 1s   4"F6#"G6F?G)(numpyr   r   pandas.errorsr   pandas.util._test_decoratorsutil_test_decoratorstdpandasrg   r   r   pandas._testing_testingr3   fixtureint32r   float32r   r   r:   mark
skip_ubsanrA   rK   rk   parametrizeru   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8XRXXh/3346JK, 9 
,,r   