o
    _~#gb                     @   s  d dl mZm Z mZm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 d dlmZ d dlmZ e ddde d	ddZ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"G dd dZ#dS )    )datedatetimetime	timedeltaNindex)np_long)DatetimeIndexIndex	Timestampbdate_range
date_rangenotna)	to_offseti       c                   @   sj   e Zd Zdd Zejdddgdd Zejdd	d
gdd Zejdd	d
gdd Z	dd Z
dS )TestGetItemc                 C   sD   t ddd}t ddd}t||ddd}|dd  j|jks J d S )	Nz2013-07-01 00:00:00zAmerica/Los_Angelestzz2013-07-02 00:00:00h
timebucketfreqnamer   )r   r   r   )selfstetdr r   /var/www/static.ux5.de/https/Moving-Object-Detection-with-OpenCV/env/lib/python3.10/site-packages/pandas/tests/indexes/datetimes/test_indexing.pytest_getitem_slice_keeps_name   s   z)TestGetItem.test_getitem_slice_keeps_namer   N
Asia/Tokyoc                 C   s,  t ddd|dd}|d }|td|jdksJ |dd }t dd	d|jdd}t|| |j|jks6J |dd
d }t ddd|jdd}t|| |j|jksUJ |ddd }t ddd|jdd}t|| |j|jkstJ |dd d }tg d|jddd}t|| |j|jksJ d S )N
2011-01-01
2011-01-31Didxr   r   r   r   r      
2011-01-05
      z
