
    bMh\)              
          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        j        d
             Zd Zd Zej                            dddg          ej                            dg d          d                         Zd Zd Zej                            dddg          ej                            dg d          ej                            dg dg dfg dg dfg dg dfg          d                                     Z ej                            dddg          d             Z!ej                            ddd g          d!             Z"ej#        ej                            dddg          ej                            d"d# ej$        d$          j%        fd%g          d&                                     Z&d' Z'dS )(    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        d/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/groupby/test_cumulative.pydtypes_for_minmaxr      s     MEG(	)		* 8G!S(( 	Xg"  8G!S(( 	Xg"  7G$$    c                     t          dgdz  dd          } |                     d          d                                         }|                     dd          d                             d	           }d|_        t          j        ||           t          dgd
z  dd          } | d                             t                    | d<   |                     d          d                                         }|                     dd          d                             d           }d|_        t          j        ||           d S )Nb
      keyvaluer"   r#   F
group_keysc                 *    |                                  S Ncumprodxs    r   <lambda>z&test_groupby_cumprod.<locals>.<lambda>3       AIIKK r   d   c                 *    |                                  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2	3	3BZZw'//11Fzz%Ez227;AABWBWXXHHM68,,,	C53;33	4	4BW+$$U++BwKZZw'//11Fzz%Ez227;AABWBWXXHHM68,,,,,r   c                  v   t          dgdz  dd          } |                     d          d                                         }t          g dd          }t	          j        ||           |                     dd	
          d                             d           }d|_        t	          j        ||           d S )Nr      順 r!   r"   r#   )r=   l    d(	 l     I5 l      Fx:^ r2   Fr$   c                 *    |                                  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7	8	8BZZw'//11FMMM  H 68,,,::e:66w?EE L  L6<00000r   c                     t          ddt          j        dgg dd          } |                     d                              dd          }t          dt          j        t          j        gg d	d
          }t          j        ||           d S )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   s    	RVQ	
 	

 
B ZZ__$$$u$EEF26262EEFFH&(+++++r   c                    | d         }| d         }t          g dg dd          }g d}|                    |          }t          d|i                              |          }|                    d                                          }t	          j        ||           |                    dd	
          j                            d                                           }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<   |                    d                                          }t	          j        ||d           |                    dd	
          j                            d                                           }t	          j        ||d           |                    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          }|                    d                                          }t	          j        ||           |                    dd	
          j                            d                                           }t	          j        ||           t          dgt          j        dg          d          }t          t          j        d          dgd          }|                    d          d                                         }t	          j        ||           t          g dg dd          }|                    d          j                                        }t          g dd          }t	          j        ||           d S ) 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                 *    |                                  S r'   cumminr*   s    r   r,   ztest_cummin.<locals>.<lambda>l        r   r          r    rO   rW      T)check_exactc                 *    |                                  S r'   rT   r*   s    r   r,   ztest_cummin.<locals>.<lambda>w       AHHJJ r   r6   r   r    r<   rW   r<   rO   c                 *    |                                  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66=U=U=UVVWWG,,,M			B#}-..55e<<HZZ__##%%F&(+++ZZZ..0667K7KLLUUWWF&(+++ "BFAq63;!A+BFAq63;&-HLs"# '!HL!QZZ__##%%F&(====


35
))+112F2FGGPPRR  &(==== nnc7^,,G%'VGKc!"#261bfaKLMMH__S!!((**F&(+++..0667K7KLLUUWW  &(+++ 
!2>6(#;#;<<	=	=BbnV,,QCcBBBHZZ__S!((**F8V,,, 
33	4	4BZZ__%%''Fiiic***H68,,,,,r   methodrU   cummaxr   )UInt64r   r   r6   booleanc                    t          g dt          j        gdz  d          }|d                             |          |d<   |                    d          }t          dt          j        gdz  i|          } t          ||                       }t          j        ||            t          |d         |                                                       }t          j        ||           d S )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     666bfX\JJKKG3<&&u--GCLooc""G#x!|,E:::H%WWf%%''F(F+++*WWS\6**,,5577F(F+++++r   c                 D   | d         }| d         }t          g dg dd          }g d}|                    |          }t          d|i                              |          }|                    d                                          }t	          j        ||           |                    dd	
          j                            d                                           }t	          j        ||           ||j	        ddgdf<   ||j	        g ddf<   |                    d                                          }t	          j        ||           |                    dd	
          j                            d                                           }t	          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          }|                    d                                          }t	          j        ||           |                    dd	
          j                            d                                           }t	          j        ||           t          dgt          j        dg          d          }t          t          j        d          dgd          }|                    d          d                                         }t	          j        ||           t          g dg dd          }|                    d          j                                        }t          g dd          }t	          j        ||           d S )Nr   r    rM   rN   rP   )rO   r<   r<   r<   r    rO   rO   rO   rR   rQ   Fr$   c                 *    |                                  S r'   rm   r*   s    r   r,   ztest_cummax.<locals>.<lambda>   rV   r   rW   rY   c                 *    |                                  S r'   rx   r*   s    r   r,   ztest_cummax.<locals>.<lambda>   r]   r   r6   r^   r<   rO   c                 *    |                                  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|      sP   a E"G 666=U=U=UVVWWG,,,M			B#}-..55e<<HZZ__##%%F&(+++ZZZ..0667K7KLLUUWWF&(+++ "BFAq63;&-HLs"#ZZ__##%%F&(+++


