
    o[weE                     R   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c mZ d dlmZmZmZ d dlZd dlmZmZmZmZmZmZmZm Z m!Z!m"Z" d dl#m$Z% d d	l&m'Z'm(Z(m)Z)m*Z*m+Z+  G d
 d          Z, G d d          Z- G d d          Z.e
j/        0                    dg d          d             Z1e
j/        0                    d e%j2                              d             Z3d Z4d Z5e
j/        0                    dde	j6        e	j7        e	j8        g          d             Z9e
j/        0                    de'i ggd e%j:        D             ei ge i geddig          d             Z;e
j/        0                    dej<        ej=        g          d             Z>dS )     )defaultdict)datetime)StringION)IS64)InvalidIndexError)is_any_real_numeric_dtypeis_numeric_dtypeis_object_dtype)
CategoricalIndex	DataFrameDatetimeIndexIntervalIndexPeriodIndex
RangeIndexSeriesTimedeltaIndex
date_rangeperiod_range)Index
MultiIndex_get_combined_indexensure_indexensure_index_from_sequencesc                      e Zd Zej        defd            Zd Zej        	                    ddgd          d             Z
d	 Zej        	                    dd
gd          d             Zej        	                    dd
gd          d             Zej        	                    dddg          ej        	                    d eddddd           eddd           ej        ddd           eddd          g          d                         Zej        	                    d edddd          df ej        ddd          df eddd          dfg          d             Zd Zd Zd Zej        	                    deej        ej        fed ej        fg          d!             Zej        	                    d"g d#d$fd%ej        d&d'gd(fd)d*d+ej        gd,fg          d-             Zej        	                    d.d/d0g          ej        	                    d1eeg          d2                         Zej        	                    d.d/d0g          ej        	                    d1eeg          d3                         Z ej        	                    d4g  e!g           d5 d6D             g          ej        	                    d1ee"eeg          d7                         Z#ej        	                    d8 e$g d9          e$f e$ e!g           d9          e$f e$d: d6D             d9          e$f e%d;<          e%f e&d;d=gd>d?ggg g g@          e&fg          dA             Z'ej        	                    dg dBd          dC             Z(ej        	                    dd
 ej)        dDej        *                    dEF          G          dHdIdJgd          dK             Z+ej        	                    dg dLd          dM             Z,dN Z-ej        	                    dO edPdQg           eg dR          g dSg          dT             Z.dU Z/dV Z0dW Z1ej        	                    dd
gd          dX             Z2dY Z3ej        	                    dg dZd          ej        	                    d[e4ej5        g          d\                         Z6ej        	                    dg dZd          d]             Z7d^ Z8d_ Z9d` Z:ej        	                    d.g da          db             Z;dc Z<ej        	                    ddde df g          dg             Z=ej        	                    dddh di g          ej        >                    dj          dk                         Z?ej        	                    dd e@g dlg dmn          dodpdqdmg          dr             ZAds ZBdt ZCej        	                    dudvdwg          dx             ZDej        	                    dyg dzdg          d{             ZEej        	                    dyg d|dg          d}             ZFd~ ZGd ZHej        	                    dg dg dSg          d             ZIej        	                    dddg          d             ZJej        	                    dg dd          d             ZKej        	                    dg dd          ej        	                    ddodgddgg          d                         ZLej        	                    dg dd          d             ZMd ZNd ZOej        	                    dd eg d          fg d ed;d=g          fg          d             ZPej        	                    d/g dg dg dg          ej        	                    dddPgdPdgg          d                         ZQej        >                    dj          d             ZRej        	                    d.g d          d             ZSej        	                    d/g dh dg          ej        	                    d eg d           ejT        g d          f eg            ejT        g eU          fg          d                         ZVd ZWd ZXej        	                    dddg          ej        	                    d eg d           eg dej                  g          d                         ZYd ZZej        	                    ddddej        g          d             Z[ej        	                    dJg  e@e\           ejT        g           g          d             Z] e^j_        d          d             Z`ej        	                    d/g dg dg dg d eddd          g          d             Zaej        	                    dd
gd          ej        	                    dddg          d                         Zbd Zcej        	                    dg dd          d             Zdej        	                    dg d¢          dÄ             Zeej        	                    d e efdĦ                     egjh        dŦ           e&ji        ddg           eddd)ʦ          g          d˄             Zjej        	                    dd eg dSddgdgg          fd eg dSddgdgg          fd e&ji        dSddej        fdej        ej        fg          fg          dф             Zkd҄ Zldӄ Zmej        	                    d e endԦ                    df e efd                    dfg          dՄ             Zodք Zpdׄ Zqd؄ Zrdل Zsdڄ Ztej        	                    dddg          ej        	                    dg  ejT        g           g dݢg dޢ ejT        g dݢ           ejT        g dޢ           edd          ju         edd          v                                g          d                         Zwej        	                    dg  ejT        g            ejT        g ejx                  g          d             Zyej        	                    d eg           ejz        fg          d             Z{d Z|d Z}d Z~d Zej        	                    d e&ji        ddg           ejT        ddg          f e&ji        ddg           ejT        ddg          fg          d             Zd Zej        	                    d e&ji        g d           eg d          g          d             Zd Zej        	                    dej        ddgfej        ddgfg          d             Zd Zd Zd Zd Zd Zej        	                    dd;ej        ddddgfd=ej        ej        dddgfdej        ej        ej        d d gfg          d             Zej        	                    ddg dfd;g dfd=g dfg          d             ZdS (  	TestIndexreturnc                 :    t          t          d                    S )Nabcde)r   listselfs    >lib/python3.11/site-packages/pandas/tests/indexes/test_base.pysimple_indexzTestIndex.simple_index-   s    T']]###    c                 L    |}|d         }|                     |          du sJ d S )Nr   T)$_can_hold_identifiers_and_holds_name)r!   r#   indexkeys       r"   test_can_hold_identifiersz#TestIndex.test_can_hold_identifiers1   s5    Ah99#>>$FFFFFFr$   r'   r   T)indirectc                     t          j        t          d          5  |d d d f          d d d            d S # 1 swxY w Y   d S )NMulti-dimensional indexingmatch)pytestraises
ValueErrorr!   r'   s     r"   test_new_axiszTestIndex.test_new_axis6   s     ]:-IJJJ 	 	$'NN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	   6::c                 0    t          j        ||           d S N)tmassert_contains_allr2   s     r"   test_constructor_regularz"TestIndex.test_constructor_regular>   s    
ue,,,,,r$   stringc                     t          j        |          }t          |          }t          j        ||           t          j        ||           d S r6   )nparrayr   r7   r8   assert_index_equalr!   r'   arr	new_indexs       r"   test_constructor_castingz"TestIndex.test_constructor_castingA   sH     huoo#JJ	
sI...
eY/////r$   c                     t          j        |          }t          |dd          }t          |t                    sJ |j        dk    sJ t          j        ||j                   d|d<   |d         dk    sJ d S )NTnamecopyrD   SOMEBIGLONGSTRINGr   )r<   r=   r   
isinstancerD   r7   assert_numpy_array_equalvaluesr?   s       r"   test_constructor_copyzTestIndex.test_constructor_copyI   s    huoo#Dv666	)U+++++~''''
#C)9:::$A|2222222r$   cast_as_objFz2015-01-01 10:00D   z
US/EasternzGreen Eggs & Ham)freqperiodstzrD   )rO   rP   1 daysz
2015-01-01c                    |r(t          |                    t                              }nt          |          }t          j        ||           t          |t                    r{|j        |j        k    sJ |ri|t          j	        d          z  }t          |t                    }|j
        t          j        k    sJ t          |          t          |          k    sJ d S d S d S )N2   )nanosecondsdtype)r   astypeobjectr7   r>   rH   r   rQ   pd	TimedeltarW   r<   object_r   )r!   rL   r'   results       r"   "test_constructor_from_index_dtlikez,TestIndex.test_constructor_from_index_dtlikeS   s    "  	"5<<//00FF5\\F
