U
    f/e6q                     @   sP  d dl Zd dlZd dlmZ d dlZd dlmZmZm	Z	m
Z
 d dlmZ d dlmZ ejdd Zejdd ZG d	d
 d
Zejdg g fdgedfddgg fddgg fdgg fejdddgf edddfejddddgf edddfgdd Zejdg edfdgg fgdd Zdd Zdd Zdd Zdd Zd d! Zd"d# Zd$d% Z d&d' Z!d(d) Z"d*d+ Z#d,d- Z$d.d/ Z%d0d1 Z&d2d3 Z'G d4d5 d5Z(d6d7 Z)d8d9 Z*d:d; Z+d<d= Z,d>d? Z-d@dA Z.ejdBdCddDdEdddFdDgdCddDdEddFggdGdH Z/dIdJ Z0dKdL Z1dMdN Z2dOdP Z3dQdR Z4dSdT Z5dUdV Z6dWdX Z7dS )Y    N)PerformanceWarning)	DataFrameIndex
MultiIndexSeries)IndexingErrorc                   C   s$   t ddddggddddggd	gd
S )zsingle level MultiIndexfoobarbazZquxr            first)levelscodesnames)r    r   r   M/tmp/pip-unpacked-wheel-tiezk1ph/pandas/tests/indexing/multiindex/test_loc.pysingle_level_multiindex   s
      r   c                  C   sT   ddgdddgg} ddddddgddddddgg}t | |d}ttjdd|dS )Nr   r   r   )r   r      index)r   r   nprandomrandn)r   r   r   r   r   r   %frame_random_data_integer_multi_index   s     r   c                   @   s@  e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zejdddgddgfdgg fddgg fgdd Zdd Zdd Zdd  Zd!d" Zd#d$ Zejd%eeeeejeefejd&eeeeejeefd'd( Zd)d* Zejd+d,d-gd.d/ Zejd0ed1d2fd3ej fgd4d5 Z!d1S )6TestMultiIndexLocc                 C   sV   |}d|j d< |j d dks t| }ttd|_d|j d< |j d dksRtd S )N   )r	   twoBr      )r   r   )locAssertionErrorcopylistrangecolumns)self multiindex_dataframe_random_dataframedfr   r   r   &test_loc_setitem_frame_with_multiindex"   s    

z8TestMultiIndexLoc.test_loc_setitem_frame_with_multiindexc              	   C   s   ddddddddddddd	d
d	d	d	dd}t |jddgd}d}tt" t|j| |jdd   W 5 Q R X |jdd}|d kst	|j| }t
jdgd d	gd gddgd}t ddddgi|d}t|| d S )Ni  iX     iM  i  )r   r   r   r      g      @      @  i  )amountcolyearr2   r3   )keys)r/   r0   r   T)Zinplacer   r   r1   r   )r   	set_indextmZassert_produces_warningr   assert_frame_equalr"   iloc
sort_indexr#   r   from_arrays)r(   datar+   keyZreturn_valueresr   expectedr   r   r   test_loc_getitem_general-   s    &
"z*TestMultiIndexLoc.test_loc_getitem_generalc              	   C   s`   t tjdddddgdddggdddgdddggd}tjtd	d
 |jd  W 5 Q R X d S Nr   r   r.   r      
      r'   r   z^2$matchr   r   r   r   pytestraisesKeyErrorr"   r(   r+   r   r   r   0test_loc_getitem_multiindex_missing_label_raisesF   s    zBTestMultiIndexLoc.test_loc_getitem_multiindex_missing_label_raisesc                 C   s:   |d }| |jdd }|jddg }t|| d S )NA1   3   )  r   rC   )rQ   r      )reindexr   r"   r7   assert_series_equal)r(   /multiindex_year_month_day_dataframe_random_dataserr?   resultr   r   r   /test_loc_getitem_list_of_tuples_with_multiindexQ   s    zATestMultiIndexLoc.test_loc_getitem_list_of_tuples_with_multiindexc                 C   s  t dddgdddgg}t|tdtjd}tddg}td	ddd
