o
    Mfl                     @   sz  d dl m Z  d dlZd dlZd dlZd dlmZ d dlm	Z	 d dl
Zd dl
mZmZmZmZmZmZmZmZmZ d dlmZ edddZedd	 Zeed
Zejeededeed   eeg deg dejg dddej !eg	ddd Z"G dd dZ#G dd dZ$G dd dZ%G dd dZ&G dd dZ'G dd  d Z(G d!d" d"Z)G d#d$ d$Z*dS )%    )datetimeN)period)InvalidIndexError)	DatetimeIndexNaTPeriodPeriodIndexSeries	Timedelta
date_rangenotnaperiod_range
2016-01-01   periods   UTCW      r   )g       @g      @g      @)r         u8dtype)paramsc                 C   s   | j S )N)param)request r!   k/var/www/html/analyze/labelStudio/lib/python3.10/site-packages/pandas/tests/indexes/period/test_indexing.pynon_comparable_idx   s   r#   c                   @   sn   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	e
jjdd Ze
jdeegdd ZdS )TestGetItemc                 C   s,   t ddddd}|j|dd  jksJ d S )N20010101
   Dbobr   freqnamer   )r   r+   selfidxr!   r!   r"   test_getitem_slice_keeps_name0   s   z)TestGetItem.test_getitem_slice_keeps_namec                 C   s|  t ddddd}|fD ]}|d }|tdddksJ |d }|tdddks)J |dd	 }t dd
ddd}t|| |j|jksEJ |jdksLJ |ddd }tg dddd}t|| |j|jksjJ |jdksqJ |ddd }tg dddd}t|| |j|jksJ |jdksJ |dd d }tg dddd}t|| |j|jksJ |jdksJ qd S )N
2011-01-01
2011-01-31r'   r.   r*   r+   r   r*   r   r   
2011-01-05r&   r   )r0   
2011-01-03r4   z
2011-01-07z
2011-01-09ir   )z
2011-01-12z
2011-01-15z
2011-01-18z
2011-01-21z
2011-01-24r   )r4   
2011-01-04r5   
2011-01-02r0   )r   r   tmassert_index_equalr*   r   r-   idx1r.   resultexpectedr!   r!   r"   test_getitem4   sN   
zTestGetItem.test_getitemc                 C   sh   t ddddd}|g d }tg dddd}t|| |g d	 }tg d
ddd}t|| d S )N2007-01r&   Mxr)   )r   r   r   )2007-02z2007-042007-06r2   )
TTFFFTTFFF)r@   rC   rD   z2007-07)r   r   r9   r:   )r-   r.   r=   expr!   r!   r"   test_getitem_indexb   s   
zTestGetItem.test_getitem_indexc                 C   s  t dddd}ttjdt||}tjt	dd |d  W d    n1 s+w   Y  |d	 }|j
jd
k s>J |d	d }t|dksLJ |dd }t|dksZJ |dd }t|dkshJ |d d }t|dksvJ |dd  }t|dksJ |}|dd  }t|| t|dd  |dd  g}d}tjt	|d |td	d  W d    d S 1 sw   Y  d S )Nr@   2   rA   r   r*   r   z^'2006'$match20062008i  2009   z2008-1z2009-122008Q12009Q4$      r&   z-left slice bound for non-unique label: '2008')r   r	   nprandomdefault_rngstandard_normallenpytestraisesKeyErrorindexyearallr9   assert_series_equalpdconcatslice)r-   rngtsr=   rE   msgr!   r!   r"   test_getitem_partialo   s2   
"z TestGetItem.test_getitem_partialc                 C   sV   t dddd}ttt||d}tddd}tdd	d
}||| }t|| d S )N
2012-01-01r&   zW-MONstartr   r*   r[   i  r   i  r      )r   r	   rangerW   r   r9   r^   )r-   rb   rc   dt1dt4rsr!   r!   r"   test_getitem_datetime   s   z!TestGetItem.test_getitem_datetimec                 C   s   t g ddd}|d tdddksJ |d tu sJ tg d|d}|t dks,J t||d}|tddd tdddksBJ |t tu sJJ d S )	N2011-01r   z2011-02rA   r3   r   rq   r   r   r   r   ri   )r   r   r   r	   )r-   r.   sr!   r!   r"   test_getitem_nat   s    zTestGetItem.test_getitem_natc                 C   sL   t dddd}ttt||d}|jdg }t|tdddg | d S )	Nrf   r&   r'   rg   ri   r   z
2012-01-02r3   )r   r	   rk   rW   ilocr9   r^   r   )r-   rb   rc   rE   r!   r!   r"   test_getitem_list_periods   s   z%TestGetItem.test_getitem_list_periodsc              
   C   s   t dddd}tdddd}||fD ]Z}g d}|D ]}tjtdd ||  W d    n1 s2w   Y  qttjdt	||d	}t
