o
    dA                     @   sf   d dl m Z  d dlZd dlZd dlZd dlmZmZmZm	Z	 d dl
mZ d dlmZ G dd dZdS )    )datetimeN)	DataFrameIndexSeriesbdate_range)opsc                	   @   s,  e Zd Zejdejejej	gdd Z
dd Zdd Zdd	 Zd
d Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zejdejejej	gdd Zdd  Zejdejejgd!d" Zejd#ejed$d$gfejed%d%gfejed%d%gfgd&d' Zd(d) Z d*d+ Z!d,S )-TestSeriesLogicalOpsbool_opc                 C   s   t tdddtd}tj|d d d< | }||d }|||d k ||d k}|||d k ||d k}d	||< t|| d S )
Nz1/1/2000
   )periodsdtype   r   	      F)	r   r   objectnpnanisnafillnatmassert_series_equal)selfr	   sermaskfilledresultexpected r   i/var/www/html/visualizacion-main/env/lib/python3.10/site-packages/pandas/tests/series/test_logical_ops.pytest_bool_operators_with_nas   s   z1TestSeriesLogicalOps.test_bool_operators_with_nasc                 C   sh   t d}tg d|d}tg d|d}tg td}||@ }|}t|| ||B }|}t|| d S )NbcaTFTindexFFFr   )listr   r   r   r   )r   r$   s_tfts_fffs_emptyresr   r   r   r   ,test_logical_operators_bool_dtype_with_empty!   s   zATestSeriesLogicalOps.test_logical_operators_bool_dtype_with_emptyc                 C   s   t tddd}t dgd }t dgd }||@ }t tddd}t|| ||B }t tdddd}t|| t dgd dd}||@ }t g ddd}t|| |tj|tjB }t g d	d