ddgt ddgdddggtjd}|j| }t|| |jddg }t|| tddgddgd}|j| }t|| tg tjd}tg t |j	g g gtjdtjd}|j| }t|| d S )Nr   r   r   rN   r    C	   r   r<   dtyper   r   r!   rB   r<   r   r\   r   )r<   r\   r   r   r\   r   r\   )
r   from_productr   r&   r   float64r"   r7   rT   r   )r(   r   xyr?   rW   y1emptyr   r   r   test_loc_getitem_seriesY   s.    


z)TestMultiIndexLoc.test_loc_getitem_seriesc                 C   s  t dddgdddgg}t|tdtjd}tddg}td	ddd
ddgt ddgdddggtjd}|j| }t	|| tg }tg t |j
g g gtjddd}|j| }t	|| td}td	ddgdddgtjd}|j| }t	|| d S )Nr   r   r   rN   r    rY   rZ   r[   r   r   r!   rB   r]   r^   ra   r_   )r   r`   r   r&   r   ra   arrayr"   r7   rT   r   int64)r(   r   rb   rc   r?   rW   re   Zscalarr   r   r   test_loc_getitem_arrayx   s,    




z(TestMultiIndexLoc.test_loc_getitem_arrayc                 C   s  t tjdddddgdddggdddgdddggd}|jd	d
g d	}|jd }t|| |jd d dgf jd	d
d}|jd d df }t|| |jdgdgf d	jd	d
d}|jd jd d df }t|| |jd	d
g }|jd }t|| d S )Nr   ijrN   r    XYrE   r   r   r   )axis)rj   rl   	r   r   r   r   r9   	droplevelr"   r7   r8   r(   r+   r?   rW   r   r   r   test_loc_multiindex_labels   s"    
"
z,TestMultiIndexLoc.test_loc_multiindex_labelsc                 C   sf   t tjdddddgdddggdddgdddggd}|jd	d
g d	}|jd }t|| d S )Nr   r   r.   r   rB   rC   rD   rE   r   r   ro   rq   r   r   r   test_loc_multiindex_ints   s    
z*TestMultiIndexLoc.test_loc_multiindex_intsc              	   C   s`   t tjdddddgdddggdddgdddggd}tjtd	d
 |jd  W 5 Q R X d S rA   rH   rL   r   r   r   (test_loc_multiindex_missing_label_raises   s    z:TestMultiIndexLoc.test_loc_multiindex_missing_label_raiseszkey, posr   r.   r   r   r   c              	   C   s`   t tjdddddgdddggdddgdddggd}tjtd	d
 |j|  W 5 Q R X d S )Nr   r   r.   r   rB   rC   rD   rE   znot in indexrF   rH   )r(   r=   posr+   r   r   r   &test_loc_multiindex_list_missing_label   s    z8TestMultiIndexLoc.test_loc_multiindex_list_missing_labelc              	   C   s   t tdtddgddgddggd}tjtd	d
 |jd  W 5 Q R X tjtdd
 |jd  W 5 Q R X tjtdd
 |jd  W 5 Q R X d S )NrB   abcdefr   z^\('a', 'b'\)$rF   rw   rx   z^\('a', 'd', 'g'\)$)rw   rz   gzToo many indexers)rw   rz   r~   rk   )	r   r&   r   r`   rI   rJ   rK   r"   r   )r(   sr   r   r   (test_loc_multiindex_too_many_dims_raises   s    z:TestMultiIndexLoc.test_loc_multiindex_too_many_dims_raisesc                 C   s   dd t dD }dd t dD }t||g}dtjdd d }t||d	}|| }t|| tt	d

ddtddddgdddggd}|jddgfd d f }|jddg }t|| d S )Nc                 S   s   g | ]}d t | qS )	Attributestr.0rj   r   r   r   
<listcomp>   s     zFTestMultiIndexLoc.test_loc_multiindex_indexer_none.<locals>.<listcomp>r   c                 S   s   g | ]}d t | qS )Valuer   r   r   r   r   r      s     r   g?rC   g      ?r'   rD   r   r   r.   r   )r&   r   r`   r   r   r   r   r7   r8   arangereshaper"   )r(   
attributesZattribute_valuesr   r+   rW   r?   r   r   r    test_loc_multiindex_indexer_none   s    z2TestMultiIndexLoc.test_loc_multiindex_indexer_nonec                 C   s
  t tjdddttddddgg}|jd d ddf }|jdd	ddf }t|| |jd d	ddf }t|| |jdd ddf }t|| t tjdddttddddgg}|j	d
