o
    _~#g/                     @   sN  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
mZ d dlZd dlmZmZmZmZmZ d dlmZ G dd dZG dd	 d	ZG d
d dZdd Zdd Zejddgd edgd gejdg deg dgdd Zejddgedggejddgedggdd ZG dd dZG dd dZ G dd dZ!d d! Z"ejd"ej#d#d$gg d%gd ej#d&fej#d#d$gg d%gd'ej#d(fd)fg d*d+ej#d+ggd'd$ej#fd&fgd,d- Z$ejd.ej#d'd/gg d0ge%d d/dej#d'fej#d'd/gg d0ge%d d1dej#d2fg d3d4ej#dgge%d'd1dd/ej#fd1fg d3d4ej#dgge%d'd1dd/ej#fd5fgd6d7 Z&d8d9 Z'ejd:e%ddd4gfd'd gfe%dd4dgfd d'gfg d;d4d<gfd d/gfg d;d<d4gfd d/gfd/d4dgfd d'gfd/dd4gfd'd gfd/gd4dgfd d'gfd/gdd4gfd'd gfgd=d> Z(d?d@ Z)dS )A    )	timedeltaN)index)InvalidIndexErrorPerformanceWarning)Categorical	DataFrameIndex
MultiIndex
date_rangec                   @   s   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zej	
dejddgg dgdejdfejddgg dgdejdfejddgg dgdejdfg ddejdggddejfdfg ddejdggddejfdfg ddejdggddejfdfgdd ZdS )TestSliceLocsc                 C   sz   | d\}}|dd}|dksJ |d d}|dksJ |dd }|dt|fks/J |dd}|d	ks;J d S )
Nr   footwo)quxone)      )r   r   r   barbaz)      )	sortlevel
slice_locslen)selfidx
sorted_idx_result r   /var/www/static.ux5.de/https/Moving-Object-Detection-with-OpenCV/env/lib/python3.10/site-packages/pandas/tests/indexes/multi/test_indexing.pytest_slice_locs_partial   s   z%TestSliceLocs.test_slice_locs_partialc                 C   s   t tjddttdtdtddddd	}|j	d
d}|j
}t||j
d |j
d  }|| }|dd j	d
d}t|j|j t||j
d tdd |j
d tdd  }|| }|dd j	d
d}t|j|j d S )Nr   )2   r   ABCDdtype
2000-01-01r"   Bperiodsfreqcolumnsr   Tfuture_stackr            seconds   )r   nprandomdefault_rngstandard_normalr   listobjectr
   stackr   slicer   tmassert_almost_equalvaluesr   )r   dfstackedr   slobslicedexpectedr   r   r    test_slice_locs(   s(   zTestSliceLocs.test_slice_locsc                 C   s  t tjddttdtdtddddd	}|j	d
d}|j
}tjtdd |d W d    n1 s9w   Y  tjtdd ||j
d tdd d W d    n1 s^w   Y  t tdtdd tdD ddtdd tdD ddd}|j	d
d}|j
}tjtdd |tdd W d    n1 sw   Y  tjtdd ||j
d d W d    d S 1 sw   Y  d S )Nr   )
   r   r#   r$   r&   rF   r'   r(   r+   Tr-   z^Level type mismatchmatchr      r   r1   r2   r   r   )r   r   c                 S      g | ]}d | qS zi-r   .0ir   r   r    
<listcomp>N       zDTestSliceLocs.test_slice_locs_with_type_mismatch.<locals>.<listcomp>a)namec                 S   rL   rM   r   rN   r   r   r    rQ   O   rR   )r   r,   r   )r0   rS   )r   r5   r6   r7   r8   r   r9   r:   r
   r;   r   pytestraises	TypeErrorr   r   onesrange)r   r@   rA   r   r   r   r    "test_slice_locs_with_type_mismatch@   s4   "z0TestSliceLocs.test_slice_locs_with_type_mismatchc                 C   s   t ttdttdttdgtg dtg dtg dgd}d}tjt|d |dd	 W d    n1 sDw   Y  |	d
