+
    yȇi                        ^ RI t^ RIt^ RIHt ^ RIt^ RIHtHtH	t	H
t
 ^ RIHt ]P                  R 4       t ! R R4      t]P"                  P%                  R. . 3R.]! ^4      3RR	.. 3R	R
.. 3R	.. 3]P(                  RR.3,          ]! ^R^4      3]P(                  RRR.3,          ]! ^R^4      3.4      R 4       t]P"                  P%                  R. ]! R4      3R.. 3.4      R 4       tR tR tR tR tR tR tR tR tR tR t R t!R t"R t#R t$ ! R R 4      t%R! t&R" t'R# t(R$ t)R% t*R& t+]P"                  P%                  R'. R2O. R3O.4      R( 4       t,R) t-R* t.R+ t/R, t0R- t1R. t2R/ t3R0 t4R1 t5R# )4    N)IndexingError)	DataFrameIndex
MultiIndexSeriesc                      ^ ^.. RO.p . RO. RO.p\        WR7      p\        \        P                  P	                  ^4      P                  R4      VR7      # )r   levelscodesindexr         )r   r   r   r   r   r   )r   r   r   r   r   r   )   r   )r   r   nprandomdefault_rngstandard_normal)r
   r   r   s      y/Users/max/.openclaw/workspace/postharvest/venv/lib/python3.14/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                     a  ] tR t^t o ]P
                  P                  RRR.4      R 4       tR tR t	R t
R tR	 tR
 tR tR t]P
                  P                  R^^.^ ^.3^.. 3^^.. 3.4      R 4       tR tR tR tR tR t]P
                  P                  R]]]]]P6                  ]]34      ]P
                  P                  R]]]]]P6                  ]]34      R 4       4       tR t]P
                  P                  RR$R.4      R 4       t ]P
                  P                  R]! R4      R3R%]PB                  3.4      R 4       t"R t#R  t$R! t%R" t&R#t'V t(R# )&TestMultiIndexLochas_refTFc                D   TpV'       d
   VR ,          p^VP                   R&   VP                   R,          ^8X  g   Q hVP                  4       p\        \        ^4      4      Vn        V'       d
   VR ,          p^VP                   R&   VP                   R,          ^8X  g   Q hR# )NNNN)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                   TpR ^ R^R^^^R^R/R^ R^R^R^R^R/R^ ^^^^^^^^^//p\        V4      pVP                  RVRV/4      pVP                  RR.R	7      pRp\        P                  ! V4      ;_uu_ 4        \        P
                  ! VP                  V,          VP                  R
,          4       RRR4       VP                  RR7      pVe   Q hVP                  V,          p\        P                  ! R.^,          VR7      p	\        P                  ! ^.^,          VR7      p
\        P                  ! W.RR.R7      p\        R . RO/VR7      p\        P
                  ! W4       R#   + '       g   i     L; i)amounti  iX  M    colg      @      @num)keysr   NNNT)inplacedtypenamesr   )r3      )   r0   r1   )r   astype	set_indextmassert_produces_warningassert_frame_equalr"   iloc
sort_indexr   arrayr   from_arrays)r'   performance_warningany_real_numpy_dtyper9   datar+   keyreturn_valuerescol_arryear_arrr   expecteds   &&&          r   test_loc_getitem_general*TestMultiIndexLoc.test_loc_getitem_general+   sh   $q#q#q#q#q#>AsAsAsAsAs;Ar1b!RB26

 t_YYueU34\\u~\.''(;<<!!"&&+rwwr{; = }}T}2###ffSk ((C519E288RD1HE2&&':5%.Qh8F
c, =<s   =:E..E>	c                :   \        \        P                  P                  ^4      P	                  R4      . RO. RO.. RO. R	O.R7      p\
        P                  ! \        RR7      ;_uu_ 4        VP                  ^,           RRR4       R#   + '       g   i     R# ; i
r   r&   r   z^2$matchN   rX   r   r      r      
   rZ   rZ   r\   r\   r]   r<   	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   sf    II!!!$44V<
+k*
 ]]8622FF1I 3222   +B		B	c                    VR ,          pVP                  VP                  R,          4      pVP                  RR.,          p\        P                  ! WC4       R# )A:1   3   NN)  rX   r]   )rl   rX      )reindexr   r"   r@   assert_series_equal)r'   /multiindex_year_month_day_dataframe_random_dataserrO   results   &&   r   /test_loc_getitem_list_of_tuples_with_multiindexATestMultiIndexLoc.test_loc_getitem_list_of_tuples_with_multiindexR   sF     >cB;;syy/0-78
v0r   c                   \         P                  ! . RO. R	O.4      p\        V\        ^	4      \        P
                  R7      p\        ^^.4      p\        . R
O\         P                  ! ^^.. R	O.4      \        P
                  R7      pVP                  V,          p\        P                  ! WT4       VP                  ^^.,          p\        P                  ! WT4       \        ^^.^^.R7      pVP                  V,          p\        P                  ! WT4       \        . \        P
                  R7      p\        . \        VP                  . . .R7      \        P
                  R7      pVP                  V,          p\        P                  ! WT4       R# )r   r   rI   r9   rI   r   r9   r   )rI   r9   r	   r   r9   Nr   r   rX   ri   r!   Cr   r   r   r      r\   )