dddddg }|jdd	dddf }t|| d S )N   rh   r\   r   rw   rx   ry   r   r.   r   r!   rB   rD   rR      r   )
r   r   r   r   r`   r&   r"   r7   rT   r9   )r(   r   r?   rW   r   r   r   test_loc_multiindex_incomplete   s$    z0TestMultiIndexLoc.test_loc_multiindex_incompletec                 C   s4   |}t tjt||d}|jD ]}||  q"d S )Nr   )r   r   r   r   lenvalues)r(   r   Zsingle_levelr   kr   r   r   test_get_loc_single_level  s    
z+TestMultiIndexLoc.test_get_loc_single_levelc                 C   s  t dddgddgg}ttjdd||}|jddd d f }|}t|| t dddgddgg}ttjdd||}|jddd d f }|j	d	d  }t|| |jdd d f }|j	d
d	 }ddg|_
t|| |jd d df }|d }t|| d S )Nr   r!   rB   rw   rx   rC         r   r   )r   r`   r   r   r   r   r"   r7   r8   r9   r   )r(   r   r+   rW   r?   r   r   r   test_loc_getitem_int_slice  s"    
z,TestMultiIndexLoc.test_loc_getitem_int_sliceindexer_type_1indexer_type_2c                    s   dd  dddg}dddg}t ||g}ttjt|d	d
|dgd}ddgddgf}||f}t fddt||D }	|j|	df }
t	ddddgdt |d}t
|
| d S )Nc                 S   s,   | t jkrt |S | tkr$t| S | |S N)r   ndarrayrg   slice)indexer_typer4   r   r   r   convert_nested_indexer?  s
    

zQTestMultiIndexLoc.test_loc_getitem_nested_indexer.<locals>.convert_nested_indexerrC   r   r   r   r   r   rh   r   Datar   r'   c                 3   s   | ]\}} ||V  qd S r   r   )r   r   r   r   r   r   	<genexpr>R  s   zDTestMultiIndexLoc.test_loc_getitem_nested_indexer.<locals>.<genexpr>r.   r   namer   )r   r`   r   r   r   r   tuplezipr"   r   r7   rT   )r(   r   r   rw   rx   r   r+   r4   typesindexerrW   r?   r   r   r   test_loc_getitem_nested_indexer4  s*    

  
  z1TestMultiIndexLoc.test_loc_getitem_nested_indexerc                 C   sH   t ddg}|ddg|d}d|jd< |ddg|d}t|| d S )Nrw   rN   rx   rN   r   r   r   r   rw   )r   from_tuplesr"   r7   Zassert_equal)r(   Zframe_or_seriesmiobjr?   r   r   r   )test_multiindex_loc_one_dimensional_tuple^  s
    
z;TestMultiIndexLoc.test_multiindex_loc_one_dimensional_tupler   r   rw   c                 C   sP   t ddg}tddg|d}d|j|d d f< tddg|d}t|| d S )Nr   r   r   r   r   r   r   r   r   r"   r7   r8   )r(   r   r   r   r?   r   r   r   -test_multiindex_one_dimensional_tuple_columnsf  s
    z?TestMultiIndexLoc.test_multiindex_one_dimensional_tuple_columnszindexer, exp_valueN      ?r   r   c                 C   sx   t ddg}tddgddgg|ddgd	}d
