
    Mh1                     V    S SK rS SKrS SKrS SKJrJrJr  S SKJ	r
  S r " S S5      rg)    N)PeriodIndex
date_rangeperiod_rangec                     U R                  [        R                  R                  S5      R	                  [        U 5      5      5      $ )N   )takenprandomdefault_rngpermutationlen)objs    Y/var/www/html/env/lib/python3.13/site-packages/pandas/tests/indexes/period/test_setops.py_permuter      s/    88BII))!,88SBCC    c                       \ rS rSrS rS rS rS rS rS r	S r
\R                  R                  S	5      S
 5       rSrg)TestPeriodIndex   c           
         [        SSSS9n[        SSSS9n[        / SQSS9n[        SSSS9n[        SSSS9n[        SSS	S9n[        SSSS9n[        / SS9n	[        SSSS9n
[        S
SSS9n[        SSSS9n[        / SQSS9n[        / SQSS9n[        / SQSS9n[        / SQSS9n[        SSSS9n[        SSSS9n[        SSSS9n[        SSSS9n[        SSS	S9n[        / SQSS9n[        / SQSS9n[        SSSS9n[        / SQSS9nX2U4XVU4XU
4XU4XU4UUU4UUU4UUU44 HA  u  nnnUR                  UUS9nUc  UR                  5       n[        R
                  " UU5        MC     g )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   )
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)selfrB   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_unionTestPeriodIndex.test_union   s   jsA>JS!< 
	  JS!<jsA> #qA	JS!<Rc* #qA	.S!D0sAF 
	  Hu
 Hu
   
	 LsA>la@ CD	LsA>la@ 
	  Hs
 jsA> 
	" 9%9%9%9%9%69%69%69%	%
 C 99U96L|#//1!!,9	%
r   c                 &   [        SSSS9nUS S R                  USS  US9n[        R                  " X25        [	        US S 5      R                  [	        USS  5      US9nUSL a&  [        R                  " UR                  5       U5        O[        R                  " X25        [        SSSS9n[        SSS	S9nUR                  XAS9nUR                  [        5      R                  UR                  [        5      US9n[        R                  " X55        g )
Nr   	1/20/2000r   r   r0   rA   FW-WED)r   rC   rE   rF   r   rD   astypeobject)rG   rB   indexresultindex2rb   s         r   test_union_miscTestPeriodIndex.test_union_misc   s    Z3?s!!%*4!8
f, %*%++HU23Z,@t+L5=!!&"4"4"6>!!&0 Z3?j+GDV/<<'--fmmF.C$-O
f/r   c                 d   [        SSSS9nUS S R                  USS  US9n[        R                  " X2SS 5        [	        US S 5      n[	        USS  5      nUR                  XQS9nUSL a)  [        R                  " UR                  5       USS 5        O[        R                  " X2SS 5        [        SSSS9n[        SSS	S9nUR                  XaS9n[        R                  " / [        S
9n[        R                  " X75        [        SSSS9nUR                  XS9n[        R                  " X75        g )Nr   rg   r   r   rh   r0   rA   Fri   )dtype2D)	r   intersectionrE   rF   r   rD   pdIndexrk   )	rG   rB   rl   rm   leftrightrn   rb   index3s	            r   test_intersection!TestPeriodIndex.test_intersection   s2   Z3?s((rs$(?
fBrl3 cr
#rs$""5"45=!!&"4"4"6bE!!&2,7 Z3?j+GD##F#688Bf-
f/j+DA##F#6
f/r   c                    [        SSSSS9n[        SSSSS9n[        SSSSS9n[        SSSSS9n[        SSSS S9n[        S	S
SSS9n[        / SSS9nX44XV4Xx44 Hb  u  pUR                  XS9n[        R                  " X5        UR
                  U
R
                  :X  d   eUR                  U
R                  :X  a  Mb   e   [        / SQSSS9n[        / SQSSS9n[        SS/SSS9n[        / SQSSS9n[        SS/SS S9n[        S	S
SSS9n[        / SSS9nX44XV4Xx44 Hk  u  pUR                  XS9nUc  U
R                  5       n
[        R                  " X5        UR
                  U
R
                  :X  d   eUR                  S:X  a  Mk   e   [        SSSS9n	U	SS R                  U	5      n[        U5      S:X  d   eU	R                  U	SS 5      n[        U5      S:X  d   eg )Nz6/1/2000z	6/30/2000r   idx)r   namez	5/15/2000z	6/20/2000ra   z7/1/2000z	7/31/2000)r~   r   rA   )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   rt   rE   rF   r~   r   rD   r   r   )rG   rB   baserK   rM   rN   rP   rQ   rS   r`   rb   rm   s               r   test_intersection_cases'TestPeriodIndex.test_intersection_cases   sJ   J#EJ K3UK [sO	 K3WM [sN	J#EJS9	 
MC
 &&s&6F!!&3;;(--///;;(--///
 D
 D

  | <3US	D

  | <3TR	J#EJ59	 
MC
 &&s&6F|#//1!!&3;;(--///;;#%%%
 [u=Qq&&s+6{a!!#a(+6{ar   c           	         / SQn[        USS9n[        SSSS9nUn[        USS9n[        SSSS9n[        / SQSS9n[        USS9n	[        / SS9n
U	n/ S	Qn[        US
S9n[        SS
SS9nUn[        / SQSS9n[        SS/SS9n[        S/SS9n/ SQn[        USS9n[        SSSS9n[        / SQSS9n/ SQn[        USS9n[        SSSS9n[        SS/SS9nX4U4XgU4XU4XU4UUU4UUU4UUU44 HQ  u  nnnUR                  UUS9nUc   [        U5      (       a  UR	                  5       n[
        R                  " UU5        MS     g )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   )r3   r7   r6   r5   r4   r1   r2   r    r7   r6   rA   )r   r   
differencer   rD   rE   rF   )rG   rB   
period_rngrI   rH   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r`   ra   rb   result_differences                               r   test_differenceTestPeriodIndex.test_difference   s   Q
:C0jsA>	:C0jsA> D3O	:C0Rc*	

 :C00sAF	Hu
 02DEER!3 45A	

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

#//1!!"3X>%
r   c                 n   [        SSSS9n[        SSSS9n[        SS/SS9nUR                  X15      n[        R                  " XT5        [        R
                  " SXT5        [        SSSS9nUR                  X15      n[        SS/SS9n[        R                  " XT5        [        R
                  " SXT5        g )	N2016092020160925r   r   2016092120160924r   20160922)r   r   r   rE   rF   assert_attr_equal)rG   rB   rl   ra   rb   idx_diffs         r   test_difference_freq$TestPeriodIndex.test_difference_freq=  s     Z#>Z#>
J7cB##E0
h1
VX8Z#>##E0
J7cB
h1
VX8r   c                     [        SSS9nUR                  U5      nUR                  U5      n[        R                  " X15        g )N
2011-01-01r   r   )r   appendrt   rE   rF   )rG   r}   idx_duprm   s       r   "test_intersection_equal_duplicates2TestPeriodIndex.test_intersection_equal_duplicatesO  s9    <3**S/%%g.
f*r   z3ignore:PeriodDtype\[B\] is deprecated:FutureWarningc                     [        SSS9nUR                  U5      n[        SSS9nUR                  U5      nUR                  U5      n[        / SQSS9n[        R
                  " XV5        g )Nr   r   r   r   )r   r   r   r   r   r   r   r   )r   r   rC   r   rE   rF   )rG   r}   r   idx2idx2_duprm   rb   s          r   test_union_duplicates%TestPeriodIndex.test_union_duplicatesV  si     <3**S/L!4;;t$x( 

 	f/r    N)__name__
__module____qualname____firstlineno__rd   ro   rz   r   r   r   r   pytestmarkfilterwarningsr   __static_attributes__r   r   r   r   r      sO    u:n0(06B H??B9$+ [[ VW0 X0r   r   )numpyr	   r   pandasru   r   r   r   pandas._testing_testingrE   r   r   r   r   r   <module>r      s/       
 DZ0 Z0r   