
    dB0                     V    d dl Zd dlZd dlmZmZmZ d dlmZ	 d Z
 G d d          ZdS )    N)PeriodIndex
date_rangeperiod_rangec                     |                      t          j                            t	          |                               S )N)takenprandompermutationlen)objs    c/var/www/html/t/fyr/venv311/lib/python3.11/site-packages/pandas/tests/indexes/period/test_setops.py_permuter      s*    88BI))#c((33444    c                   >    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	S )
TestPeriodIndexc           
      J   t          ddd          }t          ddd          }t          g dd          }t          ddd          }t          ddd          }t          ddd	          }t          ddd          }t          g d          }	t          ddd          }
t          d
dd          }t          ddd          }t          g dd          }t          g dd          }t          g dd          }t          g dd          }t          ddd          }t          ddd          }t          ddd          }t          ddd          }t          ddd	          }t          g dd          }t          g dd          }t          ddd          }t          g dd          }|||f|||f||	|
f|||f|||f|||f|||f|||ffD ]H\  }}}|                    ||          }||                                }t	          j        ||           Id 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T)r%   r'   2000-01-01 09:08)r%   r&   r'   r)   r   M   
2000-04-01
   z
2003-01-01A
1998-01-01)
20032004200520062007199819992000200120021/3/20001/2/2000r   1/5/2000r   )
r;   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_unions                                 r   
test_unionzTestPeriodIndex.test_union   s,   jsA>>>JS!<<<   
 
 
	  JS!<<<jsA>>> #qAAA	JS!<<<Rc*** #qAAA	.S!DDD0sAFFF   
 
 
	  HHHs
 
 
 HHHs
 
 
     
 
 
	 LsA>>>la@@@ CDDD	LsA>>>la@@@   
 
 
	  HHHs
 
 
 jsA>>>   
 
 
	" 69%69%69%69%69%69%69%69%	%
 	: 	: C 99U966L|#//11!,9999	: 	:r   c                    t          ddd          }|d d                             |dd          |          }t          j        ||           t	          |d d                                       t	          |dd                    |          }|t          j        ||           t          j        ||          sJ t          ddd          }t          ddd          }|                    ||          }|                    t                                        |                    t                    |          }t          j        ||           d S )	Nr   	1/20/2000r   r   r-   r>   W-WED)r   r@   rB   rC   r   equalContentsastypeobject)rD   r?   indexresultindex2r_   s         r   test_union_misczTestPeriodIndex.test_union_misc   sD   Z3???ss!!%*4!88
fe,,, %*%%++HU233Z,@,@t+LL<!&%000..... Z3???j+GDDDV$//<<''--fmmF.C.C$-OO
fh/////r   c                 
   t          ddd          }|d d                             |dd          |          }t          j        ||dd                    t	          |d d                   }t	          |dd                    }|                    ||          }|t          j        ||dd                    t          j        ||dd                   sJ t          ddd          }t          ddd          }|                    ||          }t          j        g t          	          }t          j        ||           t          ddd
          }|                    ||          }t          j        ||           d S )Nr   rc   r   r   rd   r-   r>   re   )dtype2D)	r   intersectionrB   rC   r   rf   pdIndexrh   )	rD   r?   ri   rj   leftrightrk   r_   index3s	            r   test_intersectionz!TestPeriodIndex.test_intersection   s   Z3???ss((rss$(??
feBrEl333 crc
##rss$$""5t"44<!&%2,777be55555 Z3???j+GDDD##F#668Bf---
fh///j+DAAA##F#66
fh/////r   c                    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          d	d
dd          }t          g dd          }||f||f||ffD ]U\  }	}
|                    |	|          }t          j        ||
           |j        |
j        k    sJ |j        |
j        k    sJ Vt          g ddd          }t          g ddd          }t          ddgdd          }t          g ddd          }t          ddgdd           }t          d	d
dd          }t          g dd          }||f||f||ffD ]f\  }	}
|                    |	|          }||
                                }
t          j        ||
           |j        |
