U
    sVc                     @   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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$ 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/d0 Z7d1d2 Z8e
j01d3e&i ge"i ge!i gei gei ge#i ged4d5iggd6d7 Z9d8d9 Z:d:d; Z;d<d= Z<e
j01d>ej=ej>gd?d@ Z?dS )A    )defaultdict)datetime)StringION)IS64)InvalidIndexError)
async_mark)
CategoricalIndex	DataFrameDatetimeIndexIntervalIndexPeriodIndex
RangeIndexSeriesTimedeltaIndex
date_rangeperiod_range)Float64Index
Int64IndexNumericIndexUInt64Index)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>ej	
d?d@dAgej	
dBeegdCdD Z!ej	
d?d@dAgej	
dBee"gdEdF Z#ej	
dGg e$g dHdI dJD gej	
dBeee%e&e'ee"gdKdL Z(ej	
dMe)g d9dNe)fe)e$g d9dNe)fe)dOdI dJD d9dNe)fe*d/dPe*fe+d/d0gdQdRggg g gdSe+fgdTdU Z,ej	j
ddd7d3dVdWdXdYdZd[g	dd	d\d] Z-ej	j
ddej.d^ej	j/d_d`dadbdcddgdd	dedf Z0ej	j
dd3dWgdd	dgdh Z1didj Z2ej	
dkedldmgedldmdngdldmdoggdpdq Z3drds Z4dtdu Z5dvdw Z6ej	j
ddgdd	dxdy Z7dzd{ Z8ej	j
ddd3d7gdd	ej	
d|ej9ej:gd}d~ Z;ej	j
ddd3d7gdd	dd Z<dd Z=dd Z>dd Z?ej	
d?dddgdd Z@dd ZAej	
ddd dd gdd ZBej	
ddd dd gdd ZCej	
deDdddgdd0dgdddddgdd ZEdd ZFdd ZGej	
dddgdd ZHej	j
ddddddddgdgd	dd ZIej	j
ddddddddgdgd	dd ZJej	j
ddddddddgdgd	dd ZKdd ZLdd ZMej	
dd/ddgdldmdoggddń ZNej	
dddgddʄ ZOej	j
ddd3d7gdd	dd̄ ZPej	j
ddd3d7gdd	ej	
dddgddggddф ZQej	j
ddd3d7gdd	ddӄ ZRddՄ ZSddׄ ZTej	
dd1ed/d0dgfdd1d2ged/d0gfgddڄ ZUej	
d@dldmdgdlddmgddldmggej	
dddlgdldggddބ ZVdd ZWej	
d?ddddgdd ZXdd ZYej	
d@dddgdddhgej	
deddddgeZddddgfeg ejZg e[dfgdd Z\dd Z]dd Z^ej	
dddgej	
deddddgeddd6dggdd Z_dd Z`ej	
ddddejgdd Zaej	
ddg eDebdeZg gdd Zcej	
d@d/d0dd1gddd6dgddddgddddged dd1dgdd Zdej	j
ddgdd	ej	
dddgdd Zedd	 Zfej	j
dddd3d[d7gdd	d
d Zgej	
ddddgdd Zhej	
deeid2ejkde+lddgeddd8dgdd Zmej	
ddedldmdogdndgdggfdedldmdogdndgdggfde+lddndejfdejejfgfgdd  Znd!d" Zod#d$ Zpej	
deeqd%dfeeid1dfgd&d' Zrd(d) Zsd*d+ Ztd,d- Zud.d/ Zvd0d1 Zwej	
d2ddgej	
d3g eZg d8d9d:gd:d9d8geZd8d9d:geZd:d9d8ged4dd5jxed4dd5y gd6d7 Zzej	
d3g eZg ejZg ej{dgd8d9 Z|ej	
d:e%g ej{feg ejfeg ej}fgd;d< Z~d=d> Zd?d@ ZdAdB Zej	
dCe+ldDdEgeZddgfe+ldDdFgeZddgfgdGdH ZdIdJ Zej	
de+ldDdEdKgedddggdLdM ZdNdO Zej	
dPejejgdQdR ZdSdT Ze dUdV ZdWdX ZdYdZ ZdS ([  	TestIndexreturnc                 C   s   |  tdS )NZabcde)
_index_clslistself r#   B/tmp/pip-unpacked-wheel-xj8nt62q/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   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_axis9   s    zTestIndex.test_new_axisc                 C   s   t || d S N)r,   assert_contains_allr"   r'   r#   r#   r$   test_constructor_regularA   s    z"TestIndex.test_constructor_regularstringc                 C   s.   t |}t|}t|| t|| d S r5   )r1   arrayr   r,   r6   assert_index_equalr"   r'   arrr3   r#   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   )	r1   r:   r   r0   r&   r?   r,   assert_numpy_array_equalvaluesr<   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?   )rH   rI   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;   r0   r
   rJ   r&   pdZ	TimedeltarN   r1   object_r    )r"   rE   r'   resultr#   r#   r$   "test_constructor_from_index_dtlikeV   s    
z,TestIndex.test_constructor_from_index_dtlikezindex,has_tz)rH   rI   rJ   c                 C   s0   t t|}t|| |r,|j|jks,td S r5   )r   r   r,   r;   rJ   r&   )r"   r'   Zhas_tzrS   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rH   )r
   r   rQ   to_datetimer,   r;   )r"   dtsexpectedsrS   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 )NrV   rW   rX   rY   rZ   r[   r\      rG   dater?   )r
   r	   r1   randomZrandrN   rP   r&   r?   r,   r;   r   assert_series_equalrQ   Z
