
    m*i                        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        i/var/www/html/land-doc-ocr/venv/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                      \ rS rSr\R
                  R                  S5      \R
                  R                  SSS/5      S 5       5       rS r	S r
S	 rS
 rS rS rS rS r\R
                  R                  SSS/SS/4S// 4SS// 4/5      S 5       rS rS rS rS rS r\R
                  R                  S\\\\\R8                  \\45      \R
                  R                  S\\\\\R8                  \\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&\RD                  4/5      S' 5       r#S( r$S) r%S* r&S+r'g$),TestMultiIndexLoc#   z.ignore:Setting a value on a view:FutureWarninghas_refTFc                    UnU(       a  US S  nSUR                   S'   UR                   S   S:X  d   eUR                  5       n[        [        S5      5      Ul        U(       a  US S  nSUR                   S'   UR                   S   S:X  d   eg )N   )r   twoBr      )r)   r   )loccopylistrangecolumns)self multiindex_dataframe_random_datar&   frameviewdfs         r   &test_loc_setitem_frame_with_multiindex8TestMultiIndexLoc.test_loc_setitem_frame_with_multiindex$   s    
 18D)*		%&yy,-222 ZZ\%(^
a5D$% !vv'(A---r   c                    UnSSSSSS.SSSSSS.S	S
S	S	S	S.S.n[        U5      nUR                  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)rB   rC   rB   rC   )keys)r>   r?   r   T)inplacer   dtyper   rA   )r:   r;   r<   r   )r   astype	set_indextmassert_produces_warningr   assert_frame_equalr-   iloc
sort_indexr   arrayr   from_arrays)r2   any_real_numpy_dtyperG   datar6   keyreturn_valuerescol_arryear_arrr   expecteds               r   test_loc_getitem_general*TestMultiIndexLoc.test_loc_getitem_general7   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=   ra   ra   rb   r?   r1   r   z^2$match	r   r   r   r    r!   pytestraisesKeyErrorr-   r2   r6   s     r   0test_loc_getitem_multiindex_missing_label_raisesBTestMultiIndexLoc.test_loc_getitem_multiindex_missing_label_raisesT   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   rb   )rt   r      )reindexr   r-   rK   assert_series_equal)r2   /multiindex_year_month_day_dataframe_random_dataserrY   results        r   /test_loc_getitem_list_of_tuples_with_multiindexATestMultiIndexLoc.test_loc_getitem_list_of_tuples_with_multiindex_   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   rq   r+   C	   r   rS   rG   r   r   r   r   r   r   r,   ra   rS   r   rG   r   r   )rS   rG   r   r   rG   r   rG   )
r   from_productr   r0   r   float64r-   rK   rw   r   )r2   r   xyrY   rz   y1emptys           r   test_loc_getitem_series)TestMultiIndexLoc.test_loc_getitem_seriesg   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   r0   r   r   rP   r-   rK   rw   r   int64)r2   r   r   r   rY   rz   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)rq   rq   r+   )Xr   Yre   r   r   r   axisr   )r   r   
r   r   r   r    r!   rN   	droplevelr-   rK   rM   r2   r6   rY   rz   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`   rc   rd   re   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]   rh   rl   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2ro   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`   rc   rd   re   znot in indexrf   rh   )r2   rT   posr6   s       r   &test_loc_multiindex_list_missing_label8TestMultiIndexLoc.test_loc_multiindex_list_missing_label   sb     II!!!$44V<
+k*
 ]]8>:FF3K ;::ro   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)Nra   abcdefr   z^\('a', 'b'\)$rf   r   r   z^\('a', 'd', 'g'\)$)r   r   gzToo many indexers)r   r   r   r   )	r   r0   r   r   ri   rj   rk   r-   r   )r2   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   )rb   r(   g      ?r1   r?   r   r   r   r=   r~   r   )r0   strr   r   r   r   r    r!   r   rK   rM   arangereshaper-   )r2   r   