j        k    sJ |j        dk    sJ gt          ddd          }	|	dd                             |	          }t          |          dk    sJ |	                    |	dd                   }t          |          dk    sJ 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)ry   r   r>   )z
2011-01-05
2011-01-04
2011-01-02
2011-01-03)rz   r{   z
2011-02-02z
2011-02-03rz   r{   z	6/15/2000r(   r   r   )
r   r   rp   rB   rC   ry   r   rA   r   r   )rD   r?   baserH   rJ   rK   rM   rN   rP   r]   r_   rj   s               r   test_intersection_casesz'TestPeriodIndex.test_intersection_cases   s   J#EJJJ K3UKKK [sOOO	 K3WMMM [sNNN	J#EJJJS999	 999
 	0 	0MC
 &&s&66F!&(333;(-////;(-///// DDD
 
 
 DDD
 
 

  | <3USSS	DDD
 
 

  | <3TRRR	J#EJJJ5999	 999
 
	& 
	&MC
 &&s&66F|#//11!&(333;(-////;#%%%%% [s;;;QqS&&s++6{{a!!#ac(++6{{ar   c           	         g d}t          |d          }t          ddd          }|}t          |d          }t          ddd          }t          g dd          }t          |d          }	t          g d          }
|	}g d	}t          |d
          }t          dd
d          }|}t          g dd          }t          ddgd          }t          dgd          }g d}t          |d          }t          ddd          }t          g dd          }g d}t          |d          }t          ddd          }t          ddgd          }|||f|||f|	|
|f|||f|||f|||f|||ffD ]W\  }}}|                    ||          }|#t          |          r|                                }t          j        ||           Xd S )Nr:   r   r   r   r   r   r   )r;   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+   )r   r   r   )r0   r4   r3   r2   r1   r.   r/   r   r4   r3   r>   )r   r   
differencer   rA   rB   rC   )rD   r?   
period_rngrF   rE   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   r]   r^   r_   result_differences                               r   test_differencezTestPeriodIndex.test_difference   s   QQQ
:C000jsA>>>	:C000jsA>>> D D D3OOO	:C000Rc***	
 
 

 :C0000sAFFF	HHHs
 
 
 02DECPPP!3 43???	
 
 

 :C000la@@@ J J JQTUUU	===
:C000la@@@ 0s;;;	 69%69%69%69%69%69%69%%
 	? 	? C !$u4 @ @|E

|#//11!"3X>>>>	? 	?r   c                    t          ddd          }t          ddd          }t          ddgd          }|                    ||          }t          j        ||           t          j        d||           t          ddd          }|                    ||          }t          ddgd          }t          j        ||           t          j        d||           d S )	N2016092020160925r   r   2016092120160924r   20160922)r   r   r   rB   rC   assert_attr_equal)rD   r?   ri   r^   r_   idx_diffs         r   test_difference_freqz$TestPeriodIndex.test_difference_freq:  s     Z#>>>Z#>>>
J7cBBB##E400
h111
VXx888Z#>>>##E400
J7cBBB
h111
VXx88888r   c                     t          dd          }|                    |          }|                    |          }t          j        ||           d S )N
2011-01-01   r   )r   appendrp   rB   rC   )rD   rx   idx_duprj   s       r   "test_intersection_equal_duplicatesz2TestPeriodIndex.test_intersection_equal_duplicatesL  sO    <333**S//%%g..
fc*****r   c                    t          dd          }|                    |          }t          dd          }|                    |          }|                    |          }t          g dd          }t	          j        ||           d S )Nr   r   r   r{   )r   r   r{   r{   r|   r|   r   r   )r   r   r@   r   rB   rC   )rD   rx   r   idx2idx2_duprj   r_   s          r   test_union_duplicatesz%TestPeriodIndex.test_union_duplicatesS  s    <333**S//L!444;;t$$x((   

 

 

 	fh/////r   N)__name__
__module____qualname__ra   rl   rv   r~   r   r   r   r    r   r   r   r      s        u: u: u:n0 0 0&0 0 04B  B  B H?? ?? ??B9 9 9$+ + +0 0 0 0 0r   r   )numpyr   pandasrq   r   r   r   pandas._testing_testingrB   r   r   r   r   r   <module>r      s                    
      5 5 5W0 W0 W0 W0 W0 W0 W0 W0 W0 W0r   