|j|ddgf< tddd
d
gdd||gg|ddddgd	}t|| d S )Nr   r   r.   r   r   r   r.   rw   rx   r   r   ry   rz   r   )r(   r   Z	exp_valuer   r+   r?   r   r   r   )test_multiindex_setitem_columns_enlargingo  s    
z;TestMultiIndexLoc.test_multiindex_setitem_columns_enlarging)"__name__
__module____qualname__r,   r@   rM   rX   rf   ri   rr   rs   rt   rI   markparametrizerv   r   r   r   r   r   r%   r   setr   r   r   r   r   r   r   r   nanr   r   r   r   r   r   !   sB   

,
  $
 r   zindexer, posrN   r   DEr   r   Zbahc              	   C   s   t jdddgdddggddgd	}ttjd
dd|d }|j| }|jdkr| g krtj	t
t| d |j|   W 5 Q R X n|j|  }t|| d S )NrN   r    rY   r   r	   r
   oner   r5   rZ   rh   r   r   r   rF   )r   r`   r   r   r   r:   r9   sizerI   rJ   rK   r   r"   r7   rT   )r   ru   idxr   r?   rW   r   r   r   7test_loc_getitem_duplicates_multiindex_missing_indexers  s     

r   columns_indexerc                 C   s~   t dddgddgf}ttjddtd|d}|jd	d
d}ttd|g d	 d}|j	d d | f }t
|| d S )Nr   r	   r
   alphabetar   r   r   r   r   )levelrn   )r   r`   r   r   r   r   r&   r:   rS   r"   r7   r8   )r   Zmulti_indexr+   r?   rW   r   r   r   4test_loc_getitem_duplicates_multiindex_empty_indexer  s    r   c                  C   sL   t tjtjgddggtddgddgd} | jd }tj}||ksHtd S )	Nmeanmedianfunctsr   )r   r   functionr   rE   )r   r   )r   r   r   r   r   r   r"   r#   r+   rW   r?   r   r   r   =test_loc_getitem_duplicates_multiindex_non_scalar_type_object  s    
r   c                  C   sd   t tdtdtjdtjddddg} | jd }| jdd d f }t|| d S )NrC   )rw   rx   ry   rz   rw   rx   )r   r   )	r   r   r   r   r   r6   r"   r7   rT   )r+   r?   rW   r   r   r   !test_loc_getitem_tuple_plus_slice  s    


r   c                 C   s8   | }|j d }|dd  }|jd|_t|| d S )Nr   r   )r"   r   rp   r7   r8   )r   r+   rW   r?   r   r   r   test_loc_getitem_int  s
    
r   c              	   C   s,   | }t jtdd |jd  W 5 Q R X d S )Nz^3$rF   r   )rI   rJ   rK   r"   )r   r+   r   r   r   %test_loc_getitem_int_raises_exception  s    r   c              	   C   sT   | }t jtdd |jd  W 5 Q R X d|jd< d}| jd }||ksPtd S )Nz^\('bar', 'three'\)$rF   ))r	   threer    r   )rI   rJ   rK   r"   r:   r#   )r)   r+   r?   rW   r   r   r    test_loc_getitem_lowerdim_corner  s    
r   c                  C   s   t dtdtdgdgd} d| d< | j| jd d df< tt	| d t	| j t tj
tdtd	d
dgd} |  }td| jd d df< td|jd d df< t| | d S )NstringZabcdZMain)Zanotherr   r   rw   labelsr.   )rN   1)rN   2)r    r   r    r   )r   r%   r   r`   r   r"   r7   Zassert_numpy_array_equalr   Zasarrayr   r&   r   r$   r   r9   r8   )r+   r?   r   r   r   $test_loc_setitem_single_column_slice  s"    r   c               
   C   s   ddt jfddt jfddt jfddt jfdddd	t jfdd
t jfg} tt dtddddgtj| dddgdd}|jd jd }tt dtt jgdddtddddgddd}t	|| d S )NzGood ThingsrY   Rz
Bad ThingsT)Okay ThingsNr    )r   r   r   r   r    r   )rB   r.   d1Zd2Zd3Zd4u1u2u3r5   rE   )r   r.   object)r\   r   r   r   )
r   r   r   Zonesr   r   r   r"   r7   r8   )Ztupsr+   rW   r?   r   r   r   test_loc_nan_multiindex  s*    






r   c                  C   sz   t jdddd} d}tj| |fdd}t|dd	}|jd
 }ttjgt	dtj
t ddfgddgdd}t|| d S )N2013Q1Z2013Q4Q)freq)W  i  i  )PeriodCVRr5   )	OMSZOMKZRESZ	DRIFT_INDZ
OEVRIG_INDZFIN_INDZVARE_UDZLOEN_UDZFIN_UDr   ))r   r   r   r   r   r   r   )r\   r   r   )pdZperiod_ranger   r`   r   r"   r   r   r   r   r   r   r7   rT   )rw   rj   r   r+   rW   r?   r   r   r   test_loc_period_string_indexing  s$    
 r   c                  C   s   t ddg} tj| | gddgd}tddgdd	gd
