o
    $j                     @   s<  d dl Zd dlZd dlmZmZ d dlZd dlmZm	Z	m
Z
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$d/d0 Z%d1d2 Z&G d3d4 d4Z'd5d6 Z(d7d8 Z)d9d: Z*d;d< Z+d=d> Z,d?d@ Z-ejdAg dBg dCgdDdE Z.dFdG Z/dHdI Z0dJdK Z1dLdM Z2dNdO Z3dPdQ Z4dRdS Z5dTdU Z6dVdW Z7dS )X    N)IndexingErrorPerformanceWarning)	DataFrameIndex
MultiIndexSeriesc                   C   s   t g dgg dgdgdS )zsingle level MultiIndex)foobarbazZqux)r            first)levelscodesnames)r    r   r   j/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/pandas/tests/indexing/multiindex/test_loc.pysingle_level_multiindex   s   r   c                  C   sF   ddgg dg} g dg dg}t | |d}ttjdd|d	S )
Nr   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   )   r   index)r   r   nprandomdefault_rngstandard_normal)r   r   r   r   r   r   %frame_random_data_integer_multi_index   s   r   c                   @   sv  e Zd Zejdejddd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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/d0d1gd2d3 Z ejd4ed5d6fd7ej!fgd8d9 Z"d:d; Z#d<d= Z$d>d? Z%d5S )@TestMultiIndexLocz.ignore:Setting a value on a view:FutureWarninghas_refTFc                 C   sv   |}|r
|d d  }d|j d< |j d dksJ | }ttd|_|r+|d d  }d|j d< |j d dks9J d S )N   )r	   twoBr      )r!   r   )loccopylistrangecolumns)self multiindex_dataframe_random_datar   frameview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 |}|||d}|jddgd}d}tt t|j| |jdd   W d    n1 sNw   Y  |j	dd}|d u s_J |j| }t
jdgd |d}t
jd	gd |d}	tj||	gddgd}
t dg di|
d}t|| d S )Ni  iX     M    )r   r   r   r      g      @      @      )amountcolnum)r8   r9   r8   r9   )keys)r4   r5   r   T)Zinplacer   dtyper   r7   )r0   r1   r2   r   )r   Zastype	set_indextmZassert_produces_warningr   assert_frame_equalr%   iloc
sort_indexr   arrayr   from_arrays)r*   Zany_real_numpy_dtyper<   datar.   keyreturn_valueresZcol_arrZyear_arrr   expectedr   r   r   test_loc_getitem_general7   s(   
z*TestMultiIndexLoc.test_loc_getitem_generalc                 C   r   t tjddg dg dgg dg dgd}tjtdd	 |jd  W d    d S 1 s2w   Y  d S 
Nr   r   r   r   r   r3   r      
   r3   r3   rP   rP   rQ   r5   r)   r   z^2$match	r   r   r   r   r   pytestraisesKeyErrorr%   r*   r.   r   r   r   0test_loc_getitem_multiindex_missing_label_raisesT   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   rQ   )r`   r      )reindexr   r%   r?   assert_series_equal)r*   /multiindex_year_month_day_dataframe_random_dataserrI   resultr   r   r   /test_loc_getitem_list_of_tuples_with_multiindex_   s   zATestMultiIndexLoc.test_loc_getitem_list_of_tuples_with_multiindexc                 C   s   t g dg dg}t|tdtjd}tddg}tg dt ddgg d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 )Nr   r   r   r]   r#   C	   r   rE   r<   r   r   r   r   r   r   r$   rP   rE   r   r<   r   r   )rE   r<   r   r   r<   r   r<   )
r   from_productr   r(   r   float64r%   r?   rc   r   )r*   r   xyrI   rf   y1emptyr   r   r   test_loc_getitem_seriesg   s.   


z)TestMultiIndexLoc.test_loc_getitem_seriesc                 C   s   t g dg dg}t|tdtjd}tddg}tg dt ddgg d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g dg dtjd}|j| }t	|| d S )Nrh   ri   rk   rl   r   r   rm   rn   ro   rr   rp   r   )r   rq   r   r(   r   rr   rC   r%   r?   rc   r   int64)r*   r   rs   rt   rI   rf   rv   Zscalarr   r   r   test_loc_getitem_array   s,   




z(TestMultiIndexLoc.test_loc_getitem_arrayc                 C   s  t tjddg dg dgg dg d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   rM   )irz   j)r]   r]   r#   )Xr|   YrT   r   r   rz   axisr{   )rz   r|   
r   r   r   r   r   rA   	droplevelr%   r?   r@   r*   r.   rI   rf   r   r   r   test_loc_multiindex_labels   s"   
"
z,TestMultiIndexLoc.test_loc_multiindex_labelsc                 C   sb   t tjddg dg dgg dg dgd}|jdd	g d}|jd
 }t	|| d S )Nr   rM   rN   rO   rR   rS   rT   r   r   r3   r   r   r   r   r   test_loc_multiindex_ints   s   
z*TestMultiIndexLoc.test_loc_multiindex_intsc                 C   rK   rL   rW   r[   r   r   r   (test_loc_multiindex_missing_label_raises   s   "z:TestMultiIndexLoc.test_loc_multiindex_missing_label_raiseszkey, posr   r3   r   r   r   c                 C   sr   t tjddg dg dgg dg dgd}tjtdd	 |j|  W d    d S 1 s2w   Y  d S )
Nr   rM   rN   rO   rR   rS   rT   znot in indexrU   rW   )r*   rF   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 d    n1 s+w   Y  tjtdd
 |jd  W d    n1 sGw   Y  tjtdd
 |jd  W d    d S 1 sdw   Y  d S )NrP   abcdefr   z^\('a', 'b'\)$rU   r   r   z^\('a', 'd', 'g'\)$)r   r   gzToo many indexers)r   r   r   r{   )	r   r(   r   rq   rX   rY   rZ   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g dg dgd}|jddgfd d f }|jddg }t	|| d S )Nc                 S      g | ]}d t | qS )	Attributestr.0rz   r   r   r   
<listcomp>       zFTestMultiIndexLoc.test_loc_multiindex_indexer_none.<locals>.<listcomp>r   c                 S   r   )Valuer   r   r   r   r   r      r   r    g?r   )rQ   r    g      ?r)   r5   r   r   r   r3   rh   r   )r(   r   rq   r   r   r   r   r   r?   r@   arangereshaper%   )r*   
attributesZattribute_valuesr   r.   rf   rI   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g d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g dg}|j	g d
 }|jdd	dddf }t|| d S )N   rx   r;   r    r   r   r   r   r   r   r3   )r   r$   rP   r5   ra      r   )
r   r   r   r   rq   r(   r%   r?   rc   rA   )r*   r   rI   rf   r   r   r   test_loc_multiindex_incomplete  s$   z0TestMultiIndexLoc.test_loc_multiindex_incompletec                 C   s:   |}t tjdt||d}|jD ]}||  qd S )Nr   r   )r   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 g dddgg}ttjdd||}|jddd d f }|}t	|| t g d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 )N)r   r$   rP   r   r   r   )r   r   r   rP   rQ         r   r   rQ   r   )r   rq   r   r   r   r   r   r%   r?   r@   rA   r   )r*   r   r.   rf   rI   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  g d}g d}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 }	|tu sD|tu ret	j
tdd |j|	df  W d    d S 1 s^w   Y  d S |j|	df }
tg ddt |d}t|
| d S )Nc                 S   s,   | t jkr
t |S | tkrt| S | |S N)r   ndarrayrC   slice)indexer_typer:   r   r   r   convert_nested_indexerN  s
   

zQTestMultiIndexLoc.test_loc_getitem_nested_indexer.<locals>.convert_nested_indexerr   rh   rx   r;   ZDatar   r)   rQ   r   r   r   c                 3   s    | ]
\}} ||V  qd S r   r   )r   r   r   r   r   r   	<genexpr>a  s
    
zDTestMultiIndexLoc.test_loc_getitem_nested_indexer.<locals>.<genexpr>zas an indexer is not supportedrU   )r   r   r3   r    namer   )r   rq   r   r   r   r   tuplezipsetrX   rY   	TypeErrorr%   r   r?   rc   )r*   r   r   r   r   r   r.   r:   typesindexerrf   rI   r   r   r   test_loc_getitem_nested_indexerC  s0   
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r   r]   r   r]   r   r   r   r   r   )r   from_tuplesr%   r?   Zassert_equal)r*   Zframe_or_seriesmiobjrI   r   r   r   )test_multiindex_loc_one_dimensional_tupler  s
   
z;TestMultiIndexLoc.test_multiindex_loc_one_dimensional_tupler   r   r   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%   r?   r@   )r*   r   r   r   rI   r   r   r   -test_multiindex_one_dimensional_tuple_columnsz  s
   z?TestMultiIndexLoc.test_multiindex_one_dimensional_tuple_columnszindexer, exp_valueN      ?r   r   c                 C   sp   t ddg}tddgddgg|ddgd	}d
|j|ddgf< tg ddd||gg|g dd	}t|| d S )Nr   r   r3   r   r   r   r3   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   )r*   r   Z	exp_valuer   r.   rI   r   r   r   )test_multiindex_setitem_columns_enlarging  s   z;TestMultiIndexLoc.test_multiindex_setitem_columns_enlargingc                 C   s   t tjdddtddgg}td|d}td|d d d}tj||gdd}| }|jd	d
 }t	
|| t||d}|jd	d
 }t	
|| tj|||jgdd}|jd	d
 }t	
|| d S )NZ20110101r   periodsr   r   r   r   r~   z
2011-01-01z
2011-01-02r   r   )r   rq   pd
date_ranger   r   concatr&   r%   r?   r@   r   rb   r   )r*   ZmidxZser1ser2r.   rI   rf   r   r   r   "test_sorted_multiindex_after_union  s   z4TestMultiIndexLoc.test_sorted_multiindex_after_unionc                 C   st   t ttdtdtdgdgd}|jtjd d dd d f  }t ttdtdgdgd}t|| d S )Nabcdr   ZValr   r   )	r   r   rq   r'   r%   r   Zs_r?   r@   )r*   r.   rH   rI   r   r   r   test_loc_no_second_level_index  s   z0TestMultiIndexLoc.test_loc_no_second_level_indexc                 C   s`   t g dg dg dg dd}tjtdd |jd  W d    d S 1 s)w   Y  d S )	Nr   )r   r   r   )r   hrz   )r{   r   l)r   )r   r   r   r   )r   r3   z(1, 4)rU   )r   r   r3   )r   rX   rY   rZ   r%   r[   r   r   r   test_loc_multi_index_key_error  s   "z0TestMultiIndexLoc.test_loc_multi_index_key_error)&__name__
__module____qualname__rX   markfilterwarningsparametrizer/   rJ   r\   rg   rw   ry   r   r   r   r   r   r   r   r   r   r'   r   r   r   r   r   r   r   r   r   r   nanr   r   r   r   r   r   r   r   r   #   sH    

,

	)