2011-01-092Di   z
2011-01-12z
2011-01-243D   )r(   
2011-01-04
2011-01-03
2011-01-02r"   z-1Ddtyper   r   )r   r   r   tmassert_index_equalr   r	   r5   r   r   r%   resultexpectedr   r   r   test_getitem&   s<   zTestGetItem.test_getitemr   BCc                 C   s   t tt|d}|d d }t|tjd d |d}t|| |j	|j	ks)J |j	|j	ks1J |d d d }|j	t
|d ksCJ |g d }t|dksQJ t|tsXJ |j	d u s_J |d |td kskJ d S )Nr   r'   )r/   r-   r*   r   r   r/   )r   STARTENDr	   viewnpndarrayr6   r7   r   r   len
isinstancer   )r   r   rngsmallerexpslicedfancy_indexedr   r   r   test_dti_business_getitemL   s   z%TestGetItem.test_dti_business_getitemc                 C   sR   t tt|d}tjtdd |d d d f  W d    d S 1 s"w   Y  d S )Nr>   zMulti-dimensional indexingmatch)r   r?   r@   pytestraises
ValueError)r   r   rF   r   r   r   /test_dti_business_getitem_matplotlib_hackaround`   s   "z;TestGetItem.test_dti_business_getitem_matplotlib_hackaroundc                 C   st   t dddd}|g d }|d }|d }|d }|td	ks!J |td
ks)J |tdks1J |jd u s8J d S )Nz1/1/2005z	12/1/2005ME)startendr   )r   r-   r'   r   r   r*   z	2/28/2005z	4/30/2005z	6/30/2005)r   r   r   )r   dtidti2v1v2v3r   r   r   test_getitem_int_listg   s   z!TestGetItem.test_getitem_int_list)__name__
__module____qualname__r    rN   markparametrizer;   rK   rQ   rZ   r   r   r   r   r      s    
%

r   c                   @   s4   e Zd Zd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 d}t|d |d |d gd dd	}|||d d d
 }t|| d S )N20130101r-   r$   r%   )periodsr   r   )TTFr   r   r   r0   )r   r	   wherer6   r7   )r   rU   condr:   r9   r   r   r   test_where_doesnt_retain_freqx   s
    z'TestWhere.test_where_doesnt_retain_freqc                 C   s   t dddd}tjtjfD ]}|jt||d}|}t|| q|	 }t
tjtjg|dd    }|t||}t|| |	 }t
tjtjg|dd    }|t||j}t|| d S )Nra   r-   
US/Easternrb   r   )otherr*   )r   rB   nanpdNaTrc   r   r6   r7   copyr
   tolist_values)r   iarrr9   r:   i2r   r   r   test_where_other   s     zTestWhere.test_where_otherc                 C   s  t dddd}|dd   }ttjtjg| }t|}|||j}ttjjtjjg| t	d}t
|| |d }|||}t|d |d g|dd    t	d}t
|| |d d	}|||}t|d |d g| t	d}t
|| |jd
}	|||	}t|	d |	d g| t	d}t|d tjsJ t
|| |||j}ttjjtjjg| t	d}t|d tsJ t
|| tjdd}
|||
}t|
|
g| t	d}|d |
u sJ t
|| d S )Nra   r-   rf   rg   r*   r5   r   r   r$   ztimedelta64[ns]r/   )days)r   rm   r
   rj   rk   r   rc   valuesasm8objectr6   r7   tz_localize	to_periodasi8rA   rE   rB   timedelta64_valueint	Timedelta)r   rU   tailrq   maskr9   r:   naivepitdatdr   r   r   test_where_invalid_dtypes   s:   
(z#TestWhere.test_where_invalid_dtypesc                 C   sr   |}t dd|d}tg d}tdd}t|d ||d gtd	}|d
 |u s+J |||}t|| d S )Nz
2013-01-01r-   rg   )TFTrk   nsr   r*   rs   r   )	r   rB   arrayr{   r
   rw   rc   r6   r7   )r   tz_aware_fixturer   rU   rd   tdnatr:   r9   r   r   r   test_where_mismatched_nat   s   z#TestWhere.test_where_mismatched_natc                 C   sv   t dddd}|t|}|}t|| | }ttjtjg|dd  	  }|t|}|}t|| d S )Nra   r-   rf   rg   r*   )
r   rc   r   r6   r7   rl   r
   rj   rk   rm   )r   ro   r9   r:   rq   r   r   r   test_where_tz   s    zTestWhere.test_where_tzN)r[   r\   r]   re   rr   r   r   r   r   r   r   r   r`   w   s    *r`   c                   @   sz   e Zd Zejdddgdd Zdd Zejdd	d
gdd Zdd Z	ejdg ddd Z
dd Zdd Zd	S )TestTaketzstrrf   zdateutil/US/Easternc                 C   s@   t dd|d}|td}|j|jksJ |j|jksJ d S )N1/1/2000   rg   r'   )r   takeranger   r   )r   r   rF   r9   r   r   r   test_dti_take_dont_lose_meta   s   z%TestTake.test_dti_take_dont_lose_metac                 C   sP   t tjtdtdg}|g d}t |d |d |d g}t|| d S )Nra   20130102r0   r   r   r0   r   r   )r	   rj   rk   r   r   r6   r7   )r   r   r9   r:   r   r   r   test_take_nan_first_datetime   s   z%TestTake.test_take_nan_first_datetimer   Nr!   c                 C   sn  t dddd|d}|dg}|td|jdksJ |g d}t dd	d|jdd
}t|| |j|jks9J |g d}t ddd|jdd
}t|| |j|jksXJ |g d}t ddd|jdd
}t|| |j|jkswJ |g d}tg d|jd dd}t|| |jd u sJ |g d}tg d|jd dd}t|| |jd u sJ d S )Nr"   r#   r$   r%   )r   r   r   r   r   r   r   r*   r2   r&   )r   r*   r/   r(   r+   )   r/   r   z
2011-01-08r3   z-3D)r-   r*   r'   )r1   r2   
2011-01-06r4   )r*   r'   )z
2011-01-29r2   r   )	r   r   r   r   r6   r7   r   r	   r5   r8   r   r   r   	test_take   sN   zTestTake.test_takec                 C   s   t ddddd}g d}d}tjt|d |j|d	d
 W d    n1 s'w   Y  d}tjt|d |j||d W d    n1 sGw   Y  d}tjt|d |j|dd W d    d S 1 shw   Y  d S )Nr"   r#   r$   r%   r   )r      r'   	   r)         r-   z1take\(\) got an unexpected keyword argument 'foo'rL   r*   )fooz$the 'out' parameter is not supported)outz%the 'mode' parameter is not supportedclip)mode)r   rN   rO   	TypeErrorr   rP   )r   r%   indicesmsgr   r   r   test_take_invalid_kwargs  s   "z!TestTake.test_take_invalid_kwargs)Nrf   r!   c                 C   s   t ddddt ddddt ddddt ddddg}tddd	|d
d}t|d d
|jd}|g d}|g d }||fD ]&}t|| t|tsLJ |jd u sSJ |j	|j	ks[J |j
|j
kscJ q=d S )Nr   r      r         z2010-01-01 09:00z2010-02-01 09:00r   r%   )rS   rT   r   r   r   )r   r   r5   )r'   r         )r   r   r	   r5   r   r6   r7   rE   r   r   r   )r   r   datesr%   r:   taken1taken2takenr   r   r   
test_take2'  s,   zTestTake.test_take2c                 C   s  t g ddd}|tg d}t g ddd}t|| |jtg ddd}t g ddd}t|| |jtg dd	dd
}t g ddd}t|| d}tjt|d |jtg ddd W d    n1 suw   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r"   
2011-02-01
2011-03-01xxx)r   r   r   r0   r   r"   r   T
fill_valuer   r"   rk   F
allow_fillr   JWhen allow_fill=True and fill_value is not None, all indices must be >= -1rL   r   r   r   r   r,   out of boundsr   r,   
r	   r   rB   r   r6   r7   rN   rO   rP   
IndexErrorr   r%   r9   r:   r   r   r   r   test_take_fill_valueC  s,   "zTestTake.test_take_fill_valuec                 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 )Nr   r   rf   )r   r   r   r   Tr   r   Fr   r   rL   r   r   r   r   r,   r   r   r   r   r   "test_take_fill_value_with_timezonea  s<   



"z+TestTake.test_take_fill_value_with_timezone)r[   r\   r]   rN   r^   r_   r   r   r   r   r   r   r   r   r   r   r   r      s    

0
r   c                   @   s   e Zd Zdd Zdd Zdd Zejddd	gd
d Z	dd Z
dd Zejdedededgdd Zdd Zdd ZdS )
TestGetLocc                 C   s@   t ddd}|d d}||}|dksJ ||v sJ d S )N
2000-01-01r-   rb   r   ms)r   as_unitget_loc)r   r%   keylocr   r   r   test_get_loc_key_unit_mismatch  s
   
z)TestGetLoc.test_get_loc_key_unit_mismatchc                 C   s|   t dddjd}t|}|d dtd }tjt	dd	 |
| W d    n1 s1w   Y  ||vs<J d S )
Nr   r-   r   zM8[s]r   r   r   z,Timestamp\('2000-01-01 00:00:00.000000001'\)rL   )r   _dataastyper	   r   rj   r~   rN   rO   KeyErrorr   )r   dtarU   r   r   r   r   +test_get_loc_key_unit_mismatch_not_castable  s   z6TestGetLoc.test_get_loc_key_unit_mismatch_not_castablec                 C   sf   t dddd}|td}tdg}tj||dd |tdd}tg }tj||dd d S )	Nr      r   rb   r   r   F)check_dtype   )r   r   r   rB   r   r6   assert_numpy_array_equalr   r%   r9   r:   r   r   r   test_get_loc_time_obj  s   
z TestGetLoc.test_get_loc_time_objoffsetr)   c                 C   s  d}|| }t ddd}|jd |jd  |j }d}| f |td| td	|d
d}tj	t
jd||d}	t
j|||t
jd}
|	j|}t||
 t|	| |	j|
  |	 |	 }}||  d9  < |j|
  d9  < t|| W d    d S 1 sw   Y  d S )N2   r      r   i  <   iQ _SIZE_CUTOFFz
2014-11-26sr   r*   r   rs   r   )r   hourminutesecondcontextsetattrlibindexr   rj   SeriesrB   randomdefault_rngstandard_normalarangeintpr   r   r6   r   assert_series_equalilocrl   )r   monkeypatchr   size_cutoffnr   rS   stepr%   tslocsr9   leftrightr   r   r   test_get_loc_time_obj2  s$   
"z!TestGetLoc.test_get_loc_time_obj2c                 C   sD   t dddd}ttjg}||}tjg tjd}t	|| d S )Nr   +   iH7 )r   r   microsecondrs   )
r   r	   rj   rk   r   rB   r   r   r6   r   )r   ticrU   r   r:   r   r   r   test_get_loc_time_nat  s
   
z TestGetLoc.test_get_loc_time_natc                 C   s   t ddg}|tjdksJ |d dksJ |tjdks#J |tjdks-J |tddks9J tj	t
dd |td W d    d S 1 sTw   Y  d S )N1/3/2000rk   r   rL   )r	   r   rj   rk   rB   ri   NA
datetime64rN   rO   r   r{   r   r   r   r   r   test_get_loc_nat  s   "zTestGetLoc.test_get_loc_natr   r   r   c                 C   sN   t ddd}d}tjt|d || W d    d S 1 s w   Y  d S )Nz
1970-01-01r)   r   z,Cannot index DatetimeIndex with [Tt]imedeltarL   )r   rN   rO   r   r   )r   r   rU   r   r   r   r   "test_get_loc_timedelta_invalid_key  s
   "z-TestGetLoc.test_get_loc_timedelta_invalid_keyc                 C   sH   t dg}tjtdd |d W d    d S 1 sw   Y  d S )Nr   2000rL   r   )r	   rN   rO   r   r   r   r   r   r   !test_get_loc_reasonable_key_error  s   
"z,TestGetLoc.test_get_loc_reasonable_key_errorc                 C   s.   t dd}|d}tdd}||ksJ d S )Nr   z1/1/20102009i  iE  )r   r   slicer   rF   r9   r:   r   r   r   test_get_loc_year_str  s   


z TestGetLoc.test_get_loc_year_strN)r[   r\   r]   r   r   r   rN   r^   r_   r   r   r  rj   r~   r   r  r  r  r   r   r   r   r     s    

"
r   c                	   @   sH   e Zd Zdd Zejdg dg dg dg dg dgd	d
 ZdS )TestContainsc                 C   s,   t ddddd}t||g}||v sJ d S )Ni  r   r'   r   r   )r   r	   )r   dixr   r   r   !test_dti_contains_with_duplicates  s   z.TestContains.test_dti_contains_with_duplicatesvals)r   r   r   )r   r   r0   )r   r0   r0   )2015r  2016)r  r  2014c                 C   s   t |}|d |v sJ d S )Nr   )r	   )r   r  r%   r   r   r   test_contains_nonunique  s   z$TestContains.test_contains_nonuniqueN)r[   r\   r]   r  rN   r^   r_   r  r   r   r   r   r	    s    
r	  c                
   @   s   e Zd Zdd Zdd Zejdeddde	dge	d	eddd
ggdd Z
ejdeddde	d	gddgfe	d	edddgddgfedddedddgddgfgdd Zdd ZdS )TestGetIndexerc                 C   s:   t ddd}||dd }||}t|| d S )Nr   r   r   c                 S   s   |   S )N)r   )xr   r   r   <lambda>	  s    z;TestGetIndexer.test_get_indexer_date_objs.<locals>.<lambda>)r   get_indexermapr6   r   r  r   r   r   test_get_indexer_date_objs  s   
z)TestGetIndexer.test_get_indexer_date_objsc                 C   s  t ddd}tjg dtjd}t||| |d tg 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t	ddtjg dtjd t	dt	dt	d
 g}t|j|ddd |D dtjg dtjd t	d
 t	d
 dg}d}tjt|d |j|d|d W d    n1 sw   Y  tjtdd |j|dg ddd W d    d S 1 sw   Y  d S )Nr   r-   r   r   rs   r   )z-1 hourz12 hoursz1 day 1 hourpadr   backfillnearest)r   r   r   z1 hour)	tolerance)r   r0   r   c                 S   s   g | ]}t |qS r   )rB   r{   ).0r  r   r   r   
<listcomp>'  s    z3TestGetIndexer.test_get_indexer.<locals>.<listcomp>z2 hourr   z*Could not convert 'foo' to NumPy timedeltarL   zabbreviation w/o a number)methodr  )r   rB   r   r   r6   r   r  rj   to_timedeltar~   to_timedelta64rN   rO   rP   )r   r%   rH   targettol_rawtol_badr   r   r   r   test_get_indexer  sL   "zTestGetIndexer.test_get_indexerr!    r   
2020-01-02
2020-01-01r*   c                 C   sB   t tdtdg}||}tjddgtjd}t|| d S )Nr'  r&  r   r   rs   r	   r   r  rB   r   r   r6   r   )r   r!  ru   r9   r:   r   r   r   test_get_indexer_mixed_dtypes6  s   	
z,TestGetIndexer.test_get_indexer_mixed_dtypesztarget, positionsi'  r0   r   c                 C   s>   t tdtdg}||}tj|tjd}t|| d S )Nr'  r&  rs   r(  )r   r!  	positionsru   r9   r:   r   r   r   #test_get_indexer_out_of_bounds_dateD  s   	
z2TestGetIndexer.test_get_indexer_out_of_bounds_datec                 C   s`   t dddd}|g d }d}tjt|d |j|dd	 W d    d S 1 s)w   Y  d S )
Nr   z3/1/2000r<   r>   )r   r   r*   z0index must be monotonic increasing or decreasingrL   r  )r  )r   rN   rO   rP   r  )r   rF   rng2r   r   r   r   *test_get_indexer_pad_requires_monotonicityS  s   "z9TestGetIndexer.test_get_indexer_pad_requires_monotonicityN)r[   r\   r]   r  r$  rN   r^   r_   r   r   r)  r+  r-  r   r   r   r   r    s&    )

