
    A[gw$                         d dl Z d dlZd dlZd dlZd dlmZ d dl	m
Z
 d dlmZmZmZ d dlmZ  G d de      Zej$                  j'                  deeeg      d        Zy)	    N)BooleanArray)
kleene_and	kleene_or
kleene_xor)BaseOpsUtilc            
          e Zd Zd Zd Zd Zej                  j                  dd e	j                  dddd       ej                  d	      g      d
        Zd Zd Zej                  j                  dddg      d        Zd Zej                  j                  de	j$                  g dfdg df ej&                  d      g dfdg df ej&                  d      g dfg      d        Zd Zej                  j                  de	j$                  g dfdg dfdg df ej&                  d      g df ej&                  d      g dfg      d        Zd Zej                  j                  de	j$                  g dfdg df ej&                  d      g df ej&                  d      g dfg      d        Zej                  j                  ddde	j$                  g ddz  g      d        Zy )!TestLogicalOpsc                 "   t        j                  g dd      }t        ||      }t        j                   |d       |t        j                  d                   t        j                   |d       |t        j                  d                   y )NTFNbooleandtypeTF)pdarraygetattrtmassert_extension_array_equalnpbool_)selfall_logical_operatorsaops       c/var/www/html/bid-api/venv/lib/python3.12/site-packages/pandas/tests/arrays/boolean/test_logical.pytest_numpy_scalars_okz$TestLogicalOps.test_numpy_scalars_ok   sb    HH(	:Q-.
''4"RXXd^2DE
''5	2bhhuo3FG    c                     |j                  d      }d|v r|n|dz   }	 t        t        |      }|S # t        $ r t        t        |dd        fd}Y |S w xY w)N_xor   c                      ||       S )N )xyrops     r   <lambda>z1TestLogicalOps.get_op_from_name.<locals>.<lambda>!   s    c!Qir   )stripr   operatorAttributeError)r   op_nameshort_opnamer   r%   s       @r   get_op_from_namezTestLogicalOps.get_op_from_name   sk    }}S)','<|,QTBT	(<0B 	  	((L$45C'B		(s   1 !AAc                 B   t        j                  g d      }|} t        ||      d      }t        j                  ||        t        ||      d      }t        j                  ||        t        ||      t         j
                        }t        j                  ||       y )Nr   r   TF)r   r   r   r   r   NA)r   r   r   r*   results        r   test_empty_okzTestLogicalOps.test_empty_ok%   s    HHRy)'$G$T*
''62$G$U+
''62$G$RUU+
''62r   otherr   i  r          c                     t        j                  ddg      }||k(  }t        j                  ddg      }t        j                  ||       ||k7  }t        j                  ddg      }t        j                  ||       y )NTFr   r   r   r   )r   r1   arrr/   expecteds        r   test_eq_mismatched_typez&TestLogicalOps.test_eq_mismatched_type1   sl    
 hhe}%88UEN+