d}t|| d S )N   int64r   r         int8r   r/   r   r/   )r/   r/   r   r   int32)r   ranger   r   astyper   int16r2   )r   s_0123s_3333s_4444r*   r   s_1111r   r   r   /test_logical_operators_int_dtype_with_int_dtype1   s    zDTestSeriesLogicalOps.test_logical_operators_int_dtype_with_int_dtypec                 C   sV   t tddd}|d@ }t dgd }t|| |d@ }t g d}t|| d S )Nr,   r-   r   r   r/   r1   r   r3   r   r   )r   r6   r*   r   r   r   r   0test_logical_operators_int_dtype_with_int_scalarI   s   zETestSeriesLogicalOps.test_logical_operators_int_dtype_with_int_scalarc                 C   sD  t tddd}d}tjt|d |tj@  W d    n1 s!w   Y  tjt|d |d@  W d    n1 s<w   Y  d}tjt|d |g d@  W d    n1 s[w   Y  tjt|d |tg d@  W d    n1 s{w   Y  tjt|d |t g d	@  W d    d S 1 sw   Y  d S )
Nr,   r-   r   7Cannot perform.+with a dtyped.+array and scalar of typematchQ	@z unsupported operand type.+for &:)皙?r,   r@   r   )rA   r,   gQ	r   )r   r3   pytestraises	TypeErrorr   NaNarray)r   r6   msgr   r   r   +test_logical_operators_int_dtype_with_floatU   s$   
"z@TestSeriesLogicalOps.test_logical_operators_int_dtype_with_floatc                 C   s   t dgd dd}d}tjt|d |d@  W d    n1 s!w   Y  tjtdd |g d	@  W d    d S 1 s?w   Y  d S )
Nr/   r,   r0   r   z=Cannot perform 'and_' with a dtyped.+array and scalar of typer>   azunsupported operand.+for &)rI   bcd)r   rB   rC   rD   )r   r9   rG   r   r   r   )test_logical_operators_int_dtype_with_strf   s   
"z>TestSeriesLogicalOps.test_logical_operators_int_dtype_with_strc                 C   s   t tddd}t dgd }|d@ }t|| |dg@ }t|| |d@ }t|| |dA }t g d}t|| d S )Nr,   r-   r   F)F)FTTTr;   )r   r6   r   r   r   r   r   *test_logical_operators_int_dtype_with_booln   s   
z?TestSeriesLogicalOps.test_logical_operators_int_dtype_with_boolc                 C   s   t tddd}|t dtjddg@ }t dgd }t|| t ddtjdg}tjtdd	 ||@  W d    d S 1 s@w   Y  d S )
Nr,   r-   r   FrI   rJ   rL   zunsupported.* 'int' and 'str'r>   )	r   r3   r   rE   r   r   rB   rC   rD   )r   r6   r   r   s_abNdr   r   r   ,test_logical_operators_int_dtype_with_object   s   
"zATestSeriesLogicalOps.test_logical_operators_int_dtype_with_objectc                 C   s\   t d}tg d|d}tg d|d}|d@ }|}t|| |d@ }|}t|| d S )Nr!   r"   r#   r%   r   r/   )r&   r   r   r   )r   r$   r'   r(   r*   r   r   r   r   *test_logical_operators_bool_dtype_with_int   s   z?TestSeriesLogicalOps.test_logical_operators_bool_dtype_with_intc                 C   s^  t g d}ddd dtjg}t g d}||@ }t|| |t|@ }t|| |t|@ }t|| |t |@ }t|| t g d}||B }t|| |t|B }t|| |t|B }t|| |t |B }t|| t g d}||A }t|| |t|A }t|| |t|A }t|| |t |A }t|| d S )N)TTTFTTF)TFFFF)TTTTT)FTTTT)r   r   r   r   r   rF   r   )r   leftrightr   r   r   r   r   (test_logical_ops_bool_dtype_with_ndarray   s:   z=TestSeriesLogicalOps.test_logical_ops_bool_dtype_with_ndarrayc           	      C   s   t d}tg d|d}tg d|d}tg d|d}ttddd}tdgd	 g d
d}||@ }t|| tdgd	 g d
d}||@ }t|| tdgt d}||@ }|t d}t|| ||B }|t d}t|| d S )Nr!   r"   r#   TFFr,   r-   r   F   )r   r/   r   r   rI   rJ   rK   r/   rJ   abc)r&   r   r3   r   r   reindex)	r   r$   r'   s_tffr6   r   r   s_a0b1c0r*   r   r   r   <test_logical_operators_int_dtype_with_bool_dtype_and_reindex   s$   zQTestSeriesLogicalOps.test_logical_operators_int_dtype_with_bool_dtype_and_reindexc                 C   s   t g d}d}tjt|d |tddd@  W d    n1 s"w   Y  t dddd	d
dddtdddg	}tj|d d d< t d|jd}d|d d d< |t|@ }t	
|| d S )N)	r   r   r,         rV   r.   r   r
   r=   r>     r/   r   r   r,   r\   r]   rV   r.   r   Tr#   F)r   rB   rC   rD   r   r   r   r$   r&   r   r   )r   srG   r   r   r   r   r   "test_scalar_na_logical_ops_corners   s   "z7TestSeriesLogicalOps.test_scalar_na_logical_ops_cornersc                 C   s   t ddddddddtd	d
