U
    U‚gØ  ã                   @   s  d dl mZ d dlmZ d dlmZ d dlZd dl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mZ d dlmZmZ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m Z  d dl!m"Z# d d
l$m%Z%m&Z&m'Z'm(Z(m)Z) d dl*m+Z+ G dd„ de+ƒZ,G dd„ de+ƒZ-G dd„ dƒZ.e
j/ 0ddddddddddddddd d!d"d#d$d%d&g¡d'd(„ ƒZ1e
j/ 0d)e# 2¡ ¡d*d+„ ƒZ3d,d-„ Z4d.d/„ Z5e
j/ 0d0de	j6e	j7e	j8g¡d1d2„ ƒZ9e
j/ 0d3e%i gfd4d5„ e#j:D ƒei gei ged6d7igf•¡d8d9„ ƒZ;e
j/ 0d:ej<ej=g¡d;d<„ ƒZ>dS )=é    )Údefaultdict)Údatetime)ÚStringION)ÚIS64)ÚInvalidIndexError)Ú
async_mark)Úis_any_real_numeric_dtypeÚis_numeric_dtypeÚis_object_dtype)
ÚCategoricalIndexÚ	DataFrameÚDatetimeIndexÚIntervalIndexÚPeriodIndexÚ
RangeIndexÚSeriesÚTimedeltaIndexÚ
date_rangeÚperiod_range)ÚIndexÚ
MultiIndexÚ_get_combined_indexÚensure_indexÚensure_index_from_sequences)ÚBasec                   @   s¨  e Zd ZeZejedœdd„ƒZdd„ Zej	j
ddgdd	�d
d„ ƒZdd„ Zej	j
ddgdd	�dd„ ƒZej	j
ddgdd	�dd„ ƒZej	 
dddg¡ej	 
dedddddd�edddd�ejdddd�edddd�g¡dd„ ƒƒZej	 
d eddddd!�dfejdddd�dfedddd�dfg¡d"d#„ ƒZd$d%„ Zd&d'„ Zd(d)„ Zej	 
d*eejejfed+ejfg¡d,d-„ ƒZej	 
d.d/d0dd1d2gd3fd4ejd5d6gd7fd8d9d:ejgd;fg¡d<d=„ ƒZej	 
d>d?d@g¡ej	 
dAeeg¡dBdC„ ƒƒZej	 
d>d?d@g¡ej	 
dAee g¡dDdE„ ƒƒZ!ej	 
dFg e"g ƒdGdH„ dID ƒg¡ej	 
dAee#ee g¡dJdK„ ƒƒZ$ej	 
dLe%g d9dM�e%fe%e"g ƒd9dM�e%fe%dNdH„ dID ƒd9dM�e%fe&d/dO�e&fe'd/d0gdPdQggg g gdR�e'fg¡dSdT„ ƒZ(ej	j
dddUdVdWdXdYdZd[d\d]d^d_gdd	�d`da„ ƒZ)ej	j
ddej*dbej	j+dcdd�de�dfdgdhgdd	�didj„ ƒZ,ej	j
ddWdXdZgdd	�dkdl„ ƒZ-dmdn„ Z.ej	 
doedpdqgƒedpdqdrgƒdpdqdsgg¡dtdu„ ƒZ/dvdw„ Z0dxdy„ Z1dzd{„ Z2ej	j
ddgdd	�d|d}„ ƒZ3d~d„ Z4ej	j
dddWdXd^d_dUdVgdd	�ej	 
d€ej5ej6g¡d�d‚„ ƒƒZ7ej	j
dddWdXd^d_dUdVgdd	�dƒd„„ ƒZ8d…d†„ Z9d‡dˆ„ Z:d‰dŠ„ Z;ej	 
d>d‹dŒd�g¡dŽd�„ ƒZ<d�d‘„ Z=ej	 
d’d“d”„ d•d”„ g¡d–d—„ ƒZ>ej	 
d’d˜d”„ d™d”„ g¡dšd›„ ƒZ?ej	 
d’e@dœd�džgdŸd0d gd¡�dœd�džd¢œg¡d£d¤„ ƒZAd¥d¦„ ZBd§d¨„ ZCej	 
d©dªd«g¡d¬d­„ ƒZDej	j
d®d¯d°d±d²d³d´dµd¶d·d¸d¹gdgd	�dºd»„ ƒZEej	j
d®d¼d½d±d²d¾d¿dÀdÁd·dÂdÃgdgd	�dÄdÅ„ ƒZFdÆdÇ„ ZGdÈdÉ„ ZHej	 
dÊd/dËdÌgdpdqdsgg¡dÍdÎ„ ƒZIej	 
dÏdÐdÑg¡dÒdÓ„ ƒZJej	j
dddWdXdUdVgdd	�dÔdÕ„ ƒZKej	j
dddWdXdUdVgdd	�ej	 
dÖdœd×gdØd×gg¡dÙdÚ„ ƒƒZLej	j
dddWdXdUdVgdd	�dÛdÜ„ ƒZMdÝdÞ„ ZNdßdà„ ZOej	 
dád1ed/d0dgƒfdd1d2ged/d0gƒfg¡dâdã„ ƒZPej	 
d?dpdqdägdpdädqgdädpdqgg¡ej	 
dådädpgdpdägg¡dædç„ ƒƒZQdèdé„ ZRej	 
d>dêdëdìdíg¡dîdï„ ƒZSej	 
d?dœd×dðgdœd×dðhg¡ej	 
dñedòdždœd×gƒe Tddddg¡feg ƒejTg eUdó�fg¡dôdõ„ ƒƒZVdöd÷„ ZWdødù„ ZXej	 
dúdŸd g¡ej	 
dedòdždœd×gƒedûd�d6dÌgejdó�g¡düdý„ ƒƒZYdþdÿ„ ZZej	 
�d dû�d�dejg¡�d�d„ ƒZ[ej	 
dhg e@e\dó�e Tg ¡g¡�d�d„ ƒZ]ej	 
d?d/d0dd1gdûd�d6dÌgddddgdœd×dždòge�ddd1d�g¡�d�d	„ ƒZ^ej	j
ddgdd	�ej	 
�d
�d�dg¡�d�d„ ƒƒZ_�d�d„ Z`ej	j
ddddWdXd^d_dUdVgdd	��d�d„ ƒZaej	 
�d�d�d�dg¡�d�d„ ƒZbej	 
deecd2ƒƒed e�d¡e' f�d�dg¡e�d�dd8�d�g¡�d�d „ ƒZgej	 
�d!�d"edpdqdsgdr�d#g�d$ggƒfdedpdqdsgdr�d#g�d$ggƒfde' f�d%dr�d#ejf�d$ejejfg¡fg¡�d&�d'„ ƒZh�d(�d)„ Zi�d*�d+„ Zjej	 
dñeek�d,ƒƒdfeecd1ƒƒdfg¡�d-�d.„ ƒZl�d/�d0„ Zm�d1�d2„ Zn�d3�d4„ Zo�d5�d6„ Zp�d7�d8„ Zqej	 
�d9�d"�dg¡ej	 
�d:g e Tg ¡d8d9d:gd:d9d8ge Td8d9d:g¡e Td:d9d8g¡e�d;d�d<�jre�d;d�d<� s¡ g¡�d=�d>„ ƒƒZtej	 
�d:g e Tg ¡ejTg ejudó�g¡�d?�d@„ ƒZvej	 
�dAeg ƒejwfg¡�dB�dC„ ƒZx�dD�dE„ Zy�dF�dG„ Zz�dH�dI„ Z{�dJ�dK„ Z|ej	 
�dLe' f�dM�dNg¡e Tddg¡fe' f�dM�dOg¡e Tddg¡fg¡�dP�dQ„ ƒZ}�dR�dS„ Z~ej	 
de' f�dM�dN�dTg¡edœd×džgƒg¡�dU�dV„ ƒZ�dW�dX„ Z€ej	 
�dYej��dZ�d[gfej‚�d\�d]gfg¡�d^�d_„ ƒZƒ�d`�da„ Z„e…ƒ �db�dc„ ƒZ†�dd�de„ Z‡�df�dg„ Zˆ�d"S (h  Ú	TestIndex©Úreturnc                 C   s   |   tdƒ¡S )NZabcde)Ú
_index_clsÚlist©Úself© r"   úB/tmp/pip-unpacked-wheel-u1j4u1ka/pandas/tests/indexes/test_base.pyÚsimple_index0   s    zTestIndex.simple_indexc                 C   s"   |}|d }|  |¡dkst‚d S )Nr   T)Z$_can_hold_identifiers_and_holds_nameÚAssertionError)r!   r$   ÚindexÚkeyr"   r"   r#   Útest_can_hold_identifiers4   s    z#TestIndex.test_can_hold_identifiersr&   r   T)Zindirectc              	   C   s.   t jtdd�� |d d d …f  W 5 Q R X d S )NúMulti-dimensional indexing©Úmatch)ÚpytestÚraisesÚ
ValueError©r!   r&   r"   r"   r#   Útest_new_axis9   s    zTestIndex.test_new_axisc                 C   s   t  ||¡ d S ©N)ÚtmÚassert_contains_allr/   r"   r"   r#   Útest_constructor_regularA   s    z"TestIndex.test_constructor_regularÚstringc                 C   s.   t  |¡}t|ƒ}t ||¡ t ||¡ d S r1   )ÚnpÚarrayr   r2   r3   Úassert_index_equal©r!   r&   ÚarrZ	new_indexr"   r"   r#   Útest_constructor_castingD   s    
z"TestIndex.test_constructor_castingc                 C   s^   t  |¡}t|ddd�}t|tƒs&t‚|jdks4t‚t ||j¡ d|d< |d dksZt‚d S )NTÚname©Úcopyr<   ZSOMEBIGLONGSTRINGr   )	r6   r7   r   Ú
isinstancer%   r<   r2   Úassert_numpy_array_equalÚvaluesr9   r"   r"   r#   Útest_constructor_copyL   s    
zTestIndex.test_constructor_copyÚcast_as_objFz2015-01-01 10:00ÚDé   z
US/EasternzGreen Eggs & Ham)ÚfreqÚperiodsÚtzr<   )rF   rG   ú1 daysz
2015-01-01c                 C   sŠ   |rt | t¡ƒ}nt |ƒ}t ||¡ t|tƒr†|j|jksBt‚|r†|t	j
dd�7 }t |td�}|jtjksrt‚t|ƒt|ƒks†t‚d S )Né2   )Znanoseconds©Údtype)r   ÚastypeÚobjectr2   r8   r?   r   rH   r%   ÚpdZ	TimedeltarL   r6   Úobject_r   )r!   rC   r&   Úresultr"   r"   r#   Ú"test_constructor_from_index_dtlikeV   s    
z,TestIndex.test_constructor_from_index_dtlikezindex,has_tz)rF   rG   rH   c                 C   s0   t t|ƒƒ}t ||¡ |r,|j|jks,t‚d S r1   )r   r   r2   r8   rH   r%   )r!   r&   Zhas_tzrQ   r"   r"   r#   Ú#test_constructor_from_series_dtlikey   s    z-TestIndex.test_constructor_from_series_dtlikec                 C   sD   dddddg}t |dd�}tt |¡ƒ}t |dd�}t ||¡ d S )Nú1-1-1990ú2-1-1990ú3-1-1990ú4-1-1990ú5-1-1990ÚMS©rF   )r   r   rO   Úto_datetimer2   r8   )r!   ÚdtsÚexpectedÚsrQ   r"   r"   r#   Ú!test_constructor_from_series_freq‹   s
    z+TestIndex.test_constructor_from_series_freqc                 C   s¢   dddddg}t |dd�}ttj dd	¡ƒ}||d
< t |d
 dd�}|d
 jtksVt‚d
|_t	 
||¡ t|d
d�}t	 |d
 |¡ t |d
 ¡}|dksžt‚d S )NrT   rU   rV   rW   rX   rY   rZ   é   rE   Údate©r<   )r   r   r6   ÚrandomZrandrL   rN   r%   r<   r2   r8   r   Úassert_series_equalrO   Z
infer_freq)r!   r\   r]   ÚdfrQ   rF   r"   r"   r#   Ú'test_constructor_from_frame_series_freq–   s    z1TestIndex.test_constructor_from_frame_series_freqc                 C   s2   t jg}t|t jd�}t|dd�}t ||¡ d S )NrK   Úfloat)r6   Únanr   Úfloat64r2   r8   )r!   Údatar]   rQ   r"   r"   r#   Útest_constructor_int_dtype_nan¬   s    z(TestIndex.test_constructor_int_dtype_nanzklass,dtype,na_valzdatetime64[ns]c                 C   sP   ||g}||ƒ}|j |kst‚t|ƒ}t ||¡ tt |¡ƒ}t ||¡ d S r1   )rL   r%   r   r2   r8   r6   r7   )r!   ÚklassrL   Zna_valZna_listr]   rQ   r"   r"   r#   Útest_index_ctor_infer_nan_nat³   s    	z'TestIndex.test_index_ctor_infer_nan_natz
vals,dtypeé   é   é   r`   Úintgš™™™™™ñ?gš™™™™™@ç      @rg   ÚAÚBÚCÚobjc                 C   s*   t ||d�}| |j|¡}t ||¡ d S )Nrb   )r   Z_simple_newrA   r2   r8   )r!   ÚvalsrL   r&   rQ   r"   r"   r#   Útest_constructor_simple_newÆ   s    	z%TestIndex.test_constructor_simple_newÚattrrA   Úasi8rl   c           
   	   C   sþ  t ddd�}t||ƒ}| |¡}|j}|d k	}d}|dkrVt|ƒ |¡}	t |	|¡ nH|tkr†tj	t