r   from_productr   r%   r   float64r"   r@   ro   r
   )r'   r   xyrO   rr   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                    \         P                  ! . RO. RO.4      p\        V\        ^	4      \        P
                  R7      p\        P                  ! ^^.4      p\        . R	O\         P                  ! ^^.. RO.4      \        P
                  R7      pVP                  V,          p\        P                  ! WT4       \        P                  ! . 4      p\        . \        VP                  . . .R7      RR7      pVP                  V,          p\        P                  ! WT4       \        P                  ! ^4      p\        . R
O. RO\        P
                  R7      pVP                  V,          p\        P                  ! WT4       R# )r   rv   rw   r	   r   rx   Nry   rz   r|   r   )r   r~   r   r%   r   r   rE   r"   r@   ro   r
   int64)r'   r   r   r   rO   rr   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                *   \        \        P                  P                  ^4      P	                  R4      . RO. R	O.. RO. R
O.R7      pVP
                  ^ ^.,          P                  ^ 4      pVP                  R,          p\        P                  ! W24       VP
                  R^.3,          P                  ^ ^R7      pVP                  R,          p\        P                  ! W24       VP
                  ^.^.3,          P                  ^ 4      P                  ^ ^R7      pVP                  R,          P                  R,          p\        P                  ! W24       VP
                  ^ ^.,          pVP                  R,          p\        P                  ! W24       R# )r   ijrT   r   axisNrW   )r   r   r   )ri   ri   r!   )Xr   Y)r   r   )r   r   
r   r   r   r   r   rC   	droplevelr"   r@   rB   r'   r+   rO   rr   s   &   r   test_loc_multiindex_labels,TestMultiIndexLoc.test_loc_multiindex_labels   s8   II!!!$44V<$o6"O4
 77Aq6?,,Q/
f/ 771qc6?,,QQ,7
f/ 77A38$..q1;;AA;F(
f/ 77Aq6?
#
f/r   c                ,   \        \        P                  P                  ^4      P	                  R4      . RO. RO.. RO. RO.R7      pVP
                  ^ ^.,          P                  ^ 4      pVP                  ^,          p\        P                  ! W24       R# )r   rT   NrW   rY   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                :   \        \        P                  P                  ^4      P	                  R4      . RO. RO.. RO. R	O.R7      p\
        P                  ! \        RR7      ;_uu_ 4        VP                  ^,           RRR4       R#   + '       g   i     R# ; irS   r`   rd   s   & r   (test_loc_multiindex_missing_label_raises:TestMultiIndexLoc.test_loc_multiindex_missing_label_raises   sf    II!!!$44V<
+k*
 ]]8622FF1I 3222rg   zkey, posc                :   \        \        P                  P                  ^4      P	                  R4      . RO. RO.. RO. R	O.R7      p\
        P                  ! \        RR7      ;_uu_ 4        VP                  V,           RRR4       R#   + '       g   i     R# ; i)
r   rT   znot in indexrU   NrW   rY   r[   r^   r_   r`   )r'   rJ   posr+   s   &&& r   &test_loc_multiindex_list_missing_label8TestMultiIndexLoc.test_loc_multiindex_list_missing_label   sh     II!!!$44V<
+k*
 ]]8>::FF3K ;:::rg   c           	     `   \        \        ^4      \        P                  ! RR.RR.RR..4      R7      p\        P
                  ! \        RR	7      ;_uu_ 4        VP                  R,           R
R
R
4       \        P
                  ! \        RR	7      ;_uu_ 4        VP                  R,           R
R
R
4       \        P
                  ! \        RR	7      ;_uu_ 4        VP                  R,           R
R
R
4       R
#   + '       g   i     L; i  + '       g   i     Le; i  + '       g   i     R
# ; i)r\   abcdefr   z^\('a', 'b'\)$rU   Nz^\('a', 'd', 'g'\)$zToo many indexers)r   r   )r   r   g)r   r   r   r   )	r   r%   r   r~   ra   rb   rc   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BEE-  C]]=0CDDEE$% ED	 >=BBDDDs$   C6D	D6D		D	D-	c                   \        ^4       Uu. uF  pR\        V4      ,           NK  	  pp\        ^4       Uu. uF  pR\        V4      ,           NK  	  pp\        P                  ! W#.4      pR\        P
                  P                  ^4      P                  R	4      ,          R,           p\        WTR7      pWR,          p\        P                  ! We4       \        \        P                  ! ^4      P                  R
^4      \        P                  ! . RO. RO.4      R7      pVP                  ^^.3R3,          pVP                  ^^.,          p\        P                  ! Wg4       R# u upi u upi )r   	AttributeValueg?g      ?r&   r   r   N)r]      r   r   rX   rZ   ry   )r%   strr   r~   r   r   r   r   r   r@   rB   arangereshaper"   )r'   r   
attributesattribute_valuesr   r+   rr   rO   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                   \        \        P                  ! ^RR7      \        P                  ! \        ^4      . RO.4      4      pVP                  R,          pVP                  R,          p\        P                  ! W24       VP                  R,          p\        P                  ! W24       VP                  R,          p\        P                  ! W24       \        \        P                  ! ^RR7      \        P                  ! \        ^4      . RO.4      4      pVP                  . R	O,          pVP                  R
,          p\        P                  ! W24       R# )   r   r8   Nr   r   r   )r   r   r   N):r   rZ   Nr   ):NrZ   Nr   ):r   NNr   )r   r}   r\   r<   rm      ):r   rZ   r   r   )
r   r   r   r   r~   r%   r"   r@   ro   rC   )r'   r   rO   rr   s   &   r   test_loc_multiindex_incomplete0TestMultiIndexLoc.test_loc_multiindex_incomplete   s     IIb(##U1X$?@
 55$|$
v0{#
v0{#
v0 IIb(##U1X$?@
 66/0~&
v0r   c                    \        . RO.. RO.R.R7      p\        \        P                  P	                  ^4      P                  \        V4      4      VR7      pVP                   F  pW#,           K  	  R# )foofirst)r
   r   r;   r   N)r   r   bazqux)r   r   r   rX   )r   r   r   r   r   r   lenvalues)r'   single_levelr   ks   &   r   test_get_loc_single_level+TestMultiIndexLoc.test_get_loc_single_level  se    !01,PWy
 II!!!$44S5FG
 $$ADD %r   c                   \         P                  ! . RORR..4      p\        \        P                  P                  ^4      P                  R4      W4      pVP                  R,          pTp\        P                  ! W44       \         P                  ! . R	ORR..4      p\        \        P                  P                  ^4      P                  R4      W4      pVP                  R
