
    Mh                        S SK rS SKrS SKJr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\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. r0S/ r1S0 r2S1 r3S2 r4S3 r5S4 r6S5 r7g)6    N)IndexingErrorPerformanceWarning)	DataFrameIndex
MultiIndexSeriesc                  &    [        / SQ// SQ/S/S9$ )zsingle level MultiIndex)foobarbazqux)r            first)levelscodesnames)r        [/var/www/html/env/lib/python3.13/site-packages/pandas/tests/indexing/multiindex/test_loc.pysingle_level_multiindexr      s     ,-l^G9 r   c                      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   r   r   )r   r   r   )   r   index)r   r   nprandomdefault_rngstandard_normal)r   r   r   s      r   %frame_random_data_integer_multi_indexr"      sL    !fi F!34Ef2ERYY**1-==fEUSSr   c                   b   \ rS rSrS 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&g )(TestMultiIndexLoc#   c                     UnSUR                   S'   UR                   S   S:X  d   eUR                  5       n[        [        S5      5      Ul        SUR                   S'   UR                   S   S:X  d   eg )N   )r   twoBr      )r(   r   )loccopylistrangecolumns)self multiindex_dataframe_random_dataframedfs       r   &test_loc_setitem_frame_with_multiindex8TestMultiIndexLoc.test_loc_setitem_frame_with_multiindex$   sq    0)*		%&yy,-222 ZZ\%(^
$% !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                  X"S.5      nUR                  SS/S9nSn[        R                  " [
        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                  " X{5        g ! , (       d  f       N= f)Ni  iX     M    )r   r   r   r      g      @      @      )amountcolnum)r@   rA   r@   rA   )keys)r<   r=   r   T)inplacer   dtyper   r?   )r8   r9   r:   r   )r   astype	set_indextmassert_produces_warningr   assert_frame_equalr,   iloc
sort_indexr   arrayr   from_arrays)r1   any_real_numpy_dtyperE   datar4   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   &2D22
E 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   r;   r      
   r;   r;   r_   r_   r`   r=   r0   r   z^2$match	r   r   r   r    r!   pytestraisesKeyErrorr,   r1   r4   s     r   0test_loc_getitem_multiindex_missing_label_raisesBTestMultiIndexLoc.test_loc_getitem_multiindex_missing_label_raisesL   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`   )rr   r      )reindexr   r,   rI   assert_series_equal)r1   /multiindex_year_month_day_dataframe_random_dataserrW   results        r   /test_loc_getitem_list_of_tuples_with_multiindexATestMultiIndexLoc.test_loc_getitem_list_of_tuples_with_multiindexW   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                  / / /[        R
                  S9[        R
                  S9nUR                  U   n[        R                  " XT5        g )Nr   r   r   ro   r*   C	   r   rQ   rE   r   r   r   r   r   r   r+   r_   rQ   r   rE   r   r   )rQ   rE   r   r   rE   r   rE   )
r   from_productr   r/   r   float64r,   rI   ru   r   )r1   r   xyrW   rx   y1emptys           r   test_loc_getitem_series)TestMultiIndexLoc.test_loc_getitem_series_   s-    ''O(DEU1XRZZ@Aq6N#))Aq6?*CD**

 q
v01v
v0 QF1a&)r
v0Bbjj1ELLR

S**

 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                  / / /[        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 )Nr|   r}   r   r   r   r   r   r   r   r   r   r   )r   r   r   r/   r   r   rN   r,   rI   ru   r   int64)r1   r   r   r   rW   rx   r   scalars           r   test_loc_getitem_array(TestMultiIndexLoc.test_loc_getitem_array~   s    ''O(DEU1XRZZ@HHaV#))Aq6?*CD**

 q
v0 ELLR

S

 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   r\   )ir   j)ro   ro   r*   )Xr   Yrc   r   r   r   axisr   )r   r   
