o
    Û­j/Ž  ã                   @   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   úe/var/www/html/CropPilot/venv/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 s¦w   Y  tjtdd�� | |j
d d¡ W d   ƒ d S 1 sÇw   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 
¡ sãJ ‚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 s�J ‚ J ‚|d |d
 k s—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 |d   k rë|d k sîJ ‚ 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 �s“J ‚ 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 �sÕJ ‚ 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 s‹w   Y  |  d¡t	ddƒksœJ ‚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 s˜w   Y  t	j
tdd�� |jddd�jddd� W d   ƒ n1 s»w   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sðJ ‚| | d	¡¡súJ ‚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 s‚w   Y  tjtdd�� | 	d¡ W d   ƒ d S 1 sŸw   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:33éd   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  ýþ
$$((üþ
	&øþ
