
    Pi*              
          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d
 Zd Zd Zd Zd Zd Zd Zej                            dddg          ej                            dg d          d                         Z d Z!d Z"d Z#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 )0    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        x/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/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>J   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_columnsrL   P   s    	RVQ	
 	

 
B ZZ__$$$u$EEF26262EEFFH&(+++++r   c                    | d         }t          g dg dd          }g d}|                    |          }t          d|i                              |          }|                    d                                          }t	          j        ||           |                    dd	          j                            d
                                           }t	          j        ||           d S )Nr   rC   rC   rC   rC   r    r    r    r       r<   rP   r    r    rP   r    rC   ABrP   rP   rP   r    r    r    r    rC   rS   rR   Fr$   c                 *    |                                  S r'   cumminr*   s    r   r,   ztest_cummin.<locals>.<lambda>i        r   )	r   r5   r0   rW   r3   rI   rS   r1   to_frame)r   r   base_dfexpected_minsr7   r9   rK   s          r   test_cumminr\   ^   s    a E 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&(+++++r   c                 v   | d         }| d         }t          g dg dd          }g d}t          d|i                              |          }|                    |          }||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 S )Nr   rC   rN   rO   rQ   rT   rS   r          r    rP   r^      rR   T)check_exactFr$   c                 *    |                                  S r'   rV   r*   s    r   r,   z1test_cummin_min_value_for_dtype.<locals>.<lambda>}       AHHJJ r   )
r   r5   locr0   rW   r3   rI   rS   r1   rY   )r   r   r   rZ   r[   r9   r7   rK   s           r   test_cummin_min_value_for_dtyperf   m   s\   a E"G 666=U=U=UVVWWG,,,M#}-..55e<<H			B!BFAq63;!A+BFAq63;&-HLs"# '!HL!QZZ__##%%F&(====


35
))+112F2FGGPPRR  &(======r   c                 8   t          g dg d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        ||           d S )NrN   rO   rQ   rS   r6   r   r    r<   r^   r<   r    rP   rC   rR   Fr$   c                 *    |                                  S r'   rV   r*   s    r   r,   z0test_cummin_nan_in_some_values.<locals>.<lambda>   rX   r   )r   r5   r   rH   re   r0   rW   r3   rI   rS   r1   rY   r   rZ   r9   rK   s       r   test_cummin_nan_in_some_valuesrk      s    666=U=U=UVVWWGnnc7^,,G%'VGKc!"#261bfaKLMMH__S!!((**F&(+++..0667K7KLLUUWW  &(+++++r   c                      t          dgt          j        dg          d          } t          t          j        d          dgd          }|                     d          d                                         }t          j        ||           d S NrC   2001rD   r   r   r   )indexr2   rD   )r   pdto_datetimer   r0   rW   r3   r4   r7   r9   rK   s      r   test_cummin_datetimert      ~    	!2>6(#;#;<<	=	=BbnV,,QCcBBBHZZ__S!((**F8V,,,,,r   c                      t          g dg dd          } |                     d          j                                        }t	          g dd          }t          j        ||           d S )NrC   r    rC   )rC   r    r    ro   rD   r   r>   )r   r0   r   rW   r   r3   r4   rJ   s      r   test_cummin_getattr_seriesrx      l    	33	4	4BZZ__%%''Fiiic***H68,,,,,r   methodrW   cummaxr   )UInt64r   r   r6   booleanc                    |dk    rt           j        nt          j        }t	          g d|gdz  d          }|d                             |          |d<   |                    d          }t	          d|gdz  i|          } t          ||                       }t          j	        ||            t          |d         |                       
                                }t          j	        ||           d S )Nr6   rN      rQ   rS   rR   r   )r   rH   rq   NAr   r5   r0   getattrr3   rI   rY   )rz   r   itemrZ   groupedr9   rK   s          r   test_cummin_max_all_nan_columnr      s     g%%26625D666dVaZHHIIG3<&&u--GCLooc""G#vz*%888H%WWf%%''F(F+++*WWS\6**,,5577F(F+++++r   c                    | d         }t          g dg dd          }g d}|                    |          }t          d|i                              |          }|                    d                                          }t	          j        ||           |                    dd	          j                            d
                                           }t	          j        ||           d S )Nr   rN   rO   rQ   rP   r<   r<   r<   r    rP   rP   rP   rS   rR   Fr$   c                 *    |                                  S r'   r{   r*   s    r   r,   ztest_cummax.<locals>.<lambda>   rX   r   )	r   r5   r0   r{   r3   rI   rS   r1   rY   )r   r   rZ   expected_maxsr7   r9   rK   s          r   test_cummaxr      s    a E 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&(+++++r   c                 *   | d         }| d         }t          g dg dd          }g d}|                    |          }||j        ddgdf<   t          d|i                              |          }||j        g d	df<   |                    d
                                          }t          j        ||           |                    d