infer_freq)r"   r^   r_   dfrS   rH   r#   r#   r$   'test_constructor_from_frame_series_freq   s    z1TestIndex.test_constructor_from_frame_series_freqc                 C   s,   t jg}t|}t|dd}t|| d S )NfloatrM   )r1   nanr   r   r,   r;   )r"   datar_   rS   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 r5   )rN   r&   r   r,   r;   r1   r:   )r"   klassrN   Zna_valZna_listr_   rS   r#   r#   r$   test_index_ctor_infer_nan_nat   s    	z'TestIndex.test_index_ctor_infer_nan_natz
vals,dtype   r+      rb   intg?g@      @ri   ABCobjc                 C   s*   t ||d}||j|}t|| d S )Nrd   )r   Z_simple_newrC   r,   r;   )r"   valsrN   r'   rS   r#   r#   r$   test_constructor_simple_new   s    	z%TestIndex.test_constructor_simple_new+ignore:Passing keywords other:FutureWarningattrrC   asi8rm   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 )N
2011-01-01rb   rI   r{   )rJ   rM   )r   getattrZtz_localizerN   r.   r
   r,   r;   r-   rO   r    )	r"   Ztz_naive_fixturerz   rm   r'   argrN   warnrS   r#   r#   r$    test_constructor_dtypes_datetime   s.    	


z*TestIndex.test_constructor_dtypes_datetimec                 C   s`   t jddd}|d }|j}t||}|||d}t|| |t||d}t|| d S )NrK   rb   r}   rM   )rQ   timedelta_rangeZ
_with_freqrN   r~   r,   r;   r    )r"   rz   rm   r'   rN   rC   rS   r#   r#   r$   !test_constructor_dtypes_timedelta   s    

z+TestIndex.test_constructor_dtypes_timedeltavaluec                 c   s   | ]
}|V  qd S r5   r#   .0_r#   r#   r$   	<genexpr>  s     zTestIndex.<genexpr>r#   c                 C   s&   ||}t ||stt|r"td S r5   r0   r&   len)r"   r   rm   emptyr#   r#   r$   test_constructor_empty  s    z TestIndex.test_constructor_emptyzempty,klassr\   c                 c   s   | ]
}|V  qd S r5   r#   r   r#   r#   r$   r   $  s     )stepZblueZred)levelscodesc                 C   s   t ||stt|rtd S r5   r   )r"   r   rm   r#   r#   r$   test_constructor_empty_special  s    z(TestIndex.test_constructor_empty_specialZperiodrangeZrepeats	timedeltaZtuplesZuintc                 C   s   | d d S )Ni8)viewr7   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 dtypematchr   z(Cannot change data-type for object array)rN   boolpytestraises
ValueErrorr   	TypeErrorr"   r'   msgr#   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   rb   foobar)rO   get_locr?   r&   )r"   r'   Zcastedr#   r#   r$   test_astypeT  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_object`  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_objectd  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	}||rt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_identicalj  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bobro      rA   )
r   r   is_r&   r   rA   r1   r:   r?   rC   )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 )
Nro   r+   rG   TFrM   z$Cannot compare dtypes int64 and boolr   r   )
r   rP   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 )NrM   Frb      r+   )r1   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 Nro   r+   rG   )r   r&   )r"   r%   r'   slr   r#   r#   r$   
test_fancy  s    zTestIndex.test_fancyrN   c                 C   sB   t jg |d}t|g }|g  |s,t|| |s>td S )NrM   )r1   r:   typer   r&   )r"   r'   rN   Z	empty_arrempty_indexr#   r#   r$   test_empty_fancy  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 )NrM   z=arrays used as indices must be of integer \(or boolean\) typer   )	r1   r:   Zfloat_r   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   unionr1   appendrO   r,   ZequalContentsr&   r6   )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 )NrG   c                 S   s   | fS r5   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 Nro   r#   r   r#   r#   r$   r     r   c                 S   s   g | ]}||d kfqS )ro   r#   r   r#   r#   r$   r     s     )r,   makeIntIndexmapr   r;   r   from_tuplesr"   r'   rS   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bazro   r+   rG   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   ro   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"   rz   r'   r_   rS   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 j||dd dd	 d S )
N   hZhourly)rH   r?   rd   c                 S   s   | j S r5   )hourr   r#   r#   r$   r      r   zGTestIndex.test_map_tseries_indices_accsr_return_index.<locals>.<lambda>Texact)r,   r   r   r   r;   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   rC   r'   r#   r#   r$   r     r   zTestIndex.<lambda>c                 C   s
   t | |S r5   r   r   r#   r#   r$   r     r   c                 C   s:   t dddg}td}|||j|}t|| d S )Nr   r   r   rG   )r   r,   r   r   rC   r;   )r"   r   r_   r'   rS   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 r5   r   r   r#   r#   r$   r     r   c                 C   s   t |trd S |jsd S tt|dd}|jr:tg }nb|jrR|j	||j