dgddgg|ddgd}|j| d |jddkfdf }tdgdtj	t 
dt 
dfgddgdd}t|| d S )Nz
2017-05-04z
2017-05-05ZIdx1ZIdx2r5   r   r   r   r.   r   r   r!   ZC1ZC2r<   r   r'   r   r   )r   Zto_datetimer   r`   r   r"   r   Zget_level_valuesr   r   	Timestampr7   rT   )Zdt_idxZm_idxr+   rW   r?   r   r   r   test_loc_datetime_mask_slicing1  s"      "r   c                  C   sP   t d} tdtjd| fgddgddd}|jd d | gf }t|| d S )N2000r   rw   rx   r5   ry   )r   r   )r   r   r   r   r   r"   r7   rT   )daterV   rW   r   r   r   &test_loc_datetime_series_tuple_slicingD  s    
r   c                  C   s   t ddgddgddgddggtjddd	d	gd
dgdddgd} tjdd	gd
dgd}| j|d d f }t ddgddgddggtjdd	d	gd
dgdddgd}t|| d S )Nrw   r   r   rx   ry   r   )r   r   )r   r   r   r   r   r   r5   authorZpricer   r   )r   r   r   r"   r7   r8   )r+   r   rW   r?   r   r   r   test_loc_with_mi_indexerP  s     
 r   c                  C   s   t jdddd} ttd| d}| }| |d< |jddd	}|jjd
