
    A>i                        S SK rS SKrS SKJr  S SKrS SKJrJrJ	r	J
r
  S SKJr  \R                  S 5       r " S S5      r\R"                  R%                  S/ / 4S/\" S	5      4SS
// 4S
S// 4S
// 4\R(                  SS2S/4   \" SSS	5      4\R(                  SS2SS/4   \" SSS	5      4/5      S 5       r\R"                  R%                  S/ \" S5      4S// 4/5      S 5       rS rS rS rS rS rS rS rS rS rS r S r!S r"S r#S r$ " S  S!5      r%S" r&S# r'S$ r(S% r)S& r*S' r+\R"                  R%                  S(/ S)Q/ S*Q/5      S+ 5       r,S, r-S- r.S. r/S/ r0S0 r1S1 r2S2 r3S3 r4S4 r5g)5    N)IndexingError)	DataFrameIndex
MultiIndexSeriesc                      SS// SQ/n / SQ/ SQ/n[        XS9n[        [        R                  R	                  S5      R                  S5      US	9$ )
Nr      r   r	      )r   r   r   r	   r	   r	   )r   r	   r   r   r	   r   levelscodesr   )   r   index)r   r   nprandomdefault_rngstandard_normal)r   r   r   s      h/var/www/html/land-tabula/venv/lib/python3.13/site-packages/pandas/tests/indexing/multiindex/test_loc.py%frame_random_data_integer_multi_indexr      sL    !fi F!34Ef2ERYY**1-==fEUSS    c                      \ rS rSr\R
                  R                  SSS/5      S 5       rS rS r	S r
S	 rS
 rS rS rS r\R
                  R                  SSS/SS/4S// 4SS// 4/5      S 5       rS rS rS rS rS r\R
                  R                  S\\\\\R6                  \\45      \R
                  R                  S\\\\\R6                  \\45      S 5       5       rS r\R
                  R                  SSS /5      S! 5       r \R
                  R                  S"\" S#5      S$4S%\RB                  4/5      S& 5       r"S' r#S( r$S) r%S* r&S+r'g#),TestMultiIndexLoc   has_refTFc                    UnU(       a  US S  nSUR                   S'   UR                   S   S:X  d   eUR                  5       n[        [        S5      5      Ul        U(       a  US S  nSUR                   S'   UR                   S   S:X  d   eg )N   )bartwoB      )r   r	   )loccopylistrangecolumns)self multiindex_dataframe_random_datar   frameviewdfs         r   &test_loc_setitem_frame_with_multiindex8TestMultiIndexLoc.test_loc_setitem_frame_with_multiindex   s     18D)*		%&yy,-222 ZZ\%(^