r   zindexer, posr]   r   DEr   r   bahc                 C   s  t jg dg dgddgd}ttjddd|d	 }|j| }|jd
krK| g krKtj	t
t| d |j|   W d    d S 1 sDw   Y  d S | td ddgfkrttj	t
dd |j|   W d    d S 1 smw   Y  d S |j|  }t|| d S )Nri   r   r	   r
   oner"   r=   rk   rx   r;   r   r   rU   r   r   z'bah')r   rq   r   r   r   rB   rA   sizerX   rY   rZ   r   r%   r   r?   rc   )r   r   idxre   rI   rf   r   r   r   7test_loc_getitem_duplicates_multiindex_missing_indexers  s   
""
r   columns_indexerc                 C   s   t g d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   alphabetar   r    r   r    r   r   r   )levelr   )r   rq   r   r   r   r   r   r(   rB   rb   r%   r?   r@   )r   Zmulti_indexr.   rI   rf   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s$J d S )	Nmeanmedianfunctsr   )r   r   functionr   rT   )r   r   )r   r   r   r   r   r   r%   r.   rf   rI   r   r   r   =test_loc_getitem_duplicates_multiindex_non_scalar_type_object  s   
r   c                  C   sp   t tdtdtjddtjdddddg} | jd }| jdd d f }t	|| d S )NrQ   r   r   r   r   )r   r   )
r   r   r   r   r   r   r>   r%   r?   rc   )r.   rI   rf   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   r   r?   r@   )r   r.   rf   rI   r   r   r   test_loc_getitem_int  s
   