ksNt|j	| d  |j
| d  }|jdg d }t|| |d }|jjd
kst|j
| d  }|jdg d }t|| d S )Nz
2016-01-01r   z
US/Pacific)periodstzr   r   r   T)append)Nr   )r   
date_ranger   r&   Zto_framer6   r   r   r#   get_locr"   r9   rp   r7   r8   rT   )ZdtirV   r+   df2rW   r?   Zser2r   r   r   test_loc_mi_with_level1_named_0c  s    r   c                 C   s|   | dddd}t j|dgd}|ddg }|jdtd	fd d f d
}|jd jtd	d d f }t|| d S )Nr   merger<   zquotes2.csvtime)Zparse_datesZtickerZAAPLz2016-05-25 13:30:00r   )	r   Zread_csvr6   r:   r"   r   rp   r7   r8   )datapathpathr+   r   r>   r?   r   r   r   test_getitem_str_slice{  s     r  c                  C   sx   t jddddgddd} ddd	d
g}ddddg}t| ||g}ttd|tjd}|j| d ddf }|dkstt	d S )Nz20181101 1100z20181101 1200z20181102 1300z20181102 1400datetimer    )r   r   rN   ZWrY   r   Fr.   r_   r   g        )
r   ZPeriodIndexr   r;   r   r&   r   ra   r"   r#   )piZlev2Zlev3r   rV   rW   r   r   r   !test_3levels_leading_period_index  s    
r	  c                   @   s$   e Zd Zdd Zdd Zdd ZdS )TestKeyErrorsWithMultiIndexc              	   C   sV   t tddddddgd}|ddg}tjtdd	 |jd
  W 5 Q R X d S )NrD   r.   r   rN   r    rY   r   r   rF   r   r   )	r   r   r   r   r6   rI   rJ   rK   r"   )r(   r+   r   r   r   r   !test_missing_keys_raises_keyerror  s     z=TestKeyErrorsWithMultiIndex.test_missing_keys_raises_keyerrorc              	   C   sD   t dtddggd d}tjtdd |jd  W 5 Q R X d S )	Nr   r   r   r   r   z\(0, 3\)rF   )r   r   )r   r   r`   rI   rJ   rK   r"   )r(   rV   r   r   r   !test_missing_key_raises_keyerror2  s    z=TestKeyErrorsWithMultiIndex.test_missing_key_raises_keyerror2c              	   C   s   t jtddddgtddddgtddddggdd	d
gd}ttjdd|d}d}tjt	|d" |j
ddtd fd d f  W 5 Q R X tjt	|d |jddtd f W 5 Q R X tjt	dd |j
dd d f  W 5 Q R X d S )Nrw   rx   r   r   3ry   rz   r   r   r   r5   r.   r   r   z'\('b', '1', slice\(None, None, None\)\)rF   z\('b', '1'\))rx   r   )r   r;   r   rg   r   r   ZrandrI   rJ   rK   r"   r   r   Zget_locs)r(   r   r+   msgr   r   r   test_missing_key_combination  s    & z8TestKeyErrorsWithMultiIndex.test_missing_key_combinationN)r   r   r   r  r  r  r   r   r   r   r
    s   r
  c                 C   s2   | }|d }|d }|j d d }t|| d S )NrN   )rQ   r   )r"   r7   rT   )rU   r+   rV   rW   r?   r   r   r   test_getitem_loc_commutability  s
    r  c                  C   s   t dddgddtjgdddgddd	g} | jdg }t d
dgitjdgdd	gdd}t|| | jd }t d
dgit	dgd	dd}t|| d S )Nr   r   r   rw   rz   r.   )r2   ind1ind2r  r  r2   )rw   r   r5   r   r   )
r   r   r   r6   r"   r   r   r7   r8   r   r   r   r   r   test_loc_with_nan  s     
r  c               	   C   sR   t ddddggddddgd	dddg} tjtd
d | jd  W 5 Q R X d S )Nr   r   r   r.   rw   rx   ry   rz   r   z\(2\.0, 2\.0, 3\.0\)rF   )       @r        @)r   r6   rI   rJ   rK   r"   r+   r   r   r   test_getitem_non_found_tuple  s
    r  c                  C   sR   t jddd} t| g}|dtddd ks4t| dtddd ksNtd S )Nz
