U
    f/e3                     @   s  d dl mZ d dlmZ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mZmZmZ d dlmZ d dlZd dlmZmZmZmZmZmZmZmZmZ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
j01ddddddddddddddddd d!d"d#d$gd%d& Z2e
j01d'e$3 d(d) Z4e
j05d*d+d, Z6d-d. Z7d/d0 Z8e
j01d1e&i gei gei gei gei ged2d3iggd4d5 Z9d6d7 Z:d8d9 Z;dS ):    )defaultdict)datetime	timedelta)StringION)IS64PY310np_datetime64_compat)
async_mark)CategoricalIndex	DataFrameDatetimeIndexFloat64Index
Int64IndexIntervalIndexPeriodIndex
RangeIndexSeriesTimedeltaIndex	TimestampUInt64Index
date_rangeisnaperiod_range)Index
MultiIndex_get_combined_indexensure_indexensure_index_from_sequences)Basec                   @   sf  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ej	
d(ed)ed*d+d,ged-dd.jgd/d0 Zd1d2 Zej	
d3d4d5gd6d7 Zd8d9 Zej	
d:eej ej!fe"d;ej#fgd<d= Z$ej	
d>d?d@ddAd)gdBfdCej!dDdEgdFfdGdHdIej!gdJfgdKdL Z%ej	
dMd?d@dged?d@dgejd?d@dge&dNdOdPdEgejdOdPdEge'dNgdQdR Z(ej	
dMd?d@dgdOdPdEgedOdPdEgejd?d@dge&dNejdOdPdEge'dNgdSdT Z)ej	
dMd?d@dgejd?d@dge&dNee*dUe*dVge+dWd?d?e+dWd?d@ggdXdY Z,ej	
dZddgej	
dMeee*dUe*dVgee+dWd?d?e+dWd?d@ggd[d\ Z-ej	
dZddgej	
dMee.d?de.d?dge/d?e/d?ggd]d^ Z0ej	1d_ej	
d`dadbgej	
dcee"gddde Z2ej	
d`dadbgej	
dcee3gdfdg Z4ej	
dhg e5g didj dkD gej	
dceee6e7e8e"e3gdldm Z9ej	
dne:g dHdoe:fe:e5g dHdoe:fe:dpdj dkD dHdoe:fe;d?dqe;fe<d?d@gdrdsggg g gdte<fgdudv Z=dwdx Z>ej	j
dddFdBdydzd{d|d}d~g	dd	dd Z?ej	j
dddej@dej	jAdddddgdd	dd ZBej	j
ddBdzgdd	dd ZCdd ZDej	
ded*d+ged*d+dgd*d+d,ggdd ZEdd ZFdd ZGdd ZHdd ZIej	j
ddgdd	dd ZJdd ZKdd ZLej	j
ddgdd	dd ZMdd ZNej	j
dddBdFgdd	ej	
d3ejOejPgdd ZQej	j
dddBdFgdd	dd ZRdd ZSdd ZTdd ZUej	
d`dddgdd ZVdd ZWej	
ddd dd gdd ZXej	
ddd dd gdd ZYej	
deZddPdgdd@dgdÍddPddĜgddƄ Z[ddȄ Z\ddʄ Z]ej	
dddgddτ Z^ddф Z_ej	j
dddddddgdgd	ddڄ Z`ej	j
dddddddgdgd	dd Zaej	j
dddddddgdgd	dd Zbdd Zcdd Zddd Zedd Zfej	
dMd?ddgd*d+d,ggdd Zgdd Zhdd Ziej	
dddgdd Zjej	j
dddBdFgdd	dd Zkej	j
dddBdFgdd	ej	
dddgddggdd Zlej	j
dddBdFgdd	d d Zmdd Zndd Zoej	
ddAed?d@dgfddAd)ged?d@gfgdd Zpej	
dad*d+d	gd*d	d+gd	d*d+ggej	
d
d	d*gd*d	ggdd Zqdd Zrej	
d`ddddgdd Zsdd Ztej	
dadddgdddhgej	
deddddgeddddgfeg ejg eudNfgdd Zvdd Zwdd Zxej	
d ddgej	
deddddgedOdPdEdggd!d" Zyd#d$ Zzej	
d%dOd&d'ej!gd(d) Z{ej	
dg eZe|dNeg gd*d+ Z}ej	
dad?d@ddAgdOdPdEdgddddgddddged,ddAdgd-d. Z~ej	j
ddgdd	ej	
d/d0d1gd2d3 Zd4d5 Zej	j
dddddBd~dFgdd	d6d7 Zej	
d8d9d:d;gd<d= Zej	
deed)ed>e<d?d@gedAdBdGdCgdDdE Zej	
dFdGed*d+d,gddHgdIggfded*d+d,gddHgdIggfde<dJddHej!fdIej!ej!fgfgdKdL ZdMdN ZdOdP Zej	
deedQdfeedAdfgdRdS ZdTdU ZdVdW ZdXdY ZdZd[ Zd\d] Zd^d_ Zej	
d`dGd&gej	
dag eg dGdHdIgdIdHdGgedGdHdIgedIdHdGgedbdd.jedbdd. gdcdd Zej	
dag eg ejg ejdNgdedf Zej	
dge6g ejfeg ej fe"g ejfgdhdi Zdjdk Zdldm Zej	
dne<dodpgeddgfe<dodqgeddgfgdrds Zdtdu Zej	
de<dodpdvgedddggdwdx Zdydz Zej	
d{ejejgd|d} Zd~d Ze dd Zdd Zdd ZdGS (  	TestIndexreturnc                 C   s   |  tdS )NZabcde)
_index_clslistself r&   B/tmp/pip-unpacked-wheel-tiezk1ph/pandas/tests/indexes/test_base.pysimple_index4   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_identifiers8   s    z#TestIndex.test_can_hold_identifiersr*   r   T)Zindirectc              	   C   sH   t t |d d d f }W 5 Q R X |jdks4tt|tjsDtd S N   )tmassert_produces_warningFutureWarningndimr)   
isinstancenpndarray)r%   r*   	new_indexr&   r&   r'   test_new_axis=   s    zTestIndex.test_new_axisc                 C   s   t || d S N)r/   assert_contains_allr%   r*   r&   r&   r'   test_constructor_regularE   s    z"TestIndex.test_constructor_regularstringc                 C   s.   t |}t|}t|| t|| d S r8   )r4   arrayr   r/   r9   assert_index_equalr%   r*   arrr6   r&   r&   r'   test_constructor_castingH   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copyrB   ZSOMEBIGLONGSTRINGr   )	r4   r=   r   r3   r)   rB   r/   assert_numpy_array_equalvaluesr?   r&   r&   r'   test_constructor_copyP   s    
zTestIndex.test_constructor_copycast_as_objFz2015-01-01 10:00D   z
US/EasternzGreen Eggs & Ham)freqperiodstzrB   )rK   rL   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std S )N2   )Znanosecondsdtype)r   astypeobjectr/   r>   r3   r   rM   r)   pdZ	TimedeltarQ   r4   object_r#   )r%   rH   r*   resultr&   r&   r'   "test_constructor_from_index_dtlike_   s    
z,TestIndex.test_constructor_from_index_dtlikezindex,has_tz)rK   rL   rM   c                 C   s0   t t|}t|| |r,|j|jks,td S r8   )r   r   r/   r>   rM   r)   )r%   r*   Zhas_tzrV   r&   r&   r'   #test_constructor_from_series_dtlike   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rK   )r   r   rT   to_datetimer/   r>   )r%   dtsexpectedsrV   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std S )NrY   rZ   r[   r\   r]   r^   r_      rJ   daterB   )r   r   r4   randomZrandrQ   rS   r)   rB   r/   r>   r   assert_series_equalrT   Z
infer_freq)r%   ra   rb   dfrV   rK   r&   r&   r'   'test_constructor_from_frame_series_freq   s    z1TestIndex.test_constructor_from_frame_series_freqr=   re   abc
2000-01-01rL   c                 C   s2   G dd d}t |}t ||}t|| d S )Nc                   @   s&   e Zd Zdd ZdejdddZdS )z:TestIndex.test_constructor_ndarray_like.<locals>.ArrayLikec                 S   s
   || _ d S r8   r=   )r%   r=   r&   r&   r'   __init__   s    zCTestIndex.test_constructor_ndarray_like.<locals>.ArrayLike.__init__Nr    c                 S   s   | j S r8   rq   )r%   rQ   r&   r&   r'   	__array__   s    zDTestIndex.test_constructor_ndarray_like.<locals>.ArrayLike.__array__)N)__name__