r   r   r   r    r!   rL   	droplevelr,   rI   rK   r1   r4   rW   rx   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   r\   r]   r^   ra   rb   rc   r   r   r;   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r[   rf   rj   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2rm   zkey, posr   r;   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   r\   r]   r^   ra   rb   rc   znot in indexrd   rf   )r1   rR   posr4   s       r   &test_loc_multiindex_list_missing_label8TestMultiIndexLoc.test_loc_multiindex_list_missing_label   sb     II!!!$44V<
+k*
 ]]8>:FF3K ;::rm   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'\)$rd   r   r   z^\('a', 'd', 'g'\)$)r   r   gzToo many indexers)r   r   r   r   )	r   r/   r   r   rg   rh   ri   r,   r   )r1   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      ?r0   r=   r   r   r   r;   r|   r   )r/   strr   r   r   r   r    r!   r   rI   rK   arangereshaper,   )r1   r   
attributesattribute_valuesr   r4   rx   rW   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   rD   r'   r   r   r   r   r   r   r;   )r   r+   r_   r=   rs      r   )
r   r   r   r   r   r/   r,   rI   ru   rL   )r1   r   rW   rx   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                     Un[        [        R                  R                  S5      R	                  [        U5      5      US9nUR                   H  nX4     M	     g )Nr   r   )r   r   r   r    r!   lenvalues)r1   r   single_levelr   ks        r   test_get_loc_single_level+TestMultiIndexLoc.test_get_loc_single_level  sM    .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,   rI   rK   rL   r   )r1   r   r4   rx   rW   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   ndarrayrN   slice)indexer_typerB   s     r   convert_nested_indexerQTestMultiIndexLoc.test_loc_getitem_nested_indexer.<locals>.convert_nested_indexerF  s9    rzz)xx~%u$d|#%%r   r   r|   r   rD   Datar   r0   r`   r   r   r   c              3   8   >#    U  H  u  pT" X5      v   M     g 7fr   r   ).0r   r   r   s      r   	<genexpr>DTestMultiIndexLoc.test_loc_getitem_nested_indexer.<locals>.<genexpr>Y  s"      
#3 #<33#3s   zas an indexer is not supportedrd   )r   r   r;   r'   namer   )r   r   r   r   r   r   tuplezipsetrg   rh   	TypeErrorr,   r   rI   ru   )r1   r   r   r   r   r   r4   rB   typesindexerrx   rW   r   s               @r   test_loc_getitem_nested_indexer1TestMultiIndexLoc.test_loc_getitem_nested_indexer;  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   ro   r   ro   r   r   r   r   r   )r   from_tuplesr,   rI   assert_equal)r1   frame_or_seriesmiobjrW   s        r   )test_multiindex_loc_one_dimensional_tuple;TestMultiIndexLoc.test_multiindex_loc_one_dimensional_tuplej  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,   rI   rK   )r1   r   r   r   rW   s        r   -test_multiindex_one_dimensional_tuple_columns?TestMultiIndexLoc.test_multiindex_one_dimensional_tuple_columnsr  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   r;   r   r   r   r;   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   )r1   r   	exp_valuer   r4   rW   s         r   )test_multiindex_setitem_columns_enlarging;TestMultiIndexLoc.test_multiindex_setitem_columns_enlarging{  s~    
 ##VV$45AA'rC:F&)wc
"#1i;<(

 	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   periodsr   r   r   r   r   z