d}nJt|tkrx|j
tkrxt||j
d}n$|j
jdkrt||j
d}nt|}||||}t|| d S )Nr   rM   u)r0   r   	is_uniquer1   aranger   r   r   Z(_is_backward_compat_public_numeric_indexZ_constructorrN   r   rP   kindr   r,   r;   )r"   r'   r   requestrngr_   rS   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+   ro   r   r   r1   rj   r   r,   r;   )r"   r   r_   rS   r#   r#   r$   )test_map_with_non_function_missing_values2  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      ?rG   rb   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 )Nro   r+   rG   c                   S   s   dS )Nblankr#   r#   r#   r#   r$   r   F  r   z0TestIndex.test_map_defaultdict.<locals>.<lambda>stuffr	  )r   r   r   r,   r;   )r"   r'   Zdefault_dictrS   r_   r#   r#   r$   test_map_defaultdictD  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   rd   ro   r+   rG   )r   r   r?   r&   )r"   r?   r_   r   r   rS   r#   r#   r$   test_append_empty_preserve_nameL  s    
z)TestIndex.test_append_empty_preserve_namezindex, expected)r9   F)r   F)r   F)r   F)rq   T)r   F)ri   Tc                 C   s   |  |kstd S r5   )Z
is_numericr&   r"   r'   r_   r#   r#   r$   test_is_numericT  s    zTestIndex.test_is_numeric)r9   T)r   T)rq   F)ri   Fc                 C   s   |  |kstd S r5   )Z	is_objectr&   r  r#   r#   r$   test_is_objectd  s    zTestIndex.test_is_object)r   Tc              	   C   s(   t t |j|kstW 5 Q R X d S r5   )r,   r-   r.   Zis_all_datesr&   r  r#   r#   r$   test_is_all_datest  s    zTestIndex.test_is_all_datesc                 C   s   |   d S r5   )Z_summaryr7   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 )NrM   NaNr   ro   r+   rG   )	r    r   r   rP   r  r0   ri   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 r5   )r~   rC   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 )Nrb   r   r   ro   )r   r    r   dropr,   r;   )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 )Nrb   r   r   r  errorsr   )r   r    r   tolistr  r,   r;   )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  r,   r;   )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 )Nro   r+   rG   r$  r   rp   )r   r   r   r%  r  r7   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 )Nro   r+   rG   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 qd S )Nr   r   ro   z\"\[z\] not found in axis\"r   )
r   r  r,   r;   r   r   __repr__r   r   r%  )	r"   rC   r0  r'   r_   rS   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   r0   r   r   r   r   skipuniquerepeatr  r,   r;   r"   r'   r_   rS   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 )Nrb      )r   r   r  r~   r&   )r"   rz   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 )Nro   r+   rG   P   )r1   r:   r,   r-   r.   	set_valuer&   )r"   r%   idxr=   r#   r#   r$   test_set_value_deprecated  s
    z#TestIndex.test_set_value_deprecatedZquuxindex,expectedZquxrM   c                 C   s   | |}t|| d S r5   )isinr,   rB   )r"   rC   r'   r_   rS   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rttd|g|gt	ddg n&ttd|g|gt	ddg d S )Nr   FT)
