o
    1فi                      @   sZ   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dZdddZG d	d
 d
ZdS )    N)IndexIntervalIndex	Timestampinterval_rangeint64rightc                 C   s   t jtj| ||d|dS N)dtypeclosed)r   from_breaksnparange)startendr	   r    r   j/home/test-dt/pcm-url-check/venv/lib/python3.10/site-packages/pandas/tests/indexes/interval/test_setops.pymonotonic_index   s   r   c                 C   s   t tjg | d|dS r   )r   r   arrayr	   r   r   r   r   empty_index   s   r   c                   @   sj   e Z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dg ddd ZdS )TestIntervalIndexc                 C   s   t dd|d}t dd|d}t dd|d}|d d d j||d}|dv r,t|| nt| | |d d d j||d}|dv rKt|| nt| | t|j||d| t|j|d d	 |d| d S )
Nr      r
         sortNT   )r   uniontmassert_index_equalsort_valuesselfr   r   indexotherexpectedresultr   r   r   
test_union   s   "zTestIntervalIndex.test_unionc                 C   s   t d|d}|j||d}t|| t d|d}|j||d}|}t|| |j||d}t|| t d|d}|j||d}t|| |j||d}t|| d S )Nr   r   r   float64uint64)r   r    r!   r"   )r%   r   r   r&   r)   r'   r(   r   r   r   test_union_empty_result*   s   z)TestIntervalIndex.test_union_empty_resultc                 C   s|  t dd|d}t dd|d}t dd|d}|d d d j||d}|dv r,t|| nt| | |d d d j||d}|dv rKt|| nt| | t|j||d| tg d	}td
dg}td
dg}||}t|| tddg}tddg}tdg}||}t|| ttjtjg}ttjg}ttjg}||}t|| d S )Nr   r   r
   r   r   r   r   r   )r      r      )r      r   r/   r.   r0   )r   r1   r3   )	r   intersectionr!   r"   r#   r   from_tuplesr   nanr$   r   r   r   test_intersection@   s6   


z#TestIntervalIndex.test_intersectionc                 C   s   t dd|d}t dd|d}td|d}|j||d}t|| t ddd	|d}|j||d}|d d }t|| t ddd
|d}|j||d}t|| d S )Nr   r   r
   i,  i:  r   r   r   r+   r,   )r   r   r4   r!   r"   r$   r   r   r   test_intersection_empty_resulth   s   z0TestIntervalIndex.test_intersection_empty_resultc                 C   sD   t g d}t ddg}t ddg}||}t|| d S )N)r.   r.   r/   r1   )r1   r2   r.   r9   )r   r5   r4   r!   r"   )r%   r&   r'   r(   r)   r   r   r   test_intersection_duplicates{   s
   
z.TestIntervalIndex.test_intersection_duplicatesc                 C   s   t jg dg d|d}|j|d d |d}|dd  }|d u r%| }t|| |j||d}td|d}t|| t j|jd|j	|d}|j||d}t|| d S )	N)r   r   r1   r/   )r   r/   r1   r2   r
   r   r   r   r   r+   )
r   from_arrays
differencer#   r!   r"   r   leftastyper   r%   r   r   r&   r)   r(   r'   r   r   r   test_difference   s   z!TestIntervalIndex.test_differencec                 C   s   t dd|d}|dd  j|d d |d}t|d |d g}|dv r+t|| nt| | |j||d}td|d	}|dv rKt|| nt| | tj|j	d
|j
|d}|j||d}td
|d	}t|| d S )Nr   r   r
   r   r   r   r   r   r   r+   )r   symmetric_differencer   r!   r"   r#   r   r;   r=   r>   r   r?   r   r   r   test_symmetric_difference   s"   z+TestIntervalIndex.test_symmetric_differencez/ignore:'<' not supported between:RuntimeWarningop_name)r    r4   r<   rA   c           
      C   s  t dd|d}t||}|dkr|}nt|d|tg d}|tg d|d}t|| h d|h D ]'}t dd|d}	t|t||	|d}|dkrS|}||	|d}t|| q8ttd	d
|d}	t|t||	|d}|dkr{|}||	|d}t|| d S )Nr   r   r
   r<   O)r   r/   r1   r   >   bothr=   r   neither20180101	   )periodsr   )	r   getattrr>   r   r!   r"   objectr   r   )
r%   r   rC   r   r&   set_opr(   r)   other_closedr'   r   r   r   test_set_incompatible_types   s(   
z-TestIntervalIndex.test_set_incompatible_typesN)__name__
__module____qualname__r*   r-   r7   r8   r:   r@   rB   pytestmarkfilterwarningsparametrizerN   r   r   r   r   r      s    (
r   )r   r   )numpyr   rR   pandasr   r   r   r   pandas._testing_testingr!   r   r   r   r   r   r   r   <module>   s    

