o
    Mf1                     @   sR   d dl Zd dlZd dlZd dlmZmZmZ d dlm	Z
 dd ZG dd dZdS )    N)PeriodIndex
date_rangeperiod_rangec                 C   s   |  tjdt| S )N   )takenprandomdefault_rngpermutationlen)obj r   i/var/www/html/analyze/labelStudio/lib/python3.10/site-packages/pandas/tests/indexes/period/test_setops.py_permute   s   r   c                   @   sX   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	e
jddd ZdS )TestPeriodIndexc              
   C   s  t dddd}t dddd}tg ddd}t dddd}t dddd}t ddd	d}t dddd}tg dd}	t dddd}
t d
ddd}t dddd}tg ddd}tg ddd}tg ddd}tg ddd}t dddd}t dddd}t dddd}t dddd}t ddd	d}tg ddd}tg ddd}t dddd}tg ddd}|||f|||f||	|
f|||f|||f|||f|||f|||ffD ]\}}}|j||d}|d u r| }t|| qd S )N1/1/2000D   freqperiods1/6/2000)
z
2000-01-06z
2000-01-07z
2000-01-08z
2000-01-09z
2000-01-10
2000-01-01z
2000-01-02z
2000-01-03z
2000-01-04z
2000-01-05r   1/4/2000   2000-01-01 09:00h2000-01-02 09:00)
r   2000-01-01 10:002000-01-01 11:002000-01-01 12:002000-01-01 13:00r   z2000-01-02 10:00z2000-01-02 11:00z2000-01-02 12:00z2000-01-02 13:00)2000-01-01 09:012000-01-01 09:032000-01-01 09:05min)r#   r%   2000-01-01 09:08)r#   r$   r%   r'   r   M   
2000-04-01
   z
2003-01-01Y
1998-01-01)
20032004200520062007199819992000200120021/3/20001/2/2000r   1/5/2000r   )
r9   r:   r   r;   r   r   z1/7/2000z1/8/2000z1/9/2000z	1/10/2000sort)r   r   unionsort_valuestmassert_index_equal)selfr=   other1rng1	expected1rng2other2	expected2rng3other3	expected3rng4other4	expected4rng5other5	expected5rng6other6	expected6rng7other7	expected7rng8other8	expected8rngotherexpectedresult_unionr   r   r   
test_union   sv   

zTestPeriodIndex.test_unionc                 C   s   t dddd}|d d j|dd  |d}t|| t|d d jt|dd  |d}|du r<t| | nt|| t dddd}t ddd	d}|j||d}|tj|t|d}t|| d S )
Nr   	1/20/2000r   r   r+   r<   FW-WED)r   r>   r@   rA   r   r?   astypeobject)rB   r=   indexresultindex2r]   r   r   r   test_union_misc   s   &zTestPeriodIndex.test_union_miscc           	      C   s  t dddd}|d d j|dd  |d}t||dd  t|d d }t|dd  }|j||d}|du rHt| |dd  n
t||dd  t dddd}t ddd	d}|j||d}tjg td
}t|| t dddd}|j||d}t|| d S )Nr   r`   r   r   ra   r+   r<   Frb   )dtype2D)	r   intersectionr@   rA   r   r?   pdIndexrd   )	rB   r=   re   rf   leftrightrg   r]   index3r   r   r   test_intersection   s"   z!TestPeriodIndex.test_intersectionc                 C   s  t ddddd}t ddddd}t ddddd}t ddddd}t dddd d}t d	d
ddd}tg ddd}||f||f||ffD ]!\}	}
|j|	|d}t||
 |j|
jks[J |j|
jkscJ qBtg dddd}tg dddd}tddgddd}tg dddd}tddgdd d}t d	d
ddd}tg ddd}||f||f||ffD ](\}	}
|j|	|d}|d u r|
 }
t||
 |j|
jksJ |jdksJ qtdddd}	|	dd |	}t	|dksJ |	|	dd }t	|dksJ d S )Nz6/1/2000z	6/30/2000r   idx)r   namez	5/15/2000z	6/20/2000r\   z7/1/2000z	7/31/2000)rs   r   r<   )z
2011-01-05
2011-01-04
2011-01-02
2011-01-03)rt   ru   z
2011-02-02z
2011-02-03rt   ru   z	6/15/2000r&   r   r   )
r   r   rk   r@   rA   rs   r   r?   r   r   )rB   r=   baserF   rH   rI   rK   rL   rN   r[   r]   rf   r   r   r   test_intersection_cases   sb   z'TestPeriodIndex.test_intersection_casesc              	   C   s  g d}t |dd}tdddd}|}t |dd}tdddd}t g ddd}t |dd}	t g dd}
|	}g d	}t |d
d}tdd
dd}|}t g ddd}t ddgdd}t dgdd}g d}t |dd}tdddd}t g ddd}g d}t |dd}tdddd}t ddgdd}|||f|||f|	|
|f|||f|||f|||f|||ffD ]\}}}|j||d}|d u rt|r| }t|| qd S )Nr8   r   r   r   r   r   r   )r9   r:   r   )r   r   r!   r    r"   r   r   )r$   r#   r%   r&   r#   r%   r$   )
2000-02-01r   z
2000-06-01z
2000-07-01z
2000-05-01
2000-03-01r*   r(   r*   r)   )ry   r   rz   )r.   r2   r1   r0   r/   r,   r-   r   r2   r1   r<   )r   r   
differencer   r?   r@   rA   )rB   r=   
period_rngrD   rC   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   r[   r\   r]   result_differencer   r   r   test_difference   sP   		zTestPeriodIndex.test_differencec                 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2016092020160925r   r   2016092120160924r   20160922)r   r   r{   r@   rA   assert_attr_equal)rB   r=   re   r\   r]   idx_diffr   r   r   test_difference_freq=  s   z$TestPeriodIndex.test_difference_freqc                 C   s0   t ddd}||}||}t|| d S )N
2011-01-01r   r   )r   appendrk   r@   rA   )rB   rr   idx_duprf   r   r   r   "test_intersection_equal_duplicatesO  s   

z2TestPeriodIndex.test_intersection_equal_duplicatesz3ignore:PeriodDtype\[B\] is deprecated:FutureWarningc                 C   sV   t ddd}||}t ddd}||}||}tg ddd}t|| d S )Nr   r   r   ru   )r   r   ru   ru   rv   rv   r   r   )r   r   r>   r   r@   rA   )rB   rr   r   idx2idx2_duprf   r]   r   r   r   test_union_duplicatesV  s   


z%TestPeriodIndex.test_union_duplicatesN)__name__
__module____qualname__r_   rh   rq   rx   r~   r   r   pytestmarkfilterwarningsr   r   r   r   r   r      s    wDA
r   )numpyr   r   pandasrl   r   r   r   pandas._testing_testingr@   r   r   r   r   r   r   <module>   s    