__module____qualname__rr   r4   r5   rs   r&   r&   r&   r'   	ArrayLike   s   rw   )r   r/   r>   )r%   r=   rw   rb   rV   r&   r&   r'   test_constructor_ndarray_like   s    z'TestIndex.test_constructor_ndarray_likec                 C   s,   t jg}t|}t|dd}t|| d S )NfloatrP   )r4   nanr   r   r/   r>   )r%   datarb   rV   r&   r&   r'   test_constructor_int_dtype_nan   s    z(TestIndex.test_constructor_int_dtype_nanrQ   int64uint64c              	   C   s6   t jg}d}tjt|d t||d W 5 Q R X d S )Nzcannot convertmatchrP   )r4   rz   pytestraises
ValueErrorr   )r%   rQ   r{   msgr&   r&   r'   %test_constructor_int_dtype_nan_raises   s    z/TestIndex.test_constructor_int_dtype_nan_raisesc                 C   s6   t dddg}t|j}tdddg}t|| d S N   r.   rJ   )r   r   r=   r/   r>   )r%   serrV   rb   r&   r&   r'    test_constructor_no_pandas_array   s    
z*TestIndex.test_constructor_no_pandas_arrayzklass,dtype,na_valzdatetime64[ns]c                 C   sP   ||g}||}|j |kstt|}t|| tt|}t|| d S r8   )rQ   r)   r   r/   r>   r4   r=   )r%   klassrQ   Zna_valZna_listrb   rV   r&   r&   r'   test_index_ctor_infer_nan_nat   s    	z'TestIndex.test_index_ctor_infer_nan_natz
vals,dtyper   r.      intg?g@      @ry   ABCobjc                 C   s*   t ||d}||j|}t|| d S )Nrg   )r   Z_simple_newrF   r/   r>   )r%   valsrQ   r*   rV   r&   r&   r'   test_constructor_simple_new   s    	z%TestIndex.test_constructor_simple_newr   rP         ?       @c                 C   s   t |td}t|tstd S NrP   )r   r   r3   r   r)   r%   r   r*   r&   r&   r'    test_constructor_dtypes_to_int64  s    z*TestIndex.test_constructor_dtypes_to_int64c                 C   s   t |td}t|tstd S r   )r   ry   r3   r   r)   r   r&   r&   r'   "test_constructor_dtypes_to_float64  s    z,TestIndex.test_constructor_dtypes_to_float64
2011-01-01
2011-01-02i  c                 C   s   t |dd}t|tstd S )NcategoryrP   )r   r3   r
   r)   r   r&   r&   r'   &test_constructor_dtypes_to_categorical  s    z0TestIndex.test_constructor_dtypes_to_categorical