r   c                 C   sB   | }t jtdd |jd  W d    d S 1 sw   Y  d S )Nz^3$rU   r   )rX   rY   rZ   r%   )r   r.   r   r   r   %test_loc_getitem_int_raises_exception  s   "r   c                 C   sh   | }t jtdd |jd  W d    n1 sw   Y  d|jd< d}| jd }||ks2J d S )Nz^\('bar', 'three'\)$rU   ))r	   threer#   r   )rX   rY   rZ   r%   rB   )r+   r.   rI   rf   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g d	d} |  }td| jd d d
f< td|jd d df< t| | d S )NstringabcdZMain)Zanotherr   r   r   labelsr3   ))r]   1)r]   2)r#   r  r#   r   )r   r'   r   rq   r   r%   r?   assert_numpy_array_equalr   Zasarrayr   r(   r   r&   r   rA   r@   )r.   rI   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g dtj|g ddd}|jd jd }tt dtt jg| sLdndddtg dd}t	|| d S )NzGood Thingsrj   Rz
Bad ThingsT)Okay ThingsNr#   )r
  r  r   r
  r#   r   )rP   r3   )Zd1Zd2Zd3Zd4)u1u2u3r=   rT   r   objectr   r  )r<   r   r   )
r   r   r   Zonesr   r   r   r%   r?   r@   )Zusing_infer_stringZtupsr.   rf   rI   r   r   r   test_loc_nan_multiindexA  s2   









	r  c                  C   s   t jdddd} d}tj| |fdd}t|dd	}|jd
 }|j| d dfdf }t|s0J t|s7J |jd
 }t|sCJ d S )N2013Q1Z2013Q4Q)freq)W  i  i  )ZPeriodZCVRr=   )	OMSZOMKZRESZ	DRIFT_INDZ
