o
    $Îj\)  ã                
   @   sÆ  d dl Zd dlZd dlmZ d dlm  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dd	„ ƒZd
d„ Zejjdd„ ƒZdd„ Zdd„ Zej dddg¡ej dg d¢¡dd„ ƒƒZdd„ Zd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$d%„ ƒƒƒZ ej dddg¡d&d'„ ƒZ!ej d(d)d*g¡d+d,„ ƒZ"ej#ej dddg¡ej d-d.e $d/¡j%fd0g¡d1d2„ ƒƒƒZ&d3d4„ Z'dS )5é    N)ÚUnsupportedFunctionCall)Ú	DataFrameÚSeriesÚInt64ÚFloat64)znp.int32znp.int64z
np.float32z
np.float64r   r   )ÚparamsZidsc                 C   s‚   | j }|}|dkrtj}n|dkrtj}t |¡jdkr"t |¡jnt |¡j}t |¡jdkr6t |¡j	nt |¡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ÚminZfinfoÚmax)Úrequestr   Znp_typeÚmin_valÚmax_val© r   úe/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/pandas/tests/groupby/test_cumulative.pyÚdtypes_for_minmax   s   	ÿ
ýÿ
ý
r   c                  C   s¾   t dgd ddœƒ} |  d¡d  ¡ }| jdddd  d	d
„ ¡}d|_t ||¡ t dgd ddœƒ} | d  t¡| d< |  d¡d  ¡ }| jdddd  dd
„ ¡}d|_t ||¡ d S )NÚbé
   é   ©ÚkeyÚvaluer   r   F©Z
group_keysc                 S   ó   |   ¡ S ©N©Úcumprod©Úxr   r   r   Ú<lambda>3   ó    z&test_groupby_cumprod.<locals>.<lambda>éd   c                 S   r   r    r!   r#   r   r   r   r%   :   r&   )	r   Úgroupbyr"   ÚapplyÚnameÚtmÚassert_series_equalÚastypeÚfloat)ÚdfÚactualÚexpectedr   r   r   Útest_groupby_cumprod.   s   r2   c                  C   st   t dgd ddœƒ} |  d¡d  ¡ }tg d¢dd}t ||¡ | jdd	d
d  dd„ ¡}d|_t ||¡ d S )Nr   é   é † r   r   r   )r4   l    d(	 l     Iú5 l      Fµx:^ ©r*   Fr   c                 S   r   r    r!   r#   r   r   r   r%   K   r&   z/test_groupby_cumprod_overflow.<locals>.<lambda>)r   r(   r"   r   r+   r,   r)   r*   )r/   r0   r1   Znumpy_resultr   r   r   Útest_groupby_cumprod_overflow?   s   þÿr6   c                  C   s\   t ddtjdgg d¢dœƒ} |  d¡jddd}t dtjtjgg d	¢d
œƒ}t ||¡ d S )Né   r   )r7   r   g      @)Úar   Úcr8   TF)Znumeric_onlyÚskipna)r7   r   g      @)r   r9   )r   r
   Únanr(   r"   r+   Úassert_frame_equal)r/   Úresultr1   r   r   r   Ú1test_groupby_cumprod_nan_influences_other_columnsQ   s   
ýÿr>   c              
   C   sF  | d }| d }t g d¢g d¢dœƒ}g d¢}| |¡}t d|iƒ |¡}| d¡ ¡ }t ||¡ |jdd	d
j dd„ ¡ ¡ }t ||¡ ||j	ddgdf< |d |j	ddgdf< ||j	g d¢df< |d |j	ddgdf< | d¡ ¡ }tj||dd |jdd	d
j dd„ ¡ ¡ }tj||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	d
j dd„ ¡ ¡ }t ||¡ t dgt dg¡dœƒ}tt d¡dgdd}| d¡d  ¡ }t ||¡ t g d¢g d¢dœƒ}| d¡j ¡ }tg d¢dd }t ||¡ d S )!Nr   r7   ©r7   r7   r7   r7   r   r   r   r   ©é   r3   rA   r   r   rA   r   r7   ©ÚAÚB)rA   rA   rA   r   r   r   r   r7   rD   rC   Fr   c                 S   r   r    ©Úcumminr#   r   r   r   r%   l   r&   ztest_cummin.<locals>.<lambda>r   é   é   ©r   rA   rG   é   T)Zcheck_exactc                 S   r   r    rE   r#   r   r   r   r%   w   r&   r.   ©r   r   r3   rG   r3   rA   c                 S   r   r    rE   r#   r   r   r   r%   ƒ   r&   Ú2001©r8   r   r   ©Úindexr*   r8   ©r7   r   r7   )r7   r   r   r5   )r   r-   r(   rF   r+   r<   rD   r)   Úto_frameÚlocr
   r;   ÚpdÚto_datetimer   r,   r   )r   r   r   Úbase_dfZexpected_minsr/   r1   r=   r   r   r   Útest_cummin_   sF   
ÿ$ÿrV   ÚmethodrF   Úcummaxr   )ÚUInt64r   r   r.   Úbooleanc                 C   sŠ   t g d¢tjgd dœƒ}|d  |¡|d< | d¡}t dtjgd i|d}t|| ƒƒ }t ||¡ t|d | ƒƒ  ¡ }t ||¡ d S )Nr?   é   rB   rD   rC   ©r   )	r   r
   r;   r-   r(   Úgetattrr+   r<   rQ   )rW   r   rU   Úgroupedr1   r=   r   r   r   Útest_cummin_max_all_nan_column•   s   