\}}|dd	 d S )Nr   r   r   r   r   r   r   rJ   rJ   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   levelscodesz4[Kk]ey length.*greater than MultiIndex lexsort depthrG   )r   r   r   )r   r   r   r   )
r	   r   r5   arangearrayrU   rV   KeyErrorr   r   )r   r   msgsorted_indexr   r   r   r    test_slice_locs_not_sortedY   s   &z(TestSliceLocs.test_slice_locs_not_sortedc                 C   s   t g dg dgg dg dgd}|dd}|dksJ |d	d
}|dks*J |dd}|dks6J |dd
}|dksBJ |dd}|dksNJ |dd}|dt|fks^J d S )N)r   r   r   r4   )r   r   r   )	r   r   r   r   r   r   rJ   rJ   rJ   )	r   r   r   r   r   r   r   r   r   r^   r   r   rK   )rJ   r4   r   r   r   r   r   )r4   rJ   )rJ      rF   r   )r	   r   r   )r   r   r   r   r   r    test_slice_locs_not_containedk   s    z+TestSliceLocs.test_slice_locs_not_contained$index_arr,expected,start_idx,end_idxrS   bcde)r   rJ   N)rm   rq   rS   rm   ro   rp   rq   rI   ro   )ro   rq   c                 C   s(   t |}|j||d}||ksJ d S N)startend)r	   from_arraysr   )r   	index_arrrD   	start_idxend_idxr   r   r   r   r    "test_slice_locs_with_missing_value   s   
z0TestSliceLocs.test_slice_locs_with_missing_value)__name__
__module____qualname__r!   rE   rZ   rf   rk   rU   markparametrizer5   nanrz   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	S )
TestPutmaskc                 C   s   d}t jt|d |tt|d tjd W d    n1 s#w   Y  t jt|d |tt|d tjd W d    n1 sIw   Y  t jt|d |dd W d    d S 1 sgw   Y  d S )Nz,putmask: mask and data must be the same sizerG   r   r   )rU   rV   
ValueErrorputmaskr5   rX   r   bool_r   r   rd   r   r   r    test_putmask_with_wrong_mask   s     "z(TestPutmask.test_putmask_with_wrong_maskc                 C   sp   t tjdftjdfdg}t g d}tg d}|||}t |d |d |d g}t|| d S )Nr4   )rS   r   )rS   r   r   )rp   r   )TTFr   r   r   )r	   from_tuplesr5   r   rb   r   r=   assert_index_equal)r   leftrightmaskr   rD   r   r   r    test_putmask_multiindex_other   s   z)TestPutmask.test_putmask_multiindex_otherc                 C   s   t tjg d|dg dg}t tjg d|dg dg}|g d|}t tjg d|dg dg}t|| d S )	Nr   r   rJ   r$   rF         r   r4      )rj   TFFr   r   rJ   rj   r   r   r	   rv   pdSeriesr   r=   r   r   any_numeric_ea_dtypemidxmidx2r   rD   r   r   r    test_putmask_keep_dtype   s   z#TestPutmask.test_putmask_keep_dtypec                 C   s|   t tjg d|dg dg}t tjdg|ddgg}|g d|}t tjg d|dg dg}t|| d S )	Nr   r$   r   r   rj   r   r   r   r   r   r   r   r    %test_putmask_keep_dtype_shorter_value   s   z1TestPutmask.test_putmask_keep_dtype_shorter_valueN)r{   r|   r}   r   r   r   r   r   r   r   r    r      s
    r   c                   @   s8  e Zd Zdd Zdd Zdd Zejdde	j
d	gg d
gde	j
d	ge	jg de	jdfde	j
d	gg d
ge	j
dfge	jdge	jdfg de	j
ddggde	j
fge	jdge	jdfg de	j
ddgge	j
ddge	jg de	jdfgdd Zdd Zejdg ddd Zdd Zdd Zdd Zdd  Zd!S )"TestGetIndexerc                 C   s6  t td}t td}tjg dtjd}tjg dtjd}t||g||gd}|d d }|g d }||}t|tjg d	tjd |j|d
d}tjg dtjd}	t||	 |j|d d d d
d}
t|
|	d d d  |j|dd}t|| |j|dd}tjg dtjd}	t||	 |j|d d d dd}
t|
|	d d d  |j|dd}t|| ||j	}||}t|| |g d}|g dk
 sJ t ttdttd }t ttd}d}tjt|d || W d    d S 1 sw   Y  d S )Nr   r   )r   r   r   r   r   rJ   rJ   r$   )r   r   r   r   r   r   r   r^   r   )r   rJ   r   )r   rJ   rj   padmethod)rj   r   r   r   r   rj   ffillbackfill)r   r   r   r   r   bfillr   rj   rj   rj   rF      z8Reindexing only valid with uniquely valued Index objectsrG   )r   r5   ra   rb   intpr	   get_indexerr=   r>   r?   allr9   rY   rU   rV   r   )r   