,          pVP                  R,          p\        P                  ! W44       VP                  R,          pVP                  R,          pRR.Vn        \        P                  ! W44       VP                  R,          pV^
,          p\        P                  ! W44       R# )r   r   r   r6   :r   r   NN)r   r}   r\   )r   r   ):r   r\   Nr   r]         ):r   r   Nr   )r]   r   )r   r]   )r   r~   r   r   r   r   r   r"   r@   rB   rC   r   )r'   r   r+   rr   rO   s   &    r   test_loc_getitem_int_slice,TestMultiIndexLoc.test_loc_getitem_int_slice  s$    ''S#J(?@ryy,,Q/??GV
f/''Sz(BCryy,,Q/??GV!772;
f/ 773<s
f/b6
f/r   indexer_type_1indexer_type_2c                  a R  o. R
Op. ROp\         P                  ! W4.4      p\        \        P                  ! \        V4      RR7      VR.R7      p^
^.^^.3pW3p\        ;QJ d     . V3R l\        W4       4       F  NK  	  5M! V3R l\        W4       4       4      p	V\        J g   V\        J dE   \        P                  ! \        RR7      ;_uu_ 4        VP                  V	R3,           RRR4       R# VP                  V	R3,          p
\        . ROR\         P                  ! V4      R	7      p\        P                  ! W4       R#   + '       g   i     R# ; i)c                     V \         P                  8X  d   \         P                  ! V4      # V \        8X  d
   \        V!  # V ! V4      # N)r   ndarrayrE   slice)indexer_typer5   s   &&r   convert_nested_indexerQTestMultiIndexLoc.test_loc_getitem_nested_indexer.<locals>.convert_nested_indexerC  s9    rzz)xx~%u$d|#%%r   r   r8   Datar   r&   c              3   8   <"   T F  w  rS! W4      x  K  	  R # 5i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 supportedrU   Nnamer   r   ry   )r   r   rZ   r   )r   r~   r   r   r   r   tuplezipsetra   rb   	TypeErrorr"   r   r@   ro   )r'   r   r   r   r   r   r+   r5   typesindexerrr   rO   r   s   &&&         @r   test_loc_getitem_nested_indexer1TestMultiIndexLoc.test_loc_getitem_nested_indexer8  s%   	& ''/IIc%j0x
 R1a&!0 % 
#&u#3
%% 
#&u#3
 
 S Nc$9y0PQQw' R VVGVO,FvZ-D-DT-J
 	v0 RQ s   E

E	c                    \         P                  ! RR.4      pV! ^^.VR7      p^ VP                  R&   V! ^ ^.VR7      p\        P                  ! W44       R# )r   r   Nr   ri   r   ri   r   )r   from_tuplesr"   r@   assert_equal)r'   frame_or_seriesmiobjrO   s   &&   r   )test_multiindex_loc_one_dimensional_tuple;TestMultiIndexLoc.test_multiindex_loc_one_dimensional_tupleg  sP    ##Z$<=q!fB/"Aq64
&r   r   r   c                    \         P                  ! RR.4      p\        ^^.VR7      p^ VP                  VR3&   \        ^ ^.VR7      p\        P
                  ! W44       R# )r   r   r   Nr   r   r   r   r   r"   r@   rB   )r'   r   r   r   rO   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      ?c                    \         P                  ! RR	.4      p\        ^^.^^..VRR.R7      pRVP                  VRR.3&   \        . R
O^^W"..V. ROR7      p\        P
                  ! WE4       R# )r   r   r   r   r   r   r   Nr   r   rX   rZ   )r   r   r   r   r   r   r   r   r   )r'   r   	exp_valuer   r+   rO   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           	     8   \         P                  ! R R^R7      p. ROp\        P                  ! W.RR.R7      p\	        RVR	R
.R7      pRVP                  ^ R7      R RR.3&   \	        RR.RR.RR.RR.RR.RR..VR	R
.R7      p\        P                  ! WE4       R# )
2001-01-01D)freqperiodsi1i3date
identifierr:           ri   r!   r   Nr   )r	  i2r
  )pd
