o
    mqi\)  ã                
   @   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   )ÚparamsÚ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   úk/home/app/PaddleOCR-VL/.venv_paddleocr/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   r3   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   )r5   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+   )r0   r1   r2   Znumpy_resultr   r   r   Útest_groupby_cumprod_overflow?   s   þÿr7   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   )r8   r   g      @)Úar   Úcr9   TF)Znumeric_onlyÚskipna)r8   r   g      @)r   r:   )r   r   Únanr)   r#   r,   Úassert_frame_equal)r0   Úresultr2   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   r8   ©r8   r8   r8   r8   r   r   r   r   ©é   r4   rB   r   r   rB   r   r8   ©ÚAÚB)rB   rB   rB   r   r   r   r   r8   rE   rD   Fr   c                 S   r    r!   ©Úcumminr$   r   r   r   r&   l   r'   ztest_cummin.<locals>.<lambda>r   é   é   ©r   rB   rH   é   T)Zcheck_exactc                 S   r    r!   rF   r$   r   r   r   r&   w   r'   r/   ©r   r   r4   rH   r4   rB   c                 S   r    r!   rF   r$   r   r   r   r&   ƒ   r'   Ú2001©r9   r   r   ©Úindexr+   r9   ©r8   r   r8   )r8   r   r   r6   )r   r.   r)   rG   r,   r=   rE   r*   Úto_frameÚlocr   r<   ÚpdÚto_datetimer   r-   r   )r   r   r   Úbase_dfZexpected_minsr0   r2   r>   r   r   r   Útest_cummin_   sF   
ÿ$ÿrW   ÚmethodrG   Ú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@   é   rC   rE   rD   ©r   )	r   r   r<   r.   r)   Úgetattrr,   r=   rR   )rX   r   rV   Úgroupedr2   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@   rA   rC   )rB   r4   r4   r4   r   rB   rB   rB   rE   rD   Fr   c                 S   r    r!   ©rY   r$   r   r   r   r&   ±   r'   ztest_cummax.<locals>.<lambda>rH   rJ   c                 S   r    r!   ra   r$   r   r   r   r&   º   r'   r/   rL   r4   rB   c                 S   r    r!   ra   r$   r   r   r   r&   Æ   r'   r8   rM   rN   r   rO   r9   rQ   )r   r8   r8   )r   r8   r   r6   )r   r.   r)   rY   r,   r=   rE   r*   rR   rS   r   r<   rT   rU   r   r-   r   )r   r   r   rV   Zexpected_maxsr0   r2   r>   r   r   r   Útest_cummax¤   sB   
ÿ$ÿrb   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   )rT   ZNaTÚ_value)Ú.0Únr   r   r   Ú
<listcomp>Û   s    z:test_cummax_i8_at_implementation_bound.<locals>.<listcomp>rI   r8   zM8[ns]©rD   rE   ÚCrD   rE   rh   )	r   Úranger   Z_valuesÚviewr)   rY   r,   r=   )Zserr0   ÚgbÚresÚexpr   r   r   Ú&test_cummax_i8_at_implementation_boundØ   s   
rn   )r/   r   r   zgroups,expected_data©r8   r8   r8   )r8   NN©r8   r   rB   ©r8   Nr   )r8   rB   rB   c           	      C   sh   t dtg d¢|diƒ}| ¡ }| |¡d }t|| ƒdd}t||dd}t ||¡ t ||¡ d S )Nr9   rq   r]   F©r;   )r   r+   )r   r   Úcopyr)   r^   r,   r=   r-   )	rX   r   ÚgroupsZexpected_datar0   Úorigrk   r>   r2   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   rN   ro   r9   r   Frr   )r   r   r<   r)   r^   r,   r=   )rX   r0   rk   r>   r2   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 )NrQ   rp   rC   rD   z+numpy operations are not valid with groupby©Úmatchr8   r   rB   )Zfoo)r   r)   ÚpytestZraisesr   r^   )ry   r0   ÚgÚmsgr   r   r   Útest_numpy_compat	  s   
ÿ"ÿr€   z	dtype,valrZ   Zuint64)r   l         c                 C   sT   |t jg}tddg|dœ|d}| d¡}| | ¡}td|i|d}t ||¡ d S )Nr8   )Úgrpr   r]   r   r   )rT   ZNAr   r)   Z	transformr,   r=   )rX   r   ÚvalÚdatar0   r_   r>   r2   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 )Nr8   r   é	   )rB   r4   r…   rg   )Úcolumnsr4   rE   rh   rD   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#   )r0   r2   r>   r   r   r   r   Útest_cython_api2'  s$   *&ÿÿrˆ   )(Únumpyr   r}   Zpandas.errorsr   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsÚtdZpandasrT   r   r   Zpandas._testingZ_testingr,   ZfixtureZint32r   Zfloat32r   r   r3   ÚmarkZ
skip_ubsanr7   r?   rW   Zparametrizer`   rb   rn   rv   rx   r€   Zskip_if_32bitr   r   r„   rˆ   r   r   r   r   Ú<module>   sV    þ

64ýþ

ÿ