OEVRIG_INDZFIN_INDZVARE_UDZLOEN_UDZFIN_UDr   ))r  r  r  r   r  r  )r   Zperiod_ranger   rq   r   r%   r   isnan)r   rz   r   r.   rf   Zaltr   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Idx2r=   r   r   r   r3   r    r   r$   ZC1ZC2rE   r   r)   r   r   )r   to_datetimer   rq   r   r%   r   Zget_level_valuesr   r   	Timestampr?   rc   )Zdt_idxZm_idxr.   rf   rI   r   r   r   test_loc_datetime_mask_slicing  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   r   r   r=   r   )r   r   )r   r  r   r   r   r%   r?   rc   )datere   rf   r   r   r   &test_loc_datetime_series_tuple_slicing  s   
r  c                  C   s   t ddgddgddgddggtjg d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g ddd	gd
ddgd}t|| d S )Nr   r   r   r   r   r   )r   )r   r   r   r   r  r   r  r=   ZauthorZpricer  r   r  )r   r  r  r   )r   r   r   r%   r?   r@   )r.   r   rf   rI   r   r   r   test_loc_with_mi_indexer  s   r   c                  C   s   t jdddd} ttd| d}| }| |d< |jddd	}|jjd
ks'J |j| d  |j	| d  }|j
dg d }t|| |d }|jjd
ksQJ |j	| d  }|j
dg d }t|| d S )Nz
2016-01-01r   z
US/Pacific)r   tzr   r   r   T)append)Nr   )r   r   r   r(   Zto_framer>   r   r   get_locr%   rA   r   r?   r@   rc   )Zdtire   r.   df2rf   rI   r   r   r   r   test_loc_mi_with_level1_named_0  s   r%  c                  C   s   t g dg dg dg dg dg dgddd	} | d
dg }|jdtdfd d f d}|jd jtdd d f }t|| d S )N)z20160525 13:30:00.023MSFT51.95r'  )z20160525 13:30:00.048ZGOOGz720.50z720.93)z20160525 13:30:00.076AAPLz98.55z98.56)z20160525 13:30:00.131r(  98.6198.62)20160525 13:30:00.135r&  z51.92r'  )r+  r(  r)  r*  ztime,ticker,bid,ask,r   Ztickertimer(  z2016-05-25 13:30:00r   )	r   splitr>   rB   r%   r   r   r?   r@   )r.   r$  rH   rI   r   r   r   test_getitem_str_slice  s    r/  c                  C   sl   t jg dddd} g d}g d}t| ||g}ttd|tjd}|j| d	 d
df }|dks4J d S )N)z20181101 1100z20181101 1200z20181102 1300z20181102 1400datetimer   )r   r  )r]   r]   ZW)r#   rj   r  Fr3   rp   r   r]   r#   g        )	r   ZPeriodIndexr   rD   r   r(   r   rr   r%   )piZlev2Zlev3r   re   rf   r   r   r   !test_3levels_leading_period_index  s   r5  c                   @   s$   e Zd Zdd Zdd Zdd ZdS )TestKeyErrorsWithMultiIndexc                 C   sj   t tdddg dd}|ddg}tjtdd	 |jd
  W d    d S 1 s.w   Y  d S )Nr5   r3   r   ri   r   r]   r#   r  rU   r   r   )	r   r   r   r   r>   rX   rY   rZ   r%   )r*   r.   r$  r   r   r   !test_missing_keys_raises_keyerror  s
   "z=TestKeyErrorsWithMultiIndex.test_missing_keys_raises_keyerrorc                 C   sZ   t dtddggd d}tjtdd |jd  W d    d S 1 s&w   Y  d S )	Nr   r   r   r   r   z\(0, 3\)rU   )r   r   )r   r   rq   rX   rY   rZ   r%   )r*   re   r   r   r   !test_missing_key_raises_keyerror2  s   "z=TestKeyErrorsWithMultiIndex.test_missing_key_raises_keyerror2c                 C   s(  t jtg dtg dtg dgg dd}ttjdd|d}d	}tjt	|d
 |j