2011-01-01z
2011-01-02r   r   )r   r   pd
date_ranger   r   concatr-   r,   rI   rK   r   rt   r   )r1   midxser1ser2r4   rW   rx   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_rI   rK   )r1   r4   rT   rW   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   r;   z(1, 4)rd   )r   r   r;   )r   rg   rh   ri   r,   rj   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__r5   rX   rk   ry   r   r   r   r   r   rg   markparametrizer   r   r   r   r   r   r.   r   r   r   r   r   r   r   r   r   r   nanr  r  r  r  __static_attributes__r   r   r   r$   r$   #   sz   	.-:	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, posro   r   D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)Nr}   r
   r   r   oner)   rF   r   r   rD   r   r   rd   r
   r*  z'bah')r   r   r   r   r   rM   rL   sizerg   rh   ri   r   r,   r   rI   ru   )r   r   idxrw   rW   rx   s         r   7test_loc_getitem_duplicates_multiindex_missing_indexersr0    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 )Nr,  alphabetar   r'   r   r'   r   r   r   )levelr   )r   r   r   r   r   r    r!   r/   rM   rt   r,   rI   rK   )r1  multi_indexr4   rW   rx   s        r   4test_loc_getitem_duplicates_multiindex_empty_indexerr8    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functsr:  )r=  r;  functionr   rc   )r>  r<  )r   r   r:  r;  r   r   r,   r4   rx   rW   s      r   =test_loc_getitem_duplicates_multiindex_non_scalar_type_objectr@    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!   rH   r,   rI   ru   )r4   rW   rx   s      r   !test_loc_getitem_tuple_plus_slicerB    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   rI   rK   )r"   r4   rx   rW   s       r   test_loc_getitem_intrE    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$rd   r   )rg   rh   ri   r,   )r"   r4   s     r   %test_loc_getitem_int_raises_exceptionrG    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'\)$rd   ))r   threer*   r   )rg   rh   ri   r,   rM   )r2   r4   rW   rx   s       r    test_loc_getitem_lowerdim_cornerrJ    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   labelsr;   ))ro   1)ro   2)r*   rQ  r*   r   )r   r.   r   r   r   r,   rI   assert_numpy_array_equalr   asarrayr&  r/   r   r-   r   rL   rK   )r4   rW   s     r   $test_loc_setitem_single_column_slicerU  "  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 Thingsr~   Rz
Bad ThingsT)Okay ThingsNr*   )rY  rZ  r(  rY  r*   r(  )r_   r;   )d1d2d3d4)u1u2u3rF   rc   r  objectzstring[pyarrow_numpy]ra  )rE   r   r   )
r   r&  r   onesr   r   r   r,   rI   rK   )using_infer_stringtupsr4   rx   rW   s        r   test_loc_nan_multiindexrf  9  s     
RVV$	RVV$	sBFF#	sBFF#!!	RVV$	RVV$	D 

./$$T1CD
B
 VVM"&&s+F
VVH"4(:Q

 ./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)freq)W  i  i  )PeriodCVRrF   )	OMSOMKRES	DRIFT_IND
OEVRIG_INDFIN_INDVARE_UDLOEN_UDFIN_UDr   ))rh  rl  ro  r   rl  ro  )r
  period_ranger   r   r   r,   r   isnan)r   r   r/  r4   rx   alts         r   test_loc_period_string_indexingr{  W  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Idx2rF   r   r   r   r;   r'   r   r+   C1C2rQ   r   r0   r   r   )r
  to_datetimer   r   r   r,   r   get_level_valuesr   r   	TimestamprI   ru   )dt_idxm_idxr4   rx   rW   s        r   test_loc_datetime_mask_slicingr  w  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   rF   r   )r   r   )r
  r  r   r   r   r,   rI   ru   )daterw   rx   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  rF   authorpricer  r	  r  )r	  r  r  r   )r   r   r   r,   rI   rK   )r4   r/  rx   rW   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_framerH   r   r   get_locr,   rL   r   rI   rK   ru   )dtirw   r4   df2rx   rW   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   splitrH   rM   r,   r   r   rI   rK   )r4   r  rT   rW   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   rk  )ro   ro   ZW)r*   r~   rj  Fr;   r   r   ro   r*   g        )	r
  PeriodIndexr   rO   r   r/   r   r   r,   )pilev2lev3r   rw   rx   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)Nr=   r;   r   r}   r   ro   r*   rQ  rd   r   r   )	r   r   r   r   rH   rg   rh   ri   r,   )r1   r4   r  s      r   !test_missing_keys_raises_keyerror=TestKeyErrorsWithMultiIndex.test_missing_keys_raises_keyerror  sZ    ryy},,Q2OLllC:&]]83/GGFO 0//rm   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\)rd   )r   r   )r   r   r   rg   rh   ri   r,   )r1   rw   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   )rQ  rR  rR  3)r   r   r   r   )r-  r)   rI  rF   r   r;   r   r   z'\('b', '1', slice\(None, None, None\)\)rd   r   rQ  z\('b', '1'\))r   rQ  )r   rO   r   rN   r   r   r    rg   rh   ri   r,   r   r   get_locs)r1   r   r4   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!  r"  r#  r  r  r  r'  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 )Nro   )rr   r'   )r,   rI   ru   )rv   r4   rw   rx   rW   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   r;   r'   )r@   ind1ind2r  r  r@   r   )r   r   rF   r   r   )
