
    dJ                         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
             Z G d d          Z G 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                 6    t          | d                   j        S )Nr   type__name__xs    a/var/www/html/t/fyr/venv311/lib/python3.11/site-packages/pandas/tests/scalar/interval/test_ops.py<lambda>r      s    $qt**%     )paramsidsc                     | 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)requests    r   start_shiftr      s     =r   c            
           e Zd Zd Zd Zd Zd Zej        	                    dddd e
d	           ed
          gd           d             ZdS )TestOverlapsc                 f    |\  }}t          |||z   |          }|                    |          sJ d S Nr   overlaps)selfr   closedstartshiftintervals         r   test_overlaps_selfzTestOverlaps.test_overlaps_self   s@    "uE55=&99  *******r   c                     |\  }}t          ||d|z  z   |          }t          ||z   |d|z  z   |          }|                    |          sJ d S )N      r   r   r   r    other_closedr!   r"   	interval1	interval2s           r   test_overlaps_nestedz!TestOverlaps.test_overlaps_nested!   se    "uUEAI$5|DD	UU]EAI,=vFF	 !!),,,,,,,r   c                     |\  }}t          |||z   |          }t          |d|z  z   |d|z  z   |          }|                    |          rJ d S )Nr'   r&   r   r(   s           r   test_overlaps_disjointz#TestOverlaps.test_overlaps_disjoint)   se    "uUEEM<@@	UQY.E	0A6JJ	 %%i0000000r   c                     |\  }}t          |||z   |          }t          ||z   |d|z  z   |          }|                    |          }|j        o|j        }	||	k    sJ d S )Nr'   )r   r   closed_rightclosed_left)
r   r   r    r)   r!   r"   r*   r+   resultexpecteds
             r   test_overlaps_endpointz#TestOverlaps.test_overlaps_endpoint1   sz    "uUEEM<@@	UU]EAI,=vFF	 ##I..)Ci.C!!!!!!r   other
   Tfoor   r   c                 *    t          |           j        S r   r   r   s    r   r   zTestOverlaps.<lambda>>   s    d1gg& r   )r   c                     t          dd          }dt          |          j         }t          j        t
          |          5  |                    |           d d d            d S # 1 swxY w Y   d S )Nr   r	   z!`other` must be an Interval, got match)r   r   r   pytestraises	TypeErrorr   )r   r5   r#   msgs       r   test_overlaps_invalid_typez'TestOverlaps.test_overlaps_invalid_type;   s     Aq>>H$u++2FHH]9C000 	% 	%e$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%s   A&&A*-A*N)r   
__module____qualname__r$   r,   r.   r4   r<   markparametrizer   r   r@    r   r   r   r      s        + + +
- - -1 1 1" " " [	T5))G,,ii.E.EF&&   
% % 
% % %r   r   c                   n   e Zd Zd Zd Z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                         ZdS )TestContainsc                     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+   s       r   test_contains_intervalz#TestContains.test_contains_intervalH   s    Q6**	Q#>??	I%%%%I%%%%I%%%%	))-HF-R-R-R-R))-R-Rr   c                     t          ddd          }t          t          d          t          d          d          }||v sJ ||vsJ d S )Nr   r	   rI   z-infinfneither)r   float)r   r*   r+   s      r   test_contains_infinite_lengthz*TestContains.test_contains_infinite_lengthP   sX    Q6**	U6]]E%LL)DD	I%%%%	))))))r   c                     t          ddd          }t          ddd          }t          ddd          }||vsJ ||v sJ ||vr||vsJ ||vr||vsJ d S )Nr   r	   rI   g      ?rJ   )r   r*   r+   	interval3s       r   test_contains_zero_lengthz&TestContains.test_contains_zero_lengthV   s    Q6**	RV,,	S#v..		))))I%%%%	))iy.H.H.H.H	))iy.H.H.H.H.H.Hr   type1r   i  r	   r   0h1htype2c                     t          | }t          | }||k    r||v sJ d S d}t          j        t          |          5  ||v  d d d            d S # 1 swxY w Y   d S )Nz(^'<=' not supported between instances ofr:   )r   r<   r=   r>   )r   rV   rY   r*   r+   r?   s         r   test_contains_mixed_typesz&TestContains.test_contains_mixed_types_   s    " e$	e$	E>>	))))))<Cy444 ' 'Y&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 's   AAAN)r   rA   rB   rL   rQ   rU   r<   rC   rD   r   r   r[   rE   r   r   rG   rG   G   s.       S S S* * *I I I [YtQ1%%yyq!Q'?'?@Yt__iioo.	
  [YtQ1%%yyq!Q'?'?@Yt__iioo.	
 ' '   ' ' 'r   rG   )
__doc__r<   pandasr   r   r   fixturer   r   rG   rE   r   r   <module>r_      s   N N           	8		ii001	<	 	 ))G"4"45
 	&%    )% )% )% )% )% )% )% )%X0' 0' 0' 0' 0' 0' 0' 0' 0' 0'r   