ddtd fd d f  W d    n1 sJw   Y  tjt	|d
 |jddtd f W d    n1 slw   Y  tjt	dd
 |j
dd d f  W d    d S 1 sw   Y  d S )Nr   r   r   r   )r  r  r  3)r   r   r   r   )r   r"   r   r=   r   r3   r   r   z'\('b', '1', slice\(None, None, None\)\)rU   r   r  z\('b', '1'\))r   r  )r   rD   r   rC   r   r   r   rX   rY   rZ   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   r8  r9  r>  r   r   r   r   r6    s    r6  c                 C   s2   | }|d }|d }|j d d }t|| d S )Nr]   )r`   r    )r%   r?   rc   )rd   r.   re   rf   rI   r   r   r   test_getitem_loc_commutability  s
   r?  c                  C   s   t g dddtjgg d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 )N)r   r   r    r   r   )r   r3   r    )r8   ind1ind2r@  rA  r8   r   )r   r   r=   r   r   )
r   r   r   r>   r%   r   r   r?   r@   r   r   r   r   r   test_loc_with_nan  s   

rC  c                  C   s^   t g dgg ddg d} tjtdd | jd  W d    d S 1 s(w   Y  d S )Nr   r   r   r   z\(2\.0, 2\.0, 3\.0\)rU   )       @rD        @)r   r>   rX   rY   rZ   r%   r.   r   r   r   test_getitem_non_found_tuple)  s   "rG  c                  C   s   t jddd} t| g}|dtddd ksJ | dtddd ks'J |d d d d}| d d d d}||ksAJ |dd}| dd}||ksWJ ||d}| | d}t	|
 d | d S )Nz
