o
    5cD                  
   @   s   d dl m Z mZ d dlmZmZmZ d dlZd dl	Z	d dl
mZ d dlmZmZmZmZ G dd dZdd Zeed	d
ed	d
ed	d
ed	d
ed	d
ed	d
dd ZdS )    )datetime	timedelta)assumegiven
strategiesN)Index
Int64Index
RangeIndexUInt64Indexc                   @   s  e Zd Zejdeeegdd Z	dd Z
dd Zdd	 Zd
d Zejjdedddedddedddedddfedddedddedddedddfedddedddedddedddfedddedddedddedddfedddedddedddedddfedddedddedddeeedddeeddd fedddedddedddeeedddeeddd fedddedddedddeeedddeeddd fedddedddedddeeedddeeddd fedddedddedddedddfeddd eddded!ddeeeddd dg fedd"dedd#d$ed"ddeeedd"ddd"g fededededfedddededddedddfedddedd%d&edd'dedd'dfedddedd(d'edddeeedddddg fedddedd)d*ed+ddedddfedddedd,dedd,dedddfeddded d-ded ddeg d.fedd/dedddeg d0eg d0fedddeg edddedddfedeg d1eg d1eg d1feddeddeddeddfgd2d3 d4d5d6 Zd7d8 Zd9d: Zd;d< Zd=d> Zd?d@ ZdAdB ZdCdD ZdEdF ZdGS )HTestRangeIndexSetOpsklassc                 C   s  t ddddd}||}|tj}||}tj||dd ||}tj||dd ||dd  }tj||dd  dd |dd  |}tj||dd  dd ||d d }tj||d d dd |d d |}tj||d d dd d S )	Nr         foostartstopstepnameTexact   )r	   astypenpfloat64intersectiontmassert_index_equal)selfr   indexfltresult r"   ]/var/www/html/gps/gps/lib/python3.10/site-packages/pandas/tests/indexes/ranges/test_setops.py"test_intersection_mismatched_dtype   s   

z7TestRangeIndexSetOps.test_intersection_mismatched_dtypec                 C   s   t ddd|d d}|j|d d |d |d}tj||d d |d dd |d d j||d |d}tj||d d |d dd d S )	Nr   r   r   r   r   sortTr   )r	   r   renamer   r   )r   r&   namesr   r!   r"   r"   r#   test_intersection_empty5   s
    " &z,TestRangeIndexSetOps.test_intersection_emptyc              	   C   sj  t dddd}ttdd}|j||d}ttt|j|j}t	|| |j||d}ttt
t|j|j}t	|| t dd}|j||d}ttt|j|j}tj	||dd	 t d
dd}|j||d}ttt|j|j}tj	||dd	 |j||d}tj	||dd	 t ddd}t d
dd}|tj|t|d}|j||dt}t	|| |j||dt}t	|| t d
dd}t d
dddd}|j||d}t ddddd}t	|| t ddd}|j||d}t ddd}t	|| t ddd}|j||d}t ddd}t	|| |j||d}t	|| d S )Nr   r   r   r   r   r   r      r%   equivr      
   r   r   )r	   r   r   aranger   r&   intersect1dvaluesr   r   asarrayr   int)r   r&   r   otherr!   expectedfirstr"   r"   r#   test_intersectionA   sT   
z&TestRangeIndexSetOps.test_intersectionc                 C   sZ   t ddd|d d}t ddd|d d}|j||d}t ddd|d d}t|| d S )Nr   r/   r   r   r2      r%   )r	   r   r   r   )r   r&   r(   r   r9   r!   r:   r"   r"   r#   %test_intersection_non_overlapping_gcd   s
   z:TestRangeIndexSetOps.test_intersection_non_overlapping_gcdc                 C   s   t dddd}tdd tdD td}|j||d	}tt||f}t|| |j||d	}tt||f}t|| d S )
Nr   r   r   r*   c                 S   s   g | ]
}t  t| qS r"   )r   nowr   ).0ir"   r"   r#   
<listcomp>   s    zATestRangeIndexSetOps.test_union_noncomparable.<locals>.<listcomp>r=   )dtyper%   )	r	   r   rangeobjectunionr   concatenater   r   )r   r&   r   r9   r!   r:   r"   r"   r#   test_union_noncomparable   s   z-TestRangeIndexSetOps.test_union_noncomparablez/idx1, idx2, expected_sorted, expected_notsortedr   r/   r   r-   r   ir.   ir            r=   r0      id   ir3   iiir1         f   2   iir+   i)r   r-   r3      )r   r   r   r=   )r   r-   r+   c                 C   s   t | tr	t| S | S )N)
isinstancer	   repr)xr"   r"   r#   <lambda>  s    zTestRangeIndexSetOps.<lambda>)idsc                 C   s   |j |d d}tj||dd |j |dd}tj||dd |j |d d}t|j|jdj |d d}tj||dd tj||dd d S )Nr%   Tr   Fr2   r,   )rF   r   r   r   _valuesr   )r   idx1idx2expected_sortedexpected_notsortedres1res2res3r"   r"   r#   test_union_sorted   s    z&TestRangeIndexSetOps.test_union_sortedc                 C   sJ   t tddd}t tddd}||}tg d}tj||dd d S )	Nr   r   r=   r   rL   )
r   r   r=   r-      	   rK            Tr   )r	   rD   rF   r   r   r   r   leftrightr!   r:   r"   r"   r#   test_union_same_step_misaligned,  s
   
