
    Owg1                     V    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y)    N)PeriodIndex
date_rangeperiod_rangec                     | j                  t        j                  j                  d      j	                  t        |                   S )N   )takenprandomdefault_rngpermutationlen)objs    ^/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/indexes/period/test_setops.py_permuter      s/    88BII))!,88SBCC    c                   x    e Zd Zd Zd Zd Zd Zd Zd Zd Z	e
j                  j                  d      d	        Zy
)TestPeriodIndexc           
      ~   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 ]A  \  }}}|j                  ||      }||j                         }t	        j
                  ||       C y )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)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	JS!<Rc* #qA	.S!D0sAF 
	  Hu
 Hu
   
	 LsA>la@ CD	LsA>la@ 
	  Hs
 jsA> 
	" 69%69%69%69%69%69%69%69%	%
 	: C 99U96L|#//1!!,9	:r   c                 N   t        ddd      }|d d j                  |dd  |      }t        j                  ||       t	        |d d       j                  t	        |dd        |      }|du r%t        j                  |j                         |       nt        j                  ||       t        ddd      }t        ddd	      }|j                  ||      }|j                  t              j                  |j                  t              |      }t        j                  ||       y )
Nr   	1/20/2000r   r   r/   r@   FW-WED)r   rB   rD   rE   r   rC   astypeobject)rF   rA   indexresultindex2ra   s         r   test_union_misczTestPeriodIndex.test_union_misc   s   Z3?s!!%*4!8
fe, %*%++HU23Z,@t+L5=!!&"4"4"6>!!&%0 Z3?j+GDV$/<<'--fmmF.C$-O
fh/r   c                    t        ddd      }|d d j                  |dd  |      }t        j                  ||dd        t	        |d d       }t	        |dd        }|j                  ||      }|du r(t        j                  |j                         |dd        nt        j                  ||dd        t        ddd      }t        ddd	      }|j                  ||      }t        j                  g t        
      }t        j                  ||       t        ddd      }|j                  ||      }t        j                  ||       y )Nr   re   r   r   rf   r/   r@   Frg   )dtype2D)	r   intersectionrD   rE   r   rC   pdIndexri   )	rF   rA   rj   rk   leftrightrl   ra   index3s	            r   test_intersectionz!TestPeriodIndex.test_intersection   s@   Z3?s((rs$(?
feBrl3 cr
#rs$""5t"45=!!&"4"4"6bE!!&%2,7 Z3?j+GD##F#688Bf-
fh/j+DA##F#6
fh/r   c                 2   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 ]d  \  }	}
|j                  |	|      }t        j                  ||
       |j
                  |
j
                  k(  sJ |j                  |
j                  k(  rdJ  t        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 ]l  \  }	}
|j                  |	|      }||
j                         }
t        j                  ||
       |j
                  |
j
                  k(  sJ |j                  dk(  rlJ  t        ddd      }	|	dd j                  |	      }t        |      dk(  sJ |	j                  |	dd       }t        |      dk(  sJ y )Nz6/1/2000z	6/30/2000r   idx)r   namez	5/15/2000z	6/20/2000r`   z7/1/2000z	7/31/2000)rz   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   rq   rD   rE   rz   r   rC   r   r   )rF   rA   baserJ   rL   rM   rO   rP   rR   r_   ra   rk   s               r   test_intersection_casesz'TestPeriodIndex.test_intersection_cases   sl   J#EJ K3UK [sO	 K3WM [sN	J#EJS9	 999
 	0MC
 &&s&6F!!&(3;;(--///;;(--///	0 D
 D

  | <3US	D

  | <3TR	J#EJ59	 999
 
	&MC
 &&s&6F|#//1!!&(3;;(--///;;#%%%
	& [u=Qq&&s+6{a!!#a(+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 ]L  \  }}}|j                  ||      }|t        |      r|j	                         }t        j                  ||       N y )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
: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;	 69%69%69%69%69%69%69%%
 	? C !$u4 @|E
#//1!!"3X>	?r   c                    t        ddd      }t        ddd      }t        ddgd      }|j                  ||      }t        j                  ||       t        j
                  d||       t        ddd      }|j                  ||      }t        ddgd      }t        j                  ||       t        j
                  d||       y )	N2016092020160925r   r   2016092120160924r   20160922)r   r   r   rD   rE   assert_attr_equal)rF   rA   rj   r`   ra   idx_diffs         r   test_difference_freqz$TestPeriodIndex.test_difference_freq=  s     Z#>Z#>
J7cB##E40
h1
VXx8Z#>##E40
J7cB
h1
VXx8r   c                     t        dd      }|j                  |      }|j                  |      }t        j                  ||       y )N
2011-01-01r   r   )r   appendrq   rD   rE   )rF   ry   idx_duprk   s       r   "test_intersection_equal_duplicatesz2TestPeriodIndex.test_intersection_equal_duplicatesO  s;    <3**S/%%g.
fc*r   z3ignore:PeriodDtype\[B\] is deprecated:FutureWarningc                     t        dd      }|j                  |      }t        dd      }|j                  |      }|j                  |      }t        g dd      }t	        j
                  ||       y )Nr   r   r   r|   )r   r   r|   r|   r}   r}   r   r   )r   r   rB   r   rD   rE   )rF   ry   r   idx2idx2_duprk   ra   s          r   test_union_duplicatesz%TestPeriodIndex.test_union_duplicatesV  sk     <3**S/L!4;;t$x( 

 	fh/r   N)__name__
__module____qualname__rc   rm   rw   r   r   r   r   pytestmarkfilterwarningsr    r   r   r   r      sO    u:n0(06B H??B9$+ [[ VW0 X0r   r   )numpyr	   r   pandasrr   r   r   r   pandas._testing_testingrD   r   r   r   r   r   <module>r      s/       
 DZ0 Z0r   