2001-01-01d   )r   z2001-01r      )r   r   r   r;   r   r   r#   )r   r   r   r   r   test_get_loc_datetime_index  s    r  c                  C   s   t ddgddgg} tddgddgdd	gd
dgg| d}dddgf}tddgddgg|j|d d f< tddgddgdd	gd
dgg| d}t|| d S )Nrw   rx   r   r   r   r   r.   r   r   r!   rB   r   rZ   rC      rD   )r   r`   r   r   rg   r"   r7   r8   )r   r+   r   r?   r   r   r   ,test_loc_setitem_indexer_differently_ordered  s    $$$r  c                  C   s   t ddgddgddgddggd	d	d
d
gddddggd	d
gd} | jtd ddgfd d f }t ddgddgddgddggd	d
d	d
gddddggd	d
gd}t|| d S )Nr   r   r   r.   r   r   r!   rB   rw   rx   r   )r   r"   r   r7   r8   r   r   r   r   5test_loc_getitem_index_differently_ordered_slice_none  s    r  r   r   r!   r   rB   c                 C   s   t dgd tddddddd	d
gdgd}|jtd | fd d f }t dgd ddddddddgddddddddggdgd}t|| |j|jj| ddd d f }t|| d S )Nr   rB   r   r   )r   r!   r  )r   r   )r   r   )r   rB   )r   r!   rw   r   r   r!   r   r   )r   )	r   r   r   r"   r   r7   r8   r   isin)r   r+   rW   r?   r   r   r   @test_loc_getitem_index_differently_ordered_slice_none_duplicates  s     &r!  c                  C   s   t jdgdgdggdddgd} tdd	gi| d
}| }|jdd d df }t|| td	g| d
}|jdd d df }td	gtdgddd
}t	|| d S )Nrb   rc   zrw   rx   ry   r5   rz   r   r   r  )
r   r;   r   r$   r"   r7   r8   r   r   rT   )r   r+   r?   rW   rV   r   r   r   3test_loc_getitem_drops_levels_for_one_row_dataframe  s     r#  c                  C   sp   t dddgddgg} ttd| d}|jd d ddgf }ttdt d	d
ddgd}t|| d S )NrN   r    rY   r   r   )r   r   r   )r   r.   )r    r   )r    r   )rN   r   )rN   r   )	r   r`   r   r   zerosr"   r   r7   r8   )colsr+   rW   r?   r   r   r   $test_mi_columns_loc_list_label_order#  s    r&  c               	   C   s   t tddddddgddddggdddgd	d
d	ggd} ddg| j_ddg| j_tjt	dd | j
ddgdf  W 5 Q R X d S )NrD   )r.   r   rw   rx   r   r   ZOhioZColoradoZGreenZRedr   key1key2statecolorz\[2\] not in indexrF   )r   r   r   r   r   r   r'   rI   rJ   rK   r"   )r*   r   r   r   $test_mi_partial_indexing_list_raises/  s    r+  c               	   C   sN   t tdtddgddggd} tjtdd | jd	d
g  W 5 Q R X d S )Nr.   r   r   rw   rx   r   z\['not' 'found'\] not in indexrF   notfound)r   r&   r   r`   rI   rJ   rK   r"   )r   r   r   r   (test_mi_indexing_list_nonexistent_raises<  s    "r.  c                  C   s   t ddddgddddggd	d	gtddgd
dggd} d| jd< d| jd< d| jd< t ddddgddddgddddgdtjtjtjggd	d	ddgtddgd
dggd}t| | d S )Nr   r   r   r   r   r.   r!   rB   rw   rN   r    r   r   ry   )ry   r   rN   )rz   r/  r   r  g      @g      @r  r/   g      @g       @g      rz   )r   r   r`   r"   r   r   r7   r8   )rW   r?   r   r   r   'test_mi_add_cell_missing_row_non_uniqueC  s$    







r0  c                  C   s   t dddtjdgdggddgdd	} | jd
 }|dks>tt|tjsNt| jdgdf jd }|dksptt|tjstd S )Nr   r   r}   r   r.   ry   rz   r5   r   )r   rx   r   rx   r   )	r   r   r;   r"   r#   
isinstancer   rh   r9   )r+   rW   r   r   r   $test_loc_get_scalar_casting_to_floatZ  s     
r2  c                  C   sf   t jddgddggddgd} t| tjd}|jd }ttjtjgtddgdd	d
}t	|| d S )Nrw   rx   rN   r    r   r   r5   r_   r  r   )
r   r`   r   r   ra   r"   r   r   r7   rT   )r   s2rW   r?   r   r   r   )test_loc_empty_single_selector_with_namesg  s
    
 r4  c               	   C   sb   t ddddddgddddddgtd	d
} | ddg} tjtdd | jd  W 5 Q R X d S )Nr     i,  rC   r      r  !   r   )rN   r    rY   rN   r    z^1$rF   )r  r   )r   r&   r6   rI   rJ   rK   r"   r  r   r   r   'test_loc_keyerror_rightmost_key_missingp  s    r8  )8Znumpyr   rI   Zpandas.errorsr   Zpandasr   r   r   r   r   Zpandas._testingZ_testingr7   Zpandas.core.indexingr   Zfixturer   r   r   r   r   r   Z
IndexSlicer   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.  r0  r2  r4  r8  r   r   r   r   <module>   st   

  `

 

$		,
	