cast_indexc                 C   sH   |r.t |td}t|t st|jtksDtnt |}t|tsDtd S r   )r   rS   r3   r)   rQ   r   r%   r   r   r*   r&   r&   r'   #test_constructor_dtypes_to_datetime-  s    z-TestIndex.test_constructor_dtypes_to_datetimec                 C   sH   |r.t |td}t|t st|jtksDtnt |}t|tsDtd S r   )r   rS   r3   r)   rQ   r   r   r&   r&   r'   $test_constructor_dtypes_to_timedeltaE  s    	z.TestIndex.test_constructor_dtypes_to_timedelta+ignore:Passing keywords other:FutureWarningattrrF   asi8r   c           	   	   C   s8  t ddd}t||}||}|j}|d kr2d nt}|dkrNt||}n|||d}t|| |dkrt| t|	|}W 5 Q R X n|||d}t|| |dkrtt
||}n|t
||d}t|| |dkrt| tt
|	|}W 5 Q R X n|t
||d}t|| d S )Nr   re   rp   r   )rM   rP   )r   getattrZtz_localizerQ   r1   r   r/   r>   r0   rR   r#   )	r%   Ztz_naive_fixturer   r   r*   argrQ   warnrV   r&   r&   r'    test_constructor_dtypes_datetimeV  s.    	