major_axis
minor_axismajor_codesminor_codesr   idx1idx2r1e1r2rffill1rbfill1rexp1rd   r   r   r    test_get_indexer   sH   

$zTestGetIndexer.test_get_indexerc                 C   s   t ddg}d}tjt|d |jdgdd W d    n1 s#w   Y  d}tjt|d |jdgd	d
d W d    d S 1 sFw   Y  d S )Nr   rm   r   zJmethod='nearest' not implemented yet for MultiIndex; see GitHub issue 9365rG   rS   nearestr   z,tolerance not implemented yet for MultiIndexr   r   )r   	tolerance)r	   r   rU   rV   NotImplementedErrorr   )r   r   rd   r   r   r    test_get_indexer_nearest  s   "z'TestGetIndexer.test_get_indexer_nearestc              	   C   sJ   t tg dttddddg}||}t|tjdtj	d d S )Nrr   
2012-01-01rJ   hr(   	   r$   )
r	   from_productr   r
   r   r=   assert_numpy_array_equalr5   ra   r   )r   r   r   r   r   r    !test_get_indexer_categorical_time  s   

z0TestGetIndexer.test_get_indexer_categorical_timezindex_arr,labels,expectedr   r   rJ   r   r   r   r$   r   r   r   r   c                 C   s$   t |}||}t|| d S )N)r	   rv   r   r=   r   )r   rw   labelsrD   r   r   r   r   r    #test_get_indexer_with_missing_value  s   

z2TestGetIndexer.test_get_indexer_with_missing_valuec                 C   s  t g dg dg}t dgg dg}||}tjg d|jd}t|| |j|dd}tjg d	|jd}t|| |j|d
d}tjg d	|jd}t|| |j|dd}tjg d|jd}t|| |j|dd}tjg d|jd}t|| d S )N)rj   r   r   )r   r   rJ   r   r   )r   rJ   r   )rj   r4   r   r$   r   r   r   r   r   )r   r4   r   r   )r	   r   r   r5   rb   r%   r=   r>   r   
mult_idx_1
mult_idx_2indexerrD   backfill_indexerpad_indexerr   r   r    test_get_indexer_methods3  s"   
z'TestGetIndexer.test_get_indexer_methodsr   )r   r   r   r   r   c                 C   st   t g dg dg}|dkrt}d}nt}d}tj||d |jdg|d W d    d S 1 s3w   Y  d S )N)r   r   r   r   z"not implemented yet for MultiIndexz0index must be monotonic increasing or decreasingrG   r   r   r   )r	   rv   r   r   rU   rV   r   )r   r   mierrrd   r   r   r    0test_get_indexer_methods_raise_for_non_monotonicg  s   "z?TestGetIndexer.test_get_indexer_methods_raise_for_non_monotonicc           
      C   s4  t ddgg dddgg}t g d}|jsJ |jsJ |js$J |js)J |d |d k s3J |d |d   k rD|d k sGJ  J |d |d	 ksQJ |d |d   k rb|d
 k seJ  J |d |d   k rv|d
 k syJ  J |d |d   k r|d
 k sJ  J |d |d
 k sJ ||}tjg d|jd}t	
|| |j|dd}tjg d|jd}t	
|| |j|dd}tjg d|jd}t	
|| |d |d   k r|d k sJ  J |d |d   k r|d k sJ  J |d |d	   k r|d k sJ  J |d |d   k r-|d k s0J  J |d |d   k rC|d	 k sFJ  J |d	 |d ksQJ |d |d
   k rd|d
 k sgJ  J |d |d   k rz|d
 k s}J  J |d |d   k r|d
 k sJ  J |d |d   k r|d
 k sJ  J |d |d   k r|d
 k sJ  J |d |d   k r|d
 k sJ  J ||}tjg d|jd}t	