fe,,,e]++ 		39(((( 3 "5555uF333|rz1111F||tE{{2222		3 		33 3 32r$   zindex,has_tz)rO   rP   rQ   c                     t          t          |                    }t          j        ||           |r|j        |j        k    sJ d S d S r6   )r   r   r7   r>   rQ   )r!   r'   has_tzr]   s       r"   #test_constructor_from_series_dtlikez-TestIndex.test_constructor_from_series_dtlikev   sW     ve}}%%
fe,,, 	)9((((	) 	)((r$   c                     g d}t          |d          }t          t          j        |                    }t          |d          }t	          j        ||           d S )Nz1-1-1990z2-1-1990z3-1-1990z4-1-1990z5-1-1990MSrO   )r   r   rZ   to_datetimer7   r>   )r!   dtsexpectedsr]   s        r"   !test_constructor_from_series_freqz+TestIndex.test_constructor_from_series_freq   sd     KJJ 40002>#&&''qt,,,
fh/////r$   c                    g d}t          |d          }t          t          j                            d                              d                    }||d<   t          |d         d          }|d         j        t          k    sJ d|_        t          j	        ||           t          |d          }t          j        |d         |           t          j        |d                   }|dk    sJ d S )Nrc   rd   re      )   rN   daterD   )r   r   r<   randomdefault_rngrW   rY   rD   r7   r>   r   assert_series_equalrZ   
infer_freq)r!   rg   rh   dfr]   rO   s         r"   'test_constructor_from_frame_series_freqz1TestIndex.test_constructor_from_frame_series_freq   s     KJJ 4000ry,,Q//66v>>??6
r&z555&z6))))
fh///#F+++
r&z8444 }RZ((t||||||r$   c                     t           j        g}t          |t           j                  }t          |d          }t	          j        ||           d S )NrV   float)r<   nanr   float64r7   r>   )r!   datarh   r]   s       r"   test_constructor_int_dtype_nanz(TestIndex.test_constructor_int_dtype_nan   sJ    xRZ000t7+++
fh/////r$   zklass,dtype,na_valzdatetime64[ns]c                     ||g} ||          }|j         |k    sJ t          |          }t          j        ||           t          t	          j        |                    }t          j        ||           d S r6   )rW   r   r7   r>   r<   r=   )r!   klassrW   na_valna_listrh   r]   s          r"   test_index_ctor_infer_nan_natz'TestIndex.test_index_ctor_infer_nan_nat   s|     6"5>>~&&&&w
fh///rx(())
fh/////r$   z
vals,dtype   rl   rN      rm   intg?g@      @rw   ABCobjc                     t          ||          }|                    |j        |          }t          j        ||           d S )Nro   )r   _simple_newrJ   r7   r>   )r!   valsrW   r'   r]   s        r"   test_constructor_simple_newz%TestIndex.test_constructor_simple_new   sF     d'''""5<77
fe,,,,,r$   attrrJ   asi8r}   c                    t          dd          }t          ||          }|                    |          }|j        }|d u}d}|dk    r8t	          |                              |          }	t          j        |	|           nl|t          u rAt          j	        t          d          5   |||           d d d            n# 1 swxY w Y   n" |||          }	t          j        |	|           |dk    r|rVt          j	        t          |          5  t	          |                              |           d d d            n# 1 swxY w Y   nZt	          |                              |          }	t          j        |	|           n" |||	          }	t          j        |	|           |dk    rEt	          t          |                                        |          }	t          j        |	|           ny|t          u rAt          j	        t          d          5   |||           d d d            n# 1 swxY w Y   n/ |t          |          |          }	t          j        |	|           |dk    r|ret          j	        t          |          5  t	          t          |                                        |           d d d            d S # 1 swxY w Y   d S t	          t          |                                        |          }	t          j        |	|           d S  |t          |          |	          }	t          j        |	|           d S )
N
2011-01-01rm   rP   z:Cannot use .astype to convert from timezone-naive dtype tor   zunexpected keywordr-   )rQ   rV   )r   getattrtz_localizerW   r   r7   r>   r   r/   r0   	TypeErrorrX   r   )
r!   tz_naive_fixturer   r}   r'   argrW   errmsgr]   s
             r"    test_constructor_dtypes_datetimez*TestIndex.test_constructor_dtypes_datetime   sJ    <333eT""!!"233 d*J6>>"3''334DEEF!&%0000e^^y0DEEE 0 0c.////0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 U3#3444F!&%0006>> 5]9C888 5 5!#&&--e4445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 's++22599%fe4444U3e,,,F!&%0006>>"499--99:JKKF!&%0000e^^y0DEEE 0 0c.////0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 U499)9:::F!&%0006>> 5]9C888 ; ;!$s)),,33E:::; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 'tCyy1188??%fe44444U499E222F!&%00000sH   &C  CC#E  EEH//H36H30K

KKc                 ,   t          j        dd          }|                    d           }|j        }t	          ||          } |||          }t          j        ||            |t          |          |          }t          j        ||           d S )NrR   rm   r   rV   )rZ   timedelta_range
_with_freqrW   r   r7   r>   r   )r!   r   r}   r'   rW   rJ   r]   s          r"   !test_constructor_dtypes_timedeltaz+TestIndex.test_constructor_dtypes_timedelta  s     "8Q777  &&%%vU+++
fe,,,tF||5111
fe,,,,,r$   valuec              #      K   | ]}|V  d S r6    .0_s     r"   	<genexpr>zTestIndex.<genexpr>  s      __Aa______r$   r   c                 b     ||          }t          ||          sJ t          |          rJ d S r6   rH   len)r!   r   r}   emptys       r"   test_constructor_emptyz TestIndex.test_constructor_empty  s?     e%'''''u::r$   zempty,klassre   c              #      K   | ]}|V  d S r6   r   r   s     r"   r   zTestIndex.<genexpr>.  s      !r$   r   )steprl   bluered)levelscodesc                 L    t          ||          sJ t          |          rJ d S r6   r   )r!   r   r}   s      r"   test_constructor_empty_specialz(TestIndex.test_constructor_empty_special)  s2     %'''''u::r$   )r   ry   float32int64int32periodrangerepeats	timedeltatuplesuint64uint32c                 0    |                     d           d S )Ni8)viewr2   s     r"   test_view_with_argszTestIndex.test_view_with_args7  s    & 	

4r$   categoricalzgh-25464)reason)marksbool-object
bool-dtyper   c                 V   |j         t          k    rMd}t          j        t          |          5  |                    d           d d d            d S # 1 swxY w Y   d S d}t          j        t          |          5  |                    d           d d d            d S # 1 swxY w Y   d S )NzWhen changing to a larger dtyper-   r   z(Cannot change data-type for object array)rW   boolr/   r0   r1   r   r   r!   r'   r   s      r"   'test_view_with_args_object_array_raisesz1TestIndex.test_view_with_args_object_array_raisesL  s3    ;$3Cz555 ! !

4   ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! =Cy444 ! !

4   ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !s#   AAA;BB"%B")r   r   r   c                     |                     d          }|                    d           d|_        |                     d          }|j        dk    sJ d S )Nr   rm   foobar)rX   get_locrD   )r!   r'   casteds      r"   test_astypezTestIndex.test_astypea  s\     d## 	q 
d##{h&&&&&&r$   c                 p    t          g d                              t          g d                    sJ d S Nabcr   equalsr    s    r"   test_equals_objectzTestIndex.test_equals_objectq  s:    ___%%,,U???-C-CDDDDDDDr$   compr   r   )r   r   dr   c                 R    t          g d                              |          rJ d S r   r   )r!   r   s     r"   test_not_equals_objectz TestIndex.test_not_equals_objectu  s0     ))006666666r$   c                    t          g d          }t          g d          }|                    |          sJ |                    d          }|                    |          sJ |                    |          rJ |                    d          }|                    |          sJ t          g d          }t          g dd          }|                    |          rJ d S )Nr   foo)r   r   r   r   )r   r   F)tupleize_cols)r   	identicalrenamer   )r!   i1i2i3i4s        r"   test_identicalzTestIndex.test_identical{  s    ???##???##||BYYuyy}}<<#####YYu||B77788777uMMM<<#######r$   c                    t          t          d                    }|                    |          sJ |                    |                                                                                                                                          sJ |                    t          t          d                              rJ |                    |                                          rJ |                    |                    d                    rJ |                    |d d                    rJ |                    t          j        t          d                              rJ |                    |                                          sJ |                                }d|_        |                    |          sJ |                    |          sJ |                    t          |j                            rJ t          j        t          dd                    }t          |d          }t          |d          }|                    |          rJ d S )N
   F)deepbobr      rF   )	r   r   is_r   rF   r<   r=   rD   rJ   )r!   indind2r@   ind1s        r"   test_is_zTestIndex.test_is_  s   E"IIwws||wwsxxzz((--//446677777775r++,,,,,77388::&&&&&773888//00000773qqq6??"""7728E"II..///// wwsxxzz"""""xxzz	wwt}}xx}}775,,-----huQ||$$Su%%%Su%%%88D>>!!!!!r$   c                    t          g d          }t          ddgt                    }d}t          j        t          |          5  |                    |d                    d d d            n# 1 swxY w Y   t          j        t          t          j        t          |                              5  |                    |           d d d            n# 1 swxY w Y   t          j        t          t          j        t          |                              5  |                    |           d d d            d S # 1 swxY w Y   d S )Nr   rl   rN   TFrV   z$Cannot compare dtypes int64 and boolr-   r   )
r   rY   r/   r0   r   asofr   reescapestr)r!   leftrightr   s       r"    test_asof_numeric_vs_bool_raisesz*TestIndex.test_asof_numeric_vs_bool_raises  s   YYYtUm62224]9C000 	  	 IIeAh	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  ],BIc%jj4I4IJJJ 	 	IIe	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ],BIc$ii4H4HIII 	 	JJt	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s6   A//A36A34CCCD>>EEc                 `   t          j        t          |          t                    }d|ddd<   ||         }t	          |          D ] \  }}|                    |          |k    sJ !|t          |                   }t	          |          D ] \  }}|                    |          |k    sJ !d S )NrV   Frm      rl   )r<   onesr   r   	enumerater   r   )r!   r'   
bool_index	sub_indexivals         r"   test_booleanindexzTestIndex.test_booleanindex  s    WSZZt444
"
1R6*%		** 	/ 	/FAs$$S))Q.....$z**+		** 	/ 	/FAs$$S))Q.....	/ 	/r$   c                 j    |}|g d         }|D ]#}|||                     |                   k    sJ $d S )Nr   )r   )r!   r#   r'   slr  s        r"   
test_fancyzTestIndex.test_fancy  sQ    999 	* 	*A2::a==))))))	* 	*r$   )r:   r   r   r   r   ry   r   rW   c                     t          j        g |          } t          |          g |j                  }|g                              |          sJ ||                             |          sJ d S NrV   )r<   r=   typerW   r   )r!   r'   rW   	empty_arrempty_indexs        r"   test_empty_fancyzTestIndex.test_empty_fancy  sw     HRu---	!d5kk"EK888Ry"";/////Y))+6666666r$   c                 :   t          j        g t           j                  } t          |          g |j                  }|g                              |          sJ d}t          j        t          |          5  ||          d d d            d S # 1 swxY w Y   d S )NrV   z=arrays used as indices must be of integer \(or boolean\) typer-   )	r<   r=   ry   r
  rW   r   r/   r0   