z*TestIndex.test_constructor_dtypes_datetimec                 C   s`   t jddd}|d }|j}t||}|||d}t|| |t||d}t|| d S )NrN   re   rp   rP   )rT   timedelta_rangeZ
_with_freqrQ   r   r/   r>   r#   )r%   r   r   r*   rQ   rF   rV   r&   r&   r'   !test_constructor_dtypes_timedelta  s    

z+TestIndex.test_constructor_dtypes_timedeltavaluec                 c   s   | ]
}|V  qd S r8   r&   .0_r&   r&   r'   	<genexpr>  s     zTestIndex.<genexpr>r&   c                 C   s&   ||}t ||stt|r"td S r8   r3   r)   len)r%   r   r   emptyr&   r&   r'   test_constructor_empty  s    z TestIndex.test_constructor_emptyzempty,klassr_   c                 c   s   | ]
}|V  qd S r8   r&   r   r&   r&   r'   r     s     )stepZblueZred)levelscodesc                 C   s   t ||stt|rtd S r8   r   )r%   r   r   r&   r&   r'   test_constructor_empty_special  s    z(TestIndex.test_constructor_empty_specialc              	   C   s>   d}t jt|d" tttjjd gdd W 5 Q R X d S )NzIThe elements provided in the data cannot all be casted to the dtype int64r   r   r}   rP   )r   r   OverflowErrorr   r4   iinfor~   maxr%   r   r&   r&   r'   test_constructor_overflow_int64  s    z)TestIndex.test_constructor_overflow_int64ZperiodrangeZrepeatsr   ZtuplesZuintc                 C   s   | d d S )Ni8)viewr:   r&   r&   r'   test_view_with_args  s    zTestIndex.test_view_with_argsunicodecategoricalzgh-25464reason)Zmarksboolr   c              	   C   s,   d}t jt|d |d W 5 Q R X d S )Nz(Cannot change data-type for object arrayr   r   )r   r   	TypeErrorr   r%   r*   r   r&   r&   r'   'test_view_with_args_object_array_raises  s    z1TestIndex.test_view_with_args_object_array_raisesc                 C   s6   | d}|d d|_| d}|jdks2td S )Nr   re   foobar)rR   get_locrB   r)   )r%   r*   Zcastedr&   r&   r'   test_astype  s
    


zTestIndex.test_astypec                 C   s&   t dddgt dddgs"td S Nrl   rm   rn   r   equalsr)   r$   r&   r&   r'   test_equals_object  s    zTestIndex.test_equals_objectcompdc                 C   s   t dddg|rtd S r   r   )r%   r   r&   r&   r'   test_not_equals_object  s    z TestIndex.test_not_equals_objectc                 C   s4   t d|ddg}t tdd|}t|| d S )Nrl   rm   rn   abcr   )r   r#   insertr/   r>   )r%   nulls_fixturerb   rV   r&   r&   r'   test_insert_missing  s    zTestIndex.test_insert_missingc              	   C   s@   t ddddgdd}d}tjt|d |d	 W 5 Q R X d S )
Nrl   rm   rn   r   r*   rg   z/index 5 is out of bounds for axis 0 with size 4r   re   )r   r   r   
IndexErrordeleter   r&   r&   r'   test_delete_raises  s    zTestIndex.test_delete_raisesc                 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	}||rtd S )
Nrl   rm   rn   foorl   rl   rl   rm   )rm   rl   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  rt|ttdrt|| st| }d|_||st||st|t |j	rtttdd}t |dd}t |dd}||r,td S )N
   F)deepZbobr      rD   )
r   r   is_r)   r   rD   r4   r=   rB   rF   )r%   indZind2r@   Zind1r&   r&   r'   test_is_  s$    zTestIndex.test_is_c                 C   sz   |d }| ||kstt| |td s4t|d }| |td |ksVt|d  }t| |tsvtd S )Nr   r   )asofr)   r   r   Zto_pydatetimer3   r   )r%   r*   r   r&   r&   r'   	test_asof(  s    zTestIndex.test_asofc              	   C   sj   t dddg}t ddg}d}tjt|d || W 5 Q R X tjt|d || W 5 Q R X d S )Nr   r.   rJ   TFz#'<' not supported between instancesr   )r   r   r   r   r   )r%   leftrightr   r&   r&   r'    test_asof_numeric_vs_bool_raises4  s    z*TestIndex.test_asof_numeric_vs_bool_raisesc                    sj   t dj t fddtdD }ttjd|d}||j	d }t
dd}||t | ksftd S )	N20130101c                    s   g | ]} d  | qS )rO   r&   r   irc   r&   r'   
<listcomp>B  s     z?TestIndex.test_asof_nanosecond_index_access.<locals>.<listcomp>d   r*   r   z"2013-01-01 00:00:00.000000050+0000ns)r   r   r   r   r   r4   rh   Zrandnr   r*   r   r)   )r%   rr   Zfirst_valueZexpected_tsr&   r   r'   !test_asof_nanosecond_index_access@  s    

z+TestIndex.test_asof_nanosecond_index_accessc                 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 )NrP   Fre      r.   )r4   Zonesr   r   	enumerater   r)   r#   )r%   r*   Z
bool_indexZ	sub_indexr   valr&   r&   r'   test_booleanindexM  s    zTestIndex.test_booleanindexc                 C   s6   |}|dddg }|D ]}||| | kstqd S r   )r   r)   )r%   r(   r*   slr   r&   r&   r'   
test_fancy[  s    zTestIndex.test_fancyc                 C   sB   t jg |d}t|g }|g  |s,t|| |s>td S r   )r4   r=   typer   r)   )r%   r*   rQ   Z	empty_arrempty_indexr&   r&   r'   test_empty_fancya  s    zTestIndex.test_empty_fancyc              	   C   sX   t jg t jd}t|g }|g  |s.td}tjt|d ||  W 5 Q R X d S )NrP   z=arrays used as indices must be of integer \(or boolean\) typer   )	r4   r=   Zfloat_r  r   r)   r   r   r   )r%   r*   Z
empty_farrr  r   r&   r&   r'   test_empty_fancy_raisesj  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   rp   O)	r   unionr4   appendrR   r/   ZequalContentsr)   r9   )r%   sortr(   r*   
date_indexZ	first_catZ
second_catZappendedr&   r&   r'   test_union_dt_as_objw  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 )NrJ   c                 S   s   | fS r8   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     s     z2TestIndex.test_map_with_tuples.<locals>.<listcomp>c                 S   s   | | dkfS Nr   r&   r  r&   r&   r'   r    r  c                 S   s   g | ]}||d kfqS )r   r&   r   r&   r&   r'   r     s     )r/   makeIntIndexmapr   r>   r   from_tuplesr%   r*   rV   rb   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bazr   r.   rJ   c                 S   s   | d S Nr   r&   r  r&   r&   r'   r    r  z3TestIndex.test_map_with_tuples_mi.<locals>.<lambda>)r   r  zipr  r/   r>   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   r   c                 S   s   dS r  r&   r  r&   r&   r'   r    r  zATestIndex.test_map_tseries_indices_return_index.<locals>.<lambda>)r   r/   r   r  r>   )r%   r   r*   rb   rV   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}t ||dd  d S )N   hZhourly)rK   rB   rg   c                 S   s   | j S r8   )hourr  r&   r&   r'   r    r  zGTestIndex.test_map_tseries_indices_accsr_return_index.<locals>.<lambda>)r/   r  r   r   r>   r  )r%   r
  rb   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  rF   r*   r&   r&   r'   r    r  zTestIndex.<lambda>c                 C   s
   t | |S r8   r   r'  r&   r&   r'   r    r  c                 C   s:   t dddg}td}|||j|}t|| d S )Nr   r  r  rJ   )r   r/   r  r  rF   r>   )r%   r!  rb   r*   rV   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 r8   r(  r'  r&   r&   r'   r    r  c                 C   s^   t |trd S |jsd S |jr(tg }nttt|dd}||||}t	
|| d S )Nr   r   )r3   r
   	is_uniquer   r   r4   aranger   r  r/   r>   )r%   r*   r!  rb   rV   r&   r&   r'   test_map_dictlike  s    	

zTestIndex.test_map_dictliker   r  r   r   r   )r   r.   r   c                 C   s4   t dtjdg}t dddg|}t|| d S )Nr   r   r.   r   r   r   r4   rz   r  r/   r>   )r%   r!  rb   rV   r&   r&   r'   )test_map_with_non_function_missing_values  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      ?rJ   re   c                 S   s   | d S r-   r&   r  r&   r&   r'   r    r  z1TestIndex.test_map_na_exclusion.<locals>.<lambda>ignore)Z	na_actionr.   r-  r  r&   r&   r'   test_map_na_exclusion  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 )Nr   r.   rJ   c                   S   s   dS )Nblankr&   r&   r&   r&   r'   r    r  z0TestIndex.test_map_defaultdict.<locals>.<lambda>stuffr1  )r   r   r  r/   r>   )r%   r*   Zdefault_dictrV   rb   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   rg   r   r.   rJ   )r   r  rB   r)   )r%   rB   rb   r   r   rV   r&   r&   r'   test_append_empty_preserve_name  s    
z)TestIndex.test_append_empty_preserve_namec              	   C   s&   |}t t |  W 5 Q R X d S r8   )r/   r0   r1   Zis_mixedr%   r(   r*   r&   r&   r'   test_is_mixed_deprecated  s    z"TestIndex.test_is_mixed_deprecatedzindex, expected)r<   F)r   F)r   F)r   T)r   F)ry   Tc                 C   s   |  |kstd S r8   )Z
is_numericr)   r%   r*   rb   r&   r&   r'   test_is_numeric  s    zTestIndex.test_is_numeric)r<   T)r   T)r   F)ry   Fc                 C   s   |  |kstd S r8   )Z	is_objectr)   r7  r&   r&   r'   test_is_object
  s    zTestIndex.test_is_object)r   Tc              	   C   s(   t t |j|kstW 5 Q R X d S r8   )r/   r0   r1   Zis_all_datesr)   r7  r&   r&   r'   test_is_all_dates  s    zTestIndex.test_is_all_datesc                 C   s   |   d S r8   )_summaryr:   r&   r&   r'   test_summary)  s    zTestIndex.test_summaryc                 C   s4   t ddgdd}| }d|ks$td|ks0td S )Nz	{other}%sz~:{range}:0r   rg   )r   r;  r)   )r%   r   rV   r&   r&   r'   test_summary_bug,  s    zTestIndex.test_summary_bugc                 C   s(   t ddg}ddg}| |ks$td S )NZ	aaaaaaaaarm   )r   formatr)   )r%   idxrb   r&   r&   r'   $test_format_different_scalar_lengths4  s    z.TestIndex.test_format_different_scalar_lengthsc                 C   sR   t  }t|dsBt|g}| }t|d g}||ksBttg   d S )NZ000r   )r   nowstrendswithr   r>  r)   )r%   rA  r*   	formattedrb   r&   r&   r'   test_format_bug:  s    
zTestIndex.test_format_bugy       @      @g      @c                 C   sf   t |}|| t|}| }t|d t|d t|d dg}||ksRt|d |ksbtd S )Nr   r   r.   NaNrJ   )r#   r  r   r>  rB  r)   )r%   r   r   r*   rD  rb   r&   r&   r'   test_format_missingH  s    
$zTestIndex.test_format_missingc                 C   s.   t dddd}|jdd}|d dks*td S )Nz2011-01-01 04:00:00r   Z	something)rL   rB   Trg   r   )r   r>  r)   )r%   datesrD  r&   r&   r'   test_format_with_name_time_infoU  s    z)TestIndex.test_format_with_name_time_infoc                 C   sN   t tdddtddddg}| }ddg}t|dks>t||ksJtd S )Ni  r.         z2012-02-07 00:00:00z2012-02-07 23:00:00)r   r   r>  r   r)   )r%   trV   rb   r&   r&   r'   test_format_datetime_with_time\  s
    z(TestIndex.test_format_datetime_with_timeopanyallc                 C   s&   |}t || t |j| ks"td S r8   )r   rF   r)   )r%   rN  r(   r*   r&   r&   r'   test_logical_compatd  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 )Nre   r   r   r   )r   r#   r   dropr/   r>   )r%   r*   nrR  droppedrb   r&   r&   r'   test_drop_by_str_labeli  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   KeyErrorrR  )r%   r*   rV  r&   r&   r'   *test_drop_by_str_label_raises_missing_keysv  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 )Nre   r   r   r/  errorsr  )r   r#   r   tolistrR  r/   r>   )r%   r*   rS  rR  mixedrT  rb   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   rR  r/   r>   )r%   r*   rT  rb   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 )Nr   r.   rJ   rX  r   r   )r   r   r   rY  rR  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 )Nr   r.   rJ   r/  r[  r`  )r%   r+   rb   r*   rT  r&   r&   r'   (test_drop_by_numeric_label_errors_ignore  s    z2TestIndex.test_drop_by_numeric_label_errors_ignore)rn   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 qd S )Nrm   r   r   z\"\[z\] not found in axis\"r   )