r0   ri   mathisnanr,   rB   r   rD  r1   r:   )r"   r  Znulls_fixture2r#   r#   r$   test_isin_nan_common_object%  s*    z%TestIndex.test_isin_nan_common_objectc              	   C   s   |t jks|t jkrdd}tjt|d td|g W 5 Q R X tdtjg}|	|g
 r`td S td|g}|	tjg}t|tddg |	t jg}t|tddg d S )Nz(data is not compatible with Float64Indexr         ?FT)rQ   NaTZNAr   r   r   r   r1   rj   rD  r  r&   r,   rB   r:   )r"   r  r   rA  resr#   r#   r$   test_isin_nan_common_float64A  s    z&TestIndex.test_isin_nan_common_float64levelrI  c                 C   s^   |  dd  dg }tddddg}t||j||d d|_t||j|dd d S )NZnonexistingFTrM  r   )r)  r1   r:   r,   rB   rD  r?   )r"   rM  r'   rC   r_   r#   r#   r$   test_isin_level_kwargV  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   ro   zToo many levelsr   rO  )Znlevelsr   r   r   rD  )r"   r'   rM  r#   r#   r$   &test_isin_level_kwarg_bad_level_raisesh  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   rO  )r0   r   r   namesr   r   r%  rD  )r"   rR  r'   r   r#   r#   r$   &test_isin_level_kwarg_bad_label_raisesm  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   r1   r:   rD  r,   rB   )r"   r   r'   r_   rS   r#   r#   r$   test_isin_emptyx  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 )NTrM   )r   r1   r:   r   r,   rB   )r"   rC   r'   rS   r_   r#   r#   r$   test_boolean_cmp  s    zTestIndex.test_boolean_cmpz
name,levelr   r   c                 C   s,   |  }|r||_||}t|| d S r5   )rA   r?   Zget_level_valuesr,   r;   )r"   r'   r?   rM  r_   rS   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asdfrd   ro   r   r?   r&   r7   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   rC   r~   r   r,   r;   )r"   r_  r'   r_   rS   r#   rd  r$   test_str_attribute  s    zTestIndex.test_str_attributer   )r   r#  )r   32000Z2010)startendrH   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   AttributeErrorr   r6  r7   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 erl  )expand)r   r   splitr,   r;   )r"   rm  r_   r'   rS   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   
startswithr1   r:   r,   rB   r0   r2   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 )	Nrp  rq  rr  rs  rp   r  r   r+   )r   r   r   r'   r   rt  r,   rf   )r"   r'   r`   rS   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&   r7  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 )	Nro   r+   rG   r   r   r   rM   r   )r   r   r1   rR   r&   r7   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   r1   re   Zpermutationr,   r   r-   RuntimeWarningr]  rO   rP   r   r;   )r"   Z
left_indexZright_indexrS   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xxxrd   ro   r   r   ZBACT
fill_valuert   rs   F)Z
allow_fillr  ru   )r   r    taker1   r:   r,   r;   rj   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  rd   zJWhen allow_fill=True and fill_value is not None, all indices must be >= -1r   ro   r   rN  Tr  )r   r    r   r   r   r  r1   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  rd   zout of boundsr   ro   r  )r   r    r   r   r   r  r1   r:   r7   r#   r#   r$   test_take_bad_bounds_raises  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   ro   r+   )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  rN   r   r1   rR   r&   )r"   r  r'   r#   r#   r$   <test_reindex_preserves_type_if_target_is_empty_list_or_array9  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  rN   r   r&   )r"   r  rN   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   ro   )r   r    r  r   r   r   r   rN   r   r1   int64r&   float64)r"   r'   rS   r#   r#   r$   -test_reindex_no_type_preserve_target_empty_miL  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 )Nro   r+   rG   r   rd   rp   rO  )r   r  r,   r;   )r"   rA  Zidx2r_   rS   r   r#   r#   r$   test_reindex_ignoring_levelT  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 )Nrb   ro   r+   r   rG   rp   ro   r+   )r   r   groupbyr1   r:   r,   Zassert_dict_equalr   r#   r#   r$   test_groupby\  s    zTestIndex.test_groupbyzmi,expectedr  rp   rb   )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   ro   Z	index_col)rQ   read_csvr   r'   r,   rB   )r"   mir_   rg   rS   r#   r#   r$   test_equals_op_multiindexc  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   ro   r  T)rQ   r  r   r'   r1   r:   r,   rB   )r"   rg   rS   r_   r#   r#   r$   "test_equals_op_multiindex_identifyr  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   ro   r  zLengths must matchr   )rQ   r  r   r   r   r   r'   )r"   r'   rg   r#   r#   r$   +test_equals_op_mismatched_multiindex_raisesy  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   r1   r:   r,   rB   )r"   r  r'   rS   r_   r#   r#   r$   &test_equals_op_index_vs_mi_same_length  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:04rR  rd   rX  )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 )Nro   r+   rG   zCan't set attributer   F)r   r   r   rj  r   r7   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_coder,   r-   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 )Nro   'z$' object has no attribute 'contains'r   )r0   r   containsr   __name__r   r   rj  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 )Nrb   rp   rG   r+   ro   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;   r7  r#   r#   r$   test_sortlevel  s&     zTestIndex.test_sortlevel)r  
__module____qualname__r   r   r   fixturer%   r)   markparametrizer4   r8   r>   rD   r   rQ   r   r   rT   rU   ra   rh   rl   r   r1   r  rj   r
   rJ  rn   rx   filterwarningsr   r   r   iterr   r   r   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.  r/  r3  r8  r>  rB  r:   r   rE  rH  rL  rP  rQ  rT  rP   rU  rV  rW  rY  r^  re  r   r,   r   r   rk  ro  ru  rv  r    rx  ry  r}  r  r  r  rC   r)  r  r  r  Z