IndexError)r!   r'   
empty_farrr  r   s        r"   test_empty_fancy_raisesz!TestIndex.test_empty_fancy_raises  s     Xb
333
!d5kk"EK888Ry"";/////N]:S111 	 	*	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   :	BBBc                    |}t          dd          }|                    |          }|                    |          }t          j        ||                    d                    }t          j        ||          sJ t          j        ||          sJ t          j        ||           t          j        ||           t          j        ||           d S )Nz
2019-01-01r   r   O)r   unionr<   appendrX   r7   equalContentsr8   )r!   r#   r'   
date_index	first_cat
second_catappendeds          r"   test_union_dt_as_objzTestIndex.test_union_dt_as_obj  s    b999
KK
++	[[''
9UJ$5$5c$:$:;;	844444
E22222
ui000
uj111
z955555r$   c                 l   t          j        d          }t          j        d                              d           }t          d |D                       }t          j        ||           |                    d           }t          j        d |D                       }t          j        ||           d S )NrN   c                     | fS r6   r   xs    r"   <lambda>z0TestIndex.test_map_with_tuples.<locals>.<lambda>  s    1$ r$   c                     g | ]}|fS r   r   r   r  s     r"   
<listcomp>z2TestIndex.test_map_with_tuples.<locals>.<listcomp>  s    ...11$...r$   c                     | | dk    fS Nr   r   r  s    r"   r   z0TestIndex.test_map_with_tuples.<locals>.<lambda>   s    aa[ r$   c                     g | ]
}||d k    fS )r   r   r"  s     r"   r#  z2TestIndex.test_map_with_tuples.<locals>.<listcomp>  s     *F*F*F1AqAv;*F*F*Fr$   )r7   makeIntIndexmapr   r>   r   from_tuplesr!   r'   r]   rh   s       r"   test_map_with_tupleszTestIndex.test_map_with_tuples  s    
 ""##''77.....//
fh/// 0011)*F*F*F*F*FGG
fh/////r$   c                     g d}t          j        t          |g d                    }|                    d           }t	          j        |t          |                     d S )Nr   barbazr   c                     | d         S Nr   r   r  s    r"   r   z3TestIndex.test_map_with_tuples_mi.<locals>.<lambda>	  s
    !A$ r$   )r   r)  zipr(  r7   r>   r   )r!   first_levelmulti_indexreduced_indexs       r"   test_map_with_tuples_miz!TestIndex.test_map_with_tuples_mi  sa     ,++ ,Siii-H-HII#77
mU;-?-?@@@@@r$   )makeDateIndexmakePeriodIndexmakeTimedeltaIndexc                      t          t          |          d          }t          dgdz            }|                    d           }t          j        ||           d S )Nr   r   c                     dS r%  r   r  s    r"   r   zATestIndex.test_map_tseries_indices_return_index.<locals>.<lambda>  s    Q r$   )r   r7   r   r(  r>   )r!   r   r'   rh   r]   s        r"   %test_map_tseries_indices_return_indexz/TestIndex.test_map_tseries_indices_return_index  sZ     "D!!"%%!r??;;''
h/////r$   c                     t          j        ddd          }|                    d           }t          t	          j        dd          d          }t          j        ||d	
           d S )N   hhourly)rO   rD   c                     | j         S r6   )hourr  s    r"   r   zGTestIndex.test_map_tseries_indices_accsr_return_index.<locals>.<lambda>  s    !& r$   r   rV   ro   Texact)r7   r7  r(  r   r<   aranger>   )r!   r  r]   rh   s       r"   +test_map_tseries_indices_accsr_return_indexz5TestIndex.test_map_tseries_indices_accsr_return_index  sm    %bsBBB
 0 0112W555HEEE
fhd;;;;;;r$   mapperc                 6    d t          | |          D             S )Nc                     i | ]\  }}||	S r   r   r   er  s      r"   
<dictcomp>z&TestIndex.<lambda>.<locals>.<dictcomp>      "G"G"GDAq1a"G"G"Gr$   r2  rJ   r'   s     r"   r   zTestIndex.<lambda>      "G"GC4F4F"G"G"G r$   c                 "    t          | |          S r6   r   rO  s     r"   r   zTestIndex.<lambda>      &"7"7 r$   c                     t          g d          }t          j        d          }|                     ||j        |                    }t          j        ||           d S )Nr-  rN   )r   r7   r'  r(  rJ   r>   )r!   rG  rh   r'   r]   s        r"   test_map_dictlike_simplez"TestIndex.test_map_dictlike_simple  s_     ...//""66(/599::
fh/////r$   c                 6    d t          | |          D             S )Nc                     i | ]\  }}||	S r   r   rJ  s      r"   rL  z&TestIndex.<lambda>.<locals>.<dictcomp>,  rM  r$   rN  rO  s     r"   r   zTestIndex.<lambda>,  rP  r$   c                 "    t          | |          S r6   rR  rO  s     r"   r   zTestIndex.<lambda>-  rS  r$   z3ignore:PeriodDtype\[B\] is deprecated:FutureWarningc                 ~   t          |t                    rt          j        d           n|j        st          j        d           t          j        t          |          ddt
          j                  }|j	        rt          g           }n}t          |j                  r|                    ||j                  }nLt          |          t          u r'|j        t          k    rt          ||j                  }nt          |          }|                     |||                    }t#          j        ||           d S )NzTested in test_categoricalzCannot map duplicated indexr   rV   )rH   r   r/   skip	is_uniquer<   rE  r   r   r   r   r	   rW   _constructorr
  rY   r(  r7   r>   )r!   r'   rG  requestrngrh   r]   s          r"   test_map_dictlikezTestIndex.test_map_dictlike)  s    e-.. 	7K45555 	7K5666iE

Ar:::; 		"RyyHHek** 	"))#U[)AAHH%[[E!!ekV&;&;S444HHSzzH66(E2233
fh/////r$   )r          @r/  )r   rl   rZ  r'   r   ra  r/  c                     t          dt          j        dg          }t          g d                              |          }t	          j        ||           d S )Nra  r   )rl   r   r   r   r<   rx   r(  r7   r>   )r!   rG  rh   r]   s       r"   )test_map_with_non_function_missing_valuesz3TestIndex.test_map_with_non_function_missing_valuesH  sR     #rvu-..yyy!!%%f--
h/////r$   c                     t          dt          j        dt          j        dg          }|                    d d          }|dz  }t	          j        ||           d S )Ng      ?rN   rm   c                     | dz  S )Nrl   r   r  s    r"   r   z1TestIndex.test_map_na_exclusion.<locals>.<lambda>V  s
    QU r$   ignore)	na_actionrl   rd  r*  s       r"   test_map_na_exclusionzTestIndex.test_map_na_exclusionS  sW    sBFArvq122??h??19