r  c                   @   s   e Zd Zdd Zdd ZdS )TestMaybeCastSliceBoundc                 C   sR   t dddd}|dd}td}||ksJ |dd}td	}||ks'J d S )
N1hr   r  )r   rb   rT   z
2015-01-02r   z2015-01-02 23:59:59.999999999r   z2015-01-02 00:00:00)r   _maybe_cast_slice_boundr   )r   	empty_idxr   rH   r   r   r   r   "test_maybe_cast_slice_bounds_empty_  s   z:TestMaybeCastSliceBound.test_maybe_cast_slice_bounds_emptyc                 C   s0   t ddg}|dd}td}||ksJ d S )N2017z
2017-01-01r   )r	   r0  r   r   r   r   r   )test_maybe_cast_slice_duplicate_monotonick  s   zATestMaybeCastSliceBound.test_maybe_cast_slice_duplicate_monotonicN)r[   r\   r]   r2  r4  r   r   r   r   r.  ^  s    r.  c                   @   s   e Zd Zejdeeegejdddgdd Z	ejdeegejddd	gejd
ddgdd Z
ejdeegdd ZdS )TestGetSliceBoundsboxzside, expected)r   r/   )r   r'   c           	      C   s   |}t dd|}|dddd}|d ur6tjtdd |j||d	 W d    d S 1 s/w   Y  d S |j||d	}||ksCJ d S )
N
2000-01-03
2000-02-11i  r   r   yearmonthdayCannot compare tz-naiverL   sider   rx   rN   rO   r   get_slice_bound)	r   r6  r?  r:   r   r   r   r   r9   r   r   r   %test_get_slice_bounds_datetime_withint  s   "z8TestGetSliceBounds.test_get_slice_bounds_datetime_withinr?  r   r   zyear, expected)i  r   )r%  r   c           
      C   s   |}t dd|}||ddd}|d ur6tjtdd |j||d W d    d S 1 s/w   Y  d S |j||d}	|	|ksCJ d S )	Nr7  r8  r   r   r9  r=  rL   r>  r@  )
