
    MhP                         S SK Jr  S SKrS SKrS SKJr  S SKJ	r	   " S S5      r
 " S S\
5      r " S S	\
5      r " S
 S\
5      rg)    )finalN)is_numeric_dtypec                      \ rS rSrSrS\R                  S\S\4S jr	S\R                  S\S\4S jr
S\S\4S	 jr\S\R                  S\S\4S
 j5       r\R                  R!                  SSS/5      S 5       r\R                  R%                  S5      \R                  R!                  SSS/5      S 5       5       r\R                  R!                  SSS/5      S 5       rSrg)BaseReduceTests
   z[
Reduction specific tests. Generally these only
make sense for numeric/boolean operations.
serop_namereturnc                     g)NF selfr   r	   s      T/var/www/html/env/lib/python3.13/site-packages/pandas/tests/extension/base/reduce.py_supports_reduction#BaseReduceTests._supports_reduction   s        skipnac                    [        X5      n UR                  S5      n[        XR5      nUS:X  a  U" 5       nU" 5       nOU" US9nU" US9n[
        R                  " Xx5        g ! [        [        4 a    UR                  [        5      n Njf = f)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_reduceBaseReduceTests.check_reduce   s     &	%**Y'C &gXFxH6*FV,H
v0 :& 	% **V$C		%s   A! !%B	B	c                     UR                   $ )Ndtype)r   arrr	   r   s       r   _get_expected_reduction_dtype-BaseReduceTests._get_expected_reduction_dtype+   s     yyr   c                 N   UR                   n[        R                  " SU05      nUS;   a  SS0O0 nU R                  XBU5      nUR                  " U4USS.UD6n[        XR5      " S	SU0UD6R                   n	[        R                  " X5        U(       dH  UR                  5       R                  5       (       a%  [        R                   " [        R                  /US9n
O5[        UR                  5       U5      " 5       n[        R                   " U/US9n
[        R                  " X5        g )
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_frame"BaseReduceTests.check_reduce_frame5   s     ii\\3*% '> 9&!r66sVL	 ++gNftNvN"&?f??EE
''9 #((*..**xxy9H

g68Ixx9=H
'':r   TFc                    Un[         R                  " U5      nU R                  XT5      (       d4  Sn[        R                  " [
        US9   [        XT5      " US9  S S S 5        g U R                  XTU5        g ! , (       d  f       g = fNzV[Cc]annot perform|Categorical is not ordered for operation|does not support reduction|)matchr   r4   Seriesr   pytestraisesr   r   r$   )r   dataall_boolean_reductionsr   r	   r   msgs          r   test_reduce_series_boolean*BaseReduceTests.test_reduce_series_booleanP   so    (iio''55. 
 y4%V4 54 cF3	 54   
A66
Bzignore::RuntimeWarningc                    Un[         R                  " U5      nU R                  XT5      (       d4  Sn[        R                  " [
        US9   [        XT5      " US9  S S S 5        g U R                  XTU5        g ! , (       d  f       g = frE   rG   )r   rK   all_numeric_reductionsr   r	   r   rM   s          r   test_reduce_series_numeric*BaseReduceTests.test_reduce_series_numericb   sq     )iio''55. 
 y4%V4 54
 cF3 54rP   c                 p   Un[         R                  " U5      n[        UR                  5      (       d#  [        R
                  " UR                   S35        US;   a  [        R
                  " U S35        U R                  XT5      (       d  [        R
                  " SU S35        U R                  XTU5        g )Nz is not numeric dtype)r   kurtsemz not an array methodz
Reduction z not supported for this dtype)r4   rH   r   r(   rI   skipr   rB   )r   rK   rR   r   r	   r   s         r   test_reduce_frame!BaseReduceTests.test_reduce_framev   s    (iio		**KK399+%:;<..KK7)#789''55KK*WI-JKLf5r   r   N)__name__
__module____qualname____firstlineno____doc__r4   rH   strboolr   r$   r*   r   rB   rI   markparametrizerN   filterwarningsrS   rY   __static_attributes__r   r   r   r   r   
   s   
ryy 3 4 1		 1C 1 1.# t  ;bii ;# ;t ; ;4 [[Xe}54 64" [[ 89[[Xe}54 6 :4$ [[Xe}56 66r   r   c                       \ rS rSrSrSrg)BaseNoReduceTests   zwe don't define any reductionsr   N)r[   r\   r]   r^   r_   re   r   r   r   rg   rg      s    (r   rg   c                   >    \ rS rSrS\R
                  S\S\4S jrSr	g)BaseNumericReduceTests   r   r	   r
   c                 <    US;   a  [         R                  " S5        g)Nr9   allz*These are tested in BaseBooleanReduceTestsTrI   rX   r   s      r   r   *BaseNumericReduceTests._supports_reduction   s    n$KKDEr   r   N
r[   r\   r]   r^   r4   rH   r`   ra   r   re   r   r   r   rj   rj           ryy 3 4 r   rj   c                   >    \ rS rSrS\R
                  S\S\4S jrSr	g)BaseBooleanReduceTests   r   r	   r
   c                 <    US;  a  [         R                  " S5        g)Nrm   z*These are tested in BaseNumericReduceTestsTro   r   s      r   r   *BaseBooleanReduceTests._supports_reduction   s    .(KKDEr   r   Nrq   r   r   r   rt   rt      rr   r   rt   )typingr   rI   pandasr4   pandas._testing_testingr   pandas.api.typesr   r   rg   rj   rt   r   r   r   <module>r}      sE        -y6 y6|) )_ _ r   