dd�� |||d� W 5 Q R X n|||d�}	t |	|¡ |dkrð|rÔtj	t
|d�� t|ƒ |¡ W 5 Q R X nt|ƒ |¡}	t |	|¡ n|||d	�}	t |	|¡ |dk�r2tt|ƒƒ |¡}	t |	|¡ nN|tk�rdtj	t
dd�� |||d� W 5 Q R X n|t|ƒ|d�}	t |	|¡ |dk�rÞ|�r¾tj	t
|d�� tt|ƒƒ |¡ W 5 Q R X ntt|ƒƒ |¡}	t |	|¡ n|t|ƒ|d	�}	t |	|¡ d S )
Nú
2011-01-01r`   ©rG   z:Cannot use .astype to convert from timezone-naive dtype torz   zunexpected keywordr*   )rH   rK   )r   ÚgetattrZtz_localizerL   r   r2   r8   r   r,   r-   Ú	TypeErrorrM   r   )
r!   Ztz_naive_fixturery   rl   r&   ÚargrL   ÚerrÚmsgrQ   r"   r"   r#   Ú test_constructor_dtypes_datetimeÓ   sL    




z*TestIndex.test_constructor_dtypes_datetimec                 C   s`   t jddd�}| d ¡}|j}t||ƒ}|||d�}t ||¡ |t|ƒ|d�}t ||¡ d S )NrI   r`   r|   rK   )rO   Útimedelta_rangeZ
_with_freqrL   r}   r2   r8   r   )r!   ry   rl   r&   rL   rA   rQ   r"   r"   r#   Ú!test_constructor_dtypes_timedelta  s    

z+TestIndex.test_constructor_dtypes_timedeltaÚvaluec                 c   s   | ]
}|V  qd S r1   r"   ©Ú.0Ú_r"   r"   r#   Ú	<genexpr>  s     zTestIndex.<genexpr>r"   c                 C   s&   ||ƒ}t ||ƒst‚t|ƒr"t‚d S r1   ©r?   r%   Úlen)r!   r…   rl   Úemptyr"   r"   r#   Útest_constructor_empty  s    z TestIndex.test_constructor_emptyzempty,klassrZ   c                 c   s   | ]
}|V  qd S r1   r"   r†   r"   r"   r#   r‰   1  s     )ÚstepZblueZred)ÚlevelsÚcodesc                 C   s   t ||ƒst‚t|ƒrt‚d S r1   rŠ   )r!   rŒ   rl   r"   r"   r#   Útest_constructor_empty_special,  s    z(TestIndex.test_constructor_empty_specialri   Úfloat32Úint64Úint32ZperiodÚrangeZrepeatsÚ	timedeltaZtuplesÚuint64Úuint32c                 C   s   |  d¡ d S )NÚi8)Úviewr/   r"   r"   r#   Útest_view_with_args:  s    zTestIndex.test_view_with_argsÚcategoricalzgh-25464)Úreason)Zmarksúbool-objectú
bool-dtyperŒ   c              	   C   s`   |j tkr4d}tjt|d�� | d¡ W 5 Q R X n(d}tjt|d�� | d¡ W 5 Q R X d S )NzWhen changing to a larger dtyper*   r™   z(Cannot change data-type for object array)rL   Úboolr,   r-   r.   rš   r~   ©r!   r&   r�   r"   r"   r#   Ú'test_view_with_args_object_array_raisesO  s    
z1TestIndex.test_view_with_args_object_array_raisesc                 C   s6   |  d¡}| d¡ d|_|  d¡}|jdks2t‚d S )Nr™   r`   Úfoobar)rM   Úget_locr<   r%   )r!   r&   Zcastedr"   r"   r#   Útest_astyped  s
    


zTestIndex.test_astypec                 C   s&   t dddgƒ t dddgƒ¡s"t‚d S ©NÚaÚbÚc©r   Úequalsr%   r    r"   r"   r#   Útest_equals_objectt  s    zTestIndex.test_equals_objectÚcompr§   r¨   Údr©   c                 C   s   t dddgƒ |¡rt‚d S r¦   rª   )r!   r­   r"   r"   r#   Útest_not_equals_objectx  s    z TestIndex.test_not_equals_objectc                 C   sš   t dddgƒ}t dddgƒ}| |¡s*t‚| d¡}| |¡sBt‚| |¡rPt‚| d¡}| |¡sht‚t dddgƒ}t dddgdd	�}| |¡r–t‚d S )
Nr§   r¨   r©   Úfoo©r§   r§   ©r§   r¨   )r¨   r§   F)Ztupleize_cols)r   Ú	identicalr%   Úrenamer«   )r!   Úi1Úi2Zi3Úi4r"   r"   r#   Útest_identical~  s    

zTestIndex.test_identicalc                 C   s0  t tdƒƒ}| |¡st‚| | ¡  ¡  ¡  ¡ ¡s8t‚| t tdƒƒ¡rNt‚| | ¡ ¡r`t‚| |jdd�¡rvt‚| |d d … ¡rŒt‚| t tdƒ¡¡r¤t‚| | ¡ ¡s¶t‚| ¡ }d|_| |¡sÒt‚| |¡sàt‚| t |j	ƒ¡rôt‚t tddƒ¡}t |dd�}t |dd�}| |¡�r,t‚d S )Né
   F)ÚdeepZbobrn   é   ©r>   )
