a
    é´«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   )ÚparamsÚ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   úc/var/www/html/laksyashrimp/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    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   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/   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   s   |   ¡ S r    ©Úcumminr#   r   r   r   r%   l   r&   ztest_cummin.<locals>.<lambda>r   é   é   ©r   rA   rG   é   T)Zcheck_exactc                 S   s   |   ¡ S r    rE   r#   r   r   r   r%   w   r&   r.   ©r   r   r3   rG   r3   rA   c                 S   s   |   ¡ S 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   s   |   ¡ S r    ©rX   r#   r   r   r   r%   ±   r&   ztest_cummax.<locals>.<lambda>rG   rI   c                 S   s   |   ¡ S r    r`   r#   r   r   r   r%   º   r&   r.   rK   r3   rA   c                 S   s   |   ¡ S 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>Û   r&   z:test_cummax_i8_at_implementation_bound.<locals>.<listcomp>rH   r7   zM8[ns]©rC   rD   ÚCrC   rD   rg   )	r   Úranger   Z_valuesÚviewr(   rX   r+   r<   )Zserr/   ÚgbÚresÚexpr   r   r   Ú&test_cummax_i8_at_implementation_boundØ   s    
rm   )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   rp   r\   F©r:   )r   r*   )r   r   Úcopyr(   r]   r+   r<   r,   )	rW   r   ÚgroupsZexpected_datar/   Úorigrj   r=   r1   r   r   r   Útest_cummin_max_skipnaä   s    ru   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ç       @)rv   rv   rv   rM   rn   r8   r   Frq   )r   r   r;   r(   r]   r+   r<   )rW   r/   rj   r=   r1   r   r   r   Ú$test_cummin_max_skipna_multiple_colsý   s
    rw   Ú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 )NrP   ro   rB   rC   z+numpy operations are not valid with groupby©Úmatchr7   r   rA   )Zfoo)r   r(   ÚpytestZraisesr   r]   )rx   r/   ÚgÚmsgr   r   r   Útest_numpy_compat	  s    
0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(   Z	transformr+   r<   )rW   r   ÚvalÚdatar/   r^   r=   r1   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 )Nr7   r   é	   )rA   r3   r„   rf   )Úcolumnsr3   rD   rg   rC   F)Zas_indexz1DataFrameGroupBy.cumsum with axis=1 is deprecatedrz   )Zaxisz2DataFrameGroupBy.cumprod with axis=1 is deprecated)
r   r   r;   r(   ry   r+   r<   Zassert_produces_warningÚFutureWarningr"   )r/   r1   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pandasrS   r   r   Zpandas._testingZ_testingr+   ZfixtureZint32r   Zfloat32r   r   r2   ÚmarkZ
skip_ubsanr6   r>   rV   Zparametrizer_   ra   rm   ru   rw   r   Zskip_if_32bitr   r   rƒ   r‡   r   r   r   r   Ú<module>   sT   þ

64ýþ

ÿ