date_ranger   r~   r   r"   r@   rB   )r'   datesidsr   r+   rO   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                   \         P                  ! \        P                  ! R ^R7      \	        RR.4      .4      p\        ^VR7      p\        ^VR,          R7      p\        P                  ! W#.^R7      pVP                  4       pVP                  R,          p\        P                  ! We4       \        ^ V^V/4      pVP                  R,          p\        P                  ! We4       \        P                  ! W#P                  VP                  4      .^R7      pVP                  R,          p\        P                  ! We4       R# )	20110101r  r   r   r   :Nr   Nr   :z
2011-01-01z
2011-01-02NN)r   r~   r  r  r   r   concatr#   r"   r@   rB   r   rn   r   )r'   midxser1ser2r+   rO   rr   s   &      r   "test_sorted_multiindex_after_union4TestMultiIndexLoc.test_sorted_multiindex_after_union  s    &&]]:q15#s3DE
 at$atBx(YY|!,77912
f/4D)*12
f/YYll4::67a@12
f/r   c           	     n   \        \        P                  ! \        R 4      \        R4      \        R4      .4      R.R7      pVP                  \
        P                  R,          ,          p\        \        P                  ! \        R 4      \        R4      .4      R.R7      p\        P                  ! W#4       R# )abcdr   Valr   N)r   r   r   )	r   r   r~   r$   r"   r   s_r@   rB   )r'   r+   rL   rO   s   &   r   test_loc_no_second_level_index0TestMultiIndexLoc.test_loc_no_second_level_index  s    ))4:tDz49*MNG
 ffRUU9%&))4:tCy*ABUG
 	c,r   c                    \        R. ROR. ROR. R	OR
. RO/4      p\        P                  ! \        RR7      ;_uu_ 4        VP                  R,           RRR4       R#   + '       g   i     R# ; i)r   z(1, 4)rU   Nr   r   )r   rX   )r   r   r   r   r   )r   hr   )r   rZ   )r   r   l)r   r   rZ   )r   ra   rb   rc   r"   rd   s   & r   test_loc_multi_index_key_error0TestMultiIndexLoc.test_loc_multi_index_key_error  sS    	
 ]]8955FF9 6555s    AA/	r   r   r   ))__name__
__module____qualname____firstlineno__ra   markparametrizer,   rP   re   rs   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____classdictcell____classdict__s   @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, posri   r  Er   r   bahc                    \         P                  ! . RO. RO.RR.R7      p\        \        P                  ! ^	RR7      VR7      P                  4       pVP                  V,          pVP                  ^ 8X  dS   V . 8w  dL   \        P                  ! \        \        V 4      R7      ;_uu_ 4        VP                  V ,           R	R	R	4       R	# V \        R	4      RR
.38X  dC   \        P                  ! \        RR7      ;_uu_ 4        VP                  V ,           R	R	R	4       R	# VP                  V ,          p\        P                  ! WT4       R	#   + '       g   i     R	# ; i  + '       g   i     R	# ; i)ri   r   oner    r:   r   r8   r   rU   Nr8  z'bah'rz   r   r   r   )r   r~   r   r   r   rD   rC   sizera   rb   rc   r   r"   r   r@   ro   )r   r   idxrq   rO   rr   s   &&    r   7test_loc_getitem_duplicates_multiindex_missing_indexersr>    s     
!
!	/0C 1G,C
8
C
C
ECxx}H}}gm]]83w<88GGG 98	U4[5%.1	1]]8733GGG 43 !
v0 988 433s   *E	 E	E	E.	columns_indexerc                    \         P                  ! . RORR.34      p\        \        P                  P                  ^4      P                  R4      \        ^4      VR7      pVP                  ^ ^R7      p\        \        ^4      VP                  . 4      ^ ,          R7      pVP                  RV 3,          p\        P                  ! WC4       R# )	r   alphabetar   )levelr   r   Nr;  r   r   )r   r~   r   r   r   r   r   r%   rD   rn   r"   r@   rB   )r?  multi_indexr+   rO   rr   s   &    r   4test_loc_getitem_duplicates_multiindex_empty_indexerrF    s     ))+@7FBS*TUK	
		a 008Ah
B
 