35
))+112F2FGGPPRR  &(+++ nnc7^,,G%'VGKc!"#261bfaKLMMH__S!!((**F&(+++..0667K7KLLUUWW  &(+++ 
!2>6(#;#;<<	=	=BbnV,,QCcBBBHZZ__S!((**F8V,,, 
33	4	4BZZ__%%''Fiiic***H68,,,,,r   c                  8   t          d t          d          D                       } t          d| | j                            d          d          }|                    d          }|                                }|ddg         }t          j        ||           d S )	Nc                 6    g | ]}t           j        j        |z   S  )rg   NaT_value).0ns     r   
<listcomp>z:test_cummax_i8_at_implementation_bound.<locals>.<listcomp>   s!    666"&-!#666r   rX   rC   zM8[ns]rQ   rR   CrQ   rR   r   )	r   ranger   _valuesviewr0   rm   r3   rI   )serr7   gbresexps        r   &test_cummax_i8_at_implementation_boundr      s     66U1XX666
7
7C	3;+;+;H+E+EFF	G	GB	CB
))++C
c3Z.C#s#####r   )r6   r   r   zgroups,expected_datarC   rC   rC   )rC   NNrC   r    rO   rC   Nr    )rC   rO   rO   c                 T   t          dt          g d|          i          }|                                }|                    |          d         } t	          ||           d          }t          ||d          }t          j        ||           t          j        ||           d S )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7799D	F		C	 B WR  ...Fm5s;;;H "d###68,,,,,r   c                 N   t          t          j        ddgg dd          }|                    g d          ddg         } t	          ||           d          }t          t          j        t          j        t          j        gg dd          }t          j        ||           d S )	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      s     
"&#s+///BB	C	CB	III		Sz	*B WR  ...F7oooNNOOH&(+++++r   funcr)   cumsumc                    t          g dg dd          }|                    d          }d}t          j        t          |          5   t          ||           ddd	           d d d            n# 1 swxY w Y   t          j        t          |          5   t          ||           d
           d d d            d S # 1 swxY w Y   d S )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   	  sU    
33	4	4B


3A
7C	.c	:	:	: " "4Aq!!!" " " " " " " " " " " " " " "	.c	:	:	:    4Q                                   s$   	A11A58A5B??CCz	dtype,valrn   uint64)r   l         c                     |t           j        g}t          ddg|d|          }|                    d          }|                    |           }t          d|i|          }t          j        ||           d S )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     s     <D	Aq6--U	;	;	;BjjGv&&F#tE22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          }|                     d
                                          }t          j        ||           |                     d
d                                          }t          j        ||           d}t          j        t          |          5  |                     d
                              d          }d d d            n# 1 swxY w Y   |                     d          }t          j        ||           d}t          j        t          |          5  |                     d
          	                    d          }d d d            n# 1 swxY w Y   | 	                    d          }t          j        ||           d S )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   '  s:    
Q26NQNIII>	X	X	XB1bf+{QF;c3ZPPPHZZ__##%%F&(+++ ZZeZ,,3355F&(+++ >C		#M	=	=	= 0 0C''Q'//0 0 0 0 0 0 0 0 0 0 0 0 0 0 0yyay  H&(+++
>C		#M	=	=	= 1 1C((a(001 1 1 1 1 1 1 1 1 1 1 1 1 1 1zzqz!!H&(+++++s$   :*D00D47D4*F99F= F=)(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   r   <module>r      sT        1 1 1 1 1 1 ) ) ) ) ) ) ) ) )                  Hbh
BJKPPP  % %	 %6- - -" 1 1 1", , ,3- 3- 3-l Hh#788"T"T"TUU
, 
, VU 98
,1- 1- 1-h	$ 	$ 	$ Hh#788"?"?"?@@	OOO$	LLL!	OOO$ - -  A@ 98- Hh#788, , 98, )X!677
  
  87
  Hh#7888XRXh//346JK , ,  98 
,, , , , ,r   