fh/////r$   c                     t          g d          }t          d           }d|d<   |                    |          }t          g d          }t          j        ||           d S )Nr   c                      dS )Nblankr   r   r$   r"   r   z0TestIndex.test_map_defaultdict.<locals>.<lambda>\  s    7 r$   stuffr   )rn  rm  rm  )r   r   r(  r7   r>   )r!   r'   default_dictr]   rh   s        r"   test_map_defaultdictzTestIndex.test_map_defaultdictZ  si    iii  "??33!Q<((44455
fh/////r$   zname,expected)r   r   )r.  Nc                     t          g d          }t          g d|          }d}t          j        t          |          5  |                    |          }d d d            n# 1 swxY w Y   |j        |k    sJ d S )Nr   ro   r   zDThe behavior of array concatenation with empty entries is deprecatedr-   )r   r7   assert_produces_warningFutureWarningr  rD   )r!   rD   rh   r   r   r   r]   s          r"   test_append_empty_preserve_namez)TestIndex.test_append_empty_preserve_nameb  s    Re$$$iiid+++T'SAAA 	( 	([[''F	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	({h&&&&&&s   A$$A(+A(zindex, expected))r:   F)r   Fr   Fr   F)r   T)r   T)r   T)r   Tr   F)ry   T)r   Tc                 ,    t          |          |u sJ d S r6   )r   r!   r'   rh   s      r"   test_is_numericzTestIndex.test_is_numericl  s#    $ )//8;;;;;;r$   ))r:   T)r   Tru  rv  )r   F)r   F)r   F)r   Frw  )ry   F)r   Fc                 ,    t          |          |u sJ d S r6   )r
   ry  s      r"   test_is_objectzTestIndex.test_is_object  s#    $ u%%111111r$   c                 .    |                                  d S r6   )_summaryr2   s     r"   test_summaryzTestIndex.test_summary  s    r$   c                 6   t          j                    }t          |                              d          sBt	          |g          }|                                }t          |d                   g}||k    sJ t	          g                                            d S )N000r   )r   nowr   endswithr   format)r!   r  r'   	formattedrh   s        r"   test_format_bugzTestIndex.test_format_bug  s    
 lnn3xx  '' 	)3%LLEIE!HH((((b		r$   r   )r   y       @      @      @c                    t          |          }|                    |           t          |t                    }|                                }t          |t                    rdnt          |          }t          |d                   t          |d                   t          |d                   |g}||k    sJ |d         |u sJ d S )NrV   NaNr   r   rl   rN   )r   r  r   rY   r  rH   rw   r   )r!   r   nulls_fixturer'   r  	null_reprrh   s          r"   test_format_missingzTestIndex.test_format_missing  s     DzzM"""d&))) LLNN	'u==UEE3}CUCU	aMM3uQx==#eAh--KH$$$$Qx=((((((r$   opanyallc                    |} t          ||                      }| t          |j        |                      k    sJ  t          |                                |                      }t          |          t          |          k    sJ d S r6   )r   rJ   	to_seriesr   )r!   r  r#   r'   r   r   s         r"   test_logical_compatzTestIndex.test_logical_compat  s    !wub!!##0wu|R00222222.))2..00 DzzT%[[((((((r$   )r:   r   r   ry   r   c                    t          |          }|t          t          dd                             }|                    |          }|t          t          d                    t          t          d|                    z            }t	          j        ||           |                    |d                   }|dd          }t	          j        ||           d S )Nrm   r   r   r   )r   r   r   dropr7   r>   )r!   r'   nr  droppedrh   s         r"   test_drop_by_str_labelz TestIndex.test_drop_by_str_label  s     JJT%2,,''(**T""eAhh$uR||*<*<<=
gx000**U1X&&9
gx00000r$   keysr.  1c                     t          j        t          d          5  |                    |           d d d            d S # 1 swxY w Y   d S )N r-   )r/   r0   KeyErrorr  )r!   r'   r  s      r"   *test_drop_by_str_label_raises_missing_keysz4TestIndex.test_drop_by_str_label_raises_missing_keys  s    
 ]82... 	 	JJt	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   ?AAc                    t          |          }|t          t          dd                             }|                                dgz   }|                    |d          }|t          t          d                    t          t          d|                    z            }t          j        ||           |                    ddgd          }|t          t          |                             }t          j        ||           d S )Nrm   r   r   rh  errorsr.  )r   r   r   tolistr  r7   r>   )r!   r'   r  r  mixedr  rh   s          r"   $test_drop_by_str_label_errors_ignorez.TestIndex.test_drop_by_str_label_errors_ignore  s     JJT%2,,''('**U8*44eAhh$uR||*<*<<=
gx000**eU^H*==eAhh(
gx00000r$   c                     t          g d          }|                    d          }t          ddg          }t          j        ||           d S )Nr   r   rl   rN   r   r  r7   r>   )r!   r'   r  rh   s       r"   test_drop_by_numeric_label_locz(TestIndex.test_drop_by_numeric_label_loc  sJ    iii  **Q--!Q==
gx00000r$   c                     t          g d          }t          j        t          d          5  |                    ddg           d d d            d S # 1 swxY w Y   d S )Nr   r  r-   rN   r   )r   r/   r0   r  r  r2   s     r"   .test_drop_by_numeric_label_raises_missing_keysz8TestIndex.test_drop_by_numeric_label_raises_missing_keys  s    iii  ]82... 	 	JJ1v	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AAAzkey,expectedr   r   )rN   r   rm   c                     t          g d          }|                    |d          }t          j        ||           d S )Nr   rh  r  r  )r!   r(   rh   r'   r  s        r"   (test_drop_by_numeric_label_errors_ignorez2TestIndex.test_drop_by_numeric_label_errors_ignore  sC     iii  **S*22
gx00000r$   )r   r   r   r   )r   r  r   )r  r   r   to_dropr  c                    t          |          }t          dg          }|                    |          }t          j        ||           |                    |d                   }|d         |d         gfD ],}|                    |          }t          j        ||           -|                    |d                   }dt	          j        |d                                                    d}|d         |d         gfD ]J}t          j        t          |          5  |                    |           d d d            n# 1 swxY w Y   Kd S )Nr   r   r   z\"\[z\] not found in axis\"r-   )
r   r  r7   r>   r   r   __repr__r/   r0   r  )	r!   rJ   r  r'   rh   r]   removeddrop_mer   s	            r"   test_drop_tuplezTestIndex.test_drop_tuple  s~    f#<<G$$
fh///**WQZ((qzGAJ</ 	4 	4G\\'**F!&(3333**WQZ((Nbi
 3 3 5 566NNNqzGAJ</ 	& 	&Gxs333 & &W%%%& & & & & & & & & & & & & & &	& 	&s   D>>E	E	c                    t          |          dk    st          |t                    rt          j        d           t          |t
                    rt          st          j        d           |                                                    d          }|dd          }|	                    |d                   }t          j        ||           d S )Nr   z,Test doesn't make sense for empty MultiIndexz=Cannot test IntervalIndex with int64 dtype on 32 bit platformrl   )r   rH   r   r/   r[  r   r   uniquerepeatr  r7   r>   r!   r'   rh   r]   s       r"   "test_drop_with_duplicates_in_indexz,TestIndex.test_drop_with_duplicates_in_index  s     u::??j
;;?KFGGGe]++ 	YD 	YKWXXX%%a((9E!H%%
fh/////r$   is_monotonic_increasingis_monotonic_decreasing!_is_strictly_monotonic_increasing!_is_strictly_monotonic_decreasingc                 p    t          dt          j                    dg          }t          ||          rJ d S )Nrm      )r   r   r  r   )r!   r   r'   s      r"   test_is_monotonic_incomparablez(TestIndex.test_is_monotonic_incomparable  s:     q(,..!,--5$'''''''r$   )r   r.  quux>   r.  r   r  index,expected)quxr/  r   r.  FFTTrV   c                 Z    |                     |          }t          j        ||           d S r6   )isinr7   rI   )r!   rJ   r'   rh   r]   s        r"   	test_isinzTestIndex.test_isin,  s.     F##
#FH55555r$   c                    t          |t                    rt          |t                    rvt          j        |          rbt          j        |          rNt	          j        t          d|g                              |g          t          j	        ddg                     d S ||u rNt	          j        t          d|g                              |g          t          j	        ddg                     d S t	          j        t          d|g                              |g          t          j	        ddg                     d S )Nr   FT)
rH   rw   mathisnanr7   rI   r   r  r<   r=   )r!   r  nulls_fixture2s      r"   test_isin_nan_common_objectz%TestIndex.test_isin_nan_common_object8  sT    }e,,	>511	 
=))	 
>**		 'sM*++00.1ABB%''    
 n,,'sM*++00.1ABB%''     'sM*++00.1ABB%((    r$   c                    |}|t           j        u s|t           j        u rdt          t	          |          j                   }t          j        t          |          5  t          d|g|           d d d            n# 1 swxY w Y   t          dt          j        g|          }|                    |g                                          rJ d S t          d|g|          }|                    t          j        g          }t          j        |t          j        ddg                     |                    t           j        g          }t          j        |t          j        ddg                     d S )Nz=float\(\) argument must be a string or a (real )?number, not r-         ?rV   FT)rZ   NaTNAreprr
  __name__r/   r0   r   r   r<   rx   r  r  r7   rI   r=   )r!   r  float_numpy_dtyperW   r   idxress          r"   test_isin_nan_common_float64z&TestIndex.test_isin_nan_common_float64T  s   !BF""mru&<&<<D//899< <  y444 9 9sM*%88889 9 9 9 9 9 9 9 9 9 9 9 9 9 9 bfU333Cxx004466666FS-(666hhx  