QQ	'BuQx1D1DR1H1KLHVVA&'F&+r   c                      \        \        P                  \        P                  .R R..\        P
                  ! RR.4      RR.R7      p V P                  R,          p\        P                  pW8X  g   Q hR# )	meanmedianfunctionr   rT   NfunctsrH  )rL  rI  )rJ  rK  )r   r   rH  rI  r   r   r"   r+   rr   rO   s      r   =test_loc_getitem_duplicates_multiindex_non_scalar_type_objectrN    sk     

''299	12&&(:<P'QR6"
B
 VV23FwwHr   c                     \        R \        P                  ! ^
4      R\        P                  ! ^
4      R\        P                  P	                  ^4      P                  ^
4      R\        P                  P	                  ^4      P                  ^
4      /4      P                  R R.4      p V P                  R,          pV P                  R,          p\        P                  ! W!4       R# )r   r   r   r   Nr   r   )rP  r   )
r   r   r   r   r   r   r?   r"   r@   ro   )r+   rO   rr   s      r   !test_loc_getitem_tuple_plus_slicerQ    s    	22&&q)99"=&&q)99"=		

 ic
  vvd|HVVIF6,r   c                     T pVP                   ^,          pVRR pVP                  P                  ^ 4      Vn        \        P                  ! W#4       R# )r   N)r"   r   r   r@   rB   )r   r+   rr   rO   s   &   r   test_loc_getitem_intrT    sC    	.BVVAYF"#wH^^--a0HN&+r   c                     T p\         P                  ! \        R R7      ;_uu_ 4        VP                  ^,           RRR4       R#   + '       g   i     R# ; i)z^3$rU   N)ra   rb   rc   r"   )r   r+   s   & r   %test_loc_getitem_int_raises_exceptionrV  "  s2    	.B	xv	.	.
q	 
/	.	.	.s   AA	c                 $   T p\         P                  ! \        R R7      ;_uu_ 4        VP                  R,           RRR4       ^ VP                  R&   ^ pVP	                  4       P                  R,          pW28X  g   Q hR#   + '       g   i     LL; i)z^\('bar', 'three'\)$rU   N))r   threer!   )ra   rb   rc   r"   rD   )r(   r+   rO   rr   s   &   r    test_loc_getitem_lowerdim_cornerrY  (  sq    	)B 
x'>	?	?
$% 
@ %&BFF !H]]_  !67F 
@	?s   A??B	c                     \        R \        R4      \        P                  ! R.R.4      R7      p RV R&   V P                  V P
                  R&   \        P                  ! \        P                  ! V R,          4      \        P                  ! V P                  4      4       \        \        P                  \        ^4      \        P                  ! . R	O4      R7      p V P                  4       p\        P                  ! ^4      V P
                  R
&   \        P                  ! ^4      VP                  R&   \        P                   ! W4       R# )stringabcdMainr   r   labelsN)anotherr:  )r   r^  ))ri   1)ri   2)r!   r`  )r   r!   )r   r   )r   r$   r   r~   r   r"   r@   assert_numpy_array_equalr   asarrayr2  r%   r   r#   r   rC   rB   )r+   rO   s     r   $test_loc_setitem_single_column_slicerd  6  s    	6l''&3E(FG
B
 BxL((BFF;

2h< 8"**RXX:NO 

Ah&&'KL
B
 wwyHYYq\BFF6N))A,HMM$"'r   c           
         R R\         P                  3R R\         P                  3RR\         P                  3RR\         P                  3RRRR\         P                  3RR\         P                  3.p\        \         P                  ! R4      \	        . RO4      \
        P                  ! V. ROR	7      R
7      pVP                  R ,          P                  R,          p\        \         P                  ! R4      \	        \         P                  .V '       g   RMRRR7      \	        . RO4      R7      p\        P                  ! W44       R# )zGood Thingsr{   Rz
Bad ThingsTOkay Thingsr!   r  u3r:   rT   objectr   )r9   r   r   N)rh  Nr!   )rh  rk  r  )r\   rZ   )d1d2d3d4)u1u2ri  r)  )
r   r2  r   onesr   r   r   r"   r@   rB   )using_infer_stringtupsr+   rr   rO   s   &    r   test_loc_nan_multiindexru  M  s     
RVV$	RVV$	sBFF#	sBFF#!!	RVV$	RVV$	D 

./$$T1CD
B
 VVM"&&s+F
VVH"4(%

 ./H &+r   c                     \         P                  ! R RRR7      p R	p\        P                  ! W3R
R7      p\	        VRR7      pVP
                  R,          pVP
                  V ^ ,          R3R3,          p\        P                  ! V4      '       g   Q h\        P                  ! V4      '       g   Q hVP
                  R,          p\        P                  ! V4      '       g   Q hR# )2013Q12013Q4Q)r  W  r:   OMSr   N)rz  i  i  )PeriodCVR)	r{  OMKRES	DRIFT_IND