r   r•   Úis_r%   rš   r>   r6   r7   r<   rA   )r!   ÚindZind2r:   Zind1r"   r"   r#   Útest_is_�  s$    zTestIndex.test_is_c              	   C   sª   t dddgƒ}t ddgtd�}d}tjt|d�� | |d	 ¡ W 5 Q R X tjtt t	|ƒ¡d�� | |¡ W 5 Q R X tjtt t	|ƒ¡d�� | |¡ W 5 Q R X d S )
Nrn   ro   rE   TFrK   z$Cannot compare dtypes int64 and boolr*   r   )
r   rN   r,   r-   r~   Zasofr   ÚreÚescapeÚstr)r!   ÚleftÚrightr�   r"   r"   r#   Ú test_asof_numeric_vs_bool_raises§  s    z*TestIndex.test_asof_numeric_vs_bool_raisesc                 C   s€   t jt|ƒtd�}d|ddd…< || }t|ƒD ]\}}| |¡|ks0t‚q0|t|ƒ }t|ƒD ]\}}| |¡|ks`t‚q`d S )NrK   Fr`   é   ro   )r6   Zonesr‹   r    Ú	enumerater¤   r%   r   )r!   r&   Z
bool_indexZ	sub_indexÚiÚvalr"   r"   r#   Útest_booleanindex¶  s    zTestIndex.test_booleanindexc                 C   s6   |}|dddg }|D ]}|||  |¡ kst‚qd S ©Nrn   ro   rE   )r¤   r%   )r!   r$   r&   ÚslrÈ   r"   r"   r#   Ú
test_fancyÄ  s    zTestIndex.test_fancyrL   c                 C   sH   t jg |d�}t|ƒg |jd�}|g   |¡s2t‚||  |¡sDt‚d S ©NrK   )r6   r7   ÚtyperL   r³   r%   )r!   r&   rL   Z	empty_arrÚempty_indexr"   r"   r#   Útest_empty_fancyÊ  s    zTestIndex.test_empty_fancyc              	   C   s^   t jg t jd�}t|ƒg |jd�}|g   |¡s4t‚d}tjt	|d�� ||  W 5 Q R X d S )NrK   z=arrays used as indices must be of integer \(or boolean\) typer*   )
r6   r7   Zfloat_rÏ   rL   r³   r%   r,   r-   Ú
IndexError)r!   r&   Z
empty_farrrÐ   r�   r"   r"   r#   Útest_empty_fancy_raises×  s    z!TestIndex.test_empty_fancy_raisesc                 C   s~   |}t ddd�}| |¡}| |¡}t || d¡¡}t ||¡sFt‚t ||¡sVt‚t ||¡ t ||¡ t ||¡ d S )Nz
2019-01-01r¹   r|   ÚO)	r   Úunionr6   ÚappendrM   r2   ZequalContentsr%   r3   )r!   r$   r&   Ú
date_indexZ	first_catZ
second_catZappendedr"   r"   r#   Útest_union_dt_as_objè  s    

zTestIndex.test_union_dt_as_objc                 C   sn   t  d¡}t  d¡ dd„ ¡}tdd„ |D ƒƒ}t  ||¡ | dd„ ¡}t dd„ |D ƒ¡}t  ||¡ d S )NrE   c                 S   s   | fS r1   r"   ©Úxr"   r"   r#   Ú<lambda>ý  ó    z0TestIndex.test_map_with_tuples.<locals>.<lambda>c                 S   s   g | ]
}|f‘qS r"   r"   ©r‡   rÈ   r"   r"   r#   Ú
<listcomp>þ  s     z2TestIndex.test_map_with_tuples.<locals>.<listcomp>c                 S   s   | | dkfS ©Nrn   r"   rÙ   r"   r"   r#   rÛ     rÜ   c                 S   s   g | ]}||d kf‘qS )rn   r"   rÝ   r"   r"   r#   rÞ     s     )r2   ÚmakeIntIndexÚmapr   r8   r   Úfrom_tuples©r!   r&   rQ   r]   r"   r"   r#   Útest_map_with_tuples÷  s    
zTestIndex.test_map_with_tuplesc                 C   sB   dddg}t  t|dddgƒ¡}| dd„ ¡}t |t|ƒ¡ d S )	Nr°   ÚbarÚbazrn   ro   rE   c                 S   s   | d S ©Nr   r"   rÙ   r"   r"   r#   rÛ     rÜ   z3TestIndex.test_map_with_tuples_mi.<locals>.<lambda>)r   râ   Úziprá   r2   r8   r   )r!   Zfirst_levelZmulti_indexZreduced_indexr"   r"   r#   Útest_map_with_tuples_mi  s    
z!TestIndex.test_map_with_tuples_miÚmakeDateIndexZmakePeriodIndexZmakeTimedeltaIndexc                 C   s:   t t|ƒdƒ}tdgd ƒ}| dd„ ¡}t ||¡ d S )Nr¹   rn   c                 S   s   dS rß   r"   rÙ   r"   r"   r#   rÛ     rÜ   zATestIndex.test_map_tseries_indices_return_index.<locals>.<lambda>)r}   r2   r   rá   r8   )r!   ry   r&   r]   rQ   r"   r"   r#   Ú%test_map_tseries_indices_return_index  s    z/TestIndex.test_map_tseries_indices_return_indexc                 C   s@   t jdddd�}ttdƒddd�}t j|| dd„ ¡d	d
� d S )Né   ÚhZhourly)rF   r<   r”   )rL   r<   c                 S   s   | j S r1   )ÚhourrÙ   r"   r"   r#   rÛ     rÜ   zGTestIndex.test_map_tseries_indices_accsr_return_index.<locals>.<lambda>T©Úexact)r2   rê   r   r•   r8   rá   )r!   r×   r]   r"   r"   r#   Ú+test_map_tseries_indices_accsr_return_index  s    z5TestIndex.test_map_tseries_indices_accsr_return_indexÚmapperc                 C   s   dd„ t | |ƒD ƒS )Nc                 S   s   i | ]\}}||“qS r"   r"   ©r‡   ÚerÈ   r"   r"   r#   Ú
<dictcomp>   s      ú&TestIndex.<lambda>.<locals>.<dictcomp>©rè   ©rA   r&   r"   r"   r#   rÛ      rÜ   zTestIndex.<lambda>c                 C   s
   t | |ƒS r1   ©r   rø   r"   r"   r#   rÛ   !  rÜ   c                 C   s:   t dddgƒ}t d¡}| ||j|ƒ¡}t ||¡ d S )Nr°   rå   ræ   rE   )r   r2   rà   rá   rA   r8   )r!   rò   r]   r&   rQ   r"   r"   r#   Útest_map_dictlike_simple  s    	