#C5$-)@)@AAA hhx  
#C5%.)A)ABBBBBs   A>>BBlevelr   rZ  )r  ra  r   r  c                 (   |                                 dd          dgz   }t          j        g d          }t          j        ||                    ||                     d|_        t          j        ||                    |d                     d S )Nnonexistingr  r  r   )r  r<   r=   r7   rI   r  rD   )r!   r  r'   rJ   rh   s        r"   test_isin_level_kwargzTestIndex.test_isin_level_kwargm  s     $6866677
#Hejjuj.M.MNNN

#Hejjxj.P.PQQQQQr$   c                     d|j         |j         dz    fD ]L}t          j        t          d          5  |                    g |           d d d            n# 1 swxY w Y   Md S )Nr   r   zToo many levelsr-   r  )nlevelsr/   r0   r  r  )r!   r'   r  s      r"   &test_isin_level_kwarg_bad_level_raisesz0TestIndex.test_isin_level_kwarg_bad_level_raises~  s    %-5=1+<)=> 	, 	,Ez1BCCC , ,

2U
+++, , , , , , , , , , , , , , ,	, 	,s   AA	A	labelr  r   xyzzyc                 X   t          |t                    r.|                    ddg|j        dd          z             }d| d}n|                    d          }d| d}t	          j        t          |          5  |                    g |	           d d d            d S # 1 swxY w Y   d S )
Nr   r.  rl   z'Level z not found'zRequested level \(z$\) does not match index name \(foo\)r-   r  )rH   r   r   namesr/   r0   r  r  )r!   r  r'   r   s       r"   &test_isin_level_kwarg_bad_label_raisesz0TestIndex.test_isin_level_kwarg_bad_label_raises  s    eZ(( 	TLL%%+abb/!ABBE.E...CCLL''ESSSSC]83/// 	( 	(JJrJ'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(s   :BB#&B#c                     t          ddg          }t          j        ddg          }|                    |          }t	          j        ||           d S )Nr   r   F)r   r<   r=   r  r7   rI   )r!   r   r'   rh   r]   s        r"   test_isin_emptyzTestIndex.test_isin_empty  sR     sCj!!8UEN++E""
#Hf55555r$   pyarrowc                     t          ddgd          }|                    d g          }t          j        ddg          }t	          j        ||           d S )Nr   r   zstring[pyarrow_numpy]rV   F)r   r  r<   r=   r7   rI   r*  s       r"   test_isin_arrow_string_nullz%TestIndex.test_isin_arrow_string_null  sZ     sCj(?@@@TF##8UEN++
#FH55555r$   r   rl   rN   r   TTTT)r   r.  r/  r  z
2018-01-01c                     t          |          }||k    }t          j        g dt                    }t	          j        ||           d S )Nr  rV   )r   r<   r=   r   r7   rI   )r!   rJ   r'   r]   rh   s        r"   test_boolean_cmpzTestIndex.test_boolean_cmp  sL     f&8444DAAA
#FH55555r$   z
name,levelr1  r   c                     |                                 }|r||_        |                    |          }t          j        ||           d S r6   )rF   rD   get_level_valuesr7   r>   )r!   r'   rD   r  rh   r]   s         r"   test_get_level_valueszTestIndex.test_get_level_values  sL     ::<< 	! HM**511
fh/////r$   c                 `    t          ddgd          }|j        |dd          j        k    sJ d S )Nr   r   asdfro   r   r   rD   r2   s     r"   test_slice_keep_namezTestIndex.test_slice_keep_name  s;    sCjv...zU122Y^++++++r$   )r:   r   r   r   r   r   ry   r   c                 @    |                     ||          }||u sJ d S Nhow)join)r!   r'   	join_typejoineds       r"   test_join_selfzTestIndex.test_join_self  s*     Ey11r$   method)striprstriplstripc                     t          g d          }t          fd|j        D                       } t          |j                              }t	          j        ||           d S )N)z jackzjill z jesse frankc                 L    g | ] } t          t                    |          !S r   )r   r   )r   r  r  s     r"   r#  z0TestIndex.test_str_attribute.<locals>.<listcomp>  s.    HHHa.'#v..q11HHHr$   )r   rJ   r   r   r7   r>   )r!   r  r'   rh   r]   s    `   r"   test_str_attributezTestIndex.test_str_attribute  so     <<<==HHHH5<HHHII+F++--
fh/////r$   rm   r   )r   r  )r.  320002010)startendrO   c                     t          j        t          d          5  |j                            d           d d d            d S # 1 swxY w Y   d S )Nzonly use .str accessorr-   rl   )r/   r0   AttributeErrorr   r  r2   s     r"   test_str_attribute_raisesz#TestIndex.test_str_attribute_raises  s     ]>1IJJJ 	  	 IQ	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 s   AAAzexpand,expectedNr   rK  fc                     t          g d          }||j                            |          }n|j                                        }t          j        ||           d S )N)za b czd er  )expand)r   r   splitr7   r>   )r!   r  rh   r'   r]   s        r"   test_str_splitzTestIndex.test_str_split  s_     +++,,Y__F_33FFY__&&F
fh/////r$   c                     t          g d          }|j                            d          }t          j        g d          }t          j        ||           t          |t          j                  sJ d S )Na1a2b1b2r   )TTFF)	r   r   
startswithr<   r=   r7   rI   rH   ndarrayr*  s       r"   test_str_bool_returnzTestIndex.test_str_bool_return  sr    ...//%%c**866677
#FH555&"*-------r$   c                    t          g d          }t          t          d          |          }||j        j                            d                   }t          t          d          ddg          }t          j        ||           d S )Nr  r   rb  r   rl   r  r  )r   r   r   r'   r   r  r7   rr   )r!   r'   ri   r]   rh   s        r"   test_str_bool_series_indexingz'TestIndex.test_str_bool_series_indexing  s    ...//5885)))17;))#../%((4,777
vx00000r$   abcdc                 8    dt          |          v }||k    sJ d S )Nr   )dirr  s       r"   test_tab_completionzTestIndex.test_tab_completion  s+    
 #e**$!!!!!!r$   c                    t          g d          }|dd                             t          ddgt          j                            sJ |ddg                             t          ddgt          j                            sJ d S )N)r   rl   rN   r   r   r   r   rN   rl   rV   r   )r   r   r<   r\   r2   s     r"   !test_indexing_doesnt_change_classz+TestIndex.test_indexing_doesnt_change_class  s    ...//QqSz##E1a&
$C$C$CDDDDDaV}&&uaV2:'F'F'FGGGGGGGr$   c                 R   t          t          j                            d                              d                    }t          j        d          }t          j        t                    5  |	                    |d          }d d d            n# 1 swxY w Y   t          j        t                    5  |
                    t                                        |
                    t                              }d d d            n# 1 swxY w Y   t          j        ||           d S )Nrl      r   outerr  )r   r<   rp   rq   permutationr7   r7  rr  RuntimeWarningr  rX   rY   r  r>   )r!   
left_indexright_indexr]   rh   s        r"   test_outer_join_sortzTestIndex.test_outer_join_sort  s{   290033??CCDD
&r**'77 	? 	?__[g_>>F	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?
 '77 	S 	S"))&1177
8I8I&8Q8QRRH	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	fh/////s%   -BBB5ADDDc                 ^   t          t          d          d          }|                    t          j        g d                    }t          t          d          d          }t          j        ||           |                    t          j        g d          d          }t          dd	t          j        gd          }t          j        ||           |                    t          j        g d          d
d          }t          g dd          }t          j        ||           d S )NABCxxxro   )r   r   rZ  BACT
fill_valuer   r   F)
allow_fillr.  )r   r   r   )r   r   taker<   r=   r7   r>   rx   r*  s       r"   test_take_fill_valuezTestIndex.test_take_fill_value)  s   d5kk...BHZZZ0011e5111
fh/// BHZZZ00TBB#sBF+%888
fh/// BHZZZ00UtTTu555
fh/////r$   c                    t          t          d          d          }d}t          j        t          |          5  |                    t          j        g d          d           d d d            n# 1 swxY w Y   t          j        t          |          5  |                    t          j        g d	          d           d d d            d S # 1 swxY w Y   d S )
Nr*  r+  ro   zJWhen allow_fill=True and fill_value is not None, all indices must be >= -1r-   )r   r   r  Tr-  )r   r   )r   r   r/   r0   r1   r0  r<   r=   r   s      r"    test_take_fill_value_none_raisesz*TestIndex.test_take_fill_value_none_raises:  sQ   d5kk...( 	
 ]:S111 	> 	>JJrx


++J===	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>]:S111 	> 	>JJrx