|d
 |dd  t
|d |d d  dD ]
}t
|| | qaqd S )Nz2013/01/01 09:00:00rs   i  rh   r*   r   20142013/02z
2013/01/022013/02/01 9h2013/02/01 09:00only integers, slicesrI   r   ri   z2013/01/01 10:00i  iL  z2013/01/01 9h)
2013/01/012013/012013)r   r   rX   rY   
IndexErrorr	   rS   rT   rU   rW   r9   r^   )r-   didxpidxr.   valuesvalserdr!   r!   r"   test_getitem_seconds   s    
z TestGetItem.test_getitem_seconds	idx_rangec              	   C   s  |dddd}g d}|D ]}t jtdd ||  W d    n1 s%w   Y  qttjdt||d	}t	|d
 |dd  t	|d |dd  t	|d |dd   ddg}|D ]}t jt
|d ||  W d    n1 s|w   Y  qdd S )Nr~   r'   i  rw   rx   r}   rI   r   ri   r   r      rz   ;   ry   im  r{   r|   )rX   rY   r   r	   rS   rT   rU   rW   r9   r^   rZ   )r-   r   r.   r   r   r   invalidr!   r!   r"   test_getitem_day   s$   

zTestGetItem.test_getitem_dayN)__name__
__module____qualname__r/   r?   rF   re   ro   rt   rv   rX   markarm_slowr   parametrizer   r   r   r!   r!   r!   r"   r$   /   s"    ."

r$   c                   @   s<   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd ZdS )
TestGetLocc              
   C   s   t dddd}tdd}tjtdd || W d    n1 s#w   Y  z|| W d S  tyL } z|jd |ksAJ W Y d }~d S d }~ww )	Nz2000-1-1Yr&   r*   r   2012z^Period\('2012', 'Y-DEC'\)$rI   r   )r   r   rX   rY   rZ   get_locargs)r-   r.   
bad_periodinstr!   r!   r"   test_get_loc_msg   s   
 zTestGetLoc.test_get_loc_msgc                 C   s|   t g d}tg ddd}||fD ])}|tdksJ |d dks&J |tddks1J |tjdks;J qd S )N)r0   r   r5   rA   r3   r   nan)r   r   r   r   floatrS   r   )r-   r   r   r.   r!   r!   r"   test_get_loc_nat   s   zTestGetLoc.test_get_loc_natc                 C   s  t d}t d}t d}t|||g}d}d}|||ks J |t||ks+J |||ks4J |t||ks?J d}tjt|d |d W d    n1 sXw   Y  tjtd	d |d
 W d    n1 stw   Y  tjtt	t|d || W d    n1 sw   Y  t|||g}t
dd}d}|||ksJ |t||ksJ |||ksJ |t||ksJ d}tjt|d |d W d    n1 sw   Y  tjtd	d |d
 W d    n	1 sw   Y  tjtt	t|d || W d    n	1 s(w   Y  t|||g}	d}
tg d}|	||
ksGJ |	t||
ksSJ t|	|| t|	t|| d S )N
2017-09-01
2017-09-02
2017-09-03r   r   z Cannot interpret 'foo' as periodrI   fooz^1\.1$g?r   )TFT)r   r   r   strrX   rY   rZ   r   reescapera   rS   arrayr9   assert_numpy_array_equal)r-   p0p1p2idx0expected_idx1_p1expected_idx1_p2rd   r<   idx2expected_idx2_p1expected_idx2_p2r!   r!   r"   test_get_loc  sX   
zTestGetLoc.test_get_locc                 C   s   t ddd}|d}tjtdd |d W d    n1 s"w   Y  |d}tjtd	d |d
 W d    d S 1 sDw   Y  d S )Nr   r   r   r'   16801rI   iA  r   46.   )r   	to_periodrX   rY   rZ   r   )r-   dtipipi2r!   r!   r"   test_get_loc_integer@  s   

