
    Owg3                        d dl Zd dlZd dlmZmZmZmZ d dlm	Z
 d dlmZ ej                  j                  dd d d g      ej                  j                  dd  ed	gd g
      fd	 eddgd	dg
      fg      d               Zej                  j                  dddg      d        Zd Zd Zej                  j                  dd edfd edfd edfd edfd edfd edfd edfg      d         Zd! Zd" Zej                  j                  d#d$ d%fd& d'fg      d(        Zd) Zd* Zej                  j                  d+d,  ed      fd-  edd.      fd/  edd.      fg      d0        Zd1 Zd2 Zej                  j                  d3d4gd5ej>                  gf eddgd.d6gg ej@                  d7d4ej>                  fg      d89      fd:d4g eg d;g d<g ej@                  d=d7d4ej>                  fg      d89      fd4g eddgd.d6gg ej@                  d7d4ej>                  fg      d89      fd4gd5gf edgd.gg ej@                  d7g      d89      fd4gej>                  gf edgd6gg ed	gd>ggd:d4gd5d?gg@      d89      fd4ej>                  f edd6gd8d4ej>                  fA      fg      dB        Z!ejD                  dC        Z#ej                  j                  dDdE dF g      dG        Z$dH Z%dI Z&dJ Z'dK Z(y)L    N)	DataFrameIndex
MultiIndexSeries)IndexingErroraccess_methodc                     | d d |f   S N sxs     d/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/indexing/multiindex/test_getitem.py<lambda>r      s    !AqD'     c                 (    | j                   d d |f   S r
   locr   s     r   r   r      s    ad r   c                 (    | j                  |d      S )N   )level)xsr   s     r   r   r      s    !$$qPQ$BR r   zlevel1_value, expectedr   index      c                     t        j                  g dddg      }t        g d|      }d|j                  _         | ||      }t        j                  ||       y )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,      sO     
		 8c
	KB