|| |j|dd}tjg d|jd}t	
|| |j|dd}	tjg d|	jd}t	
||	 d S )Nr   rJ   )r   r   r4   r   r   ))r   r   ri   )r   r   r   )r   r4   r   )r   r   r4   )r   r   r   )r   r   ri   )rJ   r4   ri   r   r   r   r4   rj   )rj   rj   r   rj   rj   rj   rj   r$   r   r   )r   r   r   r4   r4   r4   rj   r   )rj   rJ   r   r   r   r   r   ri   r   rF   r   )rj   rj   rj   rj   rj   r   rj   rj   rj   rj   rj   rj   r   )r   r   r   r   r   r   r4   r4   r4   r4   r4   r4   )r   r   r   r   r   r   r   r   r   r   r   r   )r	   r   r   is_monotonic_increasing	is_uniquer   r5   rb   r%   r=   r>   )
r   r   r   indexer_no_fillrD   indexer_backfilledindexer_paddedr   r   r   r   r   r    %test_get_indexer_three_or_more_levelst  sf   



((((
(,,,,,,,,,,



z4TestGetIndexer.test_get_indexer_three_or_more_levelsc                 C   s   t ddggd }t ddg}|d |d   k r"|d k s%J  J |d	 |d k s/J ||}tjd	d	g|jd
}t|| |j|dd}tjdd	g|jd
}t|| |j|dd}tjddg|jd
}t|| d S )Nr   r   r   )r   rJ   r   r   )r   rJ   r   r   r   r   ri   rj   r$   r   r   r   r/   )	r	   r   r   r   r5   rb   r%   r=   r>   r   r   r   r     test_get_indexer_crossing_levels  s   (
z/TestGetIndexer.test_get_indexer_crossing_levelsc                 C   s   t tdddgg}d}tjt|d |j|d d dd W d    n1 s*w   Y  d	}tjt|d |j|d d d
d W d    d S 1 sOw   Y  d S )NrJ   Ar'   z;limit argument only valid if doing pad, backfill or nearestrG   rj   r   )limitz?tolerance argument only valid if doing pad, backfill or nearestpiano)r   )r	   r   rY   rU   rV   r   r   )r   r   rd   r   r   r    !test_get_indexer_kwarg_validation  s   "z0TestGetIndexer.test_get_indexer_kwarg_validationc                 C   s   t jdgddggddgd}t jdgtjdggddgd}tddg}||}tj||d	d
 ||}tj||d	d
 d S )Nr         ?       @id1id2namesrj   r   F)check_dtype)r	   r   r5   r   rb   r   r=   r   )r   r   r   rD   r   r   r   r    test_get_indexer_nan  s   

z#TestGetIndexer.test_get_indexer_nanN)r{   r|   r}   r   r   r   rU   r~   r   r5   r   rb   r   r   r   r   r   r   r   r   r   r   r   r    r      s4    4
..

4
c.r   c                 C   s   | d dksJ | dd }| g d }| |sJ | g d }| tg d }| g d }| |s7J | |s>J d S )Nr   )r   r   r   r   rJ   r   )TFTFTT)r   r   r   r   )equalsr5   rb   )r   r   rD   result2r   r   r    test_getitem  s   r   c                 C   sB   |  d\}}|dtddksJ |dtddksJ d S )Nr   r   rJ   r   r   r   )r   get_locr<   )r   r   r   r   r   r    test_getitem_group_select-  s   r   ind1Tr   ind2)TFTFFc                 C   s@   t g d}t||  | t ddg}t|| | d S )N)rF   r   )r   r   r1   rJ   )(   r   )r"   r   r   r   )r	   r   r=   r   r   r   r   rD   r   r   r    test_getitem_bool_index_all3  s   r   Fc                 C   s\   t dg}t||  | t tjg tjdtjg tjdgg g gd}t|| | d S )Nr   r$   r^   )r	   r   r=   r   r5   rb   int64r   r   r   r    test_getitem_bool_index_singleA  s   r   c                   @   s   e Zd Zdd Zdd Zdd Zejde	e
eegejde	e
eegd	d
 Zejdddgejde	e
