
    Owg                     `    d dl Z d dlZd dlZd dlZd dlmZmZmZm	Z	m
Z
 d dlmZ  G d d      Zy)    N)CategoricalIndex	DataFrameIntervalSeriesisnullc                      e Zd Zej                  j                  dddej                  gg dej                  g dfg dddej                  gej                  g dfddej                  gg dej                  g dfg dddej                  gej                  g dfg      d        Zd Zd Zd	 Zd
 Zd Zej                  j#                  d      d        Zd Zd Zd Zy)TestDataFrameLogicalOperatorszleft, right, op, expectedTF)TFT)TFFc                 j     | ||       ||            } ||      }t        j                  ||       y )N)tmassert_equal)selfleftrightopexpectedframe_or_seriesresults          Z/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/frame/test_logical_ops.pytest_logical_operators_nansz9TestDataFrameLogicalOperators.test_logical_operators_nans   s2    > OD)?5+AB"8,
)    c                 P   t        dg      }||z  }t        j                  ||       ||z  }t        j                  ||       t        ddg      }||z  }t        j                  ||       t        dgdg      }||z  }t        ddgdg      }t        j                  ||       y )N   index   Ar   columnsFr   r   assert_frame_equal)r   dfr   df2dfar   s         r   test_logical_ops_empty_framez:TestDataFrameLogicalOperators.test_logical_ops_empty_frame8   s     aS!b
fb)b
fb)q!f%c
fc*qcC51sU1#u=
fh/r   c                     t        ddgdg      }||z  }t        j                  ||       ||z  }t        j                  ||       y )NTr   r   r   r   )r   	df1a_boolr   s      r   test_logical_ops_bool_framez9TestDataFrameLogicalOperators.test_logical_ops_bool_frameM   sH    d1#u=	Y&
fi0Y&
fi0r   c                     t        ddgdg      }t        ddgdg      }||z  }t        j                  ||       |d   |d   z  }t        j                  ||d          y )Nr   r   r   T)r   r   r    assert_series_equal)r   df1a_intr&   r   res_sers        r   test_logical_ops_int_framez8TestDataFrameLogicalOperators.test_logical_ops_int_frameW   sh    QqcC59d1#u=	I%
fi0 3-)C.0
w	#7r   c                 D   t        ddgdg      }t        ddgdg      }t        j                  d      }t        j                  t
        |      5  ||z   d d d        t        ddgdg      }t        ddgdg      }t        j                  d	      }|r>d
d l}t        j                  |j                  j                  d      5  ||z   d d d        y t        j                  t
        |      5  ||z   d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w# 1 sw Y   y xY w)Ng      ?r   r   r   Tz5unsupported operand type(s) for |: 'float' and 'bool'matchfooz3unsupported operand type(s) for |: 'str' and 'bool'r   z|has no kernel)	r   reescapepytestraises	TypeErrorpyarrowlibArrowNotImplementedError)r   using_infer_stringdf1r"   msgpas         r   test_logical_ops_invalidz6TestDataFrameLogicalOperators.test_logical_ops_invalidc   s    A36QC#7iiOP]]9C0 	#I	 aS3%8QC#7iiMN rvv>>FVW c	  y4 c	 	 	  s$   C>D
/D>D
DDc           
         fd}fd}ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddt              t               |t        j                          |t        j                          |t        j                          |t        j
                         y )Nc                     |       }t         | j                  j                        j                  j                        }|j                  j                  t
        j                  k(  sJ t        j                  ||       y Nr   	r   valuesr   r   dtypenpbool_r   r    )r   r   r   r:   r"   s      r   _check_bin_opzKTestDataFrameLogicalOperators.test_logical_operators.<locals>._check_bin_opy   sd    S\F 3::szz*#))S[[H ==&&"((222!!&(3r   c                      |       }t         | j                        j                  j                        }|j                  j                  t
        j                  k(  sJ t        j                  ||       y r@   rA   )r   r   r   r:   s      r   _check_unary_opzMTestDataFrameLogicalOperators.test_logical_operators.<locals>._check_unary_op   sV    WF CJJsyy#++VH==&&"((222!!&(3r   TF)abcde)r   operatorand_or_xorinv)r   rF   rH   r:   r"   s      @@r   test_logical_operatorsz4TestDataFrameLogicalOperators.test_logical_operatorsx   s    	4	4 %e$TJ4e%eL5t%eL%e$TJ%e$TJ
 %dUK4e%eL%dUK5u4eL5u5tL
 nnhmm$hll#hll#%r   z4ignore:Downcasting object dtype arrays:FutureWarningc                    t        t        j                  dgddgd      }|d   |d   z  }t        ddg      }t	        j
                  ||       |d   j                  d      |d   z  }t        ddg      }t	        j
                  ||       d}t	        j                  t        |      5  |d   j                  dd      |d   z  }d d d        t        ddg      }t	        j
                  ||       y # 1 sw Y   -xY w)	NFT)rI   rJ   rI   rJ   z.The 'downcast' keyword in fillna is deprecatedr.   )downcast)	r   rD   nanr   r   r)   fillnaassert_produces_warningFutureWarning)r   rL   r   r   r;   s        r   test_logical_with_nasz3TestDataFrameLogicalOperators.test_logical_with_nas   s    RVVUO4,?@ 3!C&5$-(
vx0 3u%#.4,'
vx0>''SA 	CsV]]55]9AcFBF	C4,'
vx0	C 	Cs   )C22C;c                    t        dd      t        dd      g}t        dt        j                  gdt        j                  ggt	        ||t        dd      gz               }t        d	d	gd	d	gg|j
                  t        
      }|t        |      z  }t        d	dgd	dggt	        ||t        dd      gz               }t        j                  ||       y )Nr   r               )
categories)r   F)r   rC   T)
r   r   rD   rV   r   r   boolr   r   r    )r   	intervalsdatamaskr   r   s         r   $test_logical_ops_categorical_columnszBTestDataFrameLogicalOperators.test_logical_ops_categorical_columns   s    a^Xa^4	[1bff+&$i8Aq>2B&B
 U^eU^,dll$
 t$T]UDM*$i8Aq>2B&B
 	fh/r   c                    t        g dg ddg      }t        g dg ddg      }t        j                  ||      }t        g dg ddg      }t        j                  ||       ||z  }t        j                  ||       y )N)r   r   r\   )
         rI   r   )rg         )rh   rg   ri   )         )r   rD   bitwise_xorr   r    )r   r:   r"   r   r   s        r   'test_int_dtype_different_index_not_boolzETestDataFrameLogicalOperators.test_int_dtype_different_index_not_bool   sk    	uEL3%HS)[seL
fh/s
fh/r   c                     t        ddgddg      }t        ddgddg      }t        j                  t        d	
      5  ||z   d d d        y # 1 sw Y   y xY w)Nr   r   rI   rJ   r   r\   r]   rK   zunsupported operand typer.   )r   r3   r4   r5   )r   r:   r"   s      r   ,test_different_dtypes_different_index_raiseszJTestDataFrameLogicalOperators.test_different_dtypes_different_index_raises   sU    AsCj1AsCj1]]9,FG 	#I	 	 	s   AAN)__name__
__module____qualname__r3   markparametrizerD   rV   rN   rO   rP   r   r$   r'   r,   r=   rS   filterwarningsrZ   re   rp   rr    r   r   r	   r	      s    [[# ubff%#$	 $ubff%$	 ubff%#$	 $ubff%#	'	
:*;:*0*1
8*&&P [[ VW1 X1(0*	0r   r	   )rN   r1   numpyrD   r3   pandasr   r   r   r   r   pandas._testing_testingr   r	   ry   r   r   <module>r~      s,     	    I Ir   