o
    5c1%                     @   sl   d dl Zd dlZd dlZd dlmZmZ d dlmZ	 d dl
mZ d dlmZ G dd dZG dd dZdS )	    N)TimedeltaIndextimedelta_range)
Int64Index)Hourc                   @   sf  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	dd Z
dd Zejdddgdd Zdd Zejdedddddedd dddfedddd!dedd dd"dfedd#ddddd" eg ddd$fgd%d& Zejdeg d'dd(ed)d*gdd(feg d+d!d(ed,d)gd"d(feg d-dd(d"d"d. eg d-dd(fgd/d0 Zd"S )1TestTimedeltaIndexc                 C   sr   t ddd}t ddd}||}t ddd}t|| ttddd}t d	d
dd}|| || d S )N1day   periods3day   r         1 day
   D)startr
   freq)r   uniontmassert_index_equalr   nparange)selfi1i2resultexpected r   a/var/www/html/gps/gps/lib/python3.10/site-packages/pandas/tests/indexes/timedeltas/test_setops.py
test_union   s   

zTestTimedeltaIndex.test_unionc                 C   sr   t ddd}|dd  }|d d }||sJ ||}t|| |j|dd}tg d}t|| d S )Nr   r   r	      Fsort)z4 Daysz5 Daysz1 Daysz2 Dayz3 Days)r   _can_fast_unionr   r   r   r   )r   tdileftrightr   r   r   r   r   test_union_sort_false   s   
z(TestTimedeltaIndex.test_union_sort_falsec                 C   sd   t g d}t | dd}||}t|| |d d |}t|| |j|jks0J d S )N)3d1d2dinferr   r   )r   sort_valuesr   r   r   r   )r   idxorderedr   r   r   r   test_union_coverage-   s   
z&TestTimedeltaIndex.test_union_coveragec                 C   sN   t dddd}t dddd}||}ttt|t|B }t|| d S )Nr      3Hr
   r   4H)r   r   r   sortedsetr   r   )r   rng_arng_br   expr   r   r   test_union_bug_17308   s
   
z&TestTimedeltaIndex.test_union_bug_1730c                 C   sH   t dg}t g d}||}t tt|t|B }t|| d S )Nz1 day 15:19:49.695000)z2 day 13:04:21.322000z1 day 15:27:24.873000z1 day 15:31:05.350000)r   r   r6   r7   r   r   r   r&   r'   r   r:   r   r   r   test_union_bug_1745A   s   

z&TestTimedeltaIndex.test_union_bug_1745c                 C   sL   t dd}|tjd }||}ttt|t|B }t	|| d S )Nr   30d   )
r   pdoffsetsMinuter   r   r6   r7   r   r   r<   r   r   r   test_union_bug_4564L   s
   

z&TestTimedeltaIndex.test_union_bug_4564c                 C   sh   t ddd}|g d }|g d }|jd u sJ |jd u s J ||}t|| |jdks2J d S )Nz1 Dayr   r	   )r      r!   r2   )r   r!   rD   r   )r   r   r   r   r   )r   r%   r&   r'   r   r   r   r   test_union_freq_inferU   s   
z(TestTimedeltaIndex.test_union_freq_inferc                 C   s   t dddd}|tjd }tt ||@ }W d    n1 s#w   Y  t|dks0J t dddd}|tjd }tt ||@ }W d    n1 sSw   Y  t dd	dd}t|| |j	|j	ksmJ d S )
Nr   r2   hr4   r   r   rD   z1 day 01:00:00r!   )
r   r@   rA   r   r   assert_produces_warningFutureWarninglenr   r   )r   index_1index_2r   r   r   r   r   test_intersection_bug_1708d   s   

z-TestTimedeltaIndex.test_intersection_bug_1708c                 C   sp   t dddd}t dddd}|j||d}|d u r!t||  t||s)J |j||d}||u s6J d S )Nr   r2   rF   r4   r"   )r   intersectionr   r   r.   equalContents)r   r#   firstsecond	intersectinterr   r   r   test_intersection_equalu   s   z*TestTimedeltaIndex.test_intersection_equalzperiod_1, period_2)r   r2   )r2   r   c                 C   sH   t d|dd}t d|dd}t dddd}|j||d}t|| d S )Nr   rF   r4   r   r"   )r   rM   r   r   )r   period_1period_2r#   rJ   rK   r   r   r   r   r   test_intersection_zero_length   s
   z0TestTimedeltaIndex.test_intersection_zero_lengthc                 C   sR   t dddd}t dddd}|j||d}||usJ ||us!J t|| d S )Nr   r   rF   r4   r!   r"   )r   rM   r   assert_copy)r   r#   rJ   rK   r   r   r   r   test_zero_length_input_index   s   z/TestTimedeltaIndex.test_zero_length_input_indexzrng, expectedr   r   rF   r/   r
   r   namer2   otherNr   )r   rZ   c                 C   s^   t ddddd}|j||d}|d u r| }t|| |j|jks%J |j|jks-J d S )Nr   r2   rF   r/   rY   r"   )r   rM   r.   r   r   rZ   r   r   rngr   r#   baser   r   r   r   test_intersection   s   z$TestTimedeltaIndex.test_intersection)5 hour2 hour4 hourz9 hourrZ   ra   rb   )ra   r`   r`   1 hourrd   rd   ra   rb   z3 hourc                 C   s   t g ddd}|j||d}|d u r| }t|| |j|jks%J t||d d d kr>|d u r>t|jt	s<J d S |jd u sEJ d S )Nre   r/   rc   r"   rf   )
r   rM   r.   r   r   rZ   all
isinstancer   r   r\   r   r   r   test_intersection_non_monotonic   s   z2TestTimedeltaIndex.test_intersection_non_monotonic)__name__
__module____qualname__r    r(   r1   r;   r=   rC   rE   rL   rS   pytestmarkparametrizerV   rX   r   r   r_   ri   r   r   r   r   r      sV    		
	

r   c                   @   s   e Zd Zdd Zdd ZdS )TestTimedeltaIndexDifferencec                 C   s   t dddd}t dddd}tddgd d}|||}t|| td|| t dddd}|||}tddgd d}t|| td|| d S )	N0 days5 daysr   r-   1 days4 daysr   2 days)r   r   
differencer   r   assert_attr_equal)r   r#   indexr[   r   idx_diffr   r   r   test_difference_freq   s   z1TestTimedeltaIndexDifference.test_difference_freqc                 C   s   t g d}tdddd}|||}t ddgd d}|d u r#| }t|| td|| td	ddd}|||}t ddgd d}|d u rM| }t|| td|| d S )
N)rr   z3 daysru   rt   rs   rq   rs   rt   r   r-   rr   rq   r   ru   )r   r   rv   r.   r   r   rw   )r   r#   rx   r[   ry   r   r   r   r   test_difference_sort   s"   z1TestTimedeltaIndexDifference.test_difference_sortN)rj   rk   rl   rz   r{   r   r   r   r   rp      s    rp   )numpyr   rm   pandasr@   r   r   pandas._testing_testingr   pandas.core.apir   pandas.tseries.offsetsr   r   rp   r   r   r   r   <module>   s     K