ge
e	ggdd Zejdeegdd Zejdddgd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<  | ddks	J | ddksJ tjtdd | d W d    n1 s)w   Y  tjtdd | d	 W d    n1 sEw   Y  tttd
ttd
ttd
gtg dtg dtg dgd}tjtdd | d W d    n1 sw   Y  | dt	ddksJ d S )Nr   r   )r   r   rJ   z^\('bar', 'two'\)$rG   r   r   z^'quux'$quuxr   r[   r\   r]   r^   z
^\(1, 1\)$r   )r   r   r   )
r   rU   rV   rc   r	   r   r5   ra   rb   r<   )r   r   r   r   r   r    test_get_locP  s&   &zTestGetLoc.test_get_locc                 C   s   t g d}|d}tdd}||ksJ t g d}|d}d}||ks)J tjtdd |d W d    d S 1 sAw   Y  d S )	N)r   r   r   r   r   r   r   )ro   rS   rS   rm   rm   ro   2rG   )r   r   r<   rU   rV   rc   )r   r   r   rD   rsxpr   r   r    test_get_loc_duplicatese  s   


"z"TestGetLoc.test_get_loc_duplicatesc                 C   s  t ttdttdttdgtg dtg dtg dgd}|d\}}tdd}|| d	d	}||ksFJ ||sMJ |d
\}}d}||ks\J |d u sbJ t	j
tdd |d W d    n1 syw   Y  t	j
tdd |dd W d    n1 sw   Y  t	j
tdd |jdddjddd W d    n1 sw   Y  t dgttdgtg dtg dgd}|dtd d f\}}td d }||ksJ ||d	sJ d S )Nr   r[   r\   r]   r^   r   r   r   r   r   )r   r   r   z
^\(2, 2\)$rG   rh   z^2$)leveli  )r   r   r   r   )r   r   r   rJ   )r	   r   r5   ra   rb   get_loc_levelr<   	droplevelr   rU   rV   rc   dropr9   rY   )r   r   loc	new_indexrD   	exp_indexr   r   r   r    test_get_loc_levels  sB   &

zTestGetLoc.test_get_loc_leveldtype1dtype2c                 C   sL   t ddg|t ddg|g}t|}||d dks$J d S )Nr   r   r   )r5   rb   astyper	   r   r   )r   r  r  r_   r   r   r   r    test_get_loc_multiple_dtypes  s   (
z'TestGetLoc.test_get_loc_multiple_dtypesr   r   r   dtypesc                 C   sf   ddgddgg}ddg}|\}}t jddg|d||< |d||< t|}|t|dks1J d S )	NrS   rm   ro   rp   r   r   r$   rJ   )r5   rb   r	   r   r   tuple)r   r   r  r_   key	lev_dtype	key_dtyper   r   r   r    test_get_loc_implicit_cast  s   
z%TestGetLoc.test_get_loc_implicit_castr%   c                 C   sL  t ddg|dtjdddg}t|}|tu rYtjtdd |	dd	ks)J W d    n1 s3w   Y  tjtd
d |	ddksIJ W d    n1 sSw   Y  n|	dd	ksbJ |	ddkskJ tjtdd |	d W d    n1 sw   Y  tjtdd |	d W d    d S 1 sw   Y  d S )NFTr$   r   r   z
^\(0, 1\)$rG   r   r   z
^\(1, 0\)$rg   z^\(False, True\)$)FTz^\(True, False\)$)TF)
r   r5   ra   r	   r   boolrU   rV   rc   r   )r   r%   r_   r   r   r   r    test_get_loc_cast_bool  s$   
"z!TestGetLoc.test_get_loc_cast_boolc                 C   s^   ddgddgg}ddg}t jd|gt|d||< |||< t|}|t|dks-J d S )NrS   rm   ro   rp   r   r$   rJ   )r5   rb   typer	   r   r   r  )r   r   nulls_fixturer_   r  r   r   r   r    test_get_loc_nan  s   
zTestGetLoc.test_get_loc_nanc                 C   s   t ddgddgg}t|dtsJ tjtdd |d W d    n1 s,w   Y  tjtd	d |tj	 W d    n1 sIw   Y  tjt
d
d |tj	g W d    d S 1 shw   Y  d S )Nr   r   g      @g      @r   z^3$rG   rJ   z^nan$z\[nan\])r	   rv   
isinstancer   r<   rU   rV   rc   r5   r   r   r   r   r   r   r    test_get_loc_missing_nan  s   "z#TestGetLoc.test_get_loc_missing_nanc                 C   s   t tjdggd }tddd }|tj|ksJ t tjddtjgg}tg d}t	|tj| t tjdggd }tddd }|tjdf|ksUJ d S )Nr   r   r   )TFFTrJ   r   )
r	   r   r5   r   r<   r   rv   rb   r=   r   )r   r   rD   r   r   r    1test_get_loc_with_values_including_missing_values  s   z<TestGetLoc.test_get_loc_with_values_including_missing_valuesc                 C   sF   t g dg dgg dg dgddgd}|dtd	d
ks!J d S )N)Dr'   C)r         %   9   C   K   R   )
r   r   r   r   r   r   r   r   r   r   )
r   rJ   r   r4   r   r   r   rJ   r   r   tagdayr_   r`   r   r  r   rJ   )r	   r   r<   )r   r   r   r   r    test_get_loc_duplicates2  s   z#TestGetLoc.test_get_loc_duplicates2c                 C   s   t dgddgdggddgddgddggg ddd}d}tt ||}W d    n1 s1w   Y  |tddd ks@J d S )NrS   r   r   r   )xyz)r_   r`   r   	sortorder)rS   r   )r	   r=   assert_produces_warningr   r   r<   )r   r   r  r   r   r   r    test_get_loc_past_lexsort_depth  s   z*TestGetLoc.test_get_loc_past_lexsort_depthc                 C   sP   t ddg}d}tjt|d |g  W d    d S 1 s!w   Y  d S )Nr   r   z\[\]rG   )r	   r   rU   rV   r   r   r   r   r   r    #test_multiindex_get_loc_list_raises  s
   "z.TestGetLoc.test_multiindex_get_loc_list_raisesc                 C   sn   t tdtdtdtdg}d}tjttt|d |	| W d    d S 1 s0w   Y  d S )NrJ   r   r   r4   )r   r   rG   )
