
    bMhP                         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          Z
 G d de
          Z G d d	e
          Z G d
 de
          ZdS )    )finalN)is_numeric_dtypec                      e Zd ZdZdej        dedefdZdej        dedefdZ	dedefdZ
edej        dedefd	            Zej                            dd
dg          d             Zej                            d          ej                            dd
dg          d                         Zej                            dd
dg          d             ZdS )BaseReduceTestszg
    Reduction specific tests. Generally these only
    make sense for numeric/boolean operations.
    serop_namereturnc                     dS )NF selfr   r   s      b/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/extension/base/reduce.py_supports_reductionz#BaseReduceTests._supports_reduction   s    u    skipnac                 f   t          ||          }	 |                    d          }n1# t          t          f$ r |                    t                    }Y nw xY wt          ||          }|dk    r |            } |            }n ||          } ||          }t          j        ||           d S )Nfloat64countr   )getattrastype	TypeError
ValueErrorobjecttmassert_almost_equal)	r   r   r   r   res_opaltexp_opresultexpecteds	            r   check_reducezBaseReduceTests.check_reduce   s     g&&	%**Y''CC:& 	% 	% 	% **V$$CCC		% g&&gVXXFvxxHHV6***FvV,,,H
vx00000s   ( +AAc                     |j         S )Ndtype)r   arrr   r   s       r   _get_expected_reduction_dtypez-BaseReduceTests._get_expected_reduction_dtype+   s     yr   c                 H   |j         }t          j        d|i          }|dv rddini }|                     |||          } |j        |f|dd|} t          ||          d	d|i|j         }	t          j        ||	           |sH|                                	                                r"t          j         t          j
        g|          }
nA t          |                                |                      }t          j         |g|          }
t          j        ||
           d S )
Na)varstdddof   T)r   keepdimsr   r$   r   )arraypd	DataFramer'   _reducer   r   assert_extension_array_equalisnaanyNAdropna)r   r   r   r   r&   dfkwargs	cmp_dtyperesult1result2r!   	exp_values               r   check_reduce_framez"BaseReduceTests.check_reduce_frame5   s3    i\3*%% '> 9 9&!r66sGVLL	 #+gNftNNvNN&'"g&&??f???E
'999  	>#((**..** 	>xy999HH6

g6688Ix9===H
':::::r   TFc                 0   |}t          j        |          }|                     ||          sRd}t          j        t
          |          5   t          ||          |           d d d            d S # 1 swxY w Y   d S |                     |||           d S NzV[Cc]annot perform|Categorical is not ordered for operation|does not support reduction|)matchr   r0   Seriesr   pytestraisesr   r   r"   )r   dataall_boolean_reductionsr   r   r   msgs          r   test_reduce_series_booleanz*BaseReduceTests.test_reduce_series_booleanP   s    (ioo''W55 	4. 
 y444 5 5%W%%V44445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 c7F33333   
A22A69A6zignore::RuntimeWarningc                 0   |}t          j        |          }|                     ||          sRd}t          j        t
          |          5   t          ||          |           d d d            d S # 1 swxY w Y   d S |                     |||           d S r@   rB   )r   rF   all_numeric_reductionsr   r   r   rH   s          r   test_reduce_series_numericz*BaseReduceTests.test_reduce_series_numericb   s     )ioo''W55 	4. 
 y444 5 5%W%%V44445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
 c7F33333rJ   c                 R   |}t          j        |          }t          |j                  st	          j        |j         d           |dv rt	          j        | d           |                     ||          st	          j        d| d           |                     |||           d S )Nz is not numeric dtype)r   kurtsemz not an array methodz
Reduction z not supported for this dtype)r0   rC   r   r%   rD   skipr   r>   )r   rF   rL   r   r   r   s         r   test_reduce_framez!BaseReduceTests.test_reduce_framev   s    (ioo	** 	=K39;;;<<<...K7888999''W55 	MKKWKKKLLLWf55555r   N)__name__
__module____qualname____doc__r0   rC   strboolr   r"   r'   r   r>   rD   markparametrizerI   filterwarningsrM   rR   r   r   r   r   r   
   s        
ry 3 4    1	 1C 1 1 1 1 1.# t     ;bi ;# ;t ; ; ; U;4 [Xe}554 4 654" [ 899[Xe}554 4 65 :94$ [Xe}556 6 656 6 6r   r   c                       e Zd ZdZdS )BaseNoReduceTestszwe don't define any reductionsN)rS   rT   rU   rV   r   r   r   r]   r]      s        ((((r   r]   c                   ,    e Zd Zdej        dedefdZdS )BaseNumericReduceTestsr   r   r	   c                 6    |dv rt          j        d           dS )Nr5   allz*These are tested in BaseBooleanReduceTestsTrD   rQ   r   s      r   r   z*BaseNumericReduceTests._supports_reduction   s#    n$$KDEEEtr   NrS   rT   rU   r0   rC   rW   rX   r   r   r   r   r_   r_      ?        ry 3 4      r   r_   c                   ,    e Zd Zdej        dedefdZdS )BaseBooleanReduceTestsr   r   r	   c                 6    |dvrt          j        d           dS )Nra   z*These are tested in BaseNumericReduceTestsTrc   r   s      r   r   z*BaseBooleanReduceTests._supports_reduction   s#    .((KDEEEtr   Nrd   r   r   r   rg   rg      re   r   rg   )typingr   rD   pandasr0   pandas._testing_testingr   pandas.api.typesr   r   r]   r_   rg   r   r   r   <module>rn      s	                    - - - - - -y6 y6 y6 y6 y6 y6 y6 y6|) ) ) ) ) ) ) )    _       _     r   