d
g	}tj|d d d< td|i}tdtddgttd d}||@ }t|| ||@ }t|| d S )Nr   r   r,   r\   r]   rV   r.   r   r^   r/   AF)r$   columns)	r   r   r   r   r   r3   r&   r   assert_frame_equal)r   r_   rL   r   r   r   r   r   )test_scalar_na_logical_ops_corners_aligns   s   " z>TestSeriesLogicalOps.test_scalar_na_logical_ops_corners_alignsopc                    s   t g dtg d tg dt  fddttD } }t|| t fddttD td}}t|| d S )NTTFFTFTFr/   r   r/   r   c                       g | ]}|  | qS r   r   .0n)idx1re   r   r   r   
<listcomp>      zDTestSeriesLogicalOps.test_logical_ops_with_index.<locals>.<listcomp>c                    ri   r   r   rj   )idx2re   r   r   r   rn     ro   r   )r   r   r3   lenr   r   bool)r   re   r   r   r   )rm   rp   re   r   r   test_logical_ops_with_index   s   "
&
z0TestSeriesLogicalOps.test_logical_ops_with_indexc                 C   s`   t g d}tg dtd}tg d}t g d}||A }t|| ||A }t|| d S )Nrf   rg   r   rh   )FTTF)r   r   r   r   r   )r   r   rm   rp   r   r   r   r   r   +test_reversed_xor_with_index_returns_series  s   z@TestSeriesLogicalOps.test_reversed_xor_with_index_returns_seriesc                 C   st   t g d}tg d}tg d}t ||j|j}|||}t|| ||t |}|||}t|| d S )Nrf   rg   rh   )r   r   valuesr   r   )r   re   r   rm   rp   r   r   r   r   r   2test_reversed_logical_op_with_index_returns_series  s   	

zGTestSeriesLogicalOps.test_reversed_logical_op_with_index_returns_serieszop, expectedFTc                 C   s2   t ddg}tddg}|||}t|| d S )NTF)r   r   r   r   )r   re   r   r   idxr   r   r   r   test_reverse_ops_with_index/  s   
z0TestSeriesLogicalOps.test_reverse_ops_with_indexc              	   C   s  t g dtd}t g dtd}t g dtd}||@ }t|| t g dtd}||B }t|| t g dtd}||A }t|| t g dtd}t g dtd}t g d	td}||@ }t|| t g d
td}||B }t|| t g td}|| @ }t g dtd}t|| || B }t g dtd}t|| |t dgdg@ }t g dtd}t|| |t dgdgB }t g d
td}t|| | t dgdgt tj|jt tj|jfD ]}|||B  }t|||  qt dgfD ]}|||B  }t|||  qtd}t g d}dD ]}	t g d|d|	B }t g d|d}t|| q/d}
tjdfD ]}	t	j
t|
d ||	B  W d    n	1 skw   Y  qRdD ]}	t g d|d|	B }t g d|d}t|| qtdD ]}	t g d|d|	@ }t g d|d}t|| qdD ]}	t g d|d|	@ }t g d|d}t|| qd}
tjfD ]}	t	j
t|
d ||	@  W d    n	1 sw   Y  qd S )Nr"   r!   )FTFrW   TTFrU   )FTFTabcd)FTFFrf   r   r%   r/   z)FFFFabcz)Tr/   r   r#   )TTTr=   foor>   )Fr   )Tr/   )r   r&   r   r   r   copyr   r   r$   rB   rC   rD   )r   rI   rJ   r   r   emptyer$   tvrG   r   r   r   test_logical_ops_label_basedA  s   

z1TestSeriesLogicalOps.test_logical_ops_label_basedc                 C   s`  t g dtddd}t g dtddd}t g dtddd}t||@ | t||@ | t g d	tddd}t||B | t g d
tddd}t||B | t| | @ |  t| | @ |  tdddtjtjgitdd}t| | B |  t| | B |  t g dtddd}t g dtddd}t g dtddd}t||@ | t||@ | t g d	tddd}t||B | t g dtddd}t||B | t| | @ |  t| | @ |  t| | B |  t| | B |  d S )Nr"   ABCx)r$   namery   ABD)TFFFABCD)TTTFrf   Tr#   )TTTTrg   )	r   r&   r   r   rc   to_framer   r   r   )r   s1s2expexp_or1exp_ors3s4r   r   r   test_logical_ops_df_compat  s6     z/TestSeriesLogicalOps.test_logical_ops_df_compatN)"__name__
__module____qualname__rB   markparametrizeoperatorand_or_xorr    r+   r:   r<   rH   rM   rN   rP   rQ   rT   r[   r`   rd   rs   rt   r   rand_ror_rv   r   rxorrx   r   r   r   r   r   r   r      sF    
# 



er   )r   r   numpyr   rB   pandasr   r   r   r   pandas._testing_testingr   pandas.corer   r   r   r   r   r   <module>   s    