
    Mh3                        S SK rS SKrS SKJrJrJrJr  S SKJ	r
  S SKJr  \R                  R                  SS S S /5      \R                  R                  SS \" S	/S /S
94S	\" SS/S	S/S
94/5      S 5       5       r\R                  R                  SSS/5      S 5       rS rS r\R                  R                  SS \S4S \S4S \S4S \S4S \S4S \S4S \S4/5      S  5       rS! rS" r\R                  R                  S#S$ S%4S& S'4/5      S( 5       rS) rS* r\R                  R                  S+S, \" S5      4S- \" SS.5      4S/ \" SS.5      4/5      S0 5       rS1 rS2 r\R                  R                  S3S4/S5\R>                  /4\" SS/S.S6//\R@                  " S7S4\R>                  4/5      S8S994S:S4/\" / S;Q/ S<Q/\R@                  " S=S7S4\R>                  4/5      S8S994S4/\" SS/S.S6//\R@                  " S7S4\R>                  4/5      S8S994S4/S5/4\" S/S.//\R@                  " S7/5      S8S994S4/\R>                  /4\" S/S6//\" S	/S>//S:S4/S5S?//S@9S8S994S4\R>                  4\" SS6/S8S4\R>                  4SA94/5      SB 5       r!\RD                  SC 5       r#\R                  R                  SDSE SF /5      SG 5       r$SH r%SI r&SJ r'SK r(g)L    N)	DataFrameIndex
MultiIndexSeries)IndexingErroraccess_methodc                     U S S 2U4   $ N sxs     _/var/www/html/env/lib/python3.13/site-packages/pandas/tests/indexing/multiindex/test_getitem.py<lambda>r      s    !AqD'    c                 (    U R                   S S 2U4   $ r
   locr   s     r   r   r      s    adr   c                 "    U R                  USS9$ )N   )level)xsr   s     r   r   r      s    !$$qPQ$BRr   zlevel1_value, expectedr   index      c                     [         R                  " / SQSS/S9n[        / SQUS9nSUR                  l        U " XA5      n[
        R                  " XR5        g )N))r   r   )r   r   )r   r   ABnamesr   r   r   r   )r   from_tuplesr   r   nametmassert_series_equal)r   level1_valueexpectedmiserresults         r   test_series_getitem_multiindexr,      sK     
		 8c
	KB
"
%CHNN3-F6,r   level0_valueDr   c           	      j   [        U SS// SQ// SQ/ SQ/SS/S9n[        R                  R                  S	5      R	                  [        U5      S
45      n[        X!S/S9nU S:w  a1  [        R                  " [        SS9   UR                  S     S S S 5        [        R                  " [        SS9   UR                  S     S S S 5        UR                  U    n[        UR                  5       SS S[        / SQSS9S9n[        R                  " XE5        g ! , (       d  f       N= f! , (       d  f       Nk= f)Nr   C)r         %   9   C   K   R   )
r   r   r   r   r   r   r   r   r   r   )
r   r         r   r   r   r         tagdaylevelscodesr!   r   r   valr   columnsr   z^'A'$matchz^'X'$Xr   r   )r1   r3   r4   r$   )r$   r   )r   nprandomdefault_rngstandard_normallenr   pytestraisesKeyErrorrA   r   ravelr   r%   r&   )r-   r   arrdfr+   r(   s         r   )test_series_getitem_duplicates_multiindexrS   &   s   
 sC(*IJ-/MNenE
 ))


"
2
2CJ?
CC	3eW	5B s]]884FF3K 5 
xx	0
s 
1 VVL!F		AauE,U,KH 6, 54 
1	0s   >D/D$
D!$
D2c                     U S   nUR                  UR                  SS 5      nUR                  R                  S5      R                  S5      Ul        U" U5      S   n[        R                  " XC5        g )Nr   *   A   r   )  r   )reindexr   	droplevelr%   r&   /multiindex_year_month_day_dataframe_random_data
indexer_slr   r(   r+   s        r   test_series_getitemr]   B   sa    7<AyyB(H^^--a0::1=HN]7#F6,r   c                 P    U S   nUR                   S   nU" U5      S   nXC:X  d   eg )Nr   1   )rW   r   
   )ilocrZ   s        r   "test_series_getitem_returns_scalarrb   K   s5     	8<AvvbzH];'Fr   z)indexer,expected_error,expected_error_msgc                 $    U R                  S5      $ N)rW   r   r8   )__getitem__r   s    r   r   r   X   s    1==.r   z^\(2000, 3, 4\)$c                     U S   $ rd   r   rf   s    r   r   r   Y   s    1\?r   c                      U R                   S   $ rd   r   rf   s    r   r   r   Z   s    155&r   c                      U R                   S   $ )N)rW   r   r8   r:   r   rf   s    r   r   r   [   s    155)r   zToo many indexersc                 6    U R                  [        U 5      5      $ r
   )re   rL   rf   s    r   r   r   \   s    1==Q(r    c                     U [        U 5         $ r
   )rL   rf   s    r   r   r   ]   s    1SV9r   c                 2    U R                   [        U 5         $ r
   )ra   rL   rf   s    r   r   r   _   s    affSVnr   z*single positional indexer is out-of-boundsc                 z    U S   n[         R                  " X#S9   U" U5        S S S 5        g ! , (       d  f       g = f)Nr   rD   )rM   rN   )r[   indexerexpected_errorexpected_error_msgr   s        r   #test_series_getitem_indexing_errorsrr   U   s.    , 	8<A	~	@
 
A	@	@s   	,
:c                 `    U S   nUS U 5          nXS:     n[         R                  " X#5        g )Nr   c              3   *   #    U  H	  oS :  v   M     g7f)r   Nr   ).0r   s     r   	<genexpr>7test_series_getitem_corner_generator.<locals>.<genexpr>t   s     !q!Aqs   r   )r%   r&   )r[   r   r+   r(   s       r   $test_series_getitem_corner_generatorrx   p   s7     	8<A!q!"FQxH6,r   c                     U R                   nUR                  S S 2S4   nUS   R                  n[        R                  " X25        g )Nr   )fooone)Tvaluesr%   assert_almost_equal) multiindex_dataframe_random_datarR   r(   r+   s       r   test_getitem_simpler   ~   s<    	)	+	+ByyAH$$F6,r   zindexer,expected_error_msgc                     U S   $ )N)rz   fourr   rR   s    r   r   r      s	    B'r   z^\('foo', 'four'\)$c                     U S   $ )Nfoobarr   r   s    r   r   r      s    BxLr   z
^'foobar'$c                     U R                   n[        R                  " [        US9   U" U5        S S S 5        g ! , (       d  f       g = f)NrD   )r|   rM   rN   rO   )r   ro   rq   rR   s       r   #test_frame_getitem_simple_key_errorr      s1     
*	+	+B	x'9	: 
;	:	:s	   	8
Ac                  p   [         R                  " / SQ5      n [        [        S5      [        SS5      [        SS5      /U S9nSUS	'   UR	                  5       nUR
                  R                  5       Ul        SUS
'   USS
/   n[        SS/SS/SS//[        SS
/5      S9n[        R                  " X45        g )N)aaa)r   ab)bba)r   bbr8   r   r:   r   r9   rC   r   single_indexnew_single_indexr   )
r   r#   r   rangecopyrC   to_flat_indexr   r%   assert_frame_equal)r)   rR   df_flatr+   r(   s        r   test_tuple_string_column_namesr      s    			 T	UB	E!HeAqk5A;7	DBB~ggiGoo335GO"#Gk#567F
Q!Q!Q %>P0Q*RH &+r   c                      [        / SQ/ SQS.5      n SS/SS/SS	//U l        U S   n[        S
/S/S//U R                  S/S9n[        R                  " X5        g )N)123)r   r   4)r   r   zlevel1 item1zlevel1 item2rk   zlevel2 item2zlevel3 item1zlevel3 item2r   r   r   rB   )r   rC   r   r%   r   rR   r+   r(   s      r   *test_frame_getitem_multicolumn_empty_levelr      ss    	?	@B	(	^	(BJ F
uRXX7GH &+r   zindexer,expected_slicec                     U S   $ )Nrz   r   r   s    r   r   r          BuIr   c                     U S   $ Nbarr   r   s    r   r   r      r   r   r:   c                 (    U R                   S S 2S4   $ r   r   r   s    r   r   r      s    BFF1e8$r   c                     U R                   nUR                  UR                  U   S9nUR                  R                  S5      Ul        U" U5      n[        R
                  " XT5        g )Nr   r   )r|   rX   rC   rY   r%   r   )r   ro   expected_slicerR   r(   r+   s         r   test_frame_getitem_toplevelr      sX     
*	+	+Bzz"**^"<z=H''11!4HR[F&+r   c                     / SQ/ SQ/ SQ/n [        [        U 6 5      n[        R                  " U5      n[	        [
        R                  R                  S5      R                  S5      US9nUS   nUS   R                  S5      n[        R                  " XE5        US	   nUS
   nUR                  S	5      n[        R                  " XE5        g )N)r   topr   routine1r   routine2)rk   ODr   result1result2r   )rk   wxwyrk   rk   rk   r   )r8   r9   r   r   )r   rk   rk   )r   r   )r   r   rk   )sortedzipr   r#   r   rH   rI   rJ   rK   renamer%   r&   )arraystuplesr   rR   r+   r(   s         r   test_frame_mixed_depth_getr      s    ?9$F CL!F""6*E	299((+;;FCU	SBWF+%%c*H6,%&F+,H67H6,r   c                    U n/ SQn[        SUS/SUS/SUS/SUS	//US
9R                  SS/5      nUS   R                  S5      US'   SU4nUR                  S U n[        SUS/SUS//US
9R                  SS/5      nUS   R                  S5      US'   [        R
                  " XV5        UR                  US  n[        SUS/SUS/SUS	//US
9R                  SS/5      nUS   R                  S5      US'   [        R
                  " XV5        SU4SU4pUR                  Xx n[        SUS/SUS//US
9R                  SS/5      nUS   R                  S5      US'   [        R
                  " XV5        g )N)r   r   c               !   )   +   r   r   r   r   int64)r   	set_indexastyper   r%   r   )	nulls_fixturencolsrR   idxr+   r(   idx1idx2s	            r   !test_frame_getitem_nan_multiindexr      s    	AD	
ar1bkB2;Q<
 ic
  gnnW%BsGq'CVVDS\F2q"+Ar{3TBLLcSVZXHSM((1HSM&+VVCD\F
ar1bkB2;/ic
  SM((1HSM&+a2q'$VVDF2q"+Ar{3TBLLcSVZXHSM((1HSM&+r   zindexer,expectedr   r   r9   r   r   r   rC   dtyper   r"   r8   r:   r9   r   rz   rz   )r@   r?   )r   r$   c           	          [        / SQ/ SQ/[        R                  " SSSU4/5      SS9nUR                  S S 2U 4   n[        R
                  " XA5        g )Nr"   r   r   r   r   r   r   )r   r   r#   r   r%   assert_equal)ro   r(   r   rR   r+   s        r   &test_frame_getitem_nan_cols_multiindexr      sY    F 
	I&&<#})=>
 
B VVAwJFOOF%r   c                  f    / SQ/ SQ/ SQ/n / SQn[        SS// SQ// SQ/ SQ/S	S
/S9n[        XUS9$ )z;Fixture for DataFrame used in tests for gh-4145 and gh-4146)r   der   fr   )r   r8   r:   r   r9   r   h1h3h5r   r   )A1A2B1B2)r   r   r   r   r   r   )r   r   r   r   r   r   mainsubr>   rB   )r   r   )datar   rC   s      r   dataframe_with_duplicate_indexr   N  sM     +,>@RSDEc
45!#56uoG
 T88r   ro   c                     U S   $ Nr   r   r   r   s    r   r   r   \  s    2k?r   c                 (    U R                   S S 2S4   $ r   r   r   s    r   r   r   \  s    rvvan7Mr   c                     U n[        / SQ5      n[        R                  " S/SS/S9n[        / SQ/XCS9R                  nU" U5      n[
        R                  " Xe5        g )Nr   r   r   r   r    r   r   r   rB   )r   r   r#   r   r|   r%   r   )r   ro   rR   r   rC   r(   r+   s          r   test_frame_mi_accessr   [  sW    
 
(B$%E$$k]65/JG+gEGGHR[F&+r   c                 b    U n[        / SQ/ SQSS9nUS   S   n[        R                  " X25        g )Nr   r   r   )r   r$   r   )r   r%   r&   r   rR   r(   r+   s       r   #test_frame_mi_access_returns_seriesr   i  s3    
 
(Bk);$GHWT]F6,r   c                     U n[        / SQ/ SQ/[        SS/SS9/ SQS9R                  nUS   S   n[        R                  " X25        g )	N)r   r8   r8   )r   r:   r:   r   r   rG   r   rB   r   )r   r   r|   r%   r   r   s       r   "test_frame_mi_access_returns_framer   t  sQ    	'B	k"T4Lu-" a	 
 WT]F&+r   c                      [        S[        S5      [        R                  " S/S//5      S9n U /    n[        SS/[        S/S/// / /S9S9n[        R
                  " X5        g )Nr   r   r   rB   )r?   r@   )r   r   r   from_productr%   r   r   s      r   test_frame_mi_empty_slicer     sf    	1E!Hj.E.EsQCj.Q	RBVF!fj!qc
2r(KH &+r   c                  &   / SQ/ SQ/n [         R                  " U SS9n[        / SQUS/S9nUR                  UR                  S S 2S4   S:H  S S 24   R                  nUR                  US S 24   nUR                  S	/[        UR                  5      -  S S 24   n[        R                  " XE5        S
UR                  UR                  UR                  S S 2S4   S:H     R                  S4'   Un[        / SQUS/S9n[        R                  " XE5        g )N)r   r   r   r   )r   r   r   r   )r   r   r    )r   r   r   r8   valuerB   r   Fr:   )r   from_arraysr   r   r   rL   r%   r   )r   r   rR   empty_multiindexr+   r(   s         r   test_loc_empty_multiindexr     s    "$89F""61ABE	<uwi	@B vvbffQZ0A5q89??VV$a'(FvvugBHH-q01H&+ >?BFF266"&&G$)*00'9:FUWIFH&+r   ))numpyrH   rM   pandasr   r   r   r   pandas._testing_testingr%   pandas.core.indexingr   markparametrizer,   rS   r]   rb   rO   
IndexErrorrr   rx   r   r   r   r   slicer   r   r   nanr#   r   fixturer   r   r   r   r   r   r   r   r   <module>r     s       . 35RS A3	 1faVAq6&B"CD	-			- #s4- 5-6- /	.:MN	"H.AB	&2EF	)=:MN	((B7	h+$8	
 ! --  	')?@	 -0,", 	uQx(	uQ{+	$eAqk2,,-*,>  UUBFFO$VaV$&22L3-3PQ!		
 3Z	*&22%|c266]C "	
 UVaV$&22L3-3PQ!		
 UUGS1#J&22L>B!		
 URVVHS1#J& !sRDkC:u~2N "	
 rvv1vWC=IJo8;x&y;x&0 	9 	9 *,MN,,-	,,,r   