z"TestIndex.test_map_dictlike_simplec                 C   s   dd„ t | |ƒD ƒS )Nc                 S   s   i | ]\}}||“qS r"   r"   ró   r"   r"   r#   rõ   .  s      rö   r÷   rø   r"   r"   r#   rÛ   .  rÜ   c                 C   s
   t | |ƒS r1   rù   rø   r"   r"   r#   rÛ   /  rÜ   c                 C   sª   t |tƒrd S |jsd S tjt|ƒddtjd�}|jr@tg ƒ}nJt	|j
ƒr\|j||j
d�}n.t|ƒtkr‚|j
tkr‚t||j
d�}nt|ƒ}| |||ƒ¡}t ||¡ d S )Nr   éÿÿÿÿrK   )r?   r   Ú	is_uniquer6   Úaranger‹   r“   rŒ   r   r	   rL   Z_constructorrÏ   rN   rá   r2   r8   )r!   r&   rò   ÚrequestÚrngr]   rQ   r"   r"   r#   Útest_map_dictlike+  s    	


zTestIndex.test_map_dictliker°   ç       @ræ   r   rû   ©r&   )r   ro   rû   c                 C   s4   t dtjdgƒ}t dddgƒ |¡}t ||¡ d S )Nr  r°   ro   rn   r   ©r   r6   rh   rá   r2   r8   )r!   rò   r]   rQ   r"   r"   r#   Ú)test_map_with_non_function_missing_valuesK  s    z3TestIndex.test_map_with_non_function_missing_valuesc                 C   s@   t dtjdtjdgƒ}|jdd„ dd�}|d }t ||¡ d S )	Ng      ø?rE   r`   c                 S   s   | d S )Nro   r"   rÙ   r"   r"   r#   rÛ   Y  rÜ   z1TestIndex.test_map_na_exclusion.<locals>.<lambda>Úignore)Z	na_actionro   r  rã   r"   r"   r#   Útest_map_na_exclusionV  s    zTestIndex.test_map_na_exclusionc                 C   sJ   t dddgƒ}tdd„ ƒ}d|d< | |¡}t dddgƒ}t ||¡ d S )Nrn   ro   rE   c                   S   s   dS )NÚblankr"   r"   r"   r"   r#   rÛ   _  rÜ   z0TestIndex.test_map_defaultdict.<locals>.<lambda>Ústuffr  )r   r   rá   r2   r8   )r!   r&   Zdefault_dictrQ   r]   r"   r"   r#   Útest_map_defaultdict]  s    
zTestIndex.test_map_defaultdictzname,expected)r°   r°   )rå   Nc                 C   s:   t g dd�}t dddg|d�}| |¡}|j|ks6t‚d S )Nr°   rb   rn   ro   rE   )r   rÖ   r<   r%   )r!   r<   r]   rÃ   rÄ   rQ   r"   r"   r#   Útest_append_empty_preserve_namee  s    
z)TestIndex.test_append_empty_preserve_namezindex, expected)r5   F)rž   F)rŸ   F)rœ   F)r“   T)r”   T)r—   T)r˜   T)r   F)ri   T)r’   Tc                 C   s   t |ƒ|kst‚d S r1   )r   r%   ©r!   r&   r]   r"   r"   r#   Útest_is_numericm  s    zTestIndex.test_is_numeric)r5   T)rž   T)r“   F)r”   F)r—   F)r˜   F)ri   F)r’   Fc                 C   s   t |ƒ|kst‚d S r1   )r
   r%   r  r"   r"   r#   Útest_is_object�  s    zTestIndex.test_is_objectc                 C   s   |  ¡  d S r1   )Z_summaryr/   r"   r"   r#   Útest_summary•  s    zTestIndex.test_summaryc                 C   sR   t  ¡ }t|ƒ d¡sBt|gƒ}| ¡ }t|d ƒg}||ksBt‚tg ƒ ¡  d S )NZ000r   )r   ÚnowrÂ   Úendswithr   Úformatr%   )r!   r  r&   Ú	formattedr]   r"   r"   r#   Útest_format_bug˜  s    
zTestIndex.test_format_bugrw   y       @      @g      @c                 C   s€   t |ƒ}| |¡ t|td�}| ¡ }t|tƒr4dnt|ƒ}t|d ƒt|d ƒt|d ƒ|g}||kslt‚|d |ks|t‚d S )NrK   ÚNaNr   rn   ro   rE   )	r   rÖ   r   rN   r  r?   rg   rÂ   r%   )r!   rw   Únulls_fixturer&   r  Z	null_reprr]   r"   r"   r#   Útest_format_missing¦  s    
$zTestIndex.test_format_missingÚopÚanyÚallc                 C   s&   |}t ||ƒƒ t |j|ƒƒ ks"t‚d S r1   )r}   rA   r%   )r!   r  r$   r&   r"   r"   r#   Útest_logical_compatµ  s    zTestIndex.test_logical_compatc                 C   sx   t |ƒ}|ttddƒƒ }| |¡}|ttdƒƒttd|ƒƒ  }t ||¡ | |d ¡}|dd … }t ||¡ d S )Nr`   r¹   r   rn   )r‹   r   r•   Údropr2   r8   )r!   r&   Únr  Údroppedr]   r"   r"   r#   Útest_drop_by_str_labelº  s    
z TestIndex.test_drop_by_str_labelÚkeysrå   Ú1c              	   C   s(   t jtdd�� | |¡ W 5 Q R X d S )NÚ r*   )r,   r-   ÚKeyErrorr  )r!   r&   r  r"   r"   r#   Ú*test_drop_by_str_label_raises_missing_keysÉ  s    z4TestIndex.test_drop_by_str_label_raises_missing_keysc                 C   s’   t |ƒ}|ttddƒƒ }| ¡ dg }|j|dd�}|ttdƒƒttd|ƒƒ  }t ||¡ |jddgdd�}|tt|ƒƒ }t ||¡ d S )Nr`   r¹   r°   r  ©Úerrorsrå   )r‹   r   r•   Útolistr  r2   r8   )r!   r&   r  r  Úmixedr  r]   r"   r"   r#   Ú$test_drop_by_str_label_errors_ignoreÑ  s    z.TestIndex.test_drop_by_str_label_errors_ignorec                 C   s4   t dddgƒ}| d¡}t ddgƒ}t ||¡ d S rË   ©r   r  r2   r8   )r!   r&   r  r]   r"   r"   r#   Útest_drop_by_numeric_label_locá  s    
z(TestIndex.test_drop_by_numeric_label_locc              	   C   s:   t dddgƒ}tjtdd�� | ddg¡ W 5 Q R X d S )Nrn   ro   rE   r!  r*   rp   )r   r,   r-   r"  r  r/   r"   r"   r#   Ú.test_drop_by_numeric_label_raises_missing_keysé  s    z8TestIndex.test_drop_by_numeric_label_raises_missing_keyszkey,expectedc                 C   s,   t dddgƒ}|j|dd�}t ||¡ d S )Nrn   ro   rE   r  r$  r)  )r!   r'   r]   r&   r  r"   r"   r#   Ú(test_drop_by_numeric_label_errors_ignoreî  s    z2TestIndex.test_drop_by_numeric_label_errors_ignore)r©   r®   Úto_dropc           	   
   C   sÌ   t |ƒ}t dgƒ}| |¡}t ||¡ | |d ¡}|d |d gfD ]}| |¡}t ||¡ qH| |d ¡}dt |d  ¡ ¡› d�}|d |d gfD ](}tjt	|d�� | |¡ W 5 Q R X qžd S )Nr¨   r   rn   z\"\[z\] not found in axis\"r*   )