attributesattribute_valuesr   r6   rz   rY   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   rF   r(   r   r   r   r   r   r   r=   )r   r,   ra   r?   ru      r   )
r   r   r   r   r   r0   r-   rK   rw   rN   )r2   r   rY   rz   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)r2   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,   ra   r   r   r   )r   r   r   ra   rb         r   r   rb   r   )r   r   r   r   r   r    r!   r-   rK   rM   rN   r   )r2   r   r6   rz   rY   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   ndarrayrP   slice)indexer_typerD   s     r   convert_nested_indexerQTestMultiIndexLoc.test_loc_getitem_nested_indexer.<locals>.convert_nested_indexerN  s9    rzz)xx~%u$d|#%%r   r   r~   r   rF   Datar   r1   rb   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>a  s"      
#3 #<33#3s   zas an indexer is not supportedrf   )r   r   r=   r(   namer   )r   r   r   r   r   r   tuplezipsetri   rj   	TypeErrorr-   r   rK   rw   )r2   r   r   r   r   r   r6   rD   typesindexerrz   rY   r   s               @r   test_loc_getitem_nested_indexer1TestMultiIndexLoc.test_loc_getitem_nested_indexerC  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   rq   r   rq   r   r   r   r   r   )r   from_tuplesr-   rK   assert_equal)r2   frame_or_seriesmiobjrY   s        r   )test_multiindex_loc_one_dimensional_tuple;TestMultiIndexLoc.test_multiindex_loc_one_dimensional_tupler  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-   rK   rM   )r2   r   r   r   rY   s        r   -test_multiindex_one_dimensional_tuple_columns?TestMultiIndexLoc.test_multiindex_one_dimensional_tuple_columnsz  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   )r2   r   	exp_valuer   r6   rY   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-   rK   rM   r   rv   r   )r2   midxser1ser2r6   rY   rz   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_rK   rM   )r2   r6   rV   rY   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)rf   )r   r   r=   )r   ri   rj   rk   r-   rl   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__ri   markfilterwarningsparametrizer7   rZ   rm   r{   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   __static_attributes__r   r   r   r$   r$   #   s   [[ PQ[[Yu6. 7 R."-:	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, posrq   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*   rH   r   r   rF   r   r   rf   r
   r-  z'bah')r   r   r   r   r   rO   rN   sizeri   rj   rk   r   r-   r   rK   rw   )r   r   idxry   rY   rz   s         r   7test_loc_getitem_duplicates_multiindex_missing_indexersr3    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!   r0   rO   rv   r-   rK   rM   )r4  multi_indexr6   rY   rz   s        r   4test_loc_getitem_duplicates_multiindex_empty_indexerr;    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   re   )rA  r?  )r   r   r=  r>  r   r   r-   r6   rz   rY   s      r   =test_loc_getitem_duplicates_multiindex_non_scalar_type_objectrC    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 )Nrb   r   r  r   r   )r   r   )
r   r   r   r   r    r!   rJ   r-   rK   rw   )r6   rY   rz   s      r   !test_loc_getitem_tuple_plus_slicerE    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   rK   rM   )r"   r6   rz   rY   s       r   test_loc_getitem_intrH    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$rf   r   )ri   rj   rk   r-   )r"   r6   s     r   %test_loc_getitem_int_raises_exceptionrJ    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'\)$rf   ))r   threer+   r   )ri   rj   rk   r-   rO   )r3   r6   rY   rz   s       r    test_loc_getitem_lowerdim_cornerrM    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)anotherr0  r   r   labelsr=   ))rq   1)rq   2)r+   rT  r+   r   )r   r/   r   r   r   r-   rK   assert_numpy_array_equalr   asarrayr)  r0   r   r.   r   rN   rM   )r6   rY   s     r   $test_loc_setitem_single_column_slicerX  *  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+   )r\  r]  r+  r\  r+   r+  )ra   r=   )d1d2d3d4)u1u2u3rH   re   r  objectr   rd  )rG   r   r   )
r   r)  r   onesr   r   r   r-   rK   rM   )using_infer_stringtupsr6   rz   rY   s        r   test_loc_nan_multiindexri  A  s     
RVV$	RVV$	sBFF#	sBFF#!!	RVV$	RVV$	D 

./$$T1CD
B
 VVM"&&s+F
