
    bMh1                     ^    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    g/var/www/html/test/jupyter/venv/lib/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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AA	JS!<<<Rc*** #qAAA	.S!DDD0sAFFF   
 
 
	  HHHu
 
 
 HHHu
 
 
     
 
 
	 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                    |          }|du r(t          j        |                                |           nt          j        ||           t          ddd          }t          ddd	          }|                    ||          }|                    t                                        |                    t                    |          }t          j        ||           d S )
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   sQ   Z3???ss!!%*4!88
fe,,, %*%%++HU233Z,@,@t+LL5==!&"4"4"6"6>>>>!&%000 Z3???j+GDDDV$//<<''--fmmF.C.C$-OO
fh/////r   c                 0   t          ddd          }|d d                             |dd          |          }t          j        ||dd                    t	          |d d                   }t	          |dd                    }|                    ||          }|du r0t          j        |                                |dd                    nt          j        ||dd                    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@   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s((rss$(??
feBrEl333 crc
##rss$$""5t"445==!&"4"4"6"6beEEEE!&%2,777 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)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   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;(-////;#%%%%% [u===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Hu
 
 
 02DEERRR!3 45AAA	
 
 

 :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   rj   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   appendrq   rD   rE   )rF   ry   idx_duprk   s       r   "test_intersection_equal_duplicatesz2TestPeriodIndex.test_intersection_equal_duplicatesO  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   ry   r   idx2idx2_duprk   ra   s          r   test_union_duplicatesz%TestPeriodIndex.test_union_duplicatesV  s     <333**S//L!444;;t$$x((   

 

 

 	fh/////r   N)__name__
__module____qualname__rc   rm   rw   r   r   r   r   pytestmarkfilterwarningsr    r   r   r   r      s        u: u: u:n0 0 0(0 0 06B  B  B H?? ?? ??B9 9 9$+ + + [ VWW0 0 XW0 0 0r   r   )numpyr	   r   pandasrr   r   r   r   pandas._testing_testingrD   r   r   r   r   r   <module>r      s                     
      D D DZ0 Z0 Z0 Z0 Z0 Z0 Z0 Z0 Z0 Z0r   