r   r  r2   r8   rÀ   rÁ   Ú__repr__r,   r-   r"  )	r!   rA   r-  r&   r]   rQ   ÚremovedZdrop_mer�   r"   r"   r#   Útest_drop_tuple÷  s    


zTestIndex.test_drop_tuplec                 C   sj   t |ƒdkst|tƒrd S t|tƒr2ts2t d¡ | ¡  d¡}|dd … }| 	|d ¡}t
 ||¡ d S )Nr   z=Cannot test IntervalIndex with int64 dtype on 32 bit platformro   )r‹   r?   r   r   r   r,   ÚskipÚuniqueÚrepeatr  r2   r8   ©r!   r&   r]   rQ   r"   r"   r#   Ú"test_drop_with_duplicates_in_index  s    
z,TestIndex.test_drop_with_duplicates_in_indexÚis_monotonic_increasingÚis_monotonic_decreasingÚ!_is_strictly_monotonic_increasingÚ!_is_strictly_monotonic_decreasingc                 C   s$   t dt ¡ dgƒ}t||ƒr t‚d S )Nr`   é   )r   r   r  r}   r%   )r!   ry   r&   r"   r"   r#   Útest_is_monotonic_incomparable  s    
z(TestIndex.test_is_monotonic_incomparableZquuxúindex,expectedZquxrK   c                 C   s   |  |¡}t ||¡ d S r1   )Úisinr2   r@   )r!   rA   r&   r]   rQ   r"   r"   r#   Ú	test_isin'  s    	
zTestIndex.test_isinc                 C   sª   t |tƒrPt |tƒrPt |¡rPt |¡rPt td|gƒ |g¡t 	ddg¡¡ nV||kr€t td|gƒ |g¡t 	ddg¡¡ n&t td|gƒ |g¡t 	ddg¡¡ d S )Nr§   FT)
r?   rg   ÚmathÚisnanr2   r@   r   r=  r6   r7   )r!   r  Znulls_fixture2r"   r"   r#   Útest_isin_nan_common_object3  s*    ÿþýüþþþz%TestIndex.test_isin_nan_common_objectc              	   C   sÜ   |}|t jks|t jkr€dtt|ƒjƒ› �}tjt|d�� t	d|g|d� W 5 Q R X t	dt
jg|d�}| |g¡ ¡ r|t‚d S t	d|g|d�}| t
jg¡}t |t
 ddg¡¡ | t jg¡}t |t
 ddg¡¡ d S )Nz=float\(\) argument must be a string or a (real )?number, not r*   ç      ð?rK   FT)rO   ÚNaTZNAÚreprrÏ   Ú__name__r,   r-   r~   r   r6   rh   r=  r  r%   r2   r@   r7   )r!   r  Zfloat_numpy_dtyperL   r�   ÚidxÚresr"   r"   r#   Útest_isin_nan_common_float64O  s    ÿz&TestIndex.test_isin_nan_common_float64ÚlevelrB  c                 C   s^   |  ¡ dd … dg }t ddddg¡}t ||j||d�¡ d|_t ||j|dd�¡ d S )NéþÿÿÿZnonexistingFT©rI  r£   )r&  r6   r7   r2   r@   r=  r<   )r!   rI  r&   rA   r]   r"   r"   r#   Útest_isin_level_kwargh  s
    	zTestIndex.test_isin_level_kwargc              
   C   sF   d|j |j d  fD ],}tjtdd�� |jg |d� W 5 Q R X qd S )Nr¹   rn   zToo many levelsr*   rK  )Znlevelsr,   r-   rÒ   r=  )r!   r&   rI  r"   r"   r#   Ú&test_isin_level_kwarg_bad_level_raisesy  s    z0TestIndex.test_isin_level_kwarg_bad_level_raisesÚlabelr£   Zxyzzyc              	   C   sv   t |tƒr4| ddg|jdd …  ¡}d|› d�}n| d¡}d|› d�}tjt|d�� |jg |d	� W 5 Q R X d S )
Nr°   rå   ro   z'Level z not found'zRequested level \(z$\) does not match index name \(foo\)r*   rK  )r?   r   r´   Únamesr,   r-   r"  r=  )r!   rN  r&   r�   r"   r"   r#   Ú&test_isin_level_kwarg_bad_label_raises~  s    

z0TestIndex.test_isin_level_kwarg_bad_label_raisesc                 C   s4   t ddgƒ}t ddg¡}| |¡}t ||¡ d S )Nr§   r¨   F)r   r6   r7   r=  r2   r@   )r!   rŒ   r&   r]   rQ   r"   r"   r#   Útest_isin_empty‰  s    
zTestIndex.test_isin_emptyz
2018-01-01c                 C   s6   t |ƒ}||k}tjddddgtd�}t ||¡ d S )NTrK   )r   r6   r7   r    r2   r@   )r!   rA   r&   rQ   r]   r"   r"   r#   Útest_boolean_cmp’  s    zTestIndex.test_boolean_cmpz
name,levelrç   r±   c                 C   s,   |  ¡ }|r||_| |¡}t ||¡ d S r1   )r>   r<   Zget_level_valuesr2   r8   )r!   r&   r<   rI  r]   rQ   r"   r"   r#   Útest_get_level_values£  s
    
zTestIndex.test_get_level_valuesc                 C   s,   t ddgdd�}|j|dd … jks(t‚d S )Nr§   r¨   Zasdfrb   rn   ©r   r<   r%   r/   r"   r"   r#   Útest_slice_keep_name­  s    zTestIndex.test_slice_keep_namec                 C   s   |j ||d�}||kst‚d S ©N©Úhow)Újoinr%   )r!   r&   Z	join_typeZjoinedr"   r"   r#   Útest_join_self±  s    zTestIndex.test_join_selfÚmethodÚstripÚrstripÚlstripc                    sF   t ddddgƒ}t ‡ fdd„|jD ƒƒ}t|jˆ ƒƒ }t ||¡ d S )Nz jackzjill z jesse Zfrankc                    s   g | ]}t tˆ ƒ|ƒ‘qS r"   )r}   rÂ   ©r‡   rÚ   ©r[  r"   r#   rÞ   Ç  s     z0TestIndex.test_str_attribute.<locals>.<listcomp>)r   rA   r}   rÂ   r2   r8   )r!   r[  r&   r]   rQ   r"   r`  r#   Útest_str_attributeÃ  s    zTestIndex.test_str_attributer¹   )r°   r   )rå   Ú3Ú2000Z2010)ÚstartÚendrF   c              	   C   s*   t jtdd�� |j d¡ W 5 Q R X d S )Nzonly use .str accessorr*   ro   )r,   r-   ÚAttributeErrorrÂ   r3  r/   r"   r"   r#   Útest_str_attribute_raisesÌ  s    
z#TestIndex.test_str_attribute_raiseszexpand,expectedNrô   Úf)r§   r¨   r©   c                 C   s@   t dddgƒ}|d k	r&|jj|d�}n
|j ¡ }t ||¡ d S )Nza b czd erh  )Úexpand)r   rÂ   Úsplitr2   r8   )r!   ri  r]   r&   rQ   r"   r"   r#   Útest_str_splitÙ  s
    