VVH"4(%

 ./H &+r   c                     [         R                  " SSSS9n Sn[        R                  " X4SS9n[	        USS	9nUR
                  S
   nUR
                  U S   S4S4   n[        R                  " U5      (       d   e[        R                  " U5      (       d   eUR
                  S
   n[        R                  " U5      (       d   eg )N2013Q12013Q4Q)freq)W  i  i  )PeriodCVRrH   )	OMSOMKRES	DRIFT_IND
OEVRIG_INDFIN_INDVARE_UDLOEN_UDFIN_UDr   ))rk  ro  rr  r   ro  rr  )r  period_ranger   r   r   r-   r   isnan)r   r   r2  r6   rz   alts         r   test_loc_period_string_indexingr~  _  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Idx2rH   r   r   r   r=   r(   r   r,   C1C2rS   r   r1   r   r   )r  to_datetimer   r   r   r-   r   get_level_valuesr   r   	TimestamprK   rw   )dt_idxm_idxr6   rz   rY   s        r   test_loc_datetime_mask_slicingr    s    ^^\<89F##V$4VV<LME	!fq!fq!fq!f-UT4L
B VVVAY!:!:1!=!LNPTTUF	
$$ll<(",,|*DEF6"
H 6,r   c                      [         R                  " S5      n [        S[        R                  " SU 4/SS/S9SS9nUR
                  S S 2U /4   n[        R                  " X!5        g )N2000r   r   r   rH   r   )r   r   )r  r  r   r   r   r-   rK   rw   )datery   rz   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  rH   authorpricer  r  r  )r  r  r  r   )r   r   r   r-   rK   rM   )r6   r2  rz   rY   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   r0   to_framerJ   r   r   get_locr-   rN   r   rK   rM   rw   )dtiry   r6   df2rz   rY   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   splitrJ   rO   r-   r   r   rK   rM   )r6   r  rV   rY   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   rn  )rq   rq   ZW)r+   r   rm  Fr=   r   r   rq   r+   g        )	r  PeriodIndexr   rQ   r   r0   r   r   r-   )pilev2lev3r   ry   rz   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   rq   r+   rT  rf   r   r   )	r   r   r   r   rJ   ri   rj   rk   r-   )r2   r6   r  s      r   !test_missing_keys_raises_keyerror=TestKeyErrorsWithMultiIndex.test_missing_keys_raises_keyerror  sZ    ryy},,Q2OLllC:&]]83/GGFO 0//ro   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\)rf   )r   r   )r   r   r   ri   rj   rk   r-   )r2   ry   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   )rT  rU  rU  3)r   r   r   r   )r0  r*   rL  rH   r   r=   r   r   z'\('b', '1', slice\(None, None, None\)\)rf   r   rT  z\('b', '1'\))r   rT  )r   rQ   r   rP   r   r   r    ri   rj   rk   r-   r   r   get_locs)r2   r   r6   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 )Nrq   )rt   r(   )r-   rK   rw   )rx   r6   ry   rz   rY   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(   )rB   ind1ind2r  r  rB   r   )r   r   rH   r   r   )
r   r   r)  rJ   r-   r   r   rK   rM   r   rB  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\)rf   )       @r        @)r   rJ   ri   rj   rk   r-   r6   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   rQ   r  r   repeatr  rK   rV  nonzero)r   r   r-   rY   s       r   test_get_loc_datetime_indexr  2  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,   ra   r   r   rb   r@   r?   )r   r   r   r   rP   r-   rK   rM   )r   r6   r   rY   s       r   ,test_loc_setitem_indexer_differently_orderedr  H  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,   ra   r  r   r   r   r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r-   r   rK   rM   rB  s      r   5test_loc_getitem_index_differently_ordered_slice_noner  S  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   ra   r,   )r   r   r,   r   r   ra   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   ra   )r  r   )r   r,   r  r  )r   r   )r   ra   )r   r,   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r,   r,   r   r   ra   )r9  )	r   r   r   r-   r   rK   rM   r   isin)r   r6   rz   rY   s       r   @test_loc_getitem_index_differently_ordered_slice_none_duplicatesr  c  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   rH   r   r   r   r   r   r  )
r   rQ   r   r   r-   rK   rM   r   r   rw   )r   r6   rY   rz   ry   s        r   3test_loc_getitem_drops_levels_for_one_row_dataframer  y  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   r8  r   r+   rq   )r(   r=   ))r+   r   )r+   r   )rq   r   )rq   r   )	r   r   r   r   zerosr-   r   rK   rM   )colsr6   rz   rY   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 indexrf   r   r   r  )r   r   r   r   r   r   r1   ri   rj   rk   r-   )r4   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 indexrf   notfound)r   r0   r   r   ri   rj   rk   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,   ra   r   r   r   rq   r+   r   r   r   r   )r   r   rq   )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)  rK   rM   )rz   rY   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   rH   r   )r  r   r  r   r   )r   r   rQ   r-   
isinstancer   r   rN   )r6   rz   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   rq   r+   r   r   rH   r   r  r   )
r   r   r   r   r   r-   r)  r   rK   rw   )r2  s2rz   rY   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  )rb   rb   r      r  !   r   r   rq   r+   z^1$rf   )r  r   )r   r0   rJ   ri   rj   rk   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   ry   rz   s      r   *test_multindex_series_loc_with_tuple_labelr    sA    			 5	6B
!Qr
"CWW[!FQ;;r   )8numpyr   ri   pandas.errorsr   r   pandasr  r   r   r   r   pandas._testing_testingrK   fixturer   r"   r$   r&  r(  r   
IndexSlicer3  r;  rC  rE  rH  rJ  rM  rX  ri  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Z Zz 	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   