a
    Gb                     @   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   Zfrom_breaksnpZarange)startendr	   r    r   Hlib/python3.9/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   Z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 u rVt|| t||sfJ |d d d j||d}|d u rt|| t||sJ t|j||d| t|j|d d |d| d S )	Nr      r
         sort   )r   uniontmassert_index_equalequalContents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   sx  t dd|d}t dd|d}t dd|d}|d d d j||d}|d u rVt|| t||sfJ |d d d j||d}|d u rt|| t||sJ 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,   )r   r-   r/   )	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   r0   r   r   r    r   r   r   test_intersection_empty_resultd   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+   r-   )r-   r.   r*   r5   )r   r1   r0   r   r   )r!   r"   r#   r$   r%   r   r   r   test_intersection_duplicatesw   s
    
z.TestIntervalIndex.test_intersection_duplicatesc                 C   s   t jg dg d|d}|j|d d |d}|dd  }|d u rJ| }t|| |j||d}td|d}t|| t j|jd|j	|d}|j||d}t|| d S )	N)r   r   r-   r+   )r   r+   r-   r.   r
   r   r   r   r   r'   )
r   from_arrays
differenceZsort_valuesr   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 u rTt|| t||sdJ |j||d}td|d}|d u rt|| t||sJ tj|j	d	|j
|d}|j||d}td	|d}t|| d S )
Nr   r   r
   r   r   r   r   r   r'   )r   symmetric_differencer   r   r   r   r   r7   r9   r:   r   r;   r   r   r   test_symmetric_difference   s"    z+TestIntervalIndex.test_symmetric_differencez/ignore:'<' not supported between:RuntimeWarningop_name)r   r0   r8   r=   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 ]N}t dd|d}	t|t||	|d}|dkr|}||	|d}t|| qpttd	d
|d}	t|t||	|d}|dkr|}||	|d}t|| d S )Nr   r   r
   r8   O)r   r+   r-   r   >   r   Zbothr9   ZneitherZ20180101	   )Zperiodsr   )	r   getattrr:   r   r   r   objectr   r   )
r!   r   r?   r   r"   Zset_opr$   r%   Zother_closedr#   r   r   r   test_set_incompatible_types   s(    
z-TestIntervalIndex.test_set_incompatible_typesN)__name__
__module____qualname__r&   r)   r3   r4   r6   r<   r>   pytestZmarkfilterwarningsZparametrizerD   r   r   r   r   r      s   &
r   )r   r   )r   r   )Znumpyr   rH   Zpandasr   r   r   r   Zpandas._testingZ_testingr   r   r   r   r   r   r   r   <module>   s   

