
    o[we0                     ^    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 Z G d d          ZdS )    N)PeriodIndex
date_rangeperiod_rangec                     |                      t          j                            d                              t          |                               S )N   )takenprandomdefault_rngpermutationlen)objs    Glib/python3.11/site-packages/pandas/tests/indexes/period/test_setops.py_permuter      s8    88BI))!,,88SBBCCC    c                   ~    e Zd Zd Zd Zd Zd Zd Zd Zd Z	e
j                            d          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)selfrA   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   rB   rD   rE   r   equalContentsastypeobject)rF   rA   indexresultindex2ra   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   re   r   r   rf   r/   r@   rg   )dtype2D)	r   intersectionrD   rE   r   rh   pdIndexrj   )	rF   rA   rk   rl   leftrightrm   ra   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)r{   r   r@   )z
2011-01-05
2011-01-04
2011-01-02
2011-01-03)r|   r}   z
2011-02-02z
2011-02-03r|   r}   z	6/15/2000r*   r   r   )
r   r   rr   rD   rE   r{   r   rC   r   r   )rF   rA   baserJ   rL   rM   rO   rP   rR   r_   ra   rl   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   )r2   r6   r5   r4   r3   r0   r1   r   r6   r5   r@   )r   r   
differencer   rC   rD   rE   )rF   rA   
period_rngrH   rG   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r_   r`   ra   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   rD   rE   assert_attr_equal)rF   rA   rk   r`   ra   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-01r   r   )r   appendrr   rD   rE   )rF   rz   idx_duprl   s       r   "test_intersection_equal_duplicatesz2TestPeriodIndex.test_intersection_equal_duplicatesM  sO    <333**S//%%g..
fc*****r   z3ignore:PeriodDtype\[B\] is deprecated:FutureWarningc                    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   rB   r   rD   rE   )rF   rz   r   idx2idx2_duprl   ra   s          r   test_union_duplicatesz%TestPeriodIndex.test_union_duplicatesT  s     <333**S//L!444;;t$$x((   

 

 

 	fh/////r   N)__name__
__module____qualname__rc   rn   rx   r   r   r   r   pytestmarkfilterwarningsr    r   r   r   r      s        u: u: u:n0 0 0&0 0 04B  B  B H?? ?? ??B9 9 9$+ + + [ VWW0 0 XW0 0 0r   r   )numpyr	   r   pandasrs   r   r   r   pandas._testing_testingrD   r   r   r   r   r   <module>r      s                     
      D D DX0 X0 X0 X0 X0 X0 X0 X0 X0 X0r   