OEVRIG_INDFIN_INDVARE_UDLOEN_UDFIN_UD))rw  rz  r{  )r  period_ranger   r~   r   r"   r   isnan)r   r   r=  r+   rr   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            
         \         P                  ! R R.4      p \        P                  ! W .RR.R7      p\	        ^^.^^.^^.^^..VRR.R7      pVP
                  V ^ ,          VP                  P                  ^4      R 8  3R3,          p\        ^.R\        P                  ! \         P                  ! R 4      \         P                  ! R4      3.RR.R7      R7      p\        P                  ! W44       R	# )
z
2017-05-04z
2017-05-05Idx1Idx2r:   C1C2rI   r   r&   r   N)r  to_datetimer   r~   r   r"   r   get_level_valuesr   r   	Timestampr@   ro   )dt_idxm_idxr+   rr   rO   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                      \         P                  ! R 4      p \        ^\        P                  ! RV 3.RR.R7      RR7      pVP
                  RV .3,          p\        P                  ! W!4       R# )2000r   r   r:   r   )r   r   r   N)r  r  r   r   r   r"   r@   ro   )r  rq   rr   s      r   &test_loc_datetime_series_tuple_slicingr    s^    <<D
	$$sDk]3*EC
 WWQYF6'r   c                  f   \        R ^.R ^ .R^.R^..\        P                  ! . RORR.R7      RR.R7      p \        P                  ! RR.RR.R7      pV P                  VR	3,          p\        R ^.R^.R^..\        P                  ! . RORR.R7      RR.R
7      p\        P
                  ! W#4       R# )r   r   r   r   r  r:   authorpricer  r   r   Nr   r   r   r   )r  )r   r   r  r  )r  r  r  )r   r   r   r"   r@   rB   )r+   r=  rr   rO   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 ^RR7      p \        \        ^4      V R7      pVP	                  4       pW^&   VP                  ^ RR7      pVP                  P                  R8X  g   Q hVP                  P                  V ^ ,          4       VP                  V ^ ,          ,          pVP                  ^ .,          P                  R4      p\        P                  ! WE4       V^,          pVP                  P                  R8X  g   Q hVP                  V ^ ,          ,          pVP                  ^ .,          P                  R4      p\        P                  ! WE4       R# )z
2016-01-01z
US/Pacific)r  tzr   T)appendN)Nr   )r  r  r   r%   to_framer?   r   r;   get_locr"   rC   r   r@   rB   ro   )dtirq   r+   df2rr   rO   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            	         \        . R
O. RO. RO. RO. RO. RO.RP                  R4      R7      p V P                  RR.4      P                  4       pVP                  R\        R4      3R3,          P                  ^ 4      pVP                  R,          P                  \        R4      R3,          p\        P                  ! W#4       R	# )20160525 13:30:00.023AAPLztime,ticker,bid,ask,r   tickertimez2016-05-25 13:30:00r   N)r  MSFT51.95r  )z20160525 13:30:00.048GOOGz720.50z720.93)z20160525 13:30:00.076r  z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  )	r   splitr?   rD   r"   r   r   r@   rB   )r+   r  rL   rO   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                     \         P                  ! . R	ORRR7      p . R
Op. ROp\        P                  ! WV.4      p\	        \        ^4      V\        P                  R7      pVP                  V ^ ,          RR3,          pVR8X  g   Q hR# )20181101 1100datetimer  )r   r  ri   r!   rx   r  N)r  z20181101 1200z20181102 1300z20181102 1400)ri   ri   ZW)r!   r{   ry  F)	r  PeriodIndexr   rF   r   r%   r   r   r"   )pilev2lev3r   rq   rr   s         r   !test_3levels_leading_period_indexr    su    	L
B
  DD			4 0	1B
q2::
6CWWbeS#&'FS==r   c                   2   a  ] tR tRt o R tR tR tRtV tR# )TestKeyErrorsWithMultiIndexi  c                :   \        \        P                  ! ^4      P                  ^^4      . ROR7      pVP	                  RR.4      p\
        P                  ! \        RR7      ;_uu_ 4        VP                  R,           RRR4       R#   + '       g   i     R# ; i)	r<   ri   r!   r   6rU   Nrz   r   r   )	r   r   r   r   r?   ra   rb   rc   r"   )r'   r+   r  s   &  r   !test_missing_keys_raises_keyerror=TestKeyErrorsWithMultiIndex.test_missing_keys_raises_keyerror  s`    ryy},,Q2OLllC:&]]83//GGFO 0///rg   c                   \        R\        P                  ! ^ ^..^,          4      R7      p\        P                  ! \
        RR7      ;_uu_ 4        VP                  R,           RRR4       R#   + '       g   i     R# ; i)r   r   z\(0, 3\)rU   Nr   )r   rX   )r   r   r~   ra   rb   rc   r"   )r'   rq   s   & r   !test_missing_key_raises_keyerror2=TestKeyErrorsWithMultiIndex.test_missing_key_raises_keyerror2  sN    Rz66Ax!|DE]]8;77GGDM 8777s   A..A?	c           	     r   \         P                  ! \        P                  ! . R