''988T4L)
''9r   c                 &   |}t        j                  g dd      }d}t        j                  t        |      5   t        ||      ddg       d d d        t        j                  t        |      5   t        ||      t        j                  ddg             d d d        t        j                  t        |      5   t        ||      t        j                  ddgd             d d d        y # 1 sw Y   xY w# 1 sw Y   cxY w# 1 sw Y   y xY w)Nr   r   r   zLengths must matchmatchTF)r   r   pytestraises
ValueErrorr   r   r   r   r*   r   msgs        r   #test_logical_length_mismatch_raisesz2TestLogicalOps.test_logical_length_mismatch_raises?   s    'HH(	:"]]:S1GAwu. 2 ]]:S1GAw$ 78 2 ]]:S1GAw$i HI 21 21 21 21s#   C/1(C;<*D/C8;DDc                     |}t        j                  g dd      }d}t        j                  t        |      5   t        ||      t        j                         d d d        y # 1 sw Y   y xY w)Nr   r   r   zGot float insteadr:   )r   r   r<   r=   	TypeErrorr   r   nanr?   s        r   test_logical_nan_raisesz&TestLogicalOps.test_logical_nan_raisesM   sL    'HH(	:!]]9C0GAw' 100s   !A##A,c                     t        j                  ddgd      }t        j                  t        t        t        |      j                              5   t        ||      |       d d d        y # 1 sw Y   y xY w)NTFr   r   r:   )	r   r   r<   r=   rC   strtype__name__r   )r   r1   r   r   s       r    test_non_bool_or_na_other_raisesz/TestLogicalOps.test_non_bool_or_na_other_raisesU   sR    HHdE])4]]9CU0D0D,EF-GA,-e4 GFFs   A--A6c                    t        j                  dgdz  dgdz  z   d gdz  z   d      }t        j                  g ddz  d      }||z  }t        j                  g dd      }t        j                  ||       ||z  }t        j                  ||       t        j                  |t        j                  dgdz  dgdz  z   d gdz  z   d             t        j                  |t        j                  g ddz  d             y )NT   Fr   r   r   )	TTTTFNTNNr5   r   r   br/   r7   s        r   test_kleene_orzTestLogicalOps.test_kleene_or[   s    HHdVaZ5'A+-
:)LHH(1,I>Q88C9
 	''9Q
''9 	''rxx
eWq[0D6A:=YO	
 	''rxx+a/yA	
r   zother, expected)TNNTTTTFr   c                 *   t        j                  g dd      }||z  }t        j                  |d      }t        j                  ||       ||z  }t        j                  ||       t        j                  |t        j                  g dd             y Nr   r   r   r5   r   r1   r7   r   r/   s        r   test_kleene_or_scalarz$TestLogicalOps.test_kleene_or_scalarp   sx     HH(	:U88HI6
''9
''9 	''rxx+9=	
r   c                    t        j                  dgdz  dgdz  z   d gdz  z   d      }t        j                  g ddz  d      }||z  }t        j                  g dd      }t        j                  ||       ||z  }t        j                  ||       t        j                  |t        j                  dgdz  dgdz  z   d gdz  z   d             t        j                  |t        j                  g ddz  d             y )NTrL   Fr   r   r   )	TFNFFFNFNr5   rM   s        r   test_kleene_andzTestLogicalOps.test_kleene_and   s    HHdVaZ5'A+-
:)LHH(1,I>Q88Gy
 	''9Q
''9 	''rxx
eWq[0D6A:=YO	
 	''rxx+a/yA	
r   )NFN)FFFc                 *   t        j                  g dd      }||z  }t        j                  |d      }t        j                  ||       ||z  }t        j                  ||       t        j                  |t        j                  g dd             y rR   r5   rS   s        r   test_kleene_and_scalarz%TestLogicalOps.test_kleene_and_scalar   sx     HH(	:U88HI6
''9
''9 	''rxx+9=	
r   c                    t        j                  dgdz  dgdz  z   d gdz  z   d      }t        j                  g ddz  d      }||z  }t        j                  g dd      }t        j                  ||       ||z  }t        j                  ||       t        j                  |t        j                  dgdz  dgdz  z   d gdz  z   d             t        j                  |t        j                  g ddz  d             y )NTrL   Fr   r   r   )	FTNTFNNNNr5   rM   s        r   test_kleene_xorzTestLogicalOps.test_kleene_xor   s    HHdVaZ5'A+-
:)LHH(1,I>Q88DI
 	''9Q
''9 	''rxx
eWq[0D6A:=YO	
 	''rxx+a/yA	
r   )NNN)FTNc                 *   t        j                  g dd      }||z  }t        j                  |d      }t        j                  ||       ||z  }t        j                  ||       t        j                  |t        j                  g dd             y rR   r5   rS   s        r   test_kleene_xor_scalarz%TestLogicalOps.test_kleene_xor_scalar   sx     HH(	:U88HI6
''9
''9 	''rxx+9=	
r   rL   c                    t         j                  j                  t        j                  g d      t        j                  dgdz  g dz               }t        j                  dgdz  dgdz  z   d gdz  z   d      }t        |t              rt        j                  |d      } t        ||      |      } t        ||      |      }t        j                  ||       t        |t              rmd|j                  |j                  <   d|j                  |j                  <    t        ||      |      } t        ||      |      }t        j                  ||       y y )	N)	TTTFFFTFTF   rP   TrL   r   r   )r   arraysr   r   r   
isinstancelistr   r   r   _data_mask)r   r1   r   r   rN   r/   r7   s          r   test_no_masked_assumptionsz)TestLogicalOps.test_no_masked_assumptions   s(    II""HHOPHHeWq[#556
 HHdVaZ5'A+-
:)LeT"HHU)4E2125947134U;
''9e\*'+EKK$$AGGAGG6WQ 56u=F8wq"78?H++FH= +r   N)rI   
__module____qualname__r   r,   r0   r<   markparametrizer   	Timestampr   timedelta64r8   rA   rE   rJ   rO   r.   r   rT   rV   rX   rZ   r\   rd   r"   r   r   r	   r	      s!   H

3 [[#|r||D!Q3^R^^A5FG	:	:J( [[WsAh/5 05

* [[UU&'%&RXXd^/0'(RXXe_12	
	
	

* [[UU'(&')*RXXd^01RXXe_34	
	
	

( [[UU&'&'RXXd^01RXXe_12		


 [[WtUBEE;NQR;R&ST> U>r   r	   	operationc           	          d}t        j                  t        |      5   | ddt        j                  d      t        j                  d             d d d        y # 1 sw Y   y xY w)Nz2Either `left` or `right` need to be a np\.ndarray.r:   Tr    )r<   r=   rC   r   zeros)rk   r@   s     r   test_error_both_scalarrn      s?    
?C	y	,$bhhqk288A;7 
-	,	,s   2AA")r(   numpyr   r<   pandasr   pandas._testing_testingr   pandas.arraysr   pandas.core.ops.mask_opsr   r   r   pandas.tests.extension.baser   r	   rg   rh   rn   r"   r   r   <module>rv      sb         & 
 4e>[ e>P y*j&IJ8 K8r   