o
    dJ                     @   sx   d Z ddlZddlmZmZmZ ejededfededfdgdd	 d
dd ZG dd dZG dd dZ	dS )zHTests for Interval-Interval operations, such as overlaps, contains, etc.    N)Interval	Timedelta	Timestampz0 days1 day
2018-01-01r      c                 C   s   t | d jS )Nr   type__name__x r   j/var/www/html/visualizacion-main/env/lib/python3.10/site-packages/pandas/tests/scalar/interval/test_ops.py<lambda>   s    r   )paramsidsc                 C   s   | j S )z
    Fixture for generating intervals of types from a start value and a shift
    value that can be added to start to generate an endpoint
    )param)requestr   r   r   start_shift   s   r   c                   @   s\   e Zd Zdd Zdd Zdd Zdd Zejj	d	d
dde
dedgdd ddd ZdS )TestOverlapsc                 C   s*   |\}}t ||| |}||sJ d S Nr   overlaps)selfr   closedstartshiftintervalr   r   r   test_overlaps_self   s   zTestOverlaps.test_overlaps_selfc                 C   sF   |\}}t ||d|  |}t || |d|  |}||s!J d S )N      r   r   r   r   other_closedr   r   	interval1	interval2r   r   r   test_overlaps_nested!   s   z!TestOverlaps.test_overlaps_nestedc                 C   sF   |\}}t ||| |}t |d|  |d|  |}||r!J d S )Nr!   r    r   r"   r   r   r   test_overlaps_disjoint)   s   z#TestOverlaps.test_overlaps_disjointc           
      C   sV   |\}}t ||| |}t || |d|  |}||}|jo"|j}	||	ks)J d S )Nr!   )r   r   closed_rightclosed_left)
r   r   r   r#   r   r   r$   r%   resultexpectedr   r   r   test_overlaps_endpoint1   s   
z#TestOverlaps.test_overlaps_endpointother
   Tfoor   r   c                 C   s
   t | jS r   r	   r   r   r   r   r   >   s   
 zTestOverlaps.<lambda>)r   c                 C   sX   t dd}dt|j }tjt|d || W d    d S 1 s%w   Y  d S )Nr   r   z!`other` must be an Interval, got match)r   r
   r   pytestraises	TypeErrorr   )r   r-   r   msgr   r   r   test_overlaps_invalid_type;   s
   
"z'TestOverlaps.test_overlaps_invalid_typeN)r   
__module____qualname__r   r&   r'   r,   r2   markparametrizer   r   r6   r   r   r   r   r      s    
r   c                   @   s   e Zd Zdd Zdd Zdd Zejdde	d	d
d
de	d	d
d
d
fe
de
dfgejdde	d	d
d
de	d	d
d
d
fe
de
dfgdd ZdS )TestContainsc                 C   sX   t ddd}t dd|}||v sJ ||v sJ ||v sJ ||vs(|dks*J d S d S )Nr   r   bothr   )r   inclusive_endpoints_fixturer$   r%   r   r   r   test_contains_intervalH   s   z#TestContains.test_contains_intervalc                 C   s<   t ddd}t tdtdd}||v sJ ||vsJ d S )Nr   r   r<   z-infinfneither)r   float)r   r$   r%   r   r   r   test_contains_infinite_lengthP   s   z*TestContains.test_contains_infinite_lengthc                 C   sh   t ddd}t ddd}t ddd}||vsJ ||v sJ ||vr&||vs(J ||vr0||vs2J d S )Nr   r   r<   g      ?r=   )r   r$   r%   	interval3r   r   r   test_contains_zero_lengthV   s   z&TestContains.test_contains_zero_lengthtype1r   i  r   r   0h1htype2c                 C   sh   t | }t | }||kr||v sJ d S d}tjt|d ||v  W d    d S 1 s-w   Y  d S )Nz(^'<=' not supported between instances ofr0   )r   r2   r3   r4   )r   rG   rJ   r$   r%   r5   r   r   r   test_contains_mixed_types_   s   
"z&TestContains.test_contains_mixed_typesN)r   r7   r8   r?   rC   rF   r2   r9   r:   r   r   rK   r   r   r   r   r;   G   s&    	r;   )
__doc__r2   pandasr   r   r   fixturer   r   r;   r   r   r   r   <module>   s    
,