O4      \        P                  ! . RO4      \        P                  ! . RO4      .. ROR7      p\	        \        P
                  P                  ^4      P                  R4      VR7      pRp\        P                  ! \        VR7      ;_uu_ 4        VP                  RR\        R4      3R3,           RRR4       \        P                  ! \        VR7      ;_uu_ 4        VP                  P                  RR\        R4      34       RRR4       \        P                  ! \        R	R7      ;_uu_ 4        VP                  R,           RRR4       R#   + '       g   i     L; i  + '       g   i     Le; i  + '       g   i     R# ; i)r   r   r`  r:   r   z'\('b', '1', slice\(None, None, None\)\)rU   Nr   z\('b', '1'\)r   r   r   r   )r`  ra  ra  3)r   r   r   r   )r:  r    rX  rZ   rX   ))r   r`  r   )r   rF   r   rE   r   r   r   ra   rb   rc   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=! <;	 0///;;;s$   ?"E?(F!F%?F	F"	%F6	r   N)	r,  r-  r.  r/  r  r  r  r3  r4  r5  s   @r   r  r    s     " "r   r  c                     T pVR ,          pVR,          pVP                   R,          R ,          p\        P                  ! W44       R# )ri   N)rl   r   )r"   r@   ro   )rp   r+   rq   rr   rO   s   &    r   test_getitem_loc_commutabilityr    s9    	8B
S'C\Fvvgs#H6,r   c            	         \        R . R	ORRR\        P                  .R. R
O/4      P                  RR.4      p V P                  R.,          p\        R ^./\
        P                  ! R.RR.R7      R7      p\        P                  ! W4       V P                  R,          p\        R ^./\        ^.RR7      R7      p\        P                  ! W4       R# )r2   ind1r   r   ind2r:   r   r   N)r   r   r   )r   rZ   r   )r   r   )
r   r   r2  r?   r"   r   r   r@   rB   r   rM  s      r   test_loc_with_nanr  %  s    			6Cbff#5vyI
i !  VVSE]F	J22H:ffEUVH &+VVC[F%!UA3V-DEH&+r   c                      \        . RO.. ROR7      P                  . RO4      p \        P                  ! \        RR7      ;_uu_ 4        V P
                  R,           RRR4       R#   + '       g   i     R# ; i)	r   r   z\(2\.0, 2\.0, 3\.0\)rU   Nr   r   r   )       @r        @)r   r?   ra   rb   rc   r"   r+   s    r   test_getitem_non_found_tupler  5  sO    	L>+?	@	J	J
B 
x'>	?	?
 
@	?	?	?s   A&&A7	c                     \         P                  ! R ^dR7      p \        P                  ! V .4      pVP	                  R4      \        ^ ^R4      8X  g   Q hV P	                  R4      \        ^ ^R4      8X  g   Q hVR,          P	                  R4      pV R,          P	                  R4      pW#8X  g   Q hVP                  ^4      P	                  R4      pV P                  ^4      P	                  R4      pW#8X  g   Q hVP                  V4      P	                  R4      pV P                  V 4      P	                  R4      p\        P                  ! VP                  4       ^ ,          V4       R# )r  r  z2001-01N:NNr   )r  r  r   rF   r  r   repeatr  r@   rb  nonzero)r   r   r"   rO   s       r   test_get_loc_datetime_indexr  >  s   MM,4E				(B::i E!R$6666==#uQD'9999
S'//)
$CSz!!),H??
))A,

y
)C||A&&y1H??
))B-

	
*C||E"**95Ha 0(;r   c                  0   \         P                  ! R R.^ ^..4      p \        ^^.^^.^^.^^..V R7      pR ^^ .3p\        P                  ! ^	^
.^^..4      VP
                  VR3&   \        ^^.^	^
.^^.^^..V R7      p\        P                  ! W4       R# )r   r   r   r   N)r   r~   r   r   rE   r"   r@   rB   )r   r+   r   rO   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                      \        ^^.^^.^^.^^... RO. RO.RR.R7      p V P                  \        R4      ^^.3R3,          p\        ^^.^^.^^.^^... RO. R	O.RR.R7      p\        P                  ! W4       R# )
r   r   r   r   Nr   r  r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r"   r   r@   rB   rM  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   c                    \        ^.^,          \        P                  ! . RO4      R.R7      pVP                  \	        R4      V 3R3,          p\        ^.^,          . RO. RO.R.R7      p\
        P                  ! W#4       VP                  VP                  P                  V ^R7      R3,          p\
        P                  ! W!4       R# )	r   r   r   Nr   )rC  )r  r   )r   r}   r  r&  )r   rX   )r   r\   )r   r}   )r   r   r   r   r   r   r   r   )r   r   r   r}   r}   r   rX   r\   )	r   r   r   r"   r   r@   rB   r   isin)r   r+   rr   rO   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                     \         P                  ! R .R.R... R	OR7      p \        R^ ./V R7      pVP                  ^ ^.4      pVP                  R
,          p\
        P                  ! W24       \        ^ .V R7      pVP                  R
