a
    Pªf\)  ã                
   @   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rDt |¡jn
t |¡j}t |¡jdkrlt |¡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   ú]/var/www/ai-form-bot/venv/lib/python3.9/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   |   ¡ S ©N©Úcumprod©Úxr   r   r   Ú<lambda>3   ó    z&test_groupby_cumprod.<locals>.<lambda>éd   c                 S   s   |   ¡ S 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    r1   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   )r3   l    d(	 l     Iú5 l      Fµx:^ ©r)   Fr   c                 S   s   |   ¡ S 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.   r/   r0   Znumpy_resultr   r   r   Útest_groupby_cumprod_overflow?   s    þÿr5   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   )r6   r   g      @)Úar   Úcr7   TF)Znumeric_onlyÚskipna)r6   r   g      @)r   r8   )r   r
   Únanr'   r!   r*   Úassert_frame_equal)r.   Úresultr0   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   r6   ©r6   r6   r6   r6   r   r   r   r   ©é   r2   r@   r   r   r@   r   r6   ©ÚAÚB)r@   r@   r@   r   r   r   r   r6   rC   rB   Fr   c                 S   s   |   ¡ S r   ©Úcumminr"   r   r   r   r$   l   r%   ztest_cummin.<locals>.<lambda>r   é   é   ©r   r@   rF   é   T)Zcheck_exactc                 S   s   |   ¡ S r   rD   r"   r   r   r   r$   w   r%   r-   ©r   r   r2   rF   r2   r@   c                 S   s   |   ¡ S r   rD   r"   r   r   r   r$   ƒ   r%   Ú2001©r7   r   r   ©Úindexr)   r7   ©r6   r   r6   )r6   r   r   r4   )r   r,   r'   rE   r*   r;   rC   r(   Úto_frameÚlocr
   r:   ÚpdÚto_datetimer   r+   r   )r   r   r   Úbase_dfZexpected_minsr.   r0   r<   r   r   r   Útest_cummin_   sF    
ÿ$ÿrU   ÚmethodrE   Ú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>   é   rA   rC   rB   ©r   )	r   r
   r:   r,   r'   Úgetattrr*   r;   rP   )rV   r   rT   Úgroupedr0   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?   rA   )r@   r2   r2   r2   r   r@   r@   r@   rC   rB   Fr   c                 S   s   |   ¡ S r   ©rW   r"   r   r   r   r$   ±   r%   ztest_cummax.<locals>.<lambda>rF   rH   c                 S   s   |   ¡ S r   r_   r"   r   r   r   r$   º   r%   r-   rJ   r2   r@   c                 S   s   |   ¡ S r   r_   r"   r   r   r   r$   Æ   r%   r6   rK   rL   r   rM   r7   rO   )r   r6   r6   )r   r6   r   r4   )r   r,   r'   rW   r*   r;   rC   r(   rP   rQ   r
   r:   rR   rS   r   r+   r   )r   r   r   rT   Zexpected_maxsr.   r0   r<   r   r   r   Útest_cummax¤   sB    
ÿ$ÿr`   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   )rR   ZNaTÚ_value)Ú.0Únr   r   r   Ú
<listcomp>Û   r%   z:test_cummax_i8_at_implementation_bound.<locals>.<listcomp>rG   r6   zM8[ns]©rB   rC   ÚCrB   rC   rf   )	r   Úranger   Z_valuesÚviewr'   rW   r*   r;   )Zserr.   ÚgbÚresÚexpr   r   r   Ú&test_cummax_i8_at_implementation_boundØ   s    
rl   )r-   r   r   zgroups,expected_data©r6   r6   r6   )r6   NN©r6   r   r@   ©r6   Nr   )r6   r@   r@   c           	      C   sh   t dtg d¢|diƒ}| ¡ }| |¡d }t|| ƒdd}t||dd}t ||¡ t ||¡ d S )Nr7   ro   r[   F©r9   )r   r)   )r   r   Úcopyr'   r\   r*   r;   r+   )	rV   r   ÚgroupsZexpected_datar.   Úorigri   r<   r0   r   r   r   Útest_cummin_max_skipnaä   s    rt   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ç       @)ru   ru   ru   rL   rm   r7   r   Frp   )r   r
   r:   r'   r\   r*   r;   )rV   r.   ri   r<   r0   r   r   r   Ú$test_cummin_max_skipna_multiple_colsý   s
    rv   Úfuncr!   Úcumsumc                 C   s¦   t g d¢g d¢dœƒ}| d¡}d}tjt|d" t|| ƒddd	ƒ W d   ƒ n1 sZ0    Y  tjt|d  t|| ƒdd
 W d   ƒ n1 s˜0    Y  d S )NrO   rn   rA   rB   z+numpy operations are not valid with groupby©Úmatchr6   r   r@   )Zfoo)r   r'   ÚpytestZraisesr   r\   )rw   r.   ÚgÚmsgr   r   r   Útest_numpy_compat	  s    
0r~   z	dtype,valrX   Zuint64)r   l         c                 C   sT   |t jg}tddg|dœ|d}| d¡}| | ¡}td|i|d}t ||¡ d S )Nr6   )Úgrpr   r[   r   r   )rR   ZNAr   r'   Z	transformr*   r;   )rV   r   ÚvalÚdatar.   r]   r<   r0   r   r   r   Ú#test_nullable_int_not_cast_as_float  s    


r‚   c                  C   sF  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 sÂ0    Y  | jdd}t ||¡ d}tjt|d" |  d
¡j	dd}W d   ƒ n1 s 0    Y  | j	dd}t ||¡ d S )Nr6   r   é	   )r@   r2   rƒ   re   )Úcolumnsr2   rC   rf   rB   F)Zas_indexz1DataFrameGroupBy.cumsum with axis=1 is deprecatedry   )Zaxisz2DataFrameGroupBy.cumprod with axis=1 is deprecated)
r   r
   r:   r'   rx   r*   r;   Zassert_produces_warningÚFutureWarningr!   )r.   r0   r<   r}   r   r   r   Útest_cython_api2'  s     *&02r†   )(Únumpyr
   r{   Zpandas.errorsr   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsÚtdZpandasrR   r   r   Zpandas._testingZ_testingr*   ZfixtureZint32r   Zfloat32r   r   r1   ÚmarkZ
skip_ubsanr5   r=   rU   Zparametrizer^   r`   rl   rt   rv   r~   Zskip_if_32bitr   r   r‚   r†   r   r   r   r   Ú<module>   sT   þ

64ýþ

ÿ