r	   r   rY   rU   rV   rc   reescapestrr   )r   r   r  r   r   r    )test_get_loc_nested_tuple_raises_keyerror  s
   ""z4TestGetLoc.test_get_loc_nested_tuple_raises_keyerrorN)r{   r|   r}   r   r   r  rU   r~   r   intfloatr  r0  r
  r  r:   r  r  r  r  r&  r,  r-  r1  r   r   r   r    r   O  s(    &


	
r   c                   @   s   e Zd Zdd Zdd ZdS )	TestWherec                 C   sP   t ddg}d}tjt|d |d W d    d S 1 s!w   Y  d S )Nr   r   r   r   2\.where is not supported for MultiIndex operationsrG   Tr	   r   rU   rV   r   where)r   rP   rd   r   r   r    
test_where  s
   "zTestWhere.test_wherec                 C   s\   t ddg}ddg}d}tjt|d ||| W d    d S 1 s'w   Y  d S )Nr5  r6  FTr7  rG   r8  )r   listlike_boxr   condrd   r   r   r    test_where_array_like  s   "zTestWhere.test_where_array_likeN)r{   r|   r}   r:  r=  r   r   r   r    r4    s    r4  c                   @   sD   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	dS )TestContainsc                 C   s4   t ddgddgg}d|v sJ d|jvsJ d S )Nr   r'   r   r   )r	   r   _engine)r   r   r   r   r    test_contains_top_level"  s   z$TestContains.test_contains_top_levelc                 C   s^   t dgtdddgg dg dgd dgd}dtdf|v s!J |jD ]}||v s,J q$d S )	Nr  r   r   )r)   )r   r   r   r   r   r   )rj   r   r   r   rJ   r   r'   r%  )r	   r
   r   	Timestampr?   )r   r   valr   r   r    test_contains_with_nat'  s   
z#TestContains.test_contains_with_natc                 C   s(   d|v sJ d|vsJ d |vsJ d S )Nr   r   r   r  r   r   r    test_contains2  s   zTestContains.test_containsc                 C   s^   t dtjdgg}tj|v sJ t ddgtjdgg}tj|vs$J dtjf|v s-J d S )Nr   r   rJ   )r	   rv   r5   r   r  r   r   r     test_contains_with_missing_value7  s
   z-TestContains.test_contains_with_missing_valuec                 C   s   t ddgddgg}d|v sJ |d}d|jd v sJ d|vs%J t ddgdd	gg}d|v s6J |d}d|jd v sDJ d|vsJJ d S )