r   rR  r/   r>   reescape__repr__r   r   rY  )	r%   rF   rd  r*   rb   rV   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 platformr.   )r   r3   r   r   r   r   skipuniquerepeatrR  r/   r>   r%   r*   rb   rV   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 )Nre   rJ  )r   r   rA  r   r)   )r%   r   r*   r&   r&   r'   test_is_monotonic_incomparable  s    
z(TestIndex.test_is_monotonic_incomparablec              	   C   sP   |}t dddg}tt |||d d W 5 Q R X |d dksLtd S )Nr   r.   rJ   P   )r4   r=   r/   r0   r1   	set_valuer)   )r%   r(   r?  r@   r&   r&   r'   test_set_value_deprecated  s
    z#TestIndex.test_set_value_deprecatedZquuxindex,expectedZquxc                 C   s   | |}t|| d S r8   )isinr/   rE   )r%   rF   r*   rb   rV   r&   r&   r'   	test_isin  s    	
zTestIndex.test_isinc                 C   s   t |trt |trt|rt|rtr`|tjkr@|tjk	sJ|tjk	r`|tj	j
ddd ttd|g|gtddg nV||krttd|g|gtddg n&ttd|g|gtddg d S )NzFailing on Python 3.10 GH41940F)r   strictrl   T)r3   ry   mathisnanr   r4   rz   Zapplymarkerr   markxfailr/   rE   r   rx  r=   )r%   requestr   Znulls_fixture2r&   r&   r'   test_isin_nan_common_object  sD    	 z%TestIndex.test_isin_nan_common_objectc                 C   s   |t jkrtd |t jkr4|jtjjdd t	
td|gtjgtddg t	
td|gt jgtddg d S )Nz'pd.NaT not compatible with Float64Indexz!Float64Index cannot contain pd.NAr   r   FT)rT   NaTr   rj  ZNAnodeZ
add_markerr}  r~  r/   rE   r   rx  r4   rz   r=   )r%   r  r   r&   r&   r'   test_isin_nan_common_float64  s    


  z&TestIndex.test_isin_nan_common_float64levelc                 C   s^   |  dd  dg }tddddg}t||j||d d|_t||j|dd d S )NZnonexistingFTr  r   )r]  r4   r=   r/   rE   rx  rB   )r%   r  r*   rF   rb   r&   r&   r'   test_isin_level_kwarg%  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   r   zToo many levelsr   r  )Znlevelsr   r   r   rx  )r%   r*   r  r&   r&   r'   &test_isin_level_kwarg_bad_level_raises7  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  r.   z'Level z not found'zRequested level \(z$\) does not match index name \(foo\)r   r  )r3   r   r   namesr   r   rY  rx  )r%   r  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 )Nrl   rm   F)r   r4   r=   rx  r/   rE   )r%   r   r*   rb   rV   r&   r&   r'   test_isin_emptyG  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 )NTrP   )r   r4   r=   r   r/   rE   )r%   rF   r*   rV   rb   r&   r&   r'   test_boolean_cmpP  s    zTestIndex.test_boolean_cmpz