,          p\        ^ .\        R.RR7      R7      p\
        P                  ! W24       R# )r   r   zr   r:   r   r   r  Nr   )r   r   r  )
r   rF   r   r   r"   r@   rB   r   r   ro   )r   r+   rO   rr   rq   s        r   3test_loc_getitem_drops_levels_for_one_row_dataframer    s    			#u 5_	MB	C!:R	(B||QF#HVVK F&+
!B
CWW[!Fqcu3!78H6,r   c                  H   \         P                  ! . RO^^..4      p \        \        P                  ! R4      V R7      pVP
                  RRR .3,          p\        \        P                  ! R4      \         P                  ! . RO4      R7      p\        P                  ! W#4       R# )	ri   r!   r   r   Nrz   rD  )r   rZ   ))r!   r   )r!   r   )ri   r   )ri   r   )	r   r~   r   r   zerosr"   r   r@   rB   )colsr+   rr   rO   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                  ! ^4      P                  R4      . RO. RO.. RO. RO.R7      p RR.V P                  n        RR.V P                  n        \        P                  ! \        RR	7      ;_uu_ 4        V P                  R^.R3,           R
R
R
4       R
#   + '       g   i     R
# ; i)r<   r   Colorador   key1key2statecolorz\[2\] not in indexrU   Nr  r  r  )Ohior  r  )GreenRedr  )r   r   r   r   r   r;   r&   ra   rb   rc   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                     \        \        ^4      \        P                  ! ^^.RR..4      R7      p \        P
                  ! \        RR7      ;_uu_ 4        V P                  RR.,           RRR4       R#   + '       g   i     R# ; i)	rZ   r   r   r   z\['not' 'found'\] not in indexrU   notfoundN)r   r%   r   r~   ra   rb   rc   r"   )r   s    r   (test_mi_indexing_list_nonexistent_raisesr    s]    uQxz66Ac
7KLMA	x'I	J	J	ug 
K	J	J	Js   A55B	c            	         \        . RO. R	O.RR.\        P                  ! ^^.RR..4      R7      p R
V P                  R&   ^V P                  R&   ^V P                  R&   \        . RO. RO. ROR\        P
                  \        P
                  \        P
                  ... RO\        P                  ! ^^.RR..4      R7      p\        P                  ! W4       R# )r   r   ri   r!   r   r   r  N)r   r   r   r   )rX   rZ   r}   r\   r   )r   r   ri   )r   r   )r   r  g      @g      @)r  r3   g      @g       @)r  g      r   r   )r   r   r   r   )r   r   r~   r"   r   r2  r@   rB   )rr   rO   s     r   'test_mi_add_cell_missing_row_non_uniquer    s    	|$Cj''!Q#s(<=F
 FJJsO !FJJ} !FJJ}  "&&"&&"&&)		
 #''!Q#s(<=	H &+r   c                     \        R RR^/\        P                  ! ^.^..RR.R7      R7      p V P                  R	,          pV^8X  g   Q h\	        V\
        P                  4      '       g   Q hV P                  R.R3,          P                  ^ ,          pV^8X  g   Q h\	        V\
        P                  4      '       g   Q hR# )
r   r   r   r   r   r:   r   Nr   )r   r   )r   r   rF   r"   
isinstancer   r   rC   )r+   rr   s     r   $test_loc_get_scalar_casting_to_floatr    s    		c3*"8"81#sCQT:"V
B VVK FQ;;fbhh''''VVVHcM"''*FQ;;fbhh''''r   c                  >   \         P                  ! R R.RR..^^ .R7      p \        V \        P                  R7      pVP
                  R ,          p\        \        P                  \        P                  .\        RR.^ R7      R7      p\        P                  ! W#4       R# )	r   r   ri   r!   r:   rx   r  r   N)
r   r~   r   r   r   r"   r2  r   r@   ro   )r=  s2rr   rO   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            
         \        R . ROR. ROR\        ^4      /4      p V P                  R R.4      p \        P                  ! \
        RR7      ;_uu_ 4        V P                  R,           RRR4       R#   + '       g   i     R# ; i)	ri   r!   r{   z^1$rU   N)d   r	     r
  ,  r  )r]   r]   r         !   )r	  r   )r   r%   r?   ra   rb   rc   r"   r  s    r   'test_loc_keyerror_rightmost_key_missingr    sh     
/)q	

B 
sCj	!B	xu	-	-
x 
.	-	-	-s   A44B	c                      \         P                  ! RR.4      p \        ^^.V R7      pVP                  R,          pV^8X  g   Q hR# )r   r   Nr   )rX   )rZ   r   )r   r   r   r"   )r   rq   rr   s      r   *test_multindex_series_loc_with_tuple_labelr    sA    			 5	6B
!Qr
"CWW[!FQ;;r   )r   r   r}   r   r   rX   r\   r}   )r   r   r}   r   rX   r\   )6numpyr   ra   pandas.errorsr   pandasr  r   r   r   r   pandas._testing_testingr@   fixturer   r   r0  r1  r   
IndexSlicer>  rF  rN  rQ  rT  rV  rY  rd  ru  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   