"
%CHNN3-F68,r   level0_valueDr   c                 v   t        | ddgg dgg dg dgddg      }t        j                  j                  d	      j	                  t        |      d
f      }t        ||dg      }| dk7  r3t        j                  t        d      5  |j                  d    d d d        t        j                  t        d      5  |j                  d    d d d        |j                  |    }t        |j                         dd dt        g dd            }t        j                  ||       y # 1 sw Y   xY w# 1 sw Y   gxY w)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	3eeW	5B s]]884 	FF3K	 
xx	0 
s VVL!F		AauE,U,KH 68,	 	 s   D#9D/#D,/D8c                     | d   }|j                  |j                  dd       }|j                  j                  d      j                  d      |_         ||      d   }t        j                  ||       y )Nr   *   A   r   )  r   )reindexr   	droplevelr%   r&   /multiindex_year_month_day_dataframe_random_data
indexer_slr   r(   r+   s        r   test_series_getitemr]   B   sc    7<AyyB(H^^--a0::1=HN]7#F68,r   c                 P    | d   }|j                   d   } ||      d   }||k(  sJ y )Nr   1   )rW   r   
   )ilocrZ   s        r   "test_series_getitem_returns_scalarrb   K   s7     	8<AvvbzH];'FXr   z)indexer,expected_error,expected_error_msgc                 $    | j                  d      S N)rW   r   r8   )__getitem__r   s    r   r   r   X   s    1==. r   z^\(2000, 3, 4\)$c                     | d   S rd   r   rf   s    r   r   r   Y   s
    1\? r   c                      | j                   d   S rd   r   rf   s    r   r   r   Z   s    155& r   c                      | j                   d   S )N)rW   r   r8   r:   r   rf   s    r   r   r   [   s    155) r   zToo many indexersc                 6    | j                  t        |             S r
   )re   rL   rf   s    r   r   r   \   s    1==Q( r    c                     | t        |          S r
   )rL   rf   s    r   r   r   ]   s    1SV9 r   c                 2    | j                   t        |          S r
   )ra   rL   rf   s    r   r   r   _   s    affSVn r   z*single positional indexer is out-of-boundsc                 v    | d   }t        j                  ||      5   ||       d d d        y # 1 sw Y   y xY w)Nr   rD   )rM   rN   )r[   indexerexpected_errorexpected_error_msgr   s        r   #test_series_getitem_indexing_errorsrr   U   s9    , 	8<A	~-?	@ 
  s   	/8c                 b    | d   }|d |D           }||dkD     }t        j                  ||       y )Nr   c              3   &   K   | ]	  }|d kD    yw)r   Nr   ).0r   s     r   	<genexpr>z7test_series_getitem_corner_generator.<locals>.<genexpr>t   s     !!A!s   r   )r%   r&   )r[   r   r+   r(   s       r   $test_series_getitem_corner_generatorrw   p   s;     	8<A!q!"FQxH68,r   c                     | j                   }|j                  d d df   }|d   j                  }t        j                  ||       y )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68,r   zindexer,expected_error_msgc                     | d   S )N)ry   fourr   rR   s    r   r   r      s    B' r   z^\('foo', 'four'\)$c                     | d   S )Nfoobarr   r   s    r   r   r      s
    BxL r   z
^'foobar'$c                     | j                   }t        j                  t        |      5   ||       d d d        y # 1 sw Y   y xY w)NrD   )r{   rM   rN   rO   )r~   ro   rq   rR   s       r   #test_frame_getitem_simple_key_errorr      s:     
*	+	+B	x'9	:   s	   	:Ac                  z   t        j                  g d      } t        t        d      t        dd      t        dd      g|       }d|d	<   |j	                         }|j
                  j                         |_        d|d
<   |dd
g   }t        ddgddgddggt        dd
g            }t        j                  ||       y )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                      t        g dg dd      } ddgddgdd	gg| _        | d   }t        d
gdgdgg| j                  dg      }t        j                  ||       y )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      su    	?	@B	(	^	(BJ F
uRXX7GH &(+r   zindexer,expected_slicec                     | d   S )Nry   r   r   s    r   r   r      
    BuI r   c                     | d   S Nbarr   r   s    r   r   r      r   r   r:   c                 (    | j                   d d df   S r   r   r   s    r   r   r      s    BFF1e8$ r   c                     | j                   }|j                  |j                  |         }|j                  j                  d      |_         ||      }t	        j
                  ||       y )Nr   r   )r{   rX   rC   rY   r%   r   )r~   ro   expected_slicerR   r(   r+   s         r   test_frame_getitem_toplevelr      sZ     
*	+	+Bzz"**^"<z=H''11!4HR[F&(+r   c                     g dg dg dg} t        t        |        }t        j                  |      }t	        t
        j                  j                  d      j                  d      |      }|d   }|d   j                  d      }t        j                  ||       |d	   }|d
   }|j                  d	      }t        j                  ||       y )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68,%&F+,H67H68,r   c                    | }g d}t        d|dgd|dgd|dgd|d	gg|
      j                  ddg      }|d   j                  d      |d<   d|f}|j                  d | }t        d|dgd|dgg|
      j                  ddg      }|d   j                  d      |d<   t	        j
                  ||       |j                  |d  }t        d|dgd|dgd|d	gg|
      j                  ddg      }|d   j                  d      |d<   t	        j
                  ||       d|fd|f}}|j                  || }t        d|dgd|dgg|
      j                  ddg      }|d   j                  d      |d<   t	        j
                  ||       y )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'$D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   ry   ry   )r@   r?   )r   r$   c           	          t        g dg dgt        j                  ddd|fg      d      }|j                  d d | f   }t	        j
                  ||       y )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      s[    F 
	I&&<#})=>
 
B VVAwJFOOFH%r   c                  t    g dg dg dg} g d}t        ddgg dgg dg dgd	d
g      }t        | ||      S )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  sO     +,>@RSDEc
45!#56uoG
 T88r   ro   c                     | d   S Nr   r   r   r   s    r   r   r   \  s
    2k? r   c                 (    | j                   d d df   S r   r   r   s    r   r   r   \  s    rvvan7M r   c                     | }t        g d      }t        j                  dgddg      }t        g dg||      j                  } ||      }t        j                  ||       y )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   [  s[    
 
(B$%E$$k]65/JG+guEGGHR[F&(+r   c                 h    | }t        g dg dd      }|d   d   }t        j                  ||       y )Nr   r   r   )r   r$   r   )r   r%   r&   r   rR   r(   r+   s       r   #test_frame_mi_access_returns_seriesr   i  s5    
 
(Bk);$GHWT]F68,r   c                     | }t        g dg dgt        ddgd      g d      j                  }|d   d   }t        j                  ||       y )	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  sS    	'B	k"T4Lu-" a	 
 WT]F&(+r   c                      t        dt        d      t        j                  dgdgg            } | g    }t        ddgt        dgdggg g g            }t	        j
                  ||       y )Nr   r   r   rB   )r?   r@   )r   r   r   from_productr%   r   r   s      r   test_frame_mi_empty_slicer     sh    	1E!Hj.E.EsQCj.Q	RBVF!fj!qc
2r(KH &(+r   c                  6   g dg dg} t        j                  | d      }t        g d|dg      }|j                  |j                  d d df   dk(  d d f   j                  }|j                  |d d f   }|j                  d	gt        |j                        z  d d f   }t        j                  ||       d
|j                  |j                  |j                  d d df   dk(     j                  df<   |}t        g d|dg      }t        j                  ||       y )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   rw   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$2J22L3-3PQ!		
 3Z	*2J22%|c266]C "	
 UVaV$2J22L3-3PQ!		
 UUGS1#J2J22L>B!		
 URVVHS1#J& !sRDkC:u~2N "	
 rvv1vWC=IJo8;x&y;x&0 	9 	9 *,MN,,-	,,,r   