d          j                            d           	                                }t          j        ||           d S )Nr   r    rN   rO   rQ   r   r^   rS   r`   rR   Fr$   c                 *    |                                  S r'   r   r*   s    r   r,   z1test_cummax_min_value_for_dtype.<locals>.<lambda>   rd   r   )
r   r5   re   r0   r{   r3   rI   rS   r1   rY   )r   r   r   rZ   r   r7   r9   rK   s           r   test_cummax_min_value_for_dtyper      s"   a E"G 666=U=U=UVVWWG,,,M			B!BFAq63;#}-..55e<<H&-HLs"#ZZ__##%%F&(+++


35
))+112F2FGGPPRR  &(+++++r   c                 8   t          g dg d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        ||           d S )NrN   rO   rQ   rS   r6   rh   r<   rP   rR   Fr$   c                 *    |                                  S r'   r   r*   s    r   r,   z0test_cummax_nan_in_some_values.<locals>.<lambda>   rX   r   )r   r5   r   rH   re   r0   r{   r3   rI   rS   r1   rY   rj   s       r   test_cummax_nan_in_some_valuesr      s    666=U=U=UVVWWGnnc7^,,G%'VGKc!"#261bfaKLMMH__S!!((**F&(+++..0667K7KLLUUWW  &(+++++r   c                      t          dgt          j        dg          d          } t          t          j        d          dgd          }|                     d          d                                         }t          j        ||           d S rm   )r   rq   rr   r   r0   r{   r3   r4   rs   s      r   test_cummax_datetimer      ru   r   c                      t          g dg dd          } |                     d          j                                        }t	          g dd          }t          j        ||           d S )Nrw   )r    rC   rC   ro   rD   )r    rC   r    r   r>   )r   r0   r   r{   r   r3   r4   rJ   s      r   test_cummax_getattr_seriesr      ry   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  )rq   NaT_value).0ns     r   
<listcomp>z:test_cummax_i8_at_implementation_bound.<locals>.<listcomp>   s!    666"&-!#666r   r_   rC   zM8[ns]rR   rS   CrR   rS   r   )	r   ranger   _valuesviewr0   r{   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    rP   rC   Nr    )rC   rP   rP   c                 T   t          dt          g d|          i          }|                                }|                    |          d         } t	          ||           d          }t          ||d          }t          j        ||           t          j        ||           d S )NrD   r   r   FrG   )r   r2   )r   r   copyr0   r   r3   rI   r4   )	rz   r   groupsexpected_datar7   origr   rK   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   ro   r   rD   r   Fr   )r   r   rH   r0   r   r3   rI   )rz   r7   r   rK   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 )Nrw   r   rQ   rR   z+numpy operations are not valid with groupby)matchrC   r    rP   )foo)r   r0   pytestraisesr   r   )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,valr|   uint64)r   l         c                     |t           j        g}t          ddg|d|          }|                    d          }|                    |           }t          d|i|          }t          j        ||           d S )NrC   )grpr   r   r   r   )rq   r   r   r0   	transformr3   rI   )rz   r   valdatar7   r   rK   r9   s           r   #test_nullable_int_not_cast_as_floatr   4  s     <D	Aq6--U	;	;	;BjjGv&&F#tE222H&(+++++r   c                 F   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 S )NrC   r    	   )rP   r<   r   r   )columnsr<   rS   r   rR   )as_index)r   r   rH   r0   r   r3   rI   )r   r7   r9   rK   s       r   test_cython_api2r   D  s    
 
Q26NQNIII>	X	X	XB1bf+{QF;c3ZPPPHZZhZ//6688F&(+++++r   )/numpyr   r   pandas.errorsr   pandas.util._test_decoratorsutil_test_decoratorstdpandasrq   r   r   pandas._testing_testingr3   fixtureint32r   float32r   r   r:   rA   rL   r\   rf   rk   rt   rx   markparametrizer   r   r   r   r   r   r   r   r   r   skip_if_32bitr   r   r   r   r   r   r   <module>r      s        1 1 1 1 1 1 ) ) ) ) ) ) ) ) )                  Hbh
BJKPPP  % %	 %6- - -"1 1 1", , ,, , ,> > >*, , ,- - -- - - Hh#788"T"T"TUU, , VU 98,, , , , , ,(, , ,- - -- - -	$ 	$ 	$ 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   