datetime64r  r  r  r  r  r  r  r  r]   to_timedeltar  r  r   r  r  r  r#   r#   r#   r$   r   -   s  


	




( 





  


 


"

	
	
	




 &
	
 	









	"  		  &	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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d0d1d2ged0d1d2gfeejd0d1d2ejged0d1d2gfed3d4d5gd6d7ed3d4d5gd6d7fed3d4d8d5gd6d7ed3d4d5gd6d7fgd9d: Zd;d< 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d8ged8d>ged>d8d?ged@d8ggdAdB ZdCdD Z dEdF Z!ej"dGdHdI Z#d S )JTestMixedIntIndexr   c                 C   s   |  ddddddgS )Nr   r   ro   r   r+   r   )r   r!   r#   r#   r$   r%     s    zTestMixedIntIndex.simple_indexr   r   ro   r   r+   r   Z
mixedIndex)paramsidsc                 C   s
   t |jS r5   )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   r1   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std S )
NTZmarior@   Fr   r+   r  rG   r   )r   r&   r,   r;   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tt |jdgd}W 5 Q R X tj||dd |jdkst|jdgkst|jdkst|jdgkstd S )	Nro   r+   ZMyNamerd   ZNewNameF)Zcheck_namesrS  )	r   rA   r,   r;   r?   r&   r-   r.   rS  )r"   r'   Zindex1index2Zindex3r#   r#   r$   test_copy_name2  s    z!TestMixedIntIndex.test_copy_name2c              	   C   s(   t t |jdgd W 5 Q R X d S )Nr   r  )r,   r-   r.   rA   )r"   r%   r#   r#   r$   test_copy_names_deprecated  s    z,TestMixedIntIndex.test_copy_names_deprecatedc                 C   sB   t dtjddgdd}t dtjdgdd}| }t|| d S )Nr+   ro   Zmy_indexrd   )r   r1   rj   r5  r,   r;   )r"   rA  r_   rS   r#   r#   r$   test_unique_na  s    z TestMixedIntIndex.test_unique_nac                 C   s4   |}|  |j  kst| |j ks0td S r5   )r  rC   r&   r  r  r#   r#   r$   r    s    z%TestMixedIntIndex.test_logical_compatr\  r  r  rN   Ncategoryzvals,expectedrG   rI  r  rr   rs   rt   ru   c                 C   s4   t ||d}|j|d}t ||d}t|| d S )NrM   r[  )r   dropnar,   r;   )r"   r\  rN   rw   r_   r'   rS   r#   r#   r$   test_dropna  s    zTestMixedIntIndex.test_dropnarC  r|   z
2011-01-02z
2011-01-03rK   z2 daysz3 daysz2012-02z2012-04z2012-05Mr\   rJ  c                 C   s   |j |d}t|| d S rZ  )r  r,   r;   )r"   r\  r'   r_   rS   r#   r#   r$   test_dropna_dt_like1  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   ro   r+   rG   r  r[  )r   r   r   r   r  )r"   r   r#   r#   r$   test_dropna_invalid_how_raisesS  s    z0TestMixedIntIndex.test_dropna_invalid_how_raisesr'   z
2000-01-01z
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)r9  r&   r:  r;  r<  r7   r#   r#   r$   test_is_monotonic_naX  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   rd   rG   r  0)r   r    r   reprr&   )r"   Zframe_or_seriesr'   rS   r#   r#   r$   test_int_name_formatk  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   rc  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_raisesp  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   r1   r:   r,   rB   )r"   rA  rS   r_   r#   r#   r$   test_index_with_tuple_boolw  s    z,TestMixedIntIndex.test_index_with_tuple_bool)$r  r  r  r   r   r   r  r%   r'   r  r  r  r  r  r  r  r  r  rP   r1   rj   r  r
   rQ   rJ  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, expectedro   r+   rG   Nr?   rd   r   r   r   r   ZL1ZL2r  c                 C   s   t ||}t|| d S r5   )r   r,   r;   )r"   rk   rS  r_   rS   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   ro   r   )closedr+   r   rG   Zneitherrp   ZbothrM   )rQ   ZIntervalr   r   rP   r,   r;   )r"   Z	intervalsrS   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   uint64rM   )