a5D$% !vv'(A---r   c                 ~   UnSSSSSS.SSSSSS.S	S
S	S	S	S.S.n[        U5      nUR                  X3S.5      nUR                  SS/S9nSn[        R                  " U5         [        R
                  " UR                  U   UR                  SS  5        S S S 5        UR                  SS9nUb   eUR                  U   n[        R                  " S/S-  US9n	[        R                  " S	/S-  US9n
[        R                  " X/SS/S9n[        S/ SQ0US9n[        R
                  " X5        g ! , (       d  f       N= f)Ni  iX     M    )r   r	   r   r#      g      @      @      )amountcolnum)r:   r;   r:   r;   )keys)r6   r7   r   T)inplacer#   dtypenamesr9   )r2   r3   r4   r   )r   astype	set_indextmassert_produces_warningassert_frame_equalr%   iloc
sort_indexr   arrayr   from_arrays)r*   performance_warningany_real_numpy_dtyper?   datar.   keyreturn_valuerescol_arryear_arrr   expecteds                r   test_loc_getitem_general*TestMultiIndexLoc.test_loc_getitem_general+   s=   $####>ssss;bRB26

 t_YYu34\\u~\.''(;<!!"&&+rwwqr{; = }}T}2###ffSk ((C519E288RD1HE2&&':5%.Qh8F
c, =<s   "2D..
D<c                    [        [        R                  R                  S5      R	                  S5      / SQ/ SQ// SQ/ SQ/S9n[
        R                  " [        SS	9   UR                  S     S S S 5        g ! , (       d  f       g = f
Nr   r#   r#   r   r   r5   r      
   r5   r5   r[   r[   r\   r7   r)   r   z^2$match	r   r   r   r   r   pytestraisesKeyErrorr%   r*   r.   s     r   0test_loc_getitem_multiindex_missing_label_raisesBTestMultiIndexLoc.test_loc_getitem_multiindex_missing_label_raisesG   s`    II!!!$44V<
+k*
 ]]862FF1I 322   A66
Bc                     US   nUR                  UR                  SS 5      nUR                  SS/   n[        R                  " XC5        g )NA1   3   )  r#   r\   )rn   r#      )reindexr   r%   rD   assert_series_equal)r*   /multiindex_year_month_day_dataframe_random_dataserrS   results        r   /test_loc_getitem_list_of_tuples_with_multiindexATestMultiIndexLoc.test_loc_getitem_list_of_tuples_with_multiindexR   sH     >cB;;syyB/0-78
v0r   c                    [         R                  " / SQ/ SQ/5      n[        U[        S5      [        R
                  S9n[        SS/5      n[        / SQ[         R                  " SS// SQ/5      [        R
                  S9nUR                  U   n[        R                  " XT5        UR                  SS/   n[        R                  " XT5        [        SS/SS	/S
9nUR                  U   n[        R                  " XT5        [        / [        R
                  S9n[        / [        UR                  / / /S9[        R
                  S9nUR                  U   n[        R                  " XT5        g )Nr	   r   r#   rk   r"   C	   r   rM   r?   r	   r#   r   r	   r   r   r$   r[   rM   r   r?   r   r   )rM   r?   r   r   r?   )
r   from_productr   r(   r   float64r%   rD   rq   r   )r*   r   xyrS   rt   y1emptys           r   test_loc_getitem_series)TestMultiIndexLoc.test_loc_getitem_seriesZ   s'    ''O(DEU1XRZZ@Aq6N#))Aq6?*CD**

 q
v01v
v0 QF1a&)r
v0Bbjj1ELLRA**

 u
v0r   c                    [         R                  " / SQ/ SQ/5      n[        U[        S5      [        R
                  S9n[        R                  " SS/5      n[        / SQ[         R                  " SS// SQ/5      [        R
                  S9nUR                  U   n[        R                  " XT5        [        R                  " / 5      n[        / [        UR                  / / /S	9S
S9nUR                  U   n[        R                  " XT5        [        R                  " S5      n[        / SQ/ SQ[        R
                  S9nUR                  U   n[        R                  " XT5        g )Nrx   ry   r{   r|   r	   r#   r}   r~   r   r   r   r
   )r   r   r   r(   r   r   rI   r%   rD   rq   r   int64)r*   r   r   r   rS   rt   r   scalars           r   test_loc_getitem_array(TestMultiIndexLoc.test_loc_getitem_arrayy   s    ''O(DEU1XRZZ@HHaV#))Aq6?*CD**

 q
v0 ELLRA

 u
v0 !yrzzRv
v0r   c                    [        [        R                  R                  S5      R	                  S5      / SQ/ SQ// SQ/ SQ/S9nUR
                  SS/   R                  S5      nUR                  S	   n[        R                  " X25        UR
                  S S 2S/4   R                  SSS
9nUR                  S S 2S4   n[        R                  " X25        UR
                  S/S/4   R                  S5      R                  SSS
9nUR                  S   R                  S S 2S4   n[        R                  " X25        UR
                  SS/   nUR                  S   n[        R                  " X25        g )Nr   rX   )ir   j)rk   rk   r"   )Xr   Yr_   r   r	   r   axisr   )r   r   
r   r   r   r   r   rG   	droplevelr%   rD   rF   r*   r.   rS   rt   s       r   test_loc_multiindex_labels,TestMultiIndexLoc.test_loc_multiindex_labels   s@   II!!!$44V<$o6"O4
 77Aq6?,,Q/
f/ 771qc6?,,QQ,73
f/ 77A38$..q1;;AA;FC(
f/ 77Aq6?
#
f/r   c                    [        [        R                  R                  S5      R	                  S5      / SQ/ SQ// SQ/ SQ/S9nUR
                  SS	/   R                  S5      nUR                  S
   n[        R                  " X25        g )Nr   rX   rY   rZ   r]   r^   r_   r   r	   r5   r   r   s       r   test_loc_multiindex_ints*TestMultiIndexLoc.test_loc_multiindex_ints   sr    II!!!$44V<
+k*

 77Aq6?,,Q/
f/r   c                    [        [        R                  R                  S5      R	                  S5      / SQ/ SQ// SQ/ SQ/S9n[
        R                  " [        SS	9   UR                  S     S S S 5        g ! , (       d  f       g = frW   rb   rf   s     r   (test_loc_multiindex_missing_label_raises:TestMultiIndexLoc.test_loc_multiindex_missing_label_raises   s`    II!!!$44V<
+k*
 ]]862FF1I 322ri   zkey, posr   r5   r   r	   r#   c                    [        [        R                  R                  S5      R	                  S5      / SQ/ SQ// SQ/ SQ/S9n[
        R                  " [        SS	9   UR                  U     S S S 5        g ! , (       d  f       g = f)
Nr   rX   rY   rZ   r]   r^   r_   znot in indexr`   rb   )r*   rN   posr.   s       r   &test_loc_multiindex_list_missing_label8TestMultiIndexLoc.test_loc_multiindex_list_missing_label   sb     II!!!$44V<
+k*
 ]]8>:FF3K ;::ri   c           	         [        [        S5      [        R                  " SS/SS/SS//5      S9n[        R
                  " [        S	S
9   UR                  S     S S S 5        [        R
                  " [        SS
9   UR                  S     S S S 5        [        R
                  " [        SS
9   UR                  S     S S S 5        g ! , (       d  f       Nq= f! , (       d  f       NQ= f! , (       d  f       g = f)Nr[   abcdefr   z^\('a', 'b'\)$r`   r   r   z^\('a', 'd', 'g'\)$)r   r   gzToo many indexers)r   r   r   r   )	r   r(   r   r   rc   rd   re   r%   r   )r*   ss     r   (test_loc_multiindex_too_many_dims_raises:TestMultiIndexLoc.test_loc_multiindex_too_many_dims_raises   s    !H))C:SzC:*NO

 ]]8+<=EE(O >]]8+ABEE-  C]]=0CDEE$% ED	 >=BBDDs$   