"zTestGetLoc.test_get_loc_integerc                 C   s   t dddd}tjtdd |d W d    n1 sw   Y  tg d|d}tjtdd |jd  W d    n1 sBw   Y  tjtdd |d  W d    n1 s]w   Y  d|vshJ d|vsnJ d S )N2000r   A)r   r+   rI   r   ri   )r   rX   rY   rZ   r   r	   loc)r-   r   r   r!   r!   r"   +test_get_loc_invalid_string_raises_keyerrorJ  s   
z6TestGetLoc.test_get_loc_invalid_string_raises_keyerrorc                 C   s   t ddd}|d}|d}||j}tjtdd ||d  W d    n1 s/w   Y  tjtdd ||d  W d    d S 1 sNw   Y  d S )	Nr   r   r   r'   r   zW-SUNrI   r   )r   r   viewr   rX   rY   rZ   r   )r-   r   r   r   pi3r!   r!   r"   test_get_loc_mismatched_freqZ  s   

"z'TestGetLoc.test_get_loc_mismatched_freqN)	r   r   r   r   r   r   r   r   r   r!   r!   r!   r"   r      s    :
r   c                   @   sN   e Zd Zdd Zdd Zdd Zejdg dd	d
 Z	dd Z
dd ZdS )TestGetIndexerc                 C   s  t d}t d}t d}t d}t d}t d}t d}t|||g}t||tjg dtjd	 t||||g}	t||	d
tjg dtjd	 t||	dtjg dtjd	 t||	dtjg dtjd	 |j|	dtdd}
t|
tjg dtjd	 d S )Nr   
2017-09-04z
2017-09-07z
2017-08-31r   
2017-09-05z
2017-09-09rr   r   pad)r   r   r   r   backfill)r   r   r   r   nearest)r   r   r   r   1 day	tolerance)r   r   r   r   )	r   r   r9   r   get_indexerrS   r   intpr
   )r-   r   r   p3tp0tp1tp2tp3r.   targetresr!   r!   r"   test_get_indexerk  s.    zTestGetIndexer.test_get_indexerc                 C   s   t ddd}|d}|d}tjg dtjd}||}t|| ||}t|| ||}t|| ||d }t|| ||d }t|| ||d }t|| d S )	Nr   r   r   r'   r   )r   r   r   r   r   )	r   r   rS   r   r   r   r9   r   get_indexer_non_unique)r-   r   r   r   r>   r=   r!   r!   r"   !test_get_indexer_mismatched_dtype  s    




z0TestGetIndexer.test_get_indexer_mismatched_dtypec                 C   sP   t ddd}|d}|}|d d |}tj|jtjd }t|| d S )Nr   r   r   r'   r   r   )	r   r   r   rS   onesshaper   r9   r   )r-   r#   r   r   otherr   r>   r!   r!   r"   2test_get_indexer_mismatched_dtype_different_length  s   
zATestGetIndexer.test_get_indexer_mismatched_dtype_different_lengthmethod)r   r   r   c           	   	   C   s   t ddd}|d}|}td|j d|j }tjt|d |j||d W d    n1 s3w   Y  d	D ]C}|	|}|d
krKt
|trKq:ddd d|j d|j dfD }tjt|d |j||d W d    n1 sxw   Y  q:d S )Nr   r   r   r'   zCannot compare dtypes z and rI   )r   )objectcategoryr   |c                 S      g | ]}t |qS r!   )r   r   ).0rd   r!   r!   r"   
<listcomp>  s    zPTestGetIndexer.test_get_indexer_mismatched_dtype_with_method.<locals>.<listcomp>z$ not supported between instances of )r   r   r   r   r   rX   rY   	TypeErrorr   astype
isinstancer   join)	r-   r#   r   r   r   r   rd   r   other2r!   r!   r"   -test_get_indexer_mismatched_dtype_with_method  s.   

	z<TestGetIndexer.test_get_indexer_mismatched_dtype_with_methodc           
      C   s   t d}t d}t d}t d}t|||g}t||||g}||}tjg dtjd}tjddgtjd}	t|d	 | t|d
 |	 d S )Nr   r   r   r   )r   r   r   r   r   r   r   r   r   r   )r   r   r   rS   r   r   r9   r   )