name,levelr  r   c                 C   s,   |  }|r||_||}t|| d S r8   )rD   rB   Zget_level_valuesr/   r>   )r%   r*   rB   r  rb   rV   r&   r&   r'   test_get_level_valuesa  s
    
zTestIndex.test_get_level_valuesc                 C   s,   t ddgdd}|j|dd  jks(td S )Nrl   rm   Zasdfrg   r   r   rB   r)   r:   r&   r&   r'   test_slice_keep_namek  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_selfo  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   rB  r   r  r  r&   r'   r   |  s     z0TestIndex.test_str_attribute.<locals>.<listcomp>)r   rF   r   rB  r/   r>   )r%   r  r*   rb   rV   r&   r  r'   test_str_attributex  s    zTestIndex.test_str_attributer   )r   rW  )r  32000Z2010)startendrK   c              	   C   s*   t jtdd |jd W 5 Q R X d S )Nzonly use .str accessorr   r.   )r   r   AttributeErrorrB  rl  r:   r&   r&   r'   test_str_attribute_raises  s    
z#TestIndex.test_str_attribute_raiseszexpand,expectedNr#  f)rl   rm   rn   c                 C   s@   t dddg}|d k	r&|jj|d}n
|j }t|| d S )Nza b czd er  )expand)r   rB  splitr/   r>   )r%   r  rb   r*   rV   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b2rl   TF)
r   rB  
startswithr4   r=   r/   rE   r3   r5   r)   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 )	Nr  r  r  r  r   r   rl   r.   )r   r   r   r*   rB  r  r/   ri   )r%   r*   rc   rV   rb   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 )NrB  )dirr)   rm  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 )	Nr   r.   rJ   rl   rm   rn   rP   r   )r   r   r4   rU   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   outerr  )r   r4   rh   Zpermutationr/   r  r0   RuntimeWarningr  rR   rS   r  r>   )r%   Z
left_indexZright_indexrV   rb   r&   r&   r'   test_outer_join_sort  s    
 zTestIndex.test_outer_join_sortc                 C   sR   t tjtdtdg}|dddg}t |d |d |d g}t|| d S )Nr   Z20130102r   r   r   )r   rT   r  r   taker/   r>   r  r&   r&   r'   test_nan_first_take_datetime  s    z&TestIndex.test_nan_first_take_datetimec                 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xxxrg   r   r   r   ZBACT
