
    OwgJ                     b    d Z ddlZddlZddlZddlmZ ddl	m
Z
  G d de
      Z G d d      Zy)z)
Tests shared by MaskedArray subclasses.
    N)BaseOpsUtilc                       e Zd Zd Zd Zy)ComparisonOpsc                    t        j                   |||            }t        j                   ||j                  |      d      }t         j                  ||j                  <   t        j                  ||       t        j                  |      } |||      } |t        j                  |j                        |      j                  d      }t         j                  ||j                  <   t        j                  ||       y )Nbooleandtype)pdSeries_dataNA_masktmassert_series_equalastype)selfdataopotherresultexpectedsers          X/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/arrays/masked_shared.py_compare_otherzComparisonOps._compare_other   s    2dE?+99R

E2)D  "uu
vx0 iioC bii

+U3::9E  "uu
vx0    c                    |}t        j                  g d|      } |||      }|t         j                  u rt        j                  g dd      }n? ||j                  |      }t         j                  j                  ||j                  d      }t        j                  ||       t         j                  |d<   t        j                  |t        j                  g d|             y )N)   r   Nr   )NNNr   T)copyr   )	r
   arrayr   r   arraysBooleanArrayr   r   assert_extension_array_equal)	r   r   comparison_opr	   r   leftr   r   valuess	            r   test_scalarzComparisonOps.test_scalar$   s    xxE2D%BEE>xx 2)DH

E*Fyy--fdjjt-LH
''9 EEq	
''bhh|5.QRr   N)__name__
__module____qualname__r   r&    r   r   r   r      s    1.Sr   r   c                   6    e Zd Zd Zd Zd Zd Zd Zd Zd Z	y)	
NumericOpsc                     t        j                  t        d      |      }|j                  t        j
                  d      dk(  sJ |j                  t        j
                  d      dk(  sJ y )N
   r   r$   )sideright)r
   r   rangesearchsortednpnan)r   r	   arrs      r   test_searchsorted_nanz NumericOps.test_searchsorted_nan9   s\     hhuRy.V4:::W5;;;r   c                 >    |dz   }t        j                  ||      rJ y )Nr   )r   shares_memory)r   r   r   s      r   test_no_shared_maskzNumericOps.test_no_shared_maskA   s$    ##FD1111r   c                 0   |}t        j                  g d|      }t        j                  g d|      } |||      } ||j                  |j                        }|j                  |j                  z  }t         j                  j                  ||      }	t        j                  ||	       t         j                  |d<   t        j                  |t        j                  g d|             t        j                  |t        j                  g d|             y )N)r   r      NNNr   )r   r   Nr   r   Nr   )	r
   r   r   r   r    r!   r   r"   r   )
r   r#   r	   r   r$   r0   r   r%   maskr   s
             r   
test_arrayzNumericOps.test_arrayE   s    xx35A1?D%DJJ,zzEKK'99))&$7
''9 EEq	
''"((6eD	
 	''2884EB	
r   c                    |}t        j                  g ddz  d      }t        j                  dgdz  dgdz  z   d gdz  z   |      }t        j                  dgdz  dgdz  z   d gdz  z   d      } |||      } |||      }t        j                  ||        |||      } |||      }t        j                  ||       y )	N)TFN   r   r   r   r   FT)r
   r   r   r"   )	r   r#   r	   r   r$   r0   r   r   r   s	            r   test_compare_with_booleanarrayz)NumericOps.test_compare_with_booleanarray[   s    xx+a/yA!qA37*dVaZ7uE%1vz1TFQJ>iPdE?D%
''9 eT?E4
''9r   c                     t        j                  dd g|      }|dk(  }t        j                  dt         j                  gd      }t        j                  ||       y )Nr   r   aFr   )r
   r   r   r   r   )r   r	   r   r   r   s        r   test_compare_to_stringz!NumericOps.test_compare_to_stringk   sG    iiD	/99eRUU^9=
vx0r   c                    t        j                  g d|      }t        j                  ddt         j                  g|      }||k(  }||k(  }t        j                  dt
              }||z  }t        |t        j                        sJ |j                         sJ t        j                  dt
              }d}t        j                  t        |      5  ||z  }d d d        t        j                  ||      }t        j                  ddt         j                  g|      }	t        j                  ||	       t        j                  |||	      }||u sJ t        j                  ||	       t        j                  ||	       y # 1 sw Y   xY w)
N)r   r;   r?   r   r   r;   r?   z0Specify an appropriate 'na_value' for this dtype)match   )out)r
   r   r   r3   zerosbool
isinstancendarrayallpytestraises
ValueErroraddr   r"   )
r   r	   r5   arr2r<   mask2r   msgresr   s
             r   test_ufunc_with_outzNumericOps.test_ufunc_with_outs   s:   hhy.xxAruuU3cz!4($ &"**---zz|| !4(@]]:S1 	eOF	 ffS$88Q255M7
''X6 ffS$C(czz
''X6
''X6	 	s   E??Fc                    t        j                  ddt         j                  g|      }t        j                  dt        j
                        j                  d      }||z  }t        j                  t        j                  d      t        j                  d      t         j                  g      }t        j                  ||       y )Nr   r;   r   r?   zm8[ns]r   )r
   r   r   r3   arangeint64view	TimedeltaNaTr   r"   )r   r	   r5   r   r   r   s         r   test_mul_td64_arrayzNumericOps.test_mul_td64_array   s}    hh1bee}E2		!288,11(;u88R\\!_bll1orvvFG
''9r   N)
r'   r(   r)   r6   r9   r=   r@   rC   rU   r\   r*   r   r   r,   r,   6   s&    <2
,: 17@:r   r,   )__doc__numpyr3   rM   pandasr
   pandas._testing_testingr   pandas.tests.extension.baser   r   r,   r*   r   r   <module>rc      s6        3'SK 'STd: d:r   