a
    é´«jP  ã                   @   sv   d dl mZ d dlZd dlZd dlmZ d dlm	Z	 G dd„ dƒZ
G dd„ de
ƒZG dd	„ d	e
ƒZG d
d„ de
ƒZdS )é    )ÚfinalN)Úis_numeric_dtypec                   @   sº   e Zd ZdZejeedœdd„Zejeedœdd„Z	eedœd	d
„Z
eejeedœdd„ƒZej dddg¡dd„ ƒZej d¡ej dddg¡dd„ ƒƒZej dddg¡dd„ ƒZdS )ÚBaseReduceTestszg
    Reduction specific tests. Generally these only
    make sense for numeric/boolean operations.
    ©ÚserÚop_nameÚreturnc                 C   s   dS )NF© ©Úselfr   r   r	   r	   úa/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/pandas/tests/extension/base/reduce.pyÚ_supports_reduction   s    z#BaseReduceTests._supports_reduction)r   r   Úskipnac           	   	   C   s~   t ||ƒ}z| d¡}W n  ttfy8   | t¡}Y n0 t ||ƒ}|dkrZ|ƒ }|ƒ }n||d�}||d�}t ||¡ d S )NZfloat64Úcount©r   )ÚgetattrZastypeÚ	TypeErrorÚ
ValueErrorÚobjectÚtmZassert_almost_equal)	r   r   r   r   Zres_opZaltZexp_opÚresultÚexpectedr	   r	   r   Úcheck_reduce   s    



zBaseReduceTests.check_reduce)r   r   c                 C   s   |j S )N©Údtype)r   Úarrr   r   r	   r	   r   Ú_get_expected_reduction_dtype+   s    z-BaseReduceTests._get_expected_reduction_dtypec                 C   sÈ   |j }t d|i¡}|dv r$ddini }|  |||¡}|j|f|ddœ|¤Ž}t||ƒf d|i|¤Žj }	t ||	¡ |s˜| ¡  	¡ r˜tj tj
g|d�}
n t| ¡ |ƒƒ }tj |g|d�}
t ||
¡ d S )	NÚa)ÚvarZstdZddofé   T)r   Zkeepdimsr   r   )ÚarrayÚpdZ	DataFramer   Z_reducer   r   Zassert_extension_array_equalZisnaÚanyZNAZdropna)r   r   r   r   r   ZdfÚkwargsZ	cmp_dtypeZresult1Zresult2r   Z	exp_valuer	   r	   r   Úcheck_reduce_frame5   s    z"BaseReduceTests.check_reduce_framer   TFc                 C   sp   |}t  |¡}|  ||¡s^d}tjt|d��  t||ƒ|d� W d   ƒ ql1 sR0    Y  n|  |||¡ d S ©NzV[Cc]annot perform|Categorical is not ordered for operation|does not support reduction|)Úmatchr   ©r!   ÚSeriesr   ÚpytestZraisesr   r   r   )r   ÚdataZall_boolean_reductionsr   r   r   Úmsgr	   r	   r   Útest_reduce_series_booleanP   s    
ÿ0z*BaseReduceTests.test_reduce_series_booleanzignore::RuntimeWarningc                 C   sp   |}t  |¡}|  ||¡s^d}tjt|d��  t||ƒ|d� W d   ƒ ql1 sR0    Y  n|  |||¡ d S r%   r'   )r   r*   Úall_numeric_reductionsr   r   r   r+   r	   r	   r   Útest_reduce_series_numericb   s    
ÿ0z*BaseReduceTests.test_reduce_series_numericc                 C   sr   |}t  |¡}t|jƒs*t |j› d�¡ |dv rBt |› d�¡ |  ||¡s`t d|› d�¡ |  |||¡ d S )Nz is not numeric dtype)r   ZkurtZsemz not an array methodz
Reduction z not supported for this dtype)r!   r(   r   r   r)   Úskipr   r$   )r   r*   r-   r   r   r   r	   r	   r   Útest_reduce_framev   s    

z!BaseReduceTests.test_reduce_frameN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r!   r(   ÚstrÚboolr   r   r   r   r$   r)   ÚmarkZparametrizer,   Úfilterwarningsr.   r0   r	   r	   r	   r   r   
   s   


r   c                   @   s   e Zd ZdZdS )ÚBaseNoReduceTestszwe don't define any reductionsN)r1   r2   r3   r4   r	   r	   r	   r   r9   ˆ   s   r9   c                   @   s    e Zd Zejeedœdd„ZdS )ÚBaseNumericReduceTestsr   c                 C   s   |dv rt  d¡ dS )N©r"   Úallz*These are tested in BaseBooleanReduceTestsT©r)   r/   r
   r	   r	   r   r   Ž   s    
z*BaseNumericReduceTests._supports_reductionN©r1   r2   r3   r!   r(   r5   r6   r   r	   r	   r	   r   r:   Œ   s   r:   c                   @   s    e Zd Zejeedœdd„ZdS )ÚBaseBooleanReduceTestsr   c                 C   s   |dvrt  d¡ dS )Nr;   z*These are tested in BaseNumericReduceTestsTr=   r
   r	   r	   r   r   –   s    
z*BaseBooleanReduceTests._supports_reductionNr>   r	   r	   r	   r   r?   ”   s   r?   )Útypingr   r)   Zpandasr!   Zpandas._testingZ_testingr   Zpandas.api.typesr   r   r9   r:   r?   r	   r	   r	   r   Ú<module>   s   ~