++J===	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>s#   ,A44A8;A8,CCCc                     t          t          d          d          }t          j        t          d          5  |                    t          j        ddg                     d d d            d S # 1 swxY w Y   d S )Nr*  r+  ro   zout of boundsr-   r   r3  )r   r   r/   r0   r  r0  r<   r=   r2   s     r"   test_take_bad_bounds_raisesz%TestIndex.test_take_bad_bounds_raisesF  s    d5kk...]:_=== 	* 	*JJrxB(()))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*s   *A11A58A5rD   labelsr   r   r   )r   r   r   20130101r   c                     t          g d          }||_        |                    |          d         j        |k    sJ d S )N)r   r   rl   r   )r   rD   reindex)r!   rD   r7  r'   s       r"   8test_reindex_preserves_name_if_target_is_list_or_ndarrayzBTestIndex.test_reindex_preserves_name_if_target_is_list_or_ndarrayK  sG    " iii  
}}V$$Q',444444r$   c                     t          t          d                    }|                    |          d         j        j        t
          j        k    sJ d S Nabcr   )r   r   r;  rW   r
  r<   r\   )r!   r7  r'   s      r"   <test_reindex_preserves_type_if_target_is_empty_list_or_arrayzFTestIndex.test_reindex_preserves_type_if_target_is_empty_list_or_array`  sG     d5kk""}}V$$Q'-2bj@@@@@@r$   zlabels,dtypec                     t          t          d                    }|                    |          d         j        j        |k    sJ d S r>  )r   r   r;  rW   r
  )r!   r7  rW   r'   s       r"   :test_reindex_doesnt_preserve_type_if_target_is_empty_indexzDTestIndex.test_reindex_doesnt_preserve_type_if_target_is_empty_indexf  sE     d5kk""}}V$$Q'-2e;;;;;;r$   c                     |}t          t          d                    }t          g |          }|                    |          d         j        |k    sJ d S )Nr?  rV   r   )r   r   r;  rW   )r!   any_real_numpy_dtyperW   r'   r7  s        r"   Btest_reindex_doesnt_preserve_type_if_target_is_empty_index_numericzLTestIndex.test_reindex_doesnt_preserve_type_if_target_is_empty_index_numericq  sY     %d5kk""r'''}}V$$Q'-666666r$   c           	         t          t          d                    }|                    t          t          g t          j                  t          g t          j                  gg g g                    d         }|j        d         j        j	        t          j        k    sJ |j        d         j        j	        t          j        k    sJ d S )Nr?  r   r   )
r   r   r;  r   r<   r   ry   r   rW   r
  )r!   r'   r]   s      r"   -test_reindex_no_type_preserve_target_empty_miz7TestIndex.test_reindex_no_type_preserve_target_empty_miz  s    d5kk""b"(++U2rz-B-BCb"XNN
 

 }Q%*bh6666}Q%*bj888888r$   c                     t          g dd          }t          g dd          }t          g dd          }|                    |d          \  }}t          j        ||           d S )Nr   r  ro   r  r  )r   r;  r7   r>   )r!   r  idx2rh   r]   r   s         r"   test_reindex_ignoring_levelz%TestIndex.test_reindex_ignoring_level  sv    IIIC(((\\\,,,C000KKCK00	
fh/////r$   c                     t          t          d                    }|                    t          j        g d                    }t          ddg          t          g d          d}t          j        ||           d S )Nrm   )r   r   rl   rl   rl   r   r   )rl   rN   r   r   rl   )r   r   groupbyr<   r=   r7   assert_dict_equalr*  s       r"   test_groupbyzTestIndex.test_groupby  sn    eAhhrx8899aV}}yyy)9)9::
VX.....r$   zmi,expectedrL  r   rm   )r      c                     t          j        t          d          ddg          }|j        |k    }t	          j        ||           d S )Na,b,c
1,2,3
4,5,6r   r   	index_col)rZ   read_csvr   r'   r7   rI   )r!   mirh   rt   r]   s        r"   test_equals_op_multiindexz#TestIndex.test_equals_op_multiindex  sI     ["788QFKKKR
#FH55555r$   c                     t          j        t          d          ddg          }|j        |j        k    }t	          j        ddg          }t          j        ||           d S )NrS  r   r   rT  T)rZ   rV  r   r'   r<   r=   r7   rI   )r!   rt   r]   rh   s       r"   "test_equals_op_multiindex_identifyz,TestIndex.test_equals_op_multiindex_identify  s]    ["788QFKKKRX%8T4L))
#FH55555r$   rL  rP  )   	   r-  c                     t          j        t          d          ddg          }t          j        t
          d          5  |j        |k     d d d            d S # 1 swxY w Y   d S )NrS  r   r   rT  zLengths must matchr-   )rZ   rV  r   r/   r0   r1   r'   )r!   r'   rt   s      r"   +test_equals_op_mismatched_multiindex_raisesz5TestIndex.test_equals_op_mismatched_multiindex_raises  s     ["788QFKKK]:-ABBB 	 	H	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AA!Ac                     t          j        g d          }t          g d          }||k    }t          j        g d          }t          j        ||           d S )Nr[  r-  )FFF)r   r)  r   r<   r=   r7   rI   )r!   rW  r'   r]   rh   s        r"   &test_equals_op_index_vs_mi_same_lengthz0TestIndex.test_equals_op_index_vs_mi_same_length  se    #$<$<$<==+++,,u811122
#FH55555r$   zdt_conv, arg
2000-01-01
2000-01-02z01:02:03z01:02:04c                 ^    t          |d          }|j         ||          j        k    sJ d S )Nr  ro   r  )r!   dt_convr   r'   s       r"   !test_dt_conversion_preserves_namez+TestIndex.test_dt_conversion_preserves_name  s:     c(((zWWU^^0000000r$   c                     t          g d          }t          j        t          d          5  d|_        d d d            d S # 1 swxY w Y   d S )Nr   zCan't set attributer-   F)r   r/   r0   r	  r\  r2   s     r"   #test_cached_properties_not_settablez-TestIndex.test_cached_properties_not_settable  s    iii  ]>1FGGG 	$ 	$#EO	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$s   AA	Ac                 `   t          j        dd           ddlm} d}|                    |           t          j        d d          5   |d	          5  t          |j        	                    d
d                     d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )NIPythonz6.0.0)
minversionr   )provisionalcompleterz+import pandas as pd; idx = pd.Index([1, 2])F)raise_on_extra_warningsrh  zidx.r   )
r/   importorskipIPython.core.completerrl  run_cellr7   rr  r   	Completercompletions)r!   iprl  codes       r"   test_tab_complete_warningz#TestIndex.test_tab_complete_warning  sC   I'::::??????<
D 'eLLL 	: 	:%%h// : :R\--fa88999: : : : : : : : : : : : : : :	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:s6   
B#)B?B#B	B#B	B##B'*B'c                     t          |t                    r|                    d           d S dt          |          j         d}t          j        t          |          5  |                    d           d d d            d S # 1 swxY w Y   d S )Nr   'z$' object has no attribute 'contains'r-   )rH   r   containsr
  r  r/   r0   r	  r   s      r"   test_contains_method_removedz&TestIndex.test_contains_method_removed  s    e]++ 	"NN1Pd5kk*PPPC~S999 " "q!!!" " " " " " " " " " " " " " " " " "s    BB
Bc                 r   t          g d          }t          j        t          d          5  |                    d           d d d            n# 1 swxY w Y   t          j        t          d          5  |                    ddg           d d d            n# 1 swxY w Y   t          j        t          d          5  |                    dg           d d d            n# 1 swxY w Y   t          g d	          }|                    dg          }t          j        |d
         |           t          g d	          }|                    d          }t          j        |d
         |           t          g d          }|                    d          }t          j        |d
         |           d S )N)rm   r   rN   rl   r   z(ascending must be a single bool value orr-   True)	ascendingz3ascending must be a list of bool values of length 1Tzascending must be a bool valuer   r   F)r   r/   r0   	Exception	sortlevelr7   r>   r  s       r"   test_sortlevelzTestIndex.test_sortlevel  s^   ooo&&]9,VWWW 	. 	.OOfO---	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. ]R
 
 
 	4 	4 OOtTlO333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4
 ]9,LMMM 	0 	0OOvhO///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 ))D622
