o
    _~#g\)  ã                
   @   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ÚminÚfinfoÚmax)Úrequestr   Únp_typeÚmin_valÚmax_val© r   ú‰/var/www/static.ux5.de/https/Moving-Object-Detection-with-OpenCV/env/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©Ú
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   r6   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    )r8   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/   r0   r-   r.   )r3   r4   r5   Únumpy_resultr   r   r   Útest_groupby_cumprod_overflow?   s   þÿr;   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   )r<   r   g      @)Úar   Úcr=   TF)Únumeric_onlyÚskipna)r<   r   g      @)r   r>   )r   r   Únanr,   r&   r/   Úassert_frame_equal)r3   Úresultr5   r   r   r   Ú1test_groupby_cumprod_nan_influences_other_columnsQ   s   
ýÿrD   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   r<   ©r<   r<   r<   r<   r   r   r   r   ©é   r7   rG   r   r   rG   r   r<   ©ÚAÚB)rG   rG   rG   r   r   r   r   r<   rJ   rI   Fr!   c                 S   r#   r$   ©Úcumminr'   r   r   r   r)   l   r*   ztest_cummin.<locals>.<lambda>r   é   é   ©r   rG   rM   é   T)Úcheck_exactc                 S   r#   r$   rK   r'   r   r   r   r)   w   r*   r2   ©r   r   r7   rM   r7   rG   c                 S   r#   r$   rK   r'   r   r   r   r)   ƒ   r*   Ú2001©r=   r   r   ©Úindexr.   r=   ©r<   r   r<   )r<   r   r   r9   )r   r1   r,   rL   r/   rB   rJ   r-   Úto_frameÚlocr   rA   ÚpdÚto_datetimer   r0   r   )r   r   r   Úbase_dfÚexpected_minsr3   r5   rC   r   r   r   Útest_cummin_   sF   
ÿ$ÿr^   ÚmethodrL   Úcummaxr   )ÚUInt64r   r   r2   Ú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 )NrE   é   rH   rJ   rI   ©r   )	r   r   rA   r1   r,   Úgetattrr/   rB   rX   )r_   r   r\   Úgroupedr5   rC   r   r   r   Útest_cummin_max_all_nan_column•   s   
rg   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   rE   rF   rH   )rG   r7   r7   r7   r   rG   rG   rG   rJ   rI   Fr!   c                 S   r#   r$   ©r`   r'   r   r   r   r)   ±   r*   ztest_cummax.<locals>.<lambda>rM   rO   c                 S   r#   r$   rh   r'   r   r   r   r)   º   r*   r2   rR   r7   rG   c                 S   r#   r$   rh   r'   r   r   r   r)   Æ   r*   r<   rS   rT   r   rU   r=   rW   )r   r<   r<   )r   r<   r   r9   )r   r1   r,   r`   r/   rB   rJ   r-   rX   rY   r   rA   rZ   r[   r   r0   r   )r   r   r   r\   Úexpected_maxsr3   r5   rC   r   r   r   Útest_cummax¤   sB   
ÿ$ÿrj   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   )rZ   ÚNaTÚ_value)Ú.0Únr   r   r   Ú
<listcomp>Û   s    z:test_cummax_i8_at_implementation_bound.<locals>.<listcomp>rN   r<   zM8[ns]©rI   rJ   ÚCrI   rJ   rq   )	r   Úranger   Ú_valuesÚviewr,   r`   r/   rB   )Úserr3   ÚgbÚresÚexpr   r   r   Ú&test_cummax_i8_at_implementation_boundØ   s   
ry   )r2   r   r   zgroups,expected_data©r<   r<   r<   )r<   NN©r<   r   rG   ©r<   Nr   )r<   rG   rG   c           	      C   sh   t dtg d¢|diƒ}| ¡ }| |¡d }t|| ƒdd}t||dd}t ||¡ t ||¡ d S )Nr=   r|   rd   F©r@   )r   r.   )r   r   Úcopyr,   re   r/   rB   r0   )	r_   r   ÚgroupsÚexpected_datar3   Úorigrv   rC   r5   r   r   r   Útest_cummin_max_skipnaä   s   r‚   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ç       @)rƒ   rƒ   rƒ   rT   rz   r=   r   Fr}   )r   r   rA   r,   re   r/   rB   )r_   r3   rv   rC   r5   r   r   r   Ú$test_cummin_max_skipna_multiple_colsý   s
   r„   Ú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 )NrW   r{   rH   rI   z+numpy operations are not valid with groupby©Úmatchr<   r   rG   )Úfoo)r   r,   ÚpytestÚraisesr   re   )r…   r3   ÚgÚmsgr   r   r   Útest_numpy_compat	  s   
ÿ"ÿrŽ   z	dtype,valra   Úuint64)r   l         c                 C   sT   |t jg}tddg|dœ|d}| d¡}| | ¡}td|i|d}t ||¡ d S )Nr<   )Úgrpr   rd   r   r   )rZ   ÚNAr   r,   Ú	transformr/   rB   )r_   r   ÚvalÚdatar3   rf   rC   r5   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 )Nr<   r   é	   )rG   r7   r–   rp   )Úcolumnsr7   rJ   rq   rI   F)Úas_indexz1DataFrameGroupBy.cumsum with axis=1 is deprecatedr‡   )Úaxisz2DataFrameGroupBy.cumprod with axis=1 is deprecated)
r   r   rA   r,   r†   r/   rB   Úassert_produces_warningÚFutureWarningr&   )r3   r5   rC   r   r   r   r   Útest_cython_api2'  s$   *&ÿÿrœ   )(Únumpyr   rŠ   Úpandas.errorsr   Úpandas.util._test_decoratorsÚutilÚ_test_decoratorsÚtdÚpandasrZ   r   r   Úpandas._testingÚ_testingr/   ÚfixtureÚint32r   Úfloat32r   r   r6   ÚmarkÚ
skip_ubsanr;   rD   r^   Úparametrizerg   rj   ry   r‚   r„   rŽ   Úskip_if_32bitr   r   r•   rœ   r   r   r   r   Ú<module>   sV    þ

64ýþ

ÿ