r   r   r&  rH   r,   r   r   rI   rK   r   r?  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\)rd   )       @r        @)r   rH   rg   rh   ri   r,   r4   s    r   test_getitem_non_found_tupler  !  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 )Nz
2001-01-01d   r  z2001-01r      r   )r
  r  r   rO   r  r   repeatr  rI   rS  nonzero)r   r   r,   rW   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   r;   r'   r   r+   r_   r   r   r`   r>   r=   )r   r   r   r   rN   r,   rI   rK   )r   r4   r   rW   s       r   ,test_loc_setitem_indexer_differently_orderedr  @  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   r;   r'   r   r+   r_   r  r   r   r   r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r,   r   rI   rK   r?  s      r   5test_loc_getitem_index_differently_ordered_slice_noner  K  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_   )r6  )	r   r   r   r,   r   rI   rK   r   isin)r   r4   rx   rW   s       r   @test_loc_getitem_index_differently_ordered_slice_none_duplicatesr  [  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   rF   r   r   r   r   r   r  )
r   rO   r   r   r,   rI   rK   r   r   ru   )r   r4   rW   rx   rw   s        r   3test_loc_getitem_drops_levels_for_one_row_dataframer  q  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 )
Nr}   r   r   r5  r   r*   ro   )r'   r;   ))r*   r   )r*   r   )ro   r   )ro   r   )	r   r   r   r   zerosr,   r   rI   rK   )colsr4   rx   rW   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)Nr=   r  r  r  )Ohior  Colorado)GreenRedr  r   key1key2statecolorz\[2\] not in indexrd   r   r   r  )r   r   r   r   r   r   r0   rg   rh   ri   r,   )r3   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)Nr;   r   r   r   r   r   z\['not' 'found'\] not in indexrd   notfound)r   r/   r   r   rg   rh   ri   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   r;   r+   r_   r   r   r   ro   r*   r   r   r   r   )r   r   ro   )r   r  )r   r  g      @g      @)r  r<   g      @g       @)r  g      r   r   r  )r   r   r   r   )r   r   r   r,   r   r&  rI   rK   )rx   rW   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   r;   r   r   rF   r   )r   r   r   r   r   )r   r   rO   r,   
isinstancer   r   rL   )r4   rx   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   ro   r*   r   r   rF   r   r  r   )
r   r   r   r   r   r,   r&  r   rI   ru   )r/  s2rx   rW   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   r}   ro   r*   z^1$rd   )r  r   )r   r/   rH   rg   rh   ri   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   )r;   r'   r   r   r   )r   r   r   r,   )r   rw   rx   s      r   *test_multindex_series_loc_with_tuple_labelr     sA    			 5	6B
!Qr
"CWW[!FQ;;r   )8numpyr   rg   pandas.errorsr   r   pandasr
  r   r   r   r   pandas._testing_testingrI   fixturer   r"   r$   r$  r%  r   
IndexSlicer0  r8  r@  rB  rE  rG  rJ  rU  rf  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R Rj 	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   