fQi222))400
fQi222))511
fQi22222s5   AAA6BB"BC%%C),C)c                     t          dt          j        g          }|                    d          d         }t          t          j        dg          }t	          j        ||           d S )Nr   first)na_positionr   )r   r<   rx   r~  r7   r>   r!   r  r]   rh   s       r"   test_sortlevel_na_positionz$TestIndex.test_sortlevel_na_position  sY    QK  733A6"&!%%
fh/////r$   zperiods, expected_results   r   c                     t          g d          }|                    |          }t          |          }t          j        ||           d S )N)r   r  r   (   rT   )r   diffr7   r>   )r!   rP   expected_resultsr  r]   rh   s         r"   test_index_diffzTestIndex.test_index_diff  sP     ((())'"")**
fh/////r$   zdecimals, expected_resultsr  ra  r   )g333333?gffffff@g      @)gGz?g@gGz@c                     t          g d          }|                    |          }t          |          }t          j        ||           d S )N)gX9v?g(\@gS@)r   roundr7   r>   )r!   decimalsr  r  r]   rh   s         r"   test_index_roundzTestIndex.test_index_round  sP     )))**8$$)**
fh/////r$   )r  
__module____qualname__r/   fixturer   r#   r)   markparametrizer3   r9   rB   rK   r   rZ   r   r   r^   ra   rj   ru   r{   r<   ry   rx   r   r  r   r   r   r   r   iterr   r   r   r   r   r   r   paramxfailr   r   r   r   r   r   r   r  r  r   bool_r  r  r  r+  r6  r<  rF  rU  filterwarningsr`  r   re  rj  rp  rt  rz  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r=   r   r  r  r  r  r  r  rY   r  td
skip_if_nor  r  r  r  r  r  r   r7   r7  r)  r
  r  r  r  r   r  r   r(  r1  r4  r6  rJ   r  r<  r   r@  
datetime64rB  rE  rG  rJ  rO  rX  rZ  r_  ra  rf   to_timedeltarf  rh  ru  ry  r  r  r  r  r   r$   r"   r   r   ,   s       ^$e $ $ $ ^$G G G
 [WzlTBB  CB- - - [Wxj4@@0 0 A@0 [Wxj4@@3 3 A@3 []T5M::[J"'   J)Q???Bxc1===LC;;;	
 3 3  ;: 3& [ 
-C|TTT  RsA>>>F\,S!<<<eD	

 
) )
 
)	0 	0 	0  ,0 0 0 [BJ',bf5	
 
0 
0 
0 [__e$263$g.3RV$e,	
 - - -
 [Vh%788[Wum&<==71 71 >= 9871r [Vh%788[Wun&=>>- - ?> 98- [Wr4488_____&EFF[		
    GF
 [[#&&&4[b,,,k:[Rs333[AZQ,ZA8RIII:V	
	 	 	 	 [	
 	
 	
 !   $ % $ [FLfk.?.?z.?.R.RSSS	
   
 
! !
 
! [###   
	' 	' 
	'E E E [Sz""EE///$:$:OOOL 7 7 7$ $ $$" " ".   [Wxj4@@/ / A@/* * * [NNN   
 [WsBHo667 7 76 7 [NNN   

 
 

6 6 60 0 0 A A A [JJJ 0 0 0< < < [GG77	
 0 0 0 [GG77	
  [ VWW0 0 XW 0. [	###:::	6	6	6Ecu8U8UV 0 0	 00 0 00 0 0 [_~}.MNN' ' ON' [	
 	
 	
    "< <# "< [	
 	
 	
    "2 2# "2     [V&:&:&:OOO%LMM) ) NM) [TE5>22) ) 32) [CCCd   
1 
1 
1 [CCCd    [VuensEl%CDD  ED  [CCCd   1 1 11 1 1  
 [!UU999--.EE1a&MM0JK 1 1 1 [			!7!7!79O9O9OP  [Y*c):S*<M(NOO& & PO	 
&& [ VWW	0 	0 XW	0 [	
 	
 	
 ( ( ( [X(>(>(>@V@V@V'WXX[U///00("(;U;U;U2V2VWU2YY40001	
 6 6  YX6  8C C C2 [Wq"g..[E...//E&&&bj999	
 R R  /.R, , ,
 [WsHgrv&FGG( ( HG( [Wr66+?+?+?"&NOO6 6 PO6 R]96 6 6 [LL   $$$(((J|#q999	
	 	6 6	 	6 [Wxj4@@[\Iz+BCC0 0 DC A@0, , , [		
 		
 		
       [X'D'D'DEE0 0 FE0 [E%%((OOBR  "J"L,#?@@Lv6<<<		
       [55///C:u=>>?EE???S#J>??@&
&$sC&83:OP 		
 0 0 0. . .1 1 1 [EE$$v,,//6uuQxx%8PQ " " "
H H H0 0 00 0 0"
> 
> 
>* * *
 [VdH%566[BHRLLOOOOBH___%%BH___%%Jz1---4Jz1---4466
	
 5 5  765 [XHBHRLL("(2RX:V:V:V'WXXA A YXA
 []2.	
 < < <
7 7 79 9 90 0 0/ / / [#Z#VV$455xrxt7M7MN#Z#VV$455xrxu7N7NO	
 6 6 66 6 6 ["J"#;#;#;<<E'''((	
   6 6 6 [^lL9:_z:67	
 1 1 1
$ $ $
: : :" " "3 3 320 0 0 [#RR()R,-R01	
 0 0 0 [$  """#	
 0 0 0 0 0r$   r   c                   2   e Zd Zej        defd            Zd Zd Zd Z	d Z
d Zd Zej                            d	d
dg          ej                            ddedg          ej                            dg dg dfg dg dfddej        dgg dfg dg dfdej        ddgg dfg          d                                     Zej                            d	d
dg          ej                            d eg d           eg d          f edddej        g           eg d          f eg d           eg d          f eej        d d!d"ej        g           eg d          f eg d#d$%           eg d#d$%          f eg d&d$%           eg d#d$%          fg          d'                         Z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j        d.g           ej        d.d/g           ej        g d0           ej        d1d.g          g          d2             Zd3 Zd4 Zej                            d5          d6             Z dS )7TestMixedIntIndexr   c                 $    t          g d          S )N)r   r   r   r   rl   r   r   r    s    r"   r#   zTestMixedIntIndex.simple_index)  s    ---...r$   c                     |}t          j        t          d          5  |                                 d d d            d S # 1 swxY w Y   d S Nz'>|<' not supportedr-   )r/   r0   r   argsortr!   r#   r'   s      r"   test_argsortzTestMixedIntIndex.test_argsort-  s    ]9,ABBB 	 	MMOOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	   A  AAc                     |}t          j        t          d          5  t          j        |           d d d            d S # 1 swxY w Y   d S r  )r/   r0   r   r<   r  r  s      r"   test_numpy_argsortz$TestMixedIntIndex.test_numpy_argsort2  s    ]9,ABBB 	 	Ju	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	r  c                 `   |} t          |          |dd          } t          |          |d          }||usJ t          j        ||           |j        dk    sJ |j        dk    sJ t	          d|          }t	          d|d d	                   }||z  }|j        j        dk    sJ d S )
NTmariorE   Fr   rl   rb  rN   rZ  )r
  r7   r>   rD   r   r'   )r!   r#   r'   r  seconds1s2s3s           r"   test_copy_namez TestMixedIntIndex.test_copy_name7  s     UE7;;;eU/// F""""
eV,,,zW$$$${g%%%%AU###AVCRC[)))"Wx}''''''r$   c                    t          ddgd          }|                                }t          j        ||           |                    d          }t          j        ||d           |j        dk    sJ |j        dk    sJ d S )Nr   rl   MyNamero   NewNameF)check_names)r   rF   r7   r>   rD   )r!   r'   index1index2s       r"   test_copy_name2z!TestMixedIntIndex.test_copy_name2M  s     q!f8,,,
eV,,,++
eV????zX%%%%{i''''''r$   c                     t          dt          j        ddgd          }t          dt          j        dgd          }|                                }t	          j        ||           d S )Nrl   r   my_indexro   )r   r<   rx   r  r7   r>   )r!   r  rh   r]   s       r"   test_unique_naz TestMixedIntIndex.test_unique_naZ  s_    Q1%J777!RVQj999
fh/////r$   c                     |}|                                 |j                                         k    sJ |                                |j                                        k    sJ d S r6   )r  rJ   r  r  s      r"   r  z%TestMixedIntIndex.test_logical_compat`  s[    yy{{el..000000yy{{el..00000000r$   r  r  r  rW   Ncategoryzvals,expectedr   r  r  ra  r   r8  r   r   r   c                     t          ||          }|                    |          }t          ||          }t          j        ||           d S )NrV   r  )r   dropnar7   r>   )r!   r  rW   r   rh   r'   r]   s          r"   test_dropnazTestMixedIntIndex.test_dropnae  sT     d%(((#&&///
fh/////r$   r  )r   
2011-01-02
2011-01-03r   r  r  )rR   2 days3 daysrR   r  r  )2012-022012-042012-05Mre   )r  r  r  r  c                 \    |                     |          }t          j        ||           d S r  )r  r7   r>   )r!   r  r'   rh   r]   s        r"   test_dropna_dt_likez%TestMixedIntIndex.test_dropna_dt_likex  s0    > #&&
fh/////r$   c                     d}t          j        t          |          5  t          g d                              d           d d d            d S # 1 swxY w Y   d S )Nzinvalid how option: xxxr-   r   r+  r  )r/   r0   r1   r   r  )r!   r   s     r"   test_dropna_invalid_how_raisesz0TestMixedIntIndex.test_dropna_invalid_how_raises  s    ']:S111 	/ 	/)))###...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/s   &AAAr'   r   rl   r   r   r  rb  )rb  r  rc  z1 dayc                 ^    |j         du sJ |j        du sJ |j        du sJ |j        du sJ d S NFr  r2   s     r"   test_is_monotonic_naz&TestMixedIntIndex.test_is_monotonic_na  sZ     ,5555,55556%????6%??????r$   c                     t          g dd          } |t          t          d                    |          }dt          |          v sJ d S )Nr   r   ro   rN   rb  0)r   r   r   r  )r!   frame_or_seriesr'   r]   s       r"   test_int_name_formatz&TestMixedIntIndex.test_int_name_format  sU    oooA... eAhhu===d6ll""""""r$   c                     t          d t          d          D                       }d}t          j        t          |          5  t          |           d d d            d S # 1 swxY w Y   d S )Nc                 ,    g | ]}t          |          S r   )r   )r   r  s     r"   r#  z>TestMixedIntIndex.test_str_to_bytes_raises.<locals>.<listcomp>  s    111!s1vv111r$   r   z2^'str' object cannot be interpreted as an integer$r-   )r   r   r/   r0   r   bytesr   s      r"   test_str_to_bytes_raisesz*TestMixedIntIndex.test_str_to_bytes_raises  s    11uRyy11122B]9C000 	 	%LLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   A!!A%(A%z2ignore:elementwise comparison failed:FutureWarningc                     t          g d          }|dk    }t          j        g d          }t          j        ||           d S )N)r   )r   r   r   r   r  )FFT)r   r<   r=   r7   rI   r  s       r"   test_index_with_tuple_boolz,TestMixedIntIndex.test_index_with_tuple_bool  sQ    
 88899
"800011
#FH55555r$   )!r  r  r  r/   r  r   r#   r  r  r  r  r  r  r  r  rY   r<   rx   r  r   rZ   r  r   r   r  r  rf   r  r  r  r  r  r  r   r$   r"   r  r  %  s8        ^/e / / / ^/  
  
( ( (,( ( (0 0 01 1 1
 [UUEN33[WtVZ&@AA[YY			"__ooo.3$ooo6__ooo.263$ooo6	
	 	0 0	 	 BA 430 [UUEN33[ HHHIIHHHII
 |\<PQQHHHII
 ===>>===>>
 (HbfMNN===>>
 ===CHHH===CHHH
 DDD3OOO===CHHH+	
 :0 0;  43<0/ / /
 [E26(OOE261+E1a.!!E3RV$%%BNE7##BNE<011BN>>>??BOWe,--		
 @ @ @# # #
   [ TUU6 6 VU6 6 6r$   r  c                   >   e Zd Zej                            dg dgd eg d          fg dgdg e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          fg          d             Zd Z	d Z
d ZdS )TestIndexUtilszdata, names, expectedr   NrD   ro   r   r   r   r   r   L1L2)r  c                 P    t          ||          }t          j        ||           d S r6   )r   r7   r>   )r!   rz   r  rh   r]   s        r"    test_ensure_index_from_sequencesz/TestIndexUtils.test_ensure_index_from_sequences  s,    $ -T599
fh/////r$   c                 .   t          j        ddd          t          j        ddd          t          j        ddd          t          j        dd	d
          g}t          |          }t          |t                    }t          j        ||           d S )Nr   r   r   )closedrl   r   rN   neitherr   bothrV   )rZ   Intervalr   r   rY   r7   r>   )r!   	intervalsr]   rh   s       r"   (test_ensure_index_mixed_closed_intervalsz7TestIndexUtils.test_ensure_index_mixed_closed_intervals  s     K1V,,,K1W---K1Y///K1V,,,	
	 i((&111
fh/////r$   c                     dt          j        t           j                  j        g}t	          |          }t          |          |k    sJ t          |d          }t          j        ||           d S )Nr   r   rV   )	r<   iinfor   maxr   r   r   r7   r>   )r!   rJ   r]   rh   s       r"   test_ensure_index_uint64z'TestIndexUtils.test_ensure_index_uint64  sl     RXbi((,-f%%F||v%%%%x000
fh/////r$   c                 l    t          g           }t          g           }t          j        ||           d S r6   )r   r   r7   r>   )r!   r]   rh   s      r"   test_get_combined_indexz&TestIndexUtils.test_get_combined_index  s3    $R((99
fh/////r$   )r  r  r  r/   r  r  r   r   r  r  r  r  r   r$   r"   r  r    sG       [ii[$iii 0 01ii[6(EE)))&$A$A$ABsc3Z(
SEC:.!Q!Q0@AA sc3Z(t
SEC:.!Q!Q0@tUUU	
 "0 0# "0
0 
0 
0
0 
0 
00 0 0 0 0r$   r  opname)eqneleltgegtaddraddsubrsubmulrmultruedivrtruedivfloordiv	rfloordivpowrpowmoddivmodc                 L    d|  d} t          ||           }|j        | k    sJ d S )N__)r   r  )r  r'   r  s      r"   test_generated_op_namesr    s9    4 &___FUF##F?f$$$$$$r$   index_makerc                     t          j        t          d          5   | d           d d d            d S # 1 swxY w Y   d S )Nzunexpected keyword argumentr-   r.  )r   )r/   r0   r   )r  s    r"   ,test_index_subclass_constructor_wrong_kwargsr    s     
y(E	F	F	F                   r4   c                     d} t          j        t          |           5  t          t	          j        ddgt                    dd           d d d            n# 1 swxY w Y   t          j        t          |           5  t          t	          j        g d	d
          dd           d d d            n# 1 swxY w Y   t          j        t          |           5  t          ddddd           d d d            n# 1 swxY w Y   t          j        t          |           5  t          g ddd           d d d            d S # 1 swxY w Y   d S )Nz[Uu]nexpected keyword argumentr-   r   r   rV   testT)rD   fastpathr   r   r   rm   rl   r   )	r/   r0   r   r   r<   r=   rY   r   r   )r   s    r"   test_deprecated_fastpathr  #  s|   
*C	y	,	,	, N NbhSz000vMMMMN N N N N N N N N N N N N N N 
y	,	,	, N Nbhyyy000vMMMMN N N N N N N N N N N N N N N 
y	,	,	, 8 81a$77778 8 8 8 8 8 8 8 8 8 8 8 8 8 8 
y	,	,	, F FvEEEEF F F F F F F F F F F F F F F F F FsG   .AAA>)B33B7:B7C::C>C> EE	Ec                      t          g d          } t          j        t          d          5  | d d d f          d d d            d S # 1 swxY w Y   d S )N)r   r   rl   rN   r,   r-   )r   r/   r0   r1   )r  s    r"   test_shape_of_invalid_indexr  2  s     

C	z)E	F	F	F  AAAtG                 s   AAArW   c                    d}t          j        d                              ddd          }t          j        t
          |          5  t          ||            d d d            n# 1 swxY w Y   t          |                    dd                    }t          j        t
          |          5  t          ||            d d d            n# 1 swxY w Y   t          dt          d                    }t          j        t
          |          5  t          j
        ddggdz  |           |_        d d d            d S # 1 swxY w Y   d S )	Nz Index data must be 1-dimensionalr\  rl   r-   rV   r   r   rN   )r<   rE  reshaper/   r0   r1   r   r   r   r   r=   r'   )rW   r   r@   rt   sers        r"   test_validate_1d_inputr  >  s    -C
)A,,

q!Q
'
'C	z	-	-	-    c                              
3;;q!$$	%	%B	z	-	-	-  b               E!HH

C	z	-	-	- 8 8Hq!fX\777	8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8s6   A%%A),A).CCC"D>>EEzklass, extra_kwargsc                     g | ]	fd i g
S )c                 &    t          |           S r	  r  )r  dtyps    r"   r   z<listcomp>.<lambda>U  s    U1D))) r$   r   )r   r  s    @r"   r#  r#  U  s(    	T	T	T4))))2
.	T	T	Tr$   rO   Yc                      | t          t          j        dd                    fi |} | t          t	          dd                    fi |}t          j        ||d           d S )Ni  i  TrC  )
memoryviewr<   rE  r   r   r7   r>   )r}   extra_kwargsr]   rh   s       r"   test_construct_from_memoryviewr  Q  sv     U:bid3344EEEEFuT%d++,,====H&($777777r$   r  c                    t          t          j        g          }t          j        dg          } | ||          }t	          j        ||            | ||                                          }t	          j        ||           d S r  )r   r<   rx   r=   r7   rI   rF   )r  r  rh   r]   s       r"   test_nan_comparison_same_objectr  b  sx     //Cx  HRS\\F111RSXXZZ  F11111r$   )?collectionsr   r   ior   r  operatorr   numpyr<   r/   pandas.compatr   pandas.errorsr   pandas.util._test_decoratorsutil_test_decoratorsr  pandas.core.dtypes.commonr   r	   r
   pandasrZ   r   r   r   r   r   r   r   r   r   r   pandas._testing_testingr7   pandas.core.indexes.apir   r   r   r   r   r   r  r  r  r  r  index_subclass_makers_generatorr  r  r  r   r   ry   r  ALL_REAL_NUMPY_DTYPESr  r  r  r  r   r$   r"   <module>r,     s   # # # # # #               				            + + + + + + ) ) ) ) ) ) ) ) )                                                       v0 v0 v0 v0 v0 v0 v0 v0r'a6 a6 a6 a6 a6 a6 a6 a6H10 10 10 10 10 10 10 10h    2% %3 2% (J(J(L(LMM  NMF F F	 	 	 429bj"IJJ8 8 KJ8$ 		T	T2;S	T	T	T 
 
	
 
vsm$	 	8 8	 	8 X[9::	2 	2 ;:	2 	2 	2r$   