fill_valuer   r   F)Z
allow_fillr  r   )r   r#   r  r4   r=   r/   r>   rz   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  rg   zJWhen allow_fill=True and fill_value is not None, all indices must be >= -1r   r   r   r  Tr  )r   r#   r   r   r   r  r4   r=   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  rg   zout of boundsr   r   r  )r   r#   r   r   r   r  r4   r=   r:   r&   r&   r'   test_take_bad_bounds_raises  s    z%TestIndex.test_take_bad_bounds_raisesrB   labelsr   c                 C   s0   t dddg}||_||d j|ks,td S )Nr   r   r.   )r   rB   reindexr)   )r%   rB   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 Nr   r   )r   r#   r  rQ   r  r4   rU   r)   )r%   r  r*   r&   r&   r'   <test_reindex_preserves_type_if_target_is_empty_list_or_array  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  rQ   r  r)   )r%   r  rQ   r*   r&   r&   r'   :test_reindex_doesnt_preserve_type_if_target_is_empty_index  s    
zDTestIndex.test_reindex_doesnt_preserve_type_if_target_is_empty_indexc                 C   sd   t td}|ttg tg gg g gd }|jd jjt	j
ksHt|jd jjt	jks`td S )Nr   r   r   )r   r#   r  r   r   r   r   rQ   r  r4   r}   r)   float64)r%   r*   rV   r&   r&   r'   -test_reindex_no_type_preserve_target_empty_mi!  s    z7TestIndex.test_reindex_no_type_preserve_target_empty_mic              	   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 )Nre   r   r.   r   rJ   r   r   r.   )r   r   groupbyr4   r=   r/   Zassert_dict_equalr  r&   r&   r'   test_groupby)  s    zTestIndex.test_groupbyzmi,expectedr  r   re   )r      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   r   Z	index_col)rT   read_csvr   r*   r/   rE   )r%   mirb   rj   rV   r&   r&   r'   test_equals_op_multiindex0  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   r   r  T)rT   r  r   r*   r4   r=   r/   rE   )r%   rj   rV   rb   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   r   r  zLengths must matchr   )rT   r  r   r   r   r   r*   )r%   r*   rj   r&   r&   r'   +test_equals_op_mismatched_multiindex_raisesF  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   r4   r=   r/   rE   )r%   r  r*   rV   rb   r&   r&   r'   &test_equals_op_index_vs_mi_same_lengthS  s
    z0TestIndex.test_equals_op_index_vs_mi_same_lengthdt_convc                 C   s(   t ddgdd}|j||jks$td S )Nz01:02:03z01:02:04r  rg   r  )r%   r  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 )Nr   r.   rJ   zCan't set attributer   F)r   r   r   r  r*  r:   r&   r&   r'   #test_cached_properties_not_settablea  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.r   )
r   ZimportorskipZIPython.core.completerr  Zrun_coder/   r0   r#   Z	CompleterZcompletions)r%   ipr  coder&   r&   r'   test_tab_complete_warningf  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 )Nr   'z$' object has no attribute 'contains'r   )r3   r   containsr  rt   r   r   r  r   r&   r&   r'   test_contains_method_removedu  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 )Nre   r   rJ   r.   r   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	sortlevelr/   r>   rm  r&   r&   r'   test_sortlevel~  s&     zTestIndex.test_sortlevel)rt   ru   rv   r   r"   r   fixturer(   r,   r}  parametrizer7   r;   rA   rG   r   rT   r   r   rW   rX   rd   rk   r4   r+  r=   rF   rx   r|   r   r   r   r  rz   r   r  r   r   r   ry   r   r   r   r   r   r   Ztimedelta64r   r   filterwarningsr   r   r   iterr   r   r
   r   r   r   r   r   r   r   paramr~  r   r   r   r   r   r   r   r   r   r   r   r   r  int_Zbool_r  r  r  r  r  r  r   r)  r,  r   r.  r0  r3  r4  r6  r8  r9  r:  r<  r=  r@  rE  rG  rI  rM  rQ  rU  rZ  r_  ra  rb  rc  ri  rn  rs  rv  r   ry  r  r  r  r  r  rS   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  Z
datetime64r  r  r  r  r  r  r  r`   to_timedeltar  r  r	   r  r  r  r&   r&   r&   r'   r   1   sl  












		
( 

	


  



 


"







 & 	 ".	






	"  		  &	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ejdAee gdBdC Z!dDdE Z"ej#dFdGdH Z$dS )ITestMixedIntIndexr    c                 C   s   |  ddddddgS )Nr   rl   r   rm   r.   rn   )r"   r$   r&   r&   r'   r(     s    zTestMixedIntIndex.simple_indexr   rl   r   rm   r.   rn   Z
mixedIndex)paramsidsc                 C   s
   t |jS r8   )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   argsortr5  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   r4   r  r5  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std S )