zTestIndex.test_str_splitc                 C   sN   t ddddgƒ}|j d¡}t ddddg¡}t ||¡ t|tjƒsJt	‚d S )NÚa1Úa2Úb1Úb2r§   TF)
r   rÂ   Ú
startswithr6   r7   r2   r@   r?   Zndarrayr%   rã   r"   r"   r#   Útest_str_bool_returnï  s
    zTestIndex.test_str_bool_returnc                 C   sV   t ddddgƒ}ttdƒ|d�}||jj d¡ }ttdƒddgd�}t ||¡ d S )	Nrl  rm  rn  ro  rp   r  r§   ro   )r   r   r•   r&   rÂ   rp  r2   rd   )r!   r&   r^   rQ   r]   r"   r"   r#   Útest_str_bool_series_indexingø  s
    z'TestIndex.test_str_bool_series_indexingZabcdc                 C   s   dt |ƒk}||kst‚d S )NrÂ   )Údirr%   r4  r"   r"   r#   Útest_tab_completion   s    zTestIndex.test_tab_completionc                 C   s`   t ddddddgƒ}|dd…  t ddgtjd�¡s8t‚|ddg  t ddgtjd�¡s\t‚d S )	Nrn   ro   rE   r§   r¨   r©   rK   r   )r   r³   r6   rP   r%   r/   r"   r"   r#   Ú!test_indexing_doesnt_change_class  s    $z+TestIndex.test_indexing_doesnt_change_classc              	   C   sz   t tj d¡ƒ}t d¡}t t¡� |j|dd�}W 5 Q R X t t¡� | 	t
¡ | 	t
¡¡}W 5 Q R X t ||¡ d S )Né   r¹   ÚouterrW  )r   r6   rc   Zpermutationr2   rê   Úassert_produces_warningÚRuntimeWarningrY  rM   rN   rÕ   r8   )r!   Z
left_indexZright_indexrQ   r]   r"   r"   r#   Útest_outer_join_sort  s    
 zTestIndex.test_outer_join_sortc                 C   sº   t tdƒdd�}| t dddg¡¡}t tdƒdd�}t ||¡ |jt dddg¡dd	�}t d
dtjgdd�}t ||¡ |jt dddg¡ddd�}t d
ddgdd�}t ||¡ d S )NÚABCÚxxxrb   rn   r   rû   ZBACT©Ú
fill_valuert   rs   F)Z
allow_fillr~  ru   )r   r   Útaker6   r7   r2   r8   rh   rã   r"   r"   r#   Útest_take_fill_value  s    zTestIndex.test_take_fill_valuec              	   C   s€   t tdƒdd�}d}tjt|d��  |jt dddg¡d	d
� W 5 Q R X tjt|d��  |jt dddg¡d	d
� W 5 Q R X d S )Nr{  r|  rb   zJWhen allow_fill=True and fill_value is not None, all indices must be >= -1r*   rn   r   rJ  Tr}  éûÿÿÿ)r   r   r,   r-   r.   r  r6   r7   r¡   r"   r"   r#   Ú test_take_fill_value_none_raises-  s    ÿ$z*TestIndex.test_take_fill_value_none_raisesc              	   C   sB   t tdƒdd�}tjtdd�� | t ddg¡¡ W 5 Q R X d S )Nr{  r|  rb   zout of boundsr*   rn   r�  )r   r   r,   r-   rÒ   r  r6   r7   r/   r"   r"   r#   Útest_take_bad_bounds_raises9  s    z%TestIndex.test_take_bad_bounds_raisesr<   ÚlabelsZ20130101r|   c                 C   s0   t dddgƒ}||_| |¡d j|ks,t‚d S )Nr   rn   ro   )r   r<   Úreindexr%   )r!   r<   r„  r&   r"   r"   r#   Ú8test_reindex_preserves_name_if_target_is_list_or_ndarray>  s    zBTestIndex.test_reindex_preserves_name_if_target_is_list_or_ndarrayc                 C   s,   t tdƒƒ}| |¡d jjtjks(t‚d S ©NÚabcr   )r   r   r…  rL   rÏ   r6   rP   r%   )r!   r„  r&   r"   r"   r#   Ú<test_reindex_preserves_type_if_target_is_empty_list_or_arrayS  s    zFTestIndex.test_reindex_preserves_type_if_target_is_empty_list_or_arrayzlabels,dtypec                 C   s*   t tdƒƒ}| |¡d jj|ks&t‚d S r‡  )r   r   r…  rL   rÏ   r%   )r!   r„  rL   r&   r"   r"   r#   Ú:test_reindex_doesnt_preserve_type_if_target_is_empty_indexY  s    zDTestIndex.test_reindex_doesnt_preserve_type_if_target_is_empty_indexc                 C   s8   |}t tdƒƒ}t g |d�}| |¡d j|ks4t‚d S )Nrˆ  rK   r   )r   r   r…  rL   r%   )r!   Zany_real_numpy_dtyperL   r&   r„  r"   r"   r#   ÚBtest_reindex_doesnt_preserve_type_if_target_is_empty_index_numericd  s    zLTestIndex.test_reindex_doesnt_preserve_type_if_target_is_empty_index_numericc                 C   sl   t tdƒƒ}| tt g tjƒt g tjƒgg g gƒ¡d }|jd jj	tjksPt
‚|jd jj	tjksht
‚d S )Nrˆ  r   rn   )r   r   r…  r   r6   r“   ri   r�   rL   rÏ   r%   )r!   r&   rQ   r"   r"   r#   Ú-test_reindex_no_type_preserve_target_empty_mim  s     ÿþz7TestIndex.test_reindex_no_type_preserve_target_empty_mic                 C   s\   t dddgdd�}t ddddgdd�}t ddddgdd�}|j|dd�\}}t ||¡ d S )Nrn   ro   rE   rÚ   rb   rp   rK  )r   r…  r2   r8   )r!   rF  Zidx2r]   rQ   rˆ   r"   r"   r#   Útest_reindex_ignoring_levelu  s
    z%TestIndex.test_reindex_ignoring_levelc              	   C   sR   t tdƒƒ}| t dddddg¡¡}t ddgƒt dddgƒdœ}t ||¡ d S )Nr`   rn   ro   r   rE   rp   ©rn   ro   )r   r•   Úgroupbyr6   r7   r2   Zassert_dict_equalrã   r"   r"   r#   Útest_groupby}  s    zTestIndex.test_groupbyzmi,expectedrŽ  ©rp   r`   )rp   é   c                 C   s0   t jtdƒddgd�}|j|k}t ||¡ d S )Núa,b,c
1,2,3
4,5,6r   rn   ©Z	index_col)rO   Úread_csvr   r&   r2   r@   )r!   Úmir]   re   rQ   r"   r"   r#   Útest_equals_op_multiindex„  s    

z#TestIndex.test_equals_op_multiindexc                 C   s@   t jtdƒddgd�}|j|jk}t ddg¡}t ||¡ d S )Nr“  r   rn   r”  T)rO   r•  r   r&   r6   r7   r2   r@   )r!   re   rQ   r]   r"   r"   r#   Ú"test_equals_op_multiindex_identify“  s    z,TestIndex.test_equals_op_multiindex_identify©é   é	   c              	   C   s>   t jtdƒddgd�}tjtdd�� |j|k W 5 Q R X d S )Nr“  r   rn   r”  zLengths must matchr*   )rO   r•  r   r,   r-   r.   r&   )r!   r&   re   r"   r"   r#   Ú+test_equals_op_mismatched_multiindex_raisesš  s    z5TestIndex.test_equals_op_mismatched_multiindex_raisesc                 C   sF   t  dddg¡}tdddgƒ}||k}t dddg¡}t ||¡ d S )NrŽ  r‘  r™  r°   rå   ræ   F)r   râ   r   r6   r7   r2   r@   )r!   r–  r&   rQ   r]   r"   r"   r#   Ú&test_equals_op_index_vs_mi_same_length§  s
    z0TestIndex.test_equals_op_index_vs_mi_same_lengthzdt_conv, argú
2000-01-01ú
2000-01-02z01:02:03z01:02:04c                 C   s$   t |dd�}|j||ƒjks t‚d S )NrN  rb   rT  )r!   Zdt_convr   r&   r"   r"   r#   Ú!test_dt_conversion_preserves_name¯  s    	z+TestIndex.test_dt_conversion_preserves_namec              	   C   s2   t dddgƒ}tjtdd�� d|_W 5 Q R X d S )Nrn   ro   rE   zCan't set attributer*   F)r   r,   r-   rf  rü   r/   r"   r"   r#   Ú#test_cached_properties_not_settable»  s    z-TestIndex.test_cached_properties_not_settablec              
   Ã   sn   t jddd� ddlm} d}| |¡I d H  t d ¡�, |dƒ� t|j 	dd	¡ƒ W 5 Q R X W 5 Q R X d S )