z4TestRangeIndexSetOps.test_union_same_step_misalignedc                 C   s  t jtdddd}||}t jtddd}tj||dd ||d}tj||d dd ||d d	 }tj||d	d  dd ||d
d  }tj||d d
 dd |d d d |d
d  }tj||d d
 dd |d d d j|d
d  dd}tj||d d
 d d d dd |d d d |d
d  d d d }tj||d d
 dd |d d d j|d
d  d d d dd}tj||d d
 d d d dd ||dd }tg ddd}t|| d S )Nr   r/   r   r2   r   Tr   barrT   rS   r.   Fr%   r   r+   )r   r      rc   rd   )r	   
from_rangerD   
differencer   r   r'   r   r   objr!   r:   r"   r"   r#   test_difference5  s*   
 "&*"z$TestRangeIndexSetOps.test_differencec                 C   s   t tdd d d }t tdd}||}t td}tj||dd |j|dd}|d d d }tj||dd tdd	}|j|d d}|d d d }tj||dd d S )
Nr=   r.   rT   Tr   Fr%   r/   rK   )r   rD   ro   r   r   )r   idxr9   r!   r:   r"   r"   r#   test_difference_sortY  s   

z)TestRangeIndexSetOps.test_difference_sortc                 C   s   t jtdddd}||d d d }|dd d }tj||dd |d d d j|d d d d	d
}tj||d d d dd ||dd d }|d d d }tj||dd |d d d j|dd d d	d
}tj||d d d dd d S )Nr   r/   r   r2   r   Tr   r.   Fr%   )r	   rn   rD   ro   r   r   rp   r"   r"   r#   test_difference_mismatched_stepm  s   ""z4TestRangeIndexSetOps.test_difference_mismatched_stepc                 C   sX   t td}t tdd}||}t ddd}| ddgks"J tj||dd d S )Nr=   r   rT   r   Tr   )r	   rD   ro   tolistr   r   rh   r"   r"   r#   4test_difference_interior_overlap_endpoints_preserved~  s   
zITestRangeIndexSetOps.test_difference_interior_overlap_endpoints_preservedc                 C   sV   t ddd}t ddd}||}t ddd}| ddgks!J tj||d	d
 d S )Nir   rm   re   irS   r.   r+   Tr   )r	   ro   rv   r   r   rh   r"   r"   r#   4test_difference_endpoints_overlap_interior_preserved  s   
zITestRangeIndexSetOps.test_difference_endpoints_overlap_interior_preservedc                 C   s  t td}|dd }||}tg d}tj||dd |d d d }||}tg d}tj||dd t td}|d dd	 }||}tg d
ttdd }tj||dd |ddd	 }||}tg dttdd }tj||dd d S )Nr/   rT   r=   )	r   r   r   r=   r-   r+   rm   rc   rd   Tr   )r   r   r=   r-   rm   rc   r   r   )r   rT   r-   rm   rd   r   rJ   )r   r   r=   r+   rc   r/   )r   rD   ro   r   r   r   list)r   rs   r9   r!   r:   rq   r"   r"   r#   'test_difference_interior_non_preserving  s$   



z<TestRangeIndexSetOps.test_difference_interior_non_preservingc                 C   s   t jtdddd}||}t jtddd}t|| ||d}t||d  |d d |dd  }tg d	dd}t|| t tdd
}||}t tdd
}t|| ||dd  }tg d}t|| d S )Nr   r/   r   r2   r   rl   r0   r   )r   r   rc   rd      )r   r   rT   r=   r-   r+   rm   rc   rd   rJ   rK   re      )r	   rn   rD   symmetric_differencer   r   r'   r   )r   ri   r!   r:   rj   r"   r"   r#   test_symmetric_difference  s    

z.TestRangeIndexSetOps.test_symmetric_differenceN)__name__
__module____qualname__pytestmarkparametrizer	   r   r
   r$   r)   r<   r>   rH   ry   rD   rb   rk   rr   rt   ru   rw   rx   rz   r~   r"   r"   r"   r#   r      s   
?






















"


"


"


"









































  	  
	$		r   c                 C   sN   t | ts!t| dkr#| dd | dd  }||d k r%J dS dS dS )zp
    Check that we either have a RangeIndex or that this index *cannot*
    be represented as a RangeIndex.
    r   Nr.   r   )rU   r	   lenall)r   diffr"   r"   r#    assert_range_or_not_is_rangelike  s
   r   rI   r   c           
      C   s   t |dk t |dk t| ||}t|||}|j|d d}t| t|jt|d d}	tj||	dd |j|dd}t| t|jt|dd}	tj||	dd d S )Nr   r%   r,   r   F)r   r	   ro   r   r   r   r   )
start1stop1step1start2stop2step2ri   rj   r!   altr"   r"   r#   test_range_difference  s   r   )r   r   
hypothesisr   r   r   stnumpyr   r   pandas._testing_testingr   pandas.core.indexes.apir   r   r	   r
   r   r   integersr   r"   r"   r"   r#   <module>   s(       2