NTZmariorC   Fr   r.   r   rJ   r   )r  r)   r/   r>   rB   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|jdgd}tj||dd |jdkst|jdgkst|jdkst|jdgkstd S )	Nr   r.   ZMyNamerg   ZNewNameF)Zcheck_namesr  )r   rD   r/   r>   rB   r)   r  )r%   r*   Zindex1index2Zindex3r&   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 )Nr.   r   Zmy_indexrg   )r   r4   rz   rk  r/   r>   )r%   r?  rb   rV   r&   r&   r'   test_unique_na  s    z TestMixedIntIndex.test_unique_nac                 C   s4   |}|  |j  kst| |j ks0td S r8   )rP  rF   r)   rO  r5  r&   r&   r'   rQ    s    z%TestMixedIntIndex.test_logical_compatr  rO  rP  rQ   Nr   zvals,expectedrJ   r   r   r   r   r   r   c                 C   s4   t ||d}|j|d}t ||d}t|| d S )NrP   r  )r   dropnar/   r>   )r%   r  rQ   r   rb   r*   rV   r&   r&   r'   test_dropna  s    zTestMixedIntIndex.test_dropnarw  r   r   z
2011-01-03rN   z2 daysz3 daysz2012-02z2012-04z2012-05Mr_   r  c                 C   s   |j |d}t|| d S r  )r  r/   r>   )r%   r  r*   rb   rV   r&   r&   r'   test_dropna_dt_like  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   r   r.   rJ   r  r  )r   r   r   r   r  r   r&   r&   r'   test_dropna_invalid_how_raises  s    z0TestMixedIntIndex.test_dropna_invalid_how_raisesr*   ro   z
2000-01-02z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)ro  r)   rp  rq  rr  r:   r&   r&   r'   test_is_monotonic_na  s    z&TestMixedIntIndex.test_is_monotonic_nar   c                 C   s:   t dddgdd}|ttd|d}dt|ks6td S )	Nrl   rm   rn   r   rg   rJ   r   0)r   r#   r   reprr)   )r%   r   r*   rV   r&   r&   r'   test_int_name_format2  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&   )rB  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_raises8  s    z*TestMixedIntIndex.test_str_to_bytes_raisesz2ignore:elementwise comparison failed:FutureWarningc                 C   s:   t dddgdd}|dk}tdddg}t|| d S )Nr   )rm   rn   )rn   rl   Fr   T)r   r4   r=   r/   rE   )r%   r?  rV   rb   r&   r&   r'   test_index_with_tuple_bool?  s    z,TestMixedIntIndex.test_index_with_tuple_bool)%rt   ru   rv   r   r"   r   r  r(   r*   r  r  r  r  r  rQ  r}  r  rS   r4   rz   r  r   rT   r  r   r   r  r  r`   r  r   r   r   r  r  r  r  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, expectedr   r.   rJ   NrB   rg   rl   rn   r   r   ZL1ZL2r  c                 C   s   t ||}t|| d S r8   )r   r/   r>   )r%   r{   r  rb   rV   r&   r&   r'    test_ensure_index_from_sequencesK  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   r   r   )closedr.   r   rJ   Zneitherr   ZbothrP   )rT   ZIntervalr   r   rS   r/   r>   )r%   Z	intervalsrV   rb   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~   rP   )
r4   r   r~   r   r   r#   r)   r   r/   r>   )r%   rF   rV   rb   r&   r&   r'   test_ensure_index_uint64l  s
    z'TestIndexUtils.test_ensure_index_uint64c                 C   s    t g }tg }t|| d S r8   )r   r   r/   r>   )r%   rV   rb   r&   r&   r'   test_get_combined_indexx  s    z&TestIndexUtils.test_get_combined_index)rt   ru   rv   r   r}  r  r   r   r  r
  r  r  r&   r&   r&   r'   r  J  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   rt   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  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   rl   rm   rP   testT)rB   Zfastpathr   r.   rJ   r}   r   re   rn   )
r   r   r   r   r4   r=   rS   r   r   r
   )r   r&   r&   r'   test_deprecated_fastpath  s    &(r!  c               	   C   sD   t ddddg} tt  | d d d f jdks6tW 5 Q R X d S )Nr   r   r.   rJ   )r   r   )r   r/   r0   r1   shaper)   )r?  r&   r&   r'   test_shape_of_invalid_index  s    r#  c               	   C   s,  d} t dddd}tjt| d t| W 5 Q R X tjt| d t|t j	 W 5 Q R X tjt| d t
|t j W 5 Q R X tjt| d t|t j W 5 Q R X t|dd}tjt| d t| W 5 Q R X tdtd}tjt| d t ddggd |_W 5 Q R X d S )Nz Index data must be 1-dimensionalr  r.   r   r   r   rJ   )r4   r+  Zreshaper   r   r   r   r   rR   r  r   r}   r   r~   r   r   r   r=   r*   )r   r@   rj   r   r&   r&   r'   test_validate_1d_input  s     r$  zklass, extra_kwargsrK   Yc                 C   s:   | t tddf|}| tddf|}t|| d S )Ni  i  )
memoryviewr4   r+  r   r/   r>   )r   extra_kwargsrV   rb   r&   r&   r'   test_construct_from_memoryview  s    r(  c               	   C   s^   t ddddg} d}tjt|d | dd }W 5 Q R X t ddddgdd}t|| d S )	Nr   r.   rJ   r   zsIn a future version of pandas all arguments of Index.set_names except for the argument 'names' will be keyword-onlyr   Zquarterrg   )r   r/   r0   r1   Z	set_namesr>   r?  r   rV   rb   r&   r&   r'   )test_index_set_names_pos_args_deprecation  s    r*  c               	   C   s`   t ddddg} d}tjt|d | d | d}W 5 Q R X t dddg}t|| d S )Nr   r.   rJ   zYIn a future version of pandas all arguments of Index.drop_duplicates will be keyword-onlyr   last)r   r/   r0   r1   Zdrop_duplicatesr>   r)  r&   r&   r'   )test_drop_duplicates_pos_args_deprecation  s    
r,  )<collectionsr   r   r   ior   r{  re  Znumpyr4   r   Zpandas.compatr   r   r   Zpandas.util._test_decoratorsr	   ZpandasrT   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Zpandas._testingZ_testingr/   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$  r(  r*  r,  r&   r&   r&   r'   <module>   s   D          q 34