r1   Ziinfor  maxr   r    r&   r   r,   r;   )r"   rC   rS   r_   r#   r#   r$   test_ensure_index_uint64  s
    z'TestIndexUtils.test_ensure_index_uint64c                 C   s    t g }tg }t|| d S r5   )r   r   r,   r;   )r"   rS   r_   r#   r#   r$   test_get_combined_index  s    z&TestIndexUtils.test_get_combined_index)r  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~   r  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  ry   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   rM   testT)r?   Zfastpathro   r+   rG   r  r   rb   r   )
r   r   r   r   r1   r:   rP   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   ro   r+   rG   )rp   ro   )r   r,   r-   r.   shaper&   )rA  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   rp   r   rG   )r1   r   Zreshaper   r   r   r   r   rO   r  r   r  r   r  r	   r   r   r:   r'   )r   r=   rg   Zserr#   r#   r$   test_validate_1d_input  s     r  zklass, extra_kwargsrH   Yc                 C   sB   | t tddf|}| ttddf|}tj||dd d S )Ni  i  Tr   )
memoryviewr1   r   r    r   r,   r;   )rm   extra_kwargsrS   r_   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 )	Nro   r+   rG   rp   zsIn a future version of pandas all arguments of Index.set_names except for the argument 'names' will be keyword-onlyr   Zquarterrd   )r   r,   r-   r.   Z	set_namesr;   rA  r   rS   r_   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 )Nro   r+   rG   zYIn a future version of pandas all arguments of Index.drop_duplicates will be keyword-onlyr   last)r   r,   r-   r.   Zdrop_duplicatesr;   r  r#   r#   r$   )test_drop_duplicates_pos_args_deprecation4  s    
r  c               	   C   sB   t ddddg} tt |  }W 5 Q R X |dd iks>td S )Nro   r+   rG   r?   )r   r,   r-   DeprecationWarningZ_get_attributes_dictr&   )rA  attrsr#   r#   r$   #test_get_attributes_dict_deprecatedB  s    r  r  c                 C   sL   t tjg}tdg}| ||}t|| | || }t|| d S r  )r   r1   rj   r:   r,   rB   rA   )r  rA  r_   rS   r#   r#   r$   test_nan_comparison_same_objectJ  s    
r  )@collectionsr   r   ior   rF  operatorr   Znumpyr1   r   Zpandas.compatr   Zpandas.errorsr   Zpandas.util._test_decoratorsr   ZpandasrQ   r   r	   r
   r   r   r   r   r   r   r   Zpandas._testingZ_testingr,   Zpandas.core.apir   r   r   r   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  r#   r#   r#   r$   <module>   s   0         ' 84





