
    Pio                     H    d dl mZ d dlZd dlZd dlmZ  G d d          ZdS )    )finalNc                      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      v/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/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sem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_frame4   s4    i\3*%% '+@ @ @&!b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 operation|)matchr   r/   Seriesr   pytestraisesr   r   r    )r   dataall_boolean_reductionsr   r   r   msgs          r   test_reduce_series_booleanz*BaseReduceTests.test_reduce_series_booleanO   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?   rA   )r   rE   all_numeric_reductionsr   r   r   rG   s          r   test_reduce_series_numericz*BaseReduceTests.test_reduce_series_numerica   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3rI   c                     |}t          j        |          }|dk    rt          j        | d           |                     ||          st          j        d| d           |                     |||           d S )Nr   z not an array methodz
Reduction z not supported for this dtype)r/   rB   rC   skipr   r=   )r   rE   rK   r   r   r   s         r   test_reduce_framez!BaseReduceTests.test_reduce_frameu   s    (ioog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__r/   rB   strboolr   r    r%   r   r=   rC   markparametrizerH   filterwarningsrL   rO   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   )	typingr   rC   pandasr/   pandas._testing_testingr   r   r
   r   r   <module>r]      sz                    w6 w6 w6 w6 w6 w6 w6 w6 w6 w6r   