r_   c              
   C   s  | d }| d }t g d¢g d¢dœƒ}g d¢}| |¡}t d|iƒ |¡}| d¡ ¡ }t ||¡ |jdd	d
j dd„ ¡ ¡ }t ||¡ ||j	ddgdf< ||j	g d¢df< | d¡ ¡ }t ||¡ |jdd	d
j dd„ ¡ ¡ }t ||¡ | 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	d
j dd„ ¡ ¡ }t ||¡ t dgt dg¡dœƒ}tt d¡dgdd}| d¡d  ¡ }t ||¡ t g d¢g d¢dœƒ}| d¡j ¡ }tg d¢dd}t ||¡ d S )Nr   r   r?   r@   rB   )rA   r3   r3   r3   r   rA   rA   rA   rD   rC   Fr   c                 S   r   r    ©rX   r#   r   r   r   r%   ±   r&   ztest_cummax.<locals>.<lambda>rG   rI   c                 S   r   r    r`   r#   r   r   r   r%   º   r&   r.   rK   r3   rA   c                 S   r   r    r`   r#   r   r   r   r%   Æ   r&   r7   rL   rM   r   rN   r8   rP   )r   r7   r7   )r   r7   r   r5   )r   r-   r(   rX   r+   r<   rD   r)   rQ   rR   r
   r;   rS   rT   r   r,   r   )r   r   r   rU   Zexpected_maxsr/   r1   r=   r   r   r   Útest_cummax¤   sB   
ÿ$ÿra   c                  C   s\   t dd„ tdƒD ƒƒ} td| | j d¡dœƒ}| d¡}| ¡ }|dd	g }t ||¡ d S )
Nc                 S   s   g | ]}t jj| ‘qS r   )rS   ZNaTÚ_value)Ú.0Únr   r   r   Ú
<listcomp>Û   s    z:test_cummax_i8_at_implementation_bound.<locals>.<listcomp>rH   r7   zM8[ns]©rC   rD   ÚCrC   rD   rg   )	r   Úranger   Ú_valuesÚviewr(   rX   r+   r<   )Zserr/   ÚgbÚresÚexpr   r   r   Ú&test_cummax_i8_at_implementation_boundØ   s   
rn   )r.   r   r   zgroups,expected_data©r7   r7   r7   )r7   NN©r7   r   rA   ©r7   Nr   )r7   rA   rA   c           	      C   sh   t dtg d¢|diƒ}| ¡ }| |¡d }t|| ƒdd}t||dd}t ||¡ t ||¡ d S )Nr8   rq   r\   F©r:   )r   r*   )r   r   Úcopyr(   r]   r+   r<   r,   )	rW   r   ÚgroupsZexpected_datar/   Úorigrk   r=   r1   r   r   r   Útest_cummin_max_skipnaä   s   rv   c                 C   sn   t tjddgg d¢dœƒ}| g d¢¡ddg }t|| ƒdd}t tjtjtjgg d¢dœƒ}t ||¡ d S )	Nç       @)rw   rw   rw   rM   ro   r8   r   Frr   )r   r
   r;   r(   r]   r+   r<   )rW   r/   rk   r=   r1   r   r   r   Ú$test_cummin_max_skipna_multiple_colsý   s
   rx   Úfuncr"   Úcumsumc                 C   s¨   t g d¢g d¢dœƒ}| d¡}d}tjt|d t|| ƒddd	ƒ W d   ƒ n1 s-w   Y  tjt|d t|| ƒdd
 W d   ƒ d S 1 sMw   Y  d S )NrP   rp   rB   rC   z+numpy operations are not valid with groupby©Úmatchr7   r   rA   )Zfoo)r   r(   ÚpytestZraisesr   r]   )ry   r/   ÚgÚmsgr   r   r   Útest_numpy_compat	  s   
ÿ"ÿr€   z	dtype,valrY   Zuint64)r   l         c                 C   sT   |t jg}tddg|dœ|d}| d¡}| | ¡}td|i|d}t ||¡ d S )Nr7   )Úgrpr   r\   r   r   )rS   ZNAr   r(   Ú	transformr+   r<   )rW   r   ÚvalÚdatar/   r^   r=   r1   r   r   r   Ú#test_nullable_int_not_cast_as_float  s   


r…   c                  C   sD  t ddtjgdtjdgg d¢gg d¢d} t dtjgtjdgddggdd	gd}|  d
¡ ¡ }t ||¡ | jd
dd ¡ }t ||¡ d}tjt|d |  d
¡jdd}W d   ƒ n1 saw   Y  | jdd}t ||¡ d}tjt|d |  d
¡j	dd}W d   ƒ n1 sw   Y  | j	dd}t ||¡ d S )Nr7   r   é	   )rA   r3   r†   rf   )Úcolumnsr3   rD   rg   rC   F)Zas_indexz1DataFrameGroupBy.cumsum with axis=1 is deprecatedr{   )Zaxisz2DataFrameGroupBy.cumprod with axis=1 is deprecated)
r   r
   r;   r(   rz   r+   r<   Zassert_produces_warningÚFutureWarningr"   )r/   r1   r=   r   r   r   r   Útest_cython_api2'  s$   *&ÿÿr‰   )(Únumpyr
   r}   Zpandas.errorsr   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsÚtdZpandasrS   r   r   Zpandas._testingZ_testingr+   ZfixtureZint32r   Zfloat32r   r   r2   ÚmarkZ
skip_ubsanr6   r>   rV   Zparametrizer_   ra   rn   rv   rx   r€   Zskip_if_32bitr   r   r…   r‰   r   r   r   r   Ú<module>   sV    þ

64ýþ

ÿ