Nr   r   rJ   r   r   rS   rm   ro   rp   )r	   r   r  r_   r  r   r   r     test_multiindex_contains_dropped@  s   

z-TestContains.test_multiindex_contains_droppedc                 C   sT   t jdddd}t|tt|g}|d |v sJ d|vs"J d|v s(J d S )Nz09:30:00z16:00:00z30 min)r*   r   element_not_exitz0 day 09:30:00)r   timedelta_ranger	   rv   r5   ra   r   )r   txr   r   r   r    test_contains_td64_levelT  s
   z%TestContains.test_contains_td64_levelc                 C   s^   |  ! |tdd ttdtdg}d|vsJ W d    d S 1 s(w   Y  d S )N_SIZE_CUTOFFrF   )rF   r   )contextsetattrlibindexr	   rv   rY   )r   monkeypatchr   r   r   r    test_large_mi_contains\  s
   
"z#TestContains.test_large_mi_containsN)
r{   r|   r}   r@  rC  rD  rE  rF  rJ  rP  r   r   r   r    r>  !  s    	r>  c                  C   s   t tddddddgdgg} tdtt| i| }|jtj	d	d dd d f df }t td
dddddgdgg}tj
tdt|d |dd}t|| d S )Nz2019-01-01T00:15:33d   r   date)r)   r*   rT   r'  rJ   r   z2019-1-2z2019-01-02T00:15:33z2019-01-05T03:15:33)rt   ru   r*   rT      )datar   rT   )r	   r   r
   r   r5   ra   r   r  r   
IndexSlicer   r=   assert_series_equal)r   r@   r   qidx	should_ber   r   r    !test_timestamp_multiindex_indexerd  s*   " rY  zindex_arr,expected,target,algorS   rm   rn   r   r   ro   r   rr   rp   c                 C   (   t | }|j||d}||ksJ d S )N)side)r	   rv   get_slice_bound)rw   rD   targetalgor   r   r   r   r    'test_get_slice_bound_with_missing_value  s   

r_  rl   r   r   rJ   )r   r   r   r   )rJ   r   c                 C   rZ  rs   )r	   rv   slice_indexer)rw   rD   rx   ry   r   r   r   r   r    %test_slice_indexer_with_missing_value  s   
ra  c               	      sT  d} dd dgd |  dgd |  dgd |  t jg|  dgd |   dg|  dgd |   t jg|  dgd	 |   dg|   fD  t D ].\}}t }|||ksYJ t j|d t jd
}| fdd|D }t	
|| qGtt }t jdgt| t jd
}tddgd |  }||g fdd|D  }t	
|| d S )Nr   c                 S   s   g | ]}t |qS r   )r  )rO   arrr   r   r    rQ     s    z%test_pyint_engine.<locals>.<listcomp>r   rF   r   r   r   ri   r$   c                       g | ]} | qS r   r   rN   keysr   r    rQ         rj   c                    rc  r   r   rN   rd  r   r    rQ     rf  )r5   r   	enumerater	   r   r   ra   r   r   r=   r   rY   r   rb   r9   r  )Nr   	key_valuer   rD   r   idcesmissingr   rd  r    test_pyint_engine  s*   "
rl  zkeys,expected)TFTr4   c                 C   s@   t g dg dg}|| }tj|tjd}t|| d S )N)r   r   r   )r   r   r4   r$   )r	   rv   get_locsr5   rb   r   r=   r   )re  rD   r   r   r   r   r    test_get_locs_reordering  s   
rn  c                 C   s   t jdgddggddgd}t jdg| dggddgd}||}tjddgtjd	}t|| ||}tjddgtjd	}t|| d S )
Nr   r   r   r   r   r   rj   r   r$   )r	   r   r   r5   rb   r   r=   r   )r  r   r   r   rD   r   r   r    )test_get_indexer_for_multiindex_with_nans  s   

ro  )*datetimer   r.  numpyr5   rU   pandas._libsr   rN  pandas.errorsr   r   pandasr   r   r   r   r	   r
   pandas._testing_testingr=   r   r   r   r   r   r~   r   r   r   r   r4  r>  rY  r   r_  r<   ra  rl  rn  ro  r   r   r   r    <module>   s~     7  N 	 CC  
$$((
	&