r-   r   r   r   p4r<   r   r=   expected_indexerexpected_missingr!   r!   r"   test_get_indexer_non_unique  s   
z*TestGetIndexer.test_get_indexer_non_uniquec                 C   s  t dddjddd}t||tjg dtjd tg d	dd
}t||dtjg dtjd t||dtjg dtjd t||dtjg dtjd t|j|dddtjg dtjd d}t	j
t|d |j|ddd W d    n1 sw   Y  t|j|dddtjg dtjd tdtdtddg}t|j|ddd |D dtjg dtjd td td tddg}t	j
tjdd |j|d|d W d    d S 1 sw   Y  d S )Nz
2000-01-01r   r   hrh   )howrr   r   )z1999-12-31T23z2000-01-01T12z2000-01-02T01r3   r   )r   r   r   r   r   )r   r   r   z1 hourr   )r   r   r   z8Input has different freq=None from PeriodArray\(freq=h\)rI   z1 minuter   r   r'   c                 S   r   r!   )rS   timedelta64)r   rB   r!   r!   r"   r     s    z4TestGetIndexer.test_get_indexer2.<locals>.<listcomp>z2 hourrA   z"Input has different freq=None from)r   asfreqr9   r   r   rS   r   r   r   rX   rY   
ValueErrorr
   r   to_timedelta64	libperiodIncompatibleFrequency)r-   r.   r   rd   tol_rawtol_badr!   r!   r"   test_get_indexer2  s^   



"z TestGetIndexer.test_get_indexer2N)r   r   r   r   r   r   rX   r   r   r   r   r   r!   r!   r!   r"   r   j  s    
r   c                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
	TestWherec                 C   s   t dddd}dgt| }|}|||}t|| dgdgt|d   }ttg|dd    dd}|||}t|| d S )	N20130101r   r'   rH   TFr   r3   )r   rW   wherer9   r:   r   r   tolist)r-   listlike_boxicondr>   r=   r!   r!   r"   
test_where  s   zTestWhere.test_wherec                 C   s   t dddd}tjtfD ]}|jt||d}|}t|| q| }t	ttg|dd  
  dd}|t||}t|| | }t	ttg|dd  
  dd}|t||j}t|| d S )Nr   r   r'   rH   )r   r   r3   )r   rS   r   r   r   r   r9   r:   copyr   r   r   )r-   r   arrr=   r>   i2r!   r!   r"   test_where_other#  s     zTestWhere.test_where_otherc           
      C   sr  t dddd}|dd   }tttg| dd}t|}|||j}tjtj	tj	g| t
d}t|d ts:J t|| |jd	}tj|d |d
 g| t
d}t|d tjs_J |||}t|| |d}tj|d |d
 g| t
d}|d tu sJ |||}t|| tdd}	tj|	|	g| t
d}|d |	ksJ |||	}t|| d S )Nr   r   r'   rH   r   r3   r   r   ztimedelta64[ns]r   rs   r   )days)r   r   r   r   r   r   asi8r_   Index_valuer   r   intr9   r:   r   rS   r   to_timestampr
   )
r-   r   tailr  maskr=   r>   tdir   tdr!   r!   r"   test_where_invalid_dtypes4  s.   

z#TestWhere.test_where_invalid_dtypesc                 C   sx   t dddd}tg d}tdd}tj|d ||d	 |d
 |gtd}|d |u s.J |||}t	|| d S )Nr   r   r'   rH   )TFTTFr   nsr   r   r   r   r   )
r   rS   r   r   r_   r  r   r   r9   r:   )r-   r   r   tdnatr>   r=   r!   r!   r"   test_where_mismatched_natR  s   $z#TestWhere.test_where_mismatched_natN)r   r   r   r   r  r  r  r!   r!   r!   r"   r     s
    r   c                   @   $   e Zd Zdd Zdd Zdd ZdS )TestTakec                 C   s  t ddddd}|fD ]}|dg}|tdddksJ |dg}|td	ddks-J |g d
}t ddddd}t|| |jdksIJ |j|jksQJ |g d}tg dddd}t|| |j|jksoJ |jdksvJ |g d}tg dddd}t|| |j|jksJ |jdksJ |g d}tg dddd}t|| |j|jksJ |jdksJ |g d}tg dddd}t|| |j|jksJ |jdksJ qd S )Nr0   r1   r'   r.   r2   r   r3   r   
2011-01-06rr   r5   )r   r   r   )r0   r5   r4   )   r   r   )z
2011-01-08r4   r8   )r   r   r   )r7   r5   r  )r   r   )z
2011-01-29r5   r  )r   taker   r9   r:   r*   r   r;   r!   r!   r"   	test_take^  sP   




zTestTake.test_takec                 C   s   t ddddd}ttdddtddd	tddd
tdddgddd}|g d}|g d }||fD ]}t|| t|tsCJ |j|jksKJ |j|jksSJ q4d S )Nz1/1/10z12/31/12r'   r.   )rh   endr*   r+   i  r   r   r  	      r2   )r   r         )	r   r   r   r  r9   r:   r   r*   r+   )r-   r[   r>   taken1taken2takenr!   r!   r"   test_take_misc  s$   



