
    A>io                     @    S SK Jr  S SKrS SKrS SKJr   " S S5      rg)    )finalNc                      \ 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      a/var/www/html/land-tabula/venv/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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_frame"BaseReduceTests.check_reduce_frame4   s     ii\\3*% '+@ @&!b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 operation|)matchr   r3   Seriesr   pytestraisesr   r   r"   )r   dataall_boolean_reductionsr   r   r   msgs          r   test_reduce_series_boolean*BaseReduceTests.test_reduce_series_booleanO   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rD   rF   )r   rJ   all_numeric_reductionsr   r   r   rL   s          r   test_reduce_series_numeric*BaseReduceTests.test_reduce_series_numerica   sq     )iio''55. 
 y4%V4 54
 cF3 54rO   c                     Un[         R                  " U5      nUS:X  a  [        R                  " U S35        U R	                  XT5      (       d  [        R                  " SU S35        U R                  XTU5        g )Nr   z not an array methodz
Reduction z not supported for this dtype)r3   rG   rH   skipr   rA   )r   rJ   rQ   r   r   r   s         r   test_reduce_frame!BaseReduceTests.test_reduce_frameu   sg    (iiogKK7)#789''55KK*WI-JKLf5r   r   N)__name__
__module____qualname____firstlineno____doc__r3   rG   strboolr   r"   r(   r   rA   rH   markparametrizerM   filterwarningsrR   rV   __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   )	typingr   rH   pandasr3   pandas._testing_testingr   r   r   r   r   <module>rg      s       w6 w6r   