C;C,C'
C
C$'
C5c                    [        S5       Vs/ s H  nS[        U5      -   PM     nn[        S5       Vs/ s H  nS[        U5      -   PM     nn[        R                  " X#/5      nS[        R
                  R                  S5      R                  S5      -  S-   n[        XTS	9nXR   n[        R                  " Xe5        [        [        R                  " S
5      R                  SS5      [        R                  " / SQ/ SQ/5      S9nUR                  SS/4S S 24   nUR                  SS/   n[        R                  " Xg5        g s  snf s  snf )Nr	   	Attributer   Valueg?r   )r\   r   g      ?r)   r7   r	   r   r#   r5   rx   r   )r(   strr   r   r   r   r   r   r   rD   rF   arangereshaper%   )r*   r   
attributesattribute_valuesr   r.   rt   rS   s           r    test_loc_multiindex_indexer_none2TestMultiIndexLoc.test_loc_multiindex_indexer_none   s    5:!H=HqkCF*H
=6;Ah?hGc!f,h?''(FG299((+;;KHH3Nr)
f) IIbM!!"a())<*CD

 66Aq6)Q,'A
f/% >?s
   EEc                    [        [        R                  " SSS9[        R                  " [        S5      / SQ/5      5      nUR                  S S 2SS24   nUR                  SS	2SS24   n[        R                  " X25        UR                  S S	2SS24   n[        R                  " X25        UR                  SS 2SS24   n[        R                  " X25        [        [        R                  " SSS9[        R                  " [        S5      / SQ/5      5      nUR                  / S
Q   nUR                  SS	S2SS24   n[        R                  " X25        g )N   r   r>   r   r   r   r   r   r   r   r5   )r   r$   r[   r7   ro      r   )
r   r   r   r   r   r(   r%   rD   rq   rG   )r*   r   rS   rt   s       r   test_loc_multiindex_incomplete0TestMultiIndexLoc.test_loc_multiindex_incomplete   s-    IIb(##U1X$?@
 55CG$qsCG|$
v0rr3s7{#
v0qr3s7{#
v0 IIb(##U1X$?@
 66/0q1uc#g~&
v0r   c                     [        / SQ// SQ/S/S9n[        [        R                  R	                  S5      R                  [        U5      5      US9nUR                   H  nX#     M	     g )N)foor    bazqux)r   r	   r   r#   first)r   r   rA   r   r   )r   r   r   r   r   r   lenvalues)r*   single_levelr   ks       r   test_get_loc_single_level+TestMultiIndexLoc.test_get_loc_single_level  sc    !01,PWy
 II!!!$44S5FG
 $$AD %r   c                     [         R                  " / SQSS//5      n[        [        R                  R                  S5      R                  S5      X5      nUR                  SS2S S 24   nUn[        R                  " X45        [         R                  " / SQSS//5      n[        [        R                  R                  S5      R                  S5      X5      nUR                  S	S
2S S 24   nUR                  SS  n[        R                  " X45        UR                  SS S 24   nUR                  SS nSS/Ul        [        R                  " X45        UR                  S S 2S4   nUS   n[        R                  " X45        g )N)r   r$   r[   r   r   r   )r   r   r   r[   r\         r   r   r\   r   )r   r   r   r   r   r   r   r%   rD   rF   rG   r   )r*   r   r.   rt   rS   s        r   test_loc_getitem_int_slice,TestMultiIndexLoc.test_loc_getitem_int_slice  s@    ''S#J(?@ryy,,Q/??GV!Q
f/''Sz(BCryy,,Q/??GV2q!7712;
f/ A771Q<s
f/2b6
f/r   indexer_type_1indexer_type_2c                 *  ^ S m/ SQn/ SQn[         R                  " X4/5      n[        [        R                  " [        U5      SS9US/S9nSS	/S
S/4nX4n[        U4S j[        X5       5       5      n	U[        L d	  U[        L a4  [        R                  " [        SS9   UR                  U	S4     S S S 5        g UR                  U	S4   n
[        / SQS[         R                  " U5      S9n[        R                  " X5        g ! , (       d  f       g = f)Nc                     U [         R                  :X  a  [         R                  " U5      $ U [        :X  a  [        U6 $ U " U5      $ N)r   ndarrayrI   slice)indexer_typer<   s     r   convert_nested_indexerQTestMultiIndexLoc.test_loc_getitem_nested_indexer.<locals>.convert_nested_indexerC  s9    rzz)xx~%u$d|#%%r   r   rx   r   r>   Datar   r)   r\   r   r   r#   c              3   8   >#    U  H  u  pT" X5      v   M     g 7fr    ).0r   r   r   s      r   	<genexpr>DTestMultiIndexLoc.test_loc_getitem_nested_indexer.<locals>.<genexpr>V  s"      
#3 #<33#3s   zas an indexer is not supportedr`   )r	   r   r5   r   namer   )r   r   r   r   r   r   tuplezipsetrc   rd   	TypeErrorr%   r   rD   rq   )r*   r   r   r   r   r   r.   r<   typesindexerrt   rS   r   s               @r   test_loc_getitem_nested_indexer1TestMultiIndexLoc.test_loc_getitem_nested_indexer8  s
   	& ''/IIc%j0x
 R1a&!0  
#&u#3
 
 S Nc$9y0PQw' R VVGVO,FvZ-D-DT-J
 	v0 RQ s    D
Dc                     [         R                  " SS/5      nU" SS/US9nSUR                  S'   U" SS/US9n[        R                  " X45        g )Nr   rk   r   rk   r	   r   r   r   r   )r   from_tuplesr%   rD   assert_equal)r*   frame_or_seriesmiobjrS   s        r   )test_multiindex_loc_one_dimensional_tuple;TestMultiIndexLoc.test_multiindex_loc_one_dimensional_tupleg  sP    ##Z$<=q!fB/"Aq64
&r   r   r   r   c                     [         R                  " SS/5      n[        SS/US9nSUR                  US S 24'   [        SS/US9n[        R
                  " X45        g )Nr   r   r	   r   r   r   r   r   r   r%   rD   rF   )r*   r   r   r   rS   s        r   -test_multiindex_one_dimensional_tuple_columns?TestMultiIndexLoc.test_multiindex_one_dimensional_tuple_columnso  sY     ##Z$<=Ab)
aV2.
c,r   zindexer, exp_valueN      ?r	   r   c                     [         R                  " SS/5      n[        SS/SS//USS/S	9nS
UR                  USS/4'   [        / SQSSX"//U/ SQS	9n[        R
                  " XE5        g )Nr   r#   r5   r	   r   r#   r5   r   r   r   r   r   r   )r	   r   r   r   r   r   r   r   r   )r*   r   	exp_valuer   r.   rS   s         r   )test_multiindex_setitem_columns_enlarging;TestMultiIndexLoc.test_multiindex_setitem_columns_enlargingx  s~    
 ##VV$45AA'rC:F&)wc
"#1i;<(

 	b+r   c           	         [         R                  " SSSS9n/ SQn[        R                  " X/SS/S9n[	        S	US
S/S9nS UR                  SS9SSS/4'   [	        S S /S	S	/S S /S	S	/S	S	/S	S	//US
S/S9n[        R                  " XE5        g )N
2001-01-01Dr   )freqperiods)i1i2i3date
identifierr@           rk   r"   r   r   r   r
  r  )pd
date_ranger   r   r   r%   rD   rF   )r*   datesidsr   r.   rS   s         r    test_multiindex_setitem_axis_set2TestMultiIndexLoc.test_multiindex_setitem_axis_set  s    la@ ''V\<RSs%#s<59A|dD\12tc
tc
c
c
 #J
 	b+r   c                 @   [         R                  " [        R                  " SSS9[	        SS/5      /5      n[        SUS9n[        SUS S S9n[        R                  " X#/SS9nUR                  5       nUR                  S	S
 n[        R                  " Xe5        [        X#S.5      nUR                  S	S
 n[        R                  " Xe5        [        R                  " X#R                  UR                  5      /SS9nUR                  S	S
 n[        R                  " Xe5        g )N20110101r   r	  r   r   r	   r   r   z
2011-01-01z
2011-01-02r   r	   )r   r   r  r  r   r   concatr&   r%   rD   rF   r   rp   r   )r*   midxser1ser2r.   rS   rt   s          r   "test_sorted_multiindex_after_union4TestMultiIndexLoc.test_sorted_multiindex_after_union  s    &&]]:q15#s3DE
 at$atBQx(YY|!,779\2
f/4)*\2
f/YYll4::67a@\2
f/r   c           	      ^   [        [        R                  " [        S5      [        S5      [        S5      /5      S/S9nUR                  [
        R                  S S 2SS S 24      n[        [        R                  " [        S5      [        S5      /5      S/S9n[        R                  " X#5        g )Nabcdr   Valr   r   )	r   r   r   r'   r%   r   s_rD   rF   )r*   r.   rP   rS   s       r   test_loc_no_second_level_index0TestMultiIndexLoc.test_loc_no_second_level_index  s    ))4:tDz49*MNG
 ffRUU1c19%&))4:tCy*ABUG
 	c,r   c                     [        / SQ/ SQ/ SQ/ SQS.5      n[        R                  " [        SS9   UR                  S     S S S 5        g ! , (       d  f       g = f)	Nr   )r   r   r   )r   hr   )r   r   l)r   )r	   r#   r   r   )r   r5   z(1, 4)r`   )r   r	   r5   )r   rc   rd   re   r%   rf   s     r   test_loc_multi_index_key_error0TestMultiIndexLoc.test_loc_multi_index_key_error  sE    ''''	
 ]]895FF9 655s   A
Ar   )(__name__
__module____qualname____firstlineno__rc   markparametrizer/   rT   rg   ru   r   r   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,  __static_attributes__r   r   r   r   r      s   [[Yu6. 7."-8	11>1<060 [[ZAq6Aq6*:aS"IAPR|)TU	 V	&0.18	04 [[4UBJJN [[4UBJJN'1'1R' [[Y#8- 9- [[dS1FBFF3CD
,
,,.0(
-r   r   zindexer, posrk   r#   r  Er   r   bahc                 l   [         R                  " / SQ/ SQ/SS/S9n[        [        R                  " SSS9US	9R                  5       nUR                  U   nUR                  S
:X  aA  U / :w  a;  [        R                  " [        [        U 5      S9   UR                  U      S S S 5        g U [        S 5      SS/4:X  a2  [        R                  " [        SS9   UR                  U      S S S 5        g UR                  U    n[        R                  " XT5        g ! , (       d  f       g = f! , (       d  f       g = f)Nry   r   r    r   oner!   r@   r{   r   r>   r   r   r`   r   r7  z'bah')r   r   r   r   r   rH   rG   sizerc   rd   re   r   r%   r   rD   rq   )r   r   idxrs   rS   rt   s         r   7test_loc_getitem_duplicates_multiindex_missing_indexersr=    s     
!
!	/0C 1G,C
8
C
C
ECxx}H}}gm]]83w<8GGG 98	U4[5%.1	1]]873GGG 43 !
v0 98 43s   DD%
D"%
D3columns_indexerc                 x   [         R                  " / SQSS/45      n[        [        R                  R                  S5      R                  S5      [        S5      US9nUR                  SS	S
9n[        [        S5      UR                  / 5      S   S9nUR                  S S 2U 4   n[        R                  " XC5        g )Nr9  alphabetar   r   r   r   r   r   r	   )levelr   )r   r   r   r   r   r   r   r(   rH   rp   r%   rD   rF   )r>  multi_indexr.   rS   rt   s        r   4test_loc_getitem_duplicates_multiindex_empty_indexerrE    s     ))+@7FBS*TUK	
		a 008Ah
B
 
QQ	'BuQx1D1DR1H1KLHVVA&'F&+r   c                      [        [        R                  [        R                  /SS//[        R
                  " SS/5      SS/S9n U R                  S   n[        R                  nX:X  d   eg )	NmeanmedianfunctsrG  )rJ  rH  functionr   r_   )rK  rI  )r   r   rG  rH  r   r   r%   r.   rt   rS   s      r   =test_loc_getitem_duplicates_multiindex_non_scalar_type_objectrM    sk     

''299	12&&(:<P'QR6"
B
 VV23FwwHr   c                     [        [        R                  " S5      [        R                  " S5      [        R                  R	                  S5      R                  S5      [        R                  R	                  S5      R                  S5      S.5      R                  SS/5      n U R                  S   nU R                  SS S 24   n[        R                  " X!5        g )Nr\   r   r  r   r   )r   r   )
r   r   r   r   r   r   rC   r%   rD   rq   )r.   rS   rt   s      r   !test_loc_getitem_tuple_plus_slicerO    s    	22&&q)99"=&&q)99"=		

 ic
  vvd|HVVFAIF6,r   c                     U nUR                   S   nUSS  nUR                  R                  S5      Ul        [        R                  " X#5        g )Nr	   r   )r%   r   r   rD   rF   )r   r.   rt   rS   s       r   test_loc_getitem_intrR    sC    	.BVVAYF"#wH^^--a0HN&+r   c                     U n[         R                  " [        SS9   UR                  S     S S S 5        g ! , (       d  f       g = f)Nz^3$r`   r#   )rc   rd   re   r%   )r   r.   s     r   %test_loc_getitem_int_raises_exceptionrT  "  s,    	.B	xv	.
q	 
/	.	.s	   5
Ac                     U n[         R                  " [        SS9   UR                  S     S S S 5        SUR                  S'   SnUR	                  5       R                  S   nX2:X  d   eg ! , (       d  f       ND= f)Nz^\('bar', 'three'\)$r`   ))r    threer"   r   )rc   rd   re   r%   rH   )r+   r.   rS   rt   s       r    test_loc_getitem_lowerdim_cornerrW  (  sn    	)B 
x'>	?
$% 
@ %&BFF !H]]_  !67F 
@	?s   A**
A8c                     [        S[        S5      [        R                  " S/S/5      S9n SU S'   U R                  U R
                  S S 2S4'   [        R                  " [        R                  " U S   5      [        R                  " U R                  5      5        [        [        R                  [        S5      [        R                  " / S	Q5      S9n U R                  5       n[        R                  " S5      U R
                  S S 2S
4'   [        R                  " S5      UR                  S S 2S4'   [        R                   " X5        g )NstringabcdMain)anotherr:  r   r   labelsr5   ))rk   1)rk   2)r"   r^  r"   r   )r   r'   r   r   r   r%   rD   assert_numpy_array_equalr   asarrayr4  r(   r   r&   r   rG   rF   )r.   rS   s     r   $test_loc_setitem_single_column_slicerb  6  s    	6l''&3E(FG
B
 BxL((BFF1h;

2h< 8"**RXX:NO 

Ah&&'KL
B
 wwyHYYq\BFF1c6N))A,HMM!Q$"'r   c           
      \   SS[         R                  4SS[         R                  4SS[         R                  4SS[         R                  4SSSS	[         R                  4SS
[         R                  4/n[        [         R                  " S5      [	        / SQ5      [
        R                  " U/ SQS9S9nUR                  S   R                  S   n[        [         R                  " S5      [	        [         R                  /U (       d  SOSSS9[	        / SQ5      S9n[        R                  " X45        g )NzGood Thingsrz   Rz
Bad ThingsT)Okay ThingsNr"   )rf  rg  r  rf  r"   r  )r[   r5   )d1d2d3d4)u1u2u3r@   r_   r+  objectr   rn  )r?   r   r   )
r   r4  r   onesr   r   r   r%   rD   rF   )using_infer_stringtupsr.   rt   rS   s        r   test_loc_nan_multiindexrs  M  s     
RVV$	RVV$	sBFF#	sBFF#!!	RVV$	RVV$	D 

./$$T1CD
B
 VVM"&&s+F
VVH"4(%

 ./H &+r   c                     [         R                  " SSSS9n Sn[        R                  " X4SS9n[	        USS	9nUR
                  S
   nUR
                  U S   S4S4   n[        R                  " U5      (       d   e[        R                  " U5      (       d   eUR
                  S
   n[        R                  " U5      (       d   eg )N2013Q12013Q4Q)r  )W  i  i  )PeriodCVRr@   )	OMSOMKRES	DRIFT_IND
OEVRIG_INDFIN_INDVARE_UDLOEN_UDFIN_UDr   ))ru  rx  r{  r   rx  r{  )r  period_ranger   r   r   r%   r   isnan)r   r   r<  r.   rt   alts         r   test_loc_period_string_indexingr  k  s    
(5AA

!
!1&0A
BC	


B VV+,F
&&!A$u$
%C88C=== 88F
&&(
)C88C===r   c            
         [         R                  " SS/5      n [        R                  " X /SS/S9n[	        SS/SS	/S
S/SS//USS/S9nUR
                  U S   UR                  R                  S5      S:  4S4   n[        S/S[        R                  " [         R                  " S5      [         R                  " S5      4/SS/S9S9n[        R                  " X45        g )Nz
2017-05-04z
2017-05-05Idx1Idx2r@   r	   r   r#   r5   r   r   r$   C1C2rM   r   r)   r   r   )r  to_datetimer   r   r   r%   r   get_level_valuesr   r   	TimestamprD   rq   )dt_idxm_idxr.   rt   rS   s        r   test_loc_datetime_mask_slicingr    s    ^^\<89F##V$4VV<LME	!fq!fq!fq!f-UT4L
B VVVAY!:!:1!=!LNPTTUF	
$$ll<(",,|*DEF6"
H 6,r   c                      [         R                  " S5      n [        S[        R                  " SU 4/SS/S9SS9nUR
                  S S 2U /4   n[        R                  " X!5        g )N2000r	   r   r   r@   r   )r   r   )r  r  r   r   r   r%   rD   rq   )r  rs   rt   s      r   &test_loc_datetime_series_tuple_slicingr    s^    <<D
	$$sDk]3*EC
 WWQYF6'r   c                  B   [        SS/SS/SS/SS//[        R                  " / SQSS	/S
9SS/S9n [        R                  " SS/SS	/S
9nU R                  US S 24   n[        SS/SS/SS//[        R                  " / SQSS	/S
9SS/S9n[        R
                  " X#5        g )Nr   r	   r   r   r   r   )r  )r	   r   r	   r	   r  r   r  r@   authorpricer  r  r  )r  r  r  r   )r   r   r   r%   rD   rF   )r.   r<  rt   rS   s       r   test_loc_with_mi_indexerr    s    	Aha3(S!H5$$,Wf4E
 7#
B 
 
 &&!1'69J
KCVVCF^F
qC8c1X&$$%=gvEVW7#H
 &+r   c                  p   [         R                  " SSSS9n [        [        S5      U S9nUR	                  5       nXS'   UR                  SSS	9nUR                  R                  S
:X  d   eUR                  R                  U S   5        UR                  U S      nUR                  S/   R                  S 5      n[        R                  " XE5        US   nUR                  R                  S
:X  d   eUR                  U S      nUR                  S/   R                  S 5      n[        R                  " XE5        g )Nz
2016-01-01r#   z
US/Pacific)r	  tzr   r	   r   T)append)Nr   )r  r  r   r(   to_framerC   r   rA   get_locr%   rG   r   rD   rF   rq   )dtirs   r.   df2rt   rS   r  s          r   test_loc_mi_with_level1_named_0r    s   
--aL
AC
q
%C	BqE
,,q,
&C99??i'''IIc!fWWSV_Fxx}&&t,H&+q6D::y(((XXc!fFyy!~''-H6,r   c            	      t   [        / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/SR                  S5      S	9n U R                  S
S/5      R                  5       nUR                  S[        S5      4S S 24   R                  S5      nUR                  S   R                  [        S5      S S 24   n[        R                  " X#5        g )N)z20160525 13:30:00.023MSFT51.95r  )z20160525 13:30:00.048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   tickertimer  z2016-05-25 13:30:00r   )	r   splitrC   rH   r%   r   r   rD   rF   )r.   r  rP   rS   s       r   test_getitem_str_slicer    s    	?A????	
 &++C0

B ,,&)
*
5
5
7C
''65!678!;
<
F
Fq
ICwwv""5)>#?#BCH#(r   c                      [         R                  " / SQSSS9n / SQn/ SQn[        R                  " XU/5      n[	        [        S5      U[        R                  S9nUR                  U S	   S
S4   nUS:X  d   eg )N)z20181101 1100z20181101 1200z20181102 1300z20181102 1400datetimer  )r   r  )rk   rk   ZW)r"   rz   rw  Fr5   r   r   rk   r"   r  )	r  PeriodIndexr   rJ   r   r(   r   r   r%   )pilev2lev3r   rs   rt   s         r   !test_3levels_leading_period_indexr    su    	L
B
  DD			4 0	1B
q2::
6CWWbeS#&'FS==r   c                   &    \ rS rSrS rS rS rSrg)TestKeyErrorsWithMultiIndexi  c                    [        [        R                  " S5      R                  SS5      / SQS9nUR	                  SS/5      n[
        R                  " [        SS	9   UR                  S
     S S S 5        g ! , (       d  f       g = f)Nr7   r5   r#   ry   r   rk   r"   6r`   r	   r   )	r   r   r   r   rC   rc   rd   re   r%   )r*   r.   r  s      r   !test_missing_keys_raises_keyerror=TestKeyErrorsWithMultiIndex.test_missing_keys_raises_keyerror  sZ    ryy},,Q2OLllC:&]]83/GGFO 0//ri   c                     [        S[        R                  " SS//S-  5      S9n[        R                  " [
        SS9   UR                  S     S S S 5        g ! , (       d  f       g = f)	Nr   r   r	   r   r   z\(0, 3\)r`   )r   r#   )r   r   r   rc   rd   re   r%   )r*   rs   s     r   !test_missing_key_raises_keyerror2=TestKeyErrorsWithMultiIndex.test_missing_key_raises_keyerror2  sH    Rz66Ax!|DE]]8;7GGDM 877s   A
A%c                    [         R                  " [        R                  " / SQ5      [        R                  " / SQ5      [        R                  " / SQ5      // SQS9n[	        [        R
                  R                  S5      R                  S5      US9nS	n[        R                  " [        US
9   UR                  SS[        S 5      4S S 24     S S S 5        [        R                  " [        US
9   UR                  R                  SS[        S 5      45        S S S 5        [        R                  " [        SS
9   UR                  SS S 24     S S S 5        g ! , (       d  f       N= f! , (       d  f       NU= f! , (       d  f       g = f)Nr   r   r   r   )r^  r_  r_  3)r   r   r   r   )r:  r!   rV  r@   r   r5   r#   r   z'\('b', '1', slice\(None, None, None\)\)r`   r   r^  z\('b', '1'\))r   r^  )r   rJ   r   rI   r   r   r   rc   rd   re   r%   r   r   get_locs)r*   r   r.   msgs       r   test_missing_key_combination8TestKeyErrorsWithMultiIndex.test_missing_key_combination	  s   ##-.-.-.
 *
 ryy,,Q/66v>bI8]]83/FFCeDk*A-. 0]]83/HHsCt56 0]]8?;FF:q=! <;	 0///;;s$   . E/(E&8E7
E#&
E47
Fr   N)r.  r/  r0  r1  r  r  r  r5  r   r   r   r  r    s    "r   r  c                 l    U nUS   nUS   nUR                   S   S   n[        R                  " X45        g )Nrk   )rn   r   )r%   rD   rq   )rr   r.   rs   rt   rS   s        r   test_getitem_loc_commutabilityr    s9    	8B
S'C\Fvvgs#H6,r   c                  v   [        / SQSS[        R                  // SQS.5      R                  SS/5      n U R                  S/   n[        SS	/0[
        R                  " S
/SS/S9S9n[        R                  " X5        U R                  S   n[        SS	/0[        S	/SS9S9n[        R                  " X5        g )N)r	   r   r   r   r   )r	   r5   r   )r:   ind1ind2r  r  r:   r	   )r   r	   r@   r   r   )
r   r   r4  rC   r%   r   r   rD   rF   r   rL  s      r   test_loc_with_nanr  %  s    	Cbff#5yI
i !  VVSE]F	J22H:ffEUVH &+VVC[F%!UA3V-DEH&+r   c                      [        / SQ// SQS9R                  / SQ5      n [        R                  " [        SS9   U R
                  S     S S S 5        g ! , (       d  f       g = f)Nr   r  r   r   z\(2\.0, 2\.0, 3\.0\)r`   )       @r        @)r   rC   rc   rd   re   r%   r.   s    r   test_getitem_non_found_tupler  5  sI    	L>+?	@	J	J
B 
x'>	?
 
@	?	?s   A
A!c                     [         R                  " SSS9n [        R                  " U /5      nUR	                  S5      [        SSS 5      :X  d   eU R	                  S5      [        SSS 5      :X  d   eUS S S2   R	                  S5      nU S S S2   R	                  S5      nX#:X  d   eUR                  S5      R	                  S5      nU R                  S5      R	                  S5      nX#:X  d   eUR                  U5      R	                  S5      nU R                  U 5      R	                  S5      n[        R                  " UR                  5       S   U5        g )Nr  d   r  z2001-01r      r   )r  r  r   rJ   r  r   repeatr  rD   r`  nonzero)r   r   r%   rS   s       r   test_get_loc_datetime_indexr  >  s"   MM,4E				(B::i E!R$6666==#uQD'9999
SqS'//)
$CSqSz!!),H??
))A,

y
)C||A&&y1H??
))B-

	
*C||E"**95Ha 0(;r   c                  &   [         R                  " SS/SS//5      n [        SS/SS/SS	/S
S//U S9nSSS/4n[        R                  " SS/SS//5      UR
                  US S 24'   [        SS/SS/SS	/S
S//U S9n[        R                  " X5        g )Nr   r   r   r	   r   r#   r5   r   r   r$   r[   r   r{   r\   r8   r7   )r   r   r   r   rI   r%   rD   rF   )r   r.   r   rS   s       r   ,test_loc_setitem_indexer_differently_orderedr  T  s    		 	 3*q!f!5	6B	QFQFQFQF32	>BQFmGAr7RH"56BFF7A:2r(QGaVaV<BGH"'r   c                      [        SS/SS/SS/SS/// S	Q/ S
Q/SS/S9n U R                  [        S 5      SS/4S S 24   n[        SS/SS/SS/SS/// SQ/ SQ/SS/S9n[        R                  " X5        g )Nr	   r   r#   r5   r   r   r$   r[   r  r	   r   r	   r   r   r   r   )r   r   r   r   )r   r   r	   r	   )r   r%   r   rD   rF   rL  s      r   5test_loc_getitem_index_differently_ordered_slice_noner  _  s    	
Q!Q!Q!Q(#\2c

B
 VVU4[1a&)1,-F
Q!Q!Q!Q(#\2c
H
 &+r   r   )r	   r   r$   r   r   r#   r[   r$   )r	   r   r$   r   r#   r[   c                 f   [        S/S-  [        R                  " / SQ5      S/S9nUR                  [	        S 5      U 4S S 24   n[        S/S-  / SQ/ SQ/S/S9n[
        R                  " X#5        UR                  UR                  R                  U SS9S S 24   n[
        R                  " X!5        g )	Nr	   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$   r$   r   r#   r[   )rC  )	r   r   r   r%   r   rD   rF   r   isin)r   r.   rt   rS   s       r   @test_loc_getitem_index_differently_ordered_slice_none_duplicatesr  o  s     
	
a$$L
 
B VVU4['*A-.F	
a')ABH
 &+VVBHHMM'M3Q67F&%r   c                  d   [         R                  " S/S/S/// SQS9n [        SS/0U S9nUR                  SS	/5      nUR                  SS S 2S4   n[
        R                  " X25        [        S/U S9nUR                  SS S 2S4   n[        S/[        S/S
S9S9n[
        R                  " X25        g )Nr   r   zr   r@   r   r   r   r   r   r  )
r   rJ   r   r   r%   rD   rF   r   r   rq   )r   r.   rS   rt   rs   s        r   3test_loc_getitem_drops_levels_for_one_row_dataframer    s    			#u 5_	MB	C!:R	(B||QF#HVVCCK F&+
!B
CWWS!S[!Fqcu3!78H6,r   c                  6   [         R                  " / SQSS//5      n [        [        R                  " S5      U S9nUR
                  S S 2SS/4   n[        [        R                  " S5      [         R                  " / S	Q5      S9n[        R                  " X#5        g )
Nry   r	   r   rB  r   r"   rk   )r   r5   ))r"   r	   )r"   r   )rk   r	   )rk   r   )	r   r   r   r   zerosr%   r   rD   rF   )colsr.   rt   rS   s       r   $test_mi_columns_loc_list_label_orderr    s{    ""OaV#<=D	288F#T	2BVVASzM"F
&&'OPH &+r   c                  P   [        [        R                  " S5      R                  S5      / SQ/ SQ// SQ/ SQ/S9n SS	/U R                  l        S
S/U R                  l        [        R                  " [        SS9   U R                  SS/S4     S S S 5        g ! , (       d  f       g = f)Nr7   r  r  r  )Ohior  Colorado)GreenRedr  r   key1key2statecolorz\[2\] not in indexr`   r   r   r  )r   r   r   r   r   rA   r)   rc   rd   re   r%   )r,   s    r   $test_mi_partial_indexing_list_raisesr    s    
		"f%#\2-/HIE
  (EKK"G,EMM	x'=	>		3(J&' 
?	>	>s   :B
B%c                      [        [        S5      [        R                  " SS/SS//5      S9n [        R
                  " [        SS9   U R                  S	S
/     S S S 5        g ! , (       d  f       g = f)Nr5   r	   r   r   r   r   z\['not' 'found'\] not in indexr`   notfound)r   r(   r   r   rc   rd   re   r%   )r   s    r   (test_mi_indexing_list_nonexistent_raisesr    sW    uQxz66Ac
7KLMA	x'I	J	ug 
K	J	Js   A""
A0c            	         [        / SQ/ SQ/SS/[        R                  " SS/SS//5      S9n S	U R                  S
'   SU R                  S'   SU R                  S'   [        / SQ/ SQ/ SQS[        R
                  [        R
                  [        R
                  /// SQ[        R                  " SS/SS//5      S9n[        R                  " X5        g )N)r	   r   r   r   )r#   r5   r$   r[   r   r	   r   rk   r"   r   r   r   r#   )r   r	   rk   )r   r  )r   r  g      @g      @)r  r6   g      @g       @)r  g      r   r   r  )r   r   r   r   )r   r   r   r%   r   r4  rD   rF   )rt   rS   s     r   'test_mi_add_cell_missing_row_non_uniquer    s    	|$Cj''!Q#s(<=F
 FJJsO !FJJ} !FJJ}  "&&"&&"&&)		
 #''!Q#s(<=	H &+r   c                  P   [        SSS.[        R                  " S/S//SS/S9S	9n U R                  S
   nUS:X  d   e[	        U[
        R                  5      (       d   eU R                  S/S4   R                  S   nUS:X  d   e[	        U[
        R                  5      (       d   eg )Nr   r   r   r#   r5   r   r   r@   r   )r   r   r   r   r   )r   r   rJ   r%   
isinstancer   r   rG   )r.   rt   s     r   $test_loc_get_scalar_casting_to_floatr    s    	*"8"81#sCQT:"V
B VVK FQ;;fbhh''''VVVHcM"''*FQ;;fbhh''''r   c                     [         R                  " SS/SS//SS/S9n [        U [        R                  S9nUR
                  S   n[        [        R                  [        R                  /[        SS/SS	9S
9n[        R                  " X#5        g )Nr   r   rk   r"   r	   r   r@   r   r  r   )
r   r   r   r   r   r%   r4  r   rD   rq   )r<  s2rt   rS   s       r   )test_loc_empty_single_selector_with_namesr    st    

!
!C:Sz":1a&
IC	c	,BVVC[Frvvrvv&eS#JQ.GHH6,r   c                      [        / SQ/ SQ[        S5      S.5      n U R                  SS/5      n [        R                  " [
        SS9   U R                  S	     S S S 5        g ! , (       d  f       g = f)
N)r  r     r  ,  r  )r\   r\   r      r  !   r   ry   rk   r"   z^1$r`   )r  r	   )r   r(   rC   rc   rd   re   r%   r  s    r   'test_loc_keyerror_rightmost_key_missingr
    sZ     
/)q	

B 
sCj	!B	xu	-
x 
.	-	-s   	A""
A0c                  z    [         R                  " SS/5      n [        SS/U S9nUR                  S   nUS:X  d   eg )Nr   )r#   )r5   r   r	   r   r   )r   r   r   r%   )r   rs   rt   s      r   *test_multindex_series_loc_with_tuple_labelr    sA    			 5	6B
!Qr
"CWW[!FQ;;r   )6numpyr   rc   pandas.errorsr   pandasr  r   r   r   r   pandas._testing_testingrD   fixturer   r   r2  r3  r   
IndexSlicer=  rE  rM  rO  rR  rT  rW  rb  rs  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r  r   r   r   <module>r     s     '    T Tq qh 	R
a
sR
sR
	q5'z	"E!T1$56	q5%.(	)5D!+<=11* *b%+->%",NO, P, 
-,(.,<@-&	(,&-0)( !" !"H-,  <,(,  %=?Q$RS& T&*-	,
( ,.
(-r   