zTestTake.test_take_miscc                 C   s  t g dddd}|tg d}t g dddd}t|| |jtg ddd}t g d	ddd}t|| |jtg dd
dd}t g dddd}t|| d}tjt|d |jtg ddd W d    n1 syw   Y  tjt|d |jtg ddd W d    n1 sw   Y  d}tjt	|d |tddg W d    d S 1 sw   Y  d S )N)r0   
2011-02-01
2011-03-01xxxr'   )r+   r*   )r   r   r   )r!  r0   r"  T)
fill_value)r!  r0   r   F)
allow_fillr$  zJWhen allow_fill=True and fill_value is not None, all indices must be >= -1rI   )r   r   )r   r   r6   z3index -5 is out of bounds for( axis 0 with)? size 3r   r6   )
r   r  rS   r   r9   r:   rX   rY   r   r   )r-   r.   r=   r>   rd   r!   r!   r"   test_take_fill_value  s<   



"zTestTake.test_take_fill_valueN)r   r   r   r  r   r'  r!   r!   r!   r"   r  ]  s    1r  c                   @   s&   e Zd Zejdddgdd ZdS )TestGetValuer*   r   r'   c                 C   s`  t dddd}||}ttdd|d}|d }||dks"J || dks*J |j| dks3J |tdd	 }|d
krtjt	dd || W d    n1 sUw   Y  tjt	dd ||  W d    n1 spw   Y  tjt	dd |j|  W d    d S 1 sw   Y  d S ||dksJ || dksJ |j| dksJ d S )Nr   r   MSrH   r  r&   ri   r   )hoursr   z2016-01-01 03:00rI   )
r   r   r	   rk   r   r   r
   rX   rY   rZ   )r-   r*   r   r   r   rc   ts2r!   r!   r"   test_get_value_datetime_hourly  s*   

"z+TestGetValue.test_get_value_datetime_hourlyN)r   r   r   rX   r   r   r,  r!   r!   r!   r"   r(    s    r(  c                   @   r  )TestContainsc           	      C   s   t d}t d}t d}t d}|||g}t|}|D ]}||v s#J t||v s+J qd}||vs4J tjt|d || W d    n1 sKw   Y  d|v sVJ ||vs\J d S )Nr   r   r   r   z2017-09-01 00:00:01rI   z2017-09)r   r   r   rX   rY   rZ   r   )	r-   r   r   r   r   ps0r   pkeyr!   r!   r"   test_contains  s    
zTestContains.test_containsc                 C   sN   t dddd}tddd|v sJ tddd|vsJ tddd|vs%J d S )Nr@   rA   r&   r   r3   r'   2M)r   r   )r-   rb   r!   r!   r"   test_contains_freq_mismatch  s   z(TestContains.test_contains_freq_mismatchc                 C   s   t dddd}t|vsJ d |vsJ td|vsJ tj|vs"J tg ddd}t|v s0J d |v s6J td|v s>J tj|v sEJ d S )Nr@   rA   r&   r   r   rp   r3   )r   r   r   rS   r   r   r,   r!   r!   r"   test_contains_nat  s   zTestContains.test_contains_natN)r   r   r   r1  r3  r4  r!   r!   r!   r"   r-    s    r-  c                   @   s   e Zd Zdd ZdS )TestAsOfLocsc                 C   sJ  t ddd}|d}|d}tjg dtd}d}tjt|d	 |t	j
|jtjd| W d    n1 s:w   Y  tjt|d	 |t	j
|jtjd| W d    n1 s^w   Y  tjt|d	 ||| | W d    n1 s}w   Y  d
}tjtj|d	 ||| W d    d S 1 sw   Y  d S )Nr   r   r   r'   r   )r   r   r   r   z$must be DatetimeIndex or PeriodIndexrI   zInput has different freq=h)r   r   rS   r   boolrX   rY   r   	asof_locsr_   r  r  int64float64r   r   )r-   r   r   r   r
  rd   r!   r!   r"   test_asof_locs_mismatched_type  s$   

"z+TestAsOfLocs.test_asof_locs_mismatched_typeN)r   r   r   r:  r!   r!   r!   r"   r5    s    r5  )+r   r   numpyrS   rX   pandas._libs.tslibsr   r   pandas.errorsr   pandasr_   r   r   r   r   r	   r
   r   r   r   pandas._testing_testingr9   dti4r   r  rk   rb   fixturetz_localizer   IntervalIndexfrom_breaksr#   r$   r   r   r   r  r(  r-  r5  r!   r!   r!   r"   <module>   sF    ,


 A{ -Go0