
    bMh                     *   d 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  ej        eeg          d             Z ej         ed           ed          f ed	           ed          fd
gd           d             Z G d d          ZdS )zHTests for Interval-Interval operations, such as overlaps, contains, etc.    N)IntervalIntervalIndex	Timedelta	Timestamp)IntervalArray)paramsc                     | j         S )z>
    Fixture for testing both interval container classes.
    paramrequests    j/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/arrays/interval/test_overlaps.pyconstructorr      s    
 =    z0 days1 day
2018-01-01)r      c                 6    t          | d                   j        S )Nr   type__name__xs    r   <lambda>r      s    $qt**% r   )r   idsc                     | j         S )z
    Fixture for generating intervals of different types from a start value
    and a shift value that can be added to start to generate an endpoint.
    r
   r   s    r   start_shiftr      s     =r   c            
           e Zd Zd Zej                            deeg          d             Z	d Z
ej                            dddd ed	           ed
          gd           d             ZdS )TestOverlapsc           	         |\  }}t          ||d|z  z   |          }||d|z  z   f||z   |d|z  z   f||z
  |d|z  z   f|d|z  z   |d|z  z   f|d|z  z   |d|z  z   f|d|z  z   |d|z  z   fg}|                    ||          }	|j        o|	j        }
t	          j        dddd|
dg          }|	                    |          }t          j        ||           d S )N            TF)	r   from_tuplesclosed_rightclosed_leftnparrayoverlapstmassert_numpy_array_equal)selfr   r   closedother_closedstartshiftintervaltuplesinterval_containeradjacentexpectedresults                r   test_overlaps_intervalz#TestOverlaps.test_overlaps_interval(   s(   "uE51u9#4lCC EAI%&U]EAI-.U]EAI-.QYE	 12QYE	 12QYE	 12
 )44VVDD(K-?-K8T4tXuEFF#,,X66
#FH55555r   other_constructorc                     |                     t          d                    }|                     t          d                    }t          j        t          d          5  |                    |           d d d            d S # 1 swxY w Y   d S )Nr$   z^$match)from_breaksrangepytestraisesNotImplementedErrorr*   )r-   r   r9   r4   other_containers        r    test_overlaps_interval_containerz-TestOverlaps.test_overlaps_interval_container<   s     )44U1XX>>+77aAA].d;;; 	9 	9''888	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9s    BB
Bc                 $   |\  }}t          |||z             }|||z   ft          j        |d|z  z   |d|z  z   fg}|                    |          }t          j        g d          }|                    |          }	t          j        |	|           dS )zNA values are marked as Falser"   r!   )TFFN)r   r(   nanr%   r)   r*   r+   r,   )
r-   r   r   r0   r1   r2   r3   r4   r6   r7   s
             r   test_overlaps_nazTestOverlaps.test_overlaps_naD   s    "uE55=11 EEM"FQYE	 12

 )44V<<800011#,,X66
#FH55555r   other
   Tfoor   r   c                 *    t          |           j        S )Nr   r   s    r   r   zTestOverlaps.<lambda>W   s    d1gg& r   )r   c                 
   |                     t          d                    }dt          |          j         }t	          j        t          |          5  |                    |           d d d            d S # 1 swxY w Y   d S )Nr$   z#`other` must be Interval-like, got r;   )r=   r>   r   r   r?   r@   	TypeErrorr*   )r-   r   rG   r4   msgs        r   test_overlaps_invalid_typez'TestOverlaps.test_overlaps_invalid_typeT   s     )44U1XX>>JDKK4HJJ]9C000 	/ 	/''...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/s   A88A<?A<N)r   
__module____qualname__r8   r?   markparametrizer   r   rC   rF   r   r   rN    r   r   r   r   '   s        6 6 6( [0=-2PQQ9 9 RQ96 6 6  [	T5))G,,ii.E.EF&&   
/ / 
/ / /r   r   )__doc__numpyr(   r?   pandasr   r   r   r   pandas._testing_testingr+   pandas.core.arraysr   fixturer   r   r   rS   r   r   <module>r[      s]   N N                       , , , , , , }5666  76 	8		ii001	<	 	 ))G"4"45
 	&%    6/ 6/ 6/ 6/ 6/ 6/ 6/ 6/ 6/ 6/r   