2001-01-01d   r   z2001-01r      r   )r   r   r   rD   r#  r   repeatr"  r?   r  Znonzero)r   r   r%   rI   r   r   r   test_get_loc_datetime_index2  s   rK  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 )Nr   r   r   r   r   r   r3   r    r   r$   rP   r   rk   rQ   r6   r5   )r   rq   r   r   rC   r%   r?   r@   )r   r.   r   rI   r   r   r   ,test_loc_setitem_indexer_differently_orderedH  s   $$$rL  c                  C   s   t ddgddgddgddggg d	g d
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g dg dgddgd}t|| d S )Nr   r   r   r3   r    r   r$   rP   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   5test_loc_getitem_index_differently_ordered_slice_noneS  s   rN  r   )r   r   r$   r   r   r   rP   r$   )r   r   r$   r   r   rP   c                 C   s   t dgd tg ddgd}|jtd | fd d f }t dgd g dg dgdgd}t|| |j|jj| ddd d f }t|| d S )	Nr   rP   )r  r   )r   r$   r7  r   )r   r   )r   rP   )r   r$   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r$   r$   r   r   rP   )r   )	r   r   r   r%   r   r?   r@   r   isin)r   r.   rf   rI   r   r   r   @test_loc_getitem_index_differently_ordered_slice_none_duplicatesc  s    rP  c                  C   s   t jdgdgdggg dd} tddgi| d}|dd	g}|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 )Nrs   rt   zr   r=   r   r   r   r   r   rB  )
r   rD   r   r   r%   r?   r@   r   r   rc   )r   r.   rI   rf   re   r   r   r   3test_loc_getitem_drops_levels_for_one_row_dataframey  s   rR  c                  C   sj   t g dddgg} ttd| d}|jd d ddgf }ttdt g d	d}t|| d S )
Nri   r   r   r   r   r#   r]   )r    r3   ))r#   r   )r#   r   )r]   r   )r]   r   )	r   rq   r   r   Zzerosr%   r   r?   r@   )colsr.   rf   rI   r   r   r   $test_mi_columns_loc_list_label_order  s   rT  c                  C   s   t tddg dg dgg dg dgd} dd	g| j_d
dg| j_tjt	dd | j
ddgdf  W d    d S 1 sAw   Y  d S )Nr5   r<  r:  rM  )OhiorU  Colorado)GreenRedrW  r   key1key2statecolorz\[2\] not in indexrU   r   r   rV  )r   r   r   r   r   r   r)   rX   rY   rZ   r%   )r,   r   r   r   $test_mi_partial_indexing_list_raises  s   "r]  c                  C   sd   t tdtddgddggd} tjtdd | jd	d
g  W d    d S 1 s+w   Y  d S )Nr3   r   r   r   r   r   z\['not' 'found'\] not in indexrU   notfound)r   r(   r   rq   rX   rY   rZ   r%   )r   r   r   r   (test_mi_indexing_list_nonexistent_raises  s   ""r`  c                  C   s   t g dg dgddgtddgddggd} d	| jd
< d| jd< d| jd< t g dg dg ddtjtjtjggg dtddgddggd}t| | d S )N)r   r   r    r   )r   r3   r$   rP   r   r   r   r]   r#   r   r   r   r   )r   r   r]   )r   ra  )r   rD  g      @g      @)rE  r4   g      @g       @)rE  g      r   r   rE  )r   r   r   r   )r   r   rq   r%   r   r   r?   r@   )rf   rI   r   r   r   'test_mi_add_cell_missing_row_non_unique  s$   



rb  c                  C   s   t dddtjdgdggddgdd	} | jd
 }|dksJ t|tjs'J | jdgdf jd }|dks8J t|tjs@J d S )Nr   r   r   r   r3   r   r   r=   r   )r   r   r   r   r   )r   r   rD   r%   
isinstancer   rx   rA   )r.   rf   r   r   r   $test_loc_get_scalar_casting_to_float  s    
rd  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 )Nr   r   r]   r#   r   r   r=   rp   rB  r   )
r   rq   r   r   rr   r%   r   r   r?   rc   )r   s2rf   rI   r   r   r   )test_loc_empty_single_selector_with_names  s
   
 rf  c                  C   sh   t g dg dtdd} | ddg} tjtdd | jd	  W d    d S 1 s-w   Y  d S )
N)rH  rH     rg  ,  rh  )rQ   rQ   r      rI  !   r   ri   r]   r#   z^1$rU   )rH  r   )r   r(   r>   rX   rY   rZ   r%   rF  r   r   r   'test_loc_keyerror_rightmost_key_missing  s   "rk  c                  C   s8   t ddg} tddg| d}|jd }|dksJ d S )Nr   )r   )r3   r    r   r   r   )r   r   r   r%   )r   re   rf   r   r   r   *test_multindex_series_loc_with_tuple_label  s   
rl  )8numpyr   rX   Zpandas.errorsr   r   Zpandasr   r   r   r   r   Zpandas._testingZ_testingr?   Zfixturer   r   r   r   r   r   Z
IndexSlicer   r   r   r   r   r   r   r  r  r  r  r  r   r%  r/  r5  r6  r?  rC  rG  rK  rL  rN  rP  rR  rT  r]  r`  rb  rd  rf  rk  rl  r   r   r   r   <module>   sx    

    

 

 $	
	