NZIPythonz6.0.0)Z
minversionr   )Úprovisionalcompleterz+import pandas as pd; idx = pd.Index([1, 2])r  zidx.rp   )
r,   ZimportorskipZIPython.core.completerr¢  Zrun_coder2   rx  r   Z	CompleterZcompletions)r!   Úipr¢  Úcoder"   r"   r#   Útest_tab_complete_warningÀ  s    
z#TestIndex.test_tab_complete_warningc              	   C   sP   t |tƒr| d¡ n6dt|ƒj› d�}tjt|d�� | d¡ W 5 Q R X d S )Nrn   ú'z$' object has no attribute 'contains'r*   )r?   r   ÚcontainsrÏ   rE  r,   r-   rf  r¡   r"   r"   r#   Útest_contains_method_removedÏ  s
    
z&TestIndex.test_contains_method_removedc              	   C   s  t dddddgƒ}tjtdd�� |jdd	� W 5 Q R X tjtd
d�� |jddgd	� W 5 Q R X tjtdd�� |jdgd	� W 5 Q R X t dddddgƒ}|jdgd	�}t |d |¡ t dddddgƒ}|jdd	�}t |d |¡ t dddddgƒ}|jdd	�}t |d |¡ d S )Nr`   rp   rE   ro   rn   z(ascending must be a single bool value orr*   ÚTrue)Z	ascendingz3ascending must be a list of bool values of length 1Tzascending must be a bool valuer   F)r   r,   r-   Ú	ExceptionZ	sortlevelr2   r8   r4  r"   r"   r#   Útest_sortlevelØ  s&     ÿzTestIndex.test_sortlevel)‰rE  Ú
__module__Ú__qualname__r   r   r,   Úfixturer$   r(   ÚmarkÚparametrizer0   r4   r;   rB   r   rO   rƒ   r   rR   rS   r_   rf   rk   r6   ri   rh   r   rC  rm   rx   r‚   r   r„   Úiterr   r�   r   r   r   r‘   r›   ÚparamZxfailr¢   r¥   r¬   r¯   r¸   r¿   rÅ   rÊ   rÍ   Úint_Zbool_rÑ   rÓ   rØ   rä   ré   rë   rñ   rú   r   r   r  r  r	  r
  r  r  r  r  r  r  r  r#  r(  r*  r+  r,  r0  r5  r;  r7   r    r>  rA  rH  rL  rM  rP  rN   rQ  rR  rS  rU  rZ  ra  r•   r2   rê   râ   rg  rk  rq  rr  r   rt  ru  rz  r€  r‚  rƒ  rA   r&  r†  r“   r‰  Z
datetime64rŠ  r‹  rŒ  r�  r�  r—  r˜  rœ  r�  r[   Úto_timedeltar   r¡  r   r¥  r¨  r«  r"   r"   r"   r#   r   -   s  


	ûöþþúþ

þþ
ýþ
9 üþ	ûþ

ôð
û÷

ý
  ÿ

ýý
 ÿ
þþ
þþ
"þ

õñ
õñ


  ÿ
  ÿ  ÿ
 &ÿ
þüþ	
 þþþþ	




ûþ
ø
ô

üþ	"  ÿþýþ		  ÿ÷þ&ÿþ	þþþþþþ	r   c                   @   sž  e Zd ZeZejedœdd„ƒZejdddddd	ggd
gd�dd„ ƒZdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zej dddg¡ej ddedg¡ej d ddd!gddd!gfd"d#d$gd"d#d$gfd"d#ejd$gd"d#d$gfd%d&d'gd%d&d'gfd%ejd&d'gd%d&d'gfg¡d(d)„ ƒƒƒZej dddg¡ej d*ed+d,d-gƒed+d,d-gƒfed+d,d-ejgƒed+d,d-gƒfed.d/d0gƒed.d/d0gƒfeejd.d/d0ejgƒed.d/d0gƒfed1d2d3gd4d5�ed1d2d3gd4d5�fed1d2d6d3gd4d5�ed1d2d3gd4d5�fg¡d7d8„ ƒƒZd9d:„ Zej d;eejgƒeejdgƒeddejgƒeddejgƒe d6g¡e d6d<g¡e d<d6d=g¡e d>d6g¡g¡d?d@„ ƒZdAdB„ ZdCdD„ Z ej !dE¡dFdG„ ƒZ"dS )HÚTestMixedIntIndexr   c                 C   s   |   ddddddg¡S )Nr   r§   rn   r¨   ro   r©   )r   r    r"   r"   r#   r$   ø  s    zTestMixedIntIndex.simple_indexr   r§   rn   r¨   ro   r©   Z
mixedIndex)ÚparamsÚidsc                 C   s
   t |jƒS r1   )r   r²  )r!   rþ   r"   r"   r#   r&   ü  s    zTestMixedIntIndex.indexc              	   C   s*   |}t jtdd�� | ¡  W 5 Q R X d S ©Nz'>|<' not supportedr*   )r,   r-   r~   Úargsort©r!   r$   r&   r"   r"   r#   Útest_argsort   s    zTestMixedIntIndex.test_argsortc              	   C   s,   |}t jtdd�� t |¡ W 5 Q R X d S r¸  )r,   r-   r~   r6   r¹  rº  r"   r"   r#   Útest_numpy_argsort  s    z$TestMixedIntIndex.test_numpy_argsortc                 C   s–   |}t |ƒ|ddd�}t |ƒ|dd�}||k	s2t‚t ||¡ |jdksLt‚|jdksZt‚td|d�}td|d d	… d�}|| }|jjdks’t‚d S )
NTZmarior=   Fr¼   ro   r  rE   rû   )rÏ   r%   r2   r8   r<   r   r&   )r!   r$   r&   ÚfirstÚsecondÚs1Ús2Zs3r"   r"   r#   Útest_copy_name
  s    z TestMixedIntIndex.test_copy_namec                 C   s`   t ddgdd�}| ¡ }t ||¡ |jdd�}tj||dd� |jdksNt‚|jdks\t‚d S )Nrn   ro   ZMyNamerb   ZNewNameF)Zcheck_names)r   r>   r2   r8   r<   r%   )r!   r&   Zindex1Úindex2r"   r"   r#   Útest_copy_name2   s    z!TestMixedIntIndex.test_copy_name2c                 C   sB   t dtjddgdd�}t dtjdgdd�}| ¡ }t ||¡ d S )Nro   rn   Zmy_indexrb   )r   r6   rh   r2  r2   r8   )r!   rF  r]   rQ   r"   r"   r#   Útest_unique_na-  s    z TestMixedIntIndex.test_unique_nac                 C   s4   |}|  ¡ |j  ¡ kst‚| ¡ |j ¡ ks0t‚d S r1   )r  rA   r%   r  rº  r"   r"   r#   r  3  s    z%TestMixedIntIndex.test_logical_compatrX  r  r  rL   NÚcategoryzvals,expectedrE   rB  r  rr   rs   rt   ru   c                 C   s4   t ||d�}|j|d�}t ||d�}t ||¡ d S )NrK   rW  )r   Údropnar2   r8   )r!   rX  rL   rw   r]   r&   rQ   r"   r"   r#   Útest_dropna8  s    zTestMixedIntIndex.test_dropnar<  r{   z
2011-01-02z
2011-01-03rI   z2 daysz3 daysz2012-02z2012-04z2012-05ÚMrZ   rC  c                 C   s   |j |d�}t ||¡ d S rV  )rÆ  r2   r8   )r!   rX  r&   r]   rQ   r"   r"   r#   Útest_dropna_dt_likeK  s    z%TestMixedIntIndex.test_dropna_dt_likec              	   C   s8   d}t jt|d�� tdddgƒjdd� W 5 Q R X d S )Nzinvalid how option: xxxr*   rn   ro   rE   r|  rW  )r,   r-   r.   r   rÆ  )r!   r�   r"   r"   r#   Útest_dropna_invalid_how_raisesm  s    z0TestMixedIntIndex.test_dropna_invalid_how_raisesr&   rž  rŸ  z1 dayc                 C   s<   |j dkst‚|jdkst‚|jdks*t‚|jdks8t‚d S ©NF)r6  r%   r7  r8  r9  r/   r"   r"   r#   Útest_is_monotonic_nar  s    z&TestMixedIntIndex.test_is_monotonic_nac                 C   s:   t dddgdd�}|ttdƒƒ|d�}dt|ƒks6t‚d S )	Nr§   r¨   r©   r   rb   rE   r  Ú0)r   r   r•   rD  r%   )r!   Zframe_or_seriesr&   rQ   r"   r"   r#   Útest_int_name_format…  s    z&TestMixedIntIndex.test_int_name_formatc              	   C   s@   t dd„ tdƒD ƒƒ}d}tjt|d�� t|ƒ W 5 Q R X d S )Nc                 S   s   g | ]}t |ƒ‘qS r"   )rÂ   r_  r"   r"   r#   rÞ   Œ  s     z>TestMixedIntIndex.test_str_to_bytes_raises.<locals>.<listcomp>r¹   z2^'str' object cannot be interpreted as an integer$r*   )r   r•   r,   r-   r~   Úbytesr¡   r"   r"   r#   Útest_str_to_bytes_raisesŠ  s    z*TestMixedIntIndex.test_str_to_bytes_raisesz2ignore:elementwise comparison failed:FutureWarningc                 C   s6   t dddgƒ}|dk}t dddg¡}t ||¡ d S )Nr²   )r¨   r©   )r©   r§   FT)r   r6   r7   r2   r@   )r!   rF  rQ   r]   r"   r"   r#   Útest_index_with_tuple_bool‘  s    z,TestMixedIntIndex.test_index_with_tuple_bool)#rE  r¬  r­  r   r   r,   r®  r$   r&   r»  r¼  rÁ  rÃ  rÄ  r  r¯  r°  rN   r6   rh   rÇ  r   rO   rC  r   r   rÉ  rÊ  r[   r´  rÌ  rÎ  rÐ  ÚfilterwarningsrÑ  r"   r"   r"   r#   rµ  ò  s‚   
ûþ
þþþþþþëþ

øþ

rµ  c                   @   sà   e Zd Zej ddddggdedddgƒfdddggdgedddgdd�fddgd	d
ggdedgd	d
ggddgddggƒfddgd	d
ggddgedgd	d
ggddgddggddgd�fg¡dd„ ƒZdd„ Z	dd„ Z
dd„ ZdS )ÚTestIndexUtilszdata, names, expectedrn   ro   rE   Nr<   rb   r§   r©   r®   r   ZL1ZL2)rO  c                 C   s   t ||ƒ}t ||¡ d S r1   )r   r2   r8   )r!   rj   rO  r]   rQ   r"   r"   r#   Ú test_ensure_index_from_sequences�  s    
z/TestIndexUtils.test_ensure_index_from_sequencesc                 C   s`   t jdddd�t jdddd�t jdddd�t jdd	d
d�g}t|ƒ}t|td�}t ||¡ d S )Nr   rn   rÃ   )Úclosedro   rÄ   rE   Zneitherrp   ZbothrK   )rO   ZIntervalr   r   rN   r2   r8   )r!   Z	intervalsrQ   r]   r"   r"   r#   Ú(test_ensure_index_mixed_closed_intervals²  s    üz7TestIndexUtils.test_ensure_index_mixed_closed_intervalsc                 C   sF   dt  t j¡jg}t|ƒ}t|ƒ|ks*t‚t|dd�}t 	||¡ d S )Nr   r—   rK   )
r6   Ziinfor—   Úmaxr   r   r%   r   r2   r8   )r!   rA   rQ   r]   r"   r"   r#   Útest_ensure_index_uint64¾  s
    z'TestIndexUtils.test_ensure_index_uint64c                 C   s    t g ƒ}tg ƒ}t ||¡ d S r1   )r   r   r2   r8   )r!   rQ   r]   r"   r"   r#   Útest_get_combined_indexÊ  s    z&TestIndexUtils.test_get_combined_index)rE  r¬  r­  r,   r¯  r°  r   r   rÔ  rÖ  rØ  rÙ  r"   r"   r"   r#   rÓ  œ  s$    ý&ýøþ
rÓ  ÚopnameÚeqÚneÚleÚltÚgeÚgtÚaddZraddÚsubZrsubÚmulZrmulÚtruedivZrtruedivÚfloordivZ	rfloordivÚpowZrpowÚmodÚdivmodc                 C   s(   d| › d�} t || ƒ}|j| ks$t‚d S )NÚ__)r}   rE  r%   )rÚ  r&   r[  r"   r"   r#   Útest_generated_op_namesÐ  s    
rê  Úindex_makerc              	   C   s(   t jtdd�� | dd� W 5 Q R X d S )Nzunexpected keyword argumentr*   rå   )r°   )r,   r-   r~   )rë  r"   r"   r#   Ú,test_index_subclass_constructor_wrong_kwargsï  s    rì  c               	   C   sÐ   d} t jt| d��" ttjddgtd�ddd� W 5 Q R X t jt| d��$ ttjd	d
dgdd�ddd� W 5 Q R X t jt| d�� tddd
ddd� W 5 Q R X t jt| d�� tdddgddd� W 5 Q R X d S )Nz[Uu]nexpected keyword argumentr*   r§   r¨   rK   ÚtestT)r<   Zfastpathrn   ro   rE   r“   r   r`   r©   )	r,   r-   r~   r   r6   r7   rN   r   r   )r�   r"   r"   r#   Útest_deprecated_fastpathö  s    &(rî  c               	   C   s>   t ddddgƒ} tjtdd�� | d d …d f  W 5 Q R X d S )Nr   rn   ro   rE   r)   r*   )r   r,   r-   r.   )rF  r"   r"   r#   Útest_shape_of_invalid_index  s    rï  rL   c              	   C   sº   d}t  d¡ ddd¡}tjt|d�� t|| d� W 5 Q R X t| dd¡ƒ}tjt|d�� t|| d� W 5 Q R X tdt	dƒƒ}tjt|d��  t j
ddggd | d�|_W 5 Q R X d S )	Nz Index data must be 1-dimensionalrš  ro   r*   rK   rp   r   rE   )r6   rý   Zreshaper,   r-   r.   r   r   r   r•   r7   r&   )rL   r�   r:   re   Zserr"   r"   r#   Útest_validate_1d_input  s    rð  zklass, extra_kwargsc                    s   g | ]‰ ‡ fd d„i g‘qS )c                    s   t | ˆ d�S rÎ   )r   rÙ   ©Zdtypr"   r#   rÛ   (  rÜ   z<listcomp>.<lambda>r"   )r‡   r"   rñ  r#   rÞ   (  s     rÞ   rF   ÚYc                 C   sB   | t t dd¡ƒf|Ž}| ttddƒƒf|Ž}tj||dd� d S )NiÐ  iÕ  Trï   )Ú
memoryviewr6   rý   r   r•   r2   r8   )rl   Úextra_kwargsrQ   r]   r"   r"   r#   Útest_construct_from_memoryview$  s    rõ  r  c                 C   sL   t tjgƒ}t dg¡}| ||ƒ}t ||¡ | || ¡ ƒ}t ||¡ d S rË  )r   r6   rh   r7   r2   r@   r>   )r  rF  r]   rQ   r"   r"   r#   Útest_nan_comparison_same_object5  s    
rö  )?Úcollectionsr   r   Úior   r?  ÚoperatorrÀ   Znumpyr6   r,   Zpandas.compatr   Zpandas.errorsr   Zpandas.util._test_decoratorsr   Zpandas.core.dtypes.commonr   r	   r
   ZpandasrO   r   r   r   r   r   r   r   r   r   r   Zpandas._testingZ_testingr2   Zpandas.core.indexes.apir   r   r   r   r   Zpandas.tests.indexes.commonr   r   rµ  rÓ  r¯  r°  rê  Zindex_subclass_makers_generatorrì  rî  rï  r“   r—   ri   rð  ZALL_REAL_NUMPY_DTYPESrõ  rÞ  rà  rö  r"   r"   r"   r#   Ú<module>   s’   0         N +4ìþ


ÿ
ûþ