r   r6  r?  r:  r:   r   r   r   r   r9   r   r   r   &test_get_slice_bounds_datetime_outside  s   "z9TestGetSliceBounds.test_get_slice_bounds_datetime_outsidec                 C   s   |}t ddg|}|ddd}|d ur9tjtdd |||ddd W d    d S 1 s2w   Y  d S |||ddd}d}||ksKJ d S )	Nz
2010-01-01z
2010-01-03r   r   r=  rL   r*   )r   r   )r	   rx   rN   rO   r   
slice_locs)r   r6  r   r   r   r   r9   r:   r   r   r   test_slice_datetime_locs  s   "z+TestGetSliceBounds.test_slice_datetime_locsN)r[   r\   r]   rN   r^   r_   r   r   r   rB  rC  rE  r   r   r   r   r5  s  s    r5  c                   @   s.   e Zd Zdd Zejdg ddd ZdS )TestIndexerBetweenTimec              	   C   sf   t dddd}d}tjt|d |tddd	dtddd	d
 W d    d S 1 s,w   Y  d S )Nr   1/5/20005minr>   zGCannot convert arg \[datetime\.datetime\(2010, 1, 2, 1, 0\)\] to a timerL   r   r   r*   r'   )r   rN   rO   rP   indexer_between_timer   )r   rF   r   r   r   r   test_indexer_between_time  s
   ""z0TestIndexerBetweenTime.test_indexer_between_timeunit)usr   r   c                 C   s   t dddd}|jj}|d| d}t|jj||jd}t|}|j|jks+J tdd	}td
d}|	||}	|	||}
t
|	|
 tdd	dd}td
ddd}|	||}	|	||}
t
|	|
 d S )Nr   rG  rH  r>   zM8[]rs   r      r*      r   in  i  )r   r   _ndarrayr   type_simple_newr5   r	   r   rI  r6   r   )r   rK  rF   arr_nanorp   r   rU   r   tocr9   r:   r   r   r   "test_indexer_between_time_non_nano  s    

z9TestIndexerBetweenTime.test_indexer_between_time_non_nanoN)r[   r\   r]   rJ  rN   r^   r_   rU  r   r   r   r   rF    s    rF  )$r   r   r   r   numpyrB   rN   pandas._libsr   r   pandas.compat.numpyr   pandasrj   r	   r
   r   r   r   r   pandas._testing_testingr6   pandas.tseries.frequenciesr   r?   r@   r   r`   r   r   r	  r  r.  r5  rF  r   r   r   r   <module>   s(     Y_ 2hY7