
    d@1                        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                            dd d d g          ej                            dd  ed	gd g
          fd	 eddgd	dg
          fg          d                         Zej                            dddg          d             Zd Zd Ze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                            d#d$ d%fd& d'fg          d(             Zd) Zej                            d*d+  ed          fd,  edd-          fd.  edd-          fg          d/             Zd0 Zd1 Zej                            d2d3gd4ej        gf eddgd-d5gg ej        d6d3ej        fg          d78          fd9d3g eg d:g d;g ej        d<d6d3ej        fg          d78          fd3g eddgd-d5gg ej        d6d3ej        fg          d78          fd3gd4gf edgd-gg ej        d6g          d78          fd3gej        gf edgd5gg ed	gd=ggd9d3gd4d>gg?          d78          fd3ej        f edd5gd7d3ej        f@          fg          dA             Z ej!        dB             Z"ej                            dCdD dE g          dF             Z#dG Z$dH Z%dI Z&dJ Z'dS )K    N)	DataFrameIndex
MultiIndexSeries)IndexingErroraccess_methodc                     | d d |f         S N sxs     i/var/www/html/t/fyr/venv311/lib/python3.11/site-packages/pandas/tests/indexing/multiindex/test_getitem.py<lambda>r      s    !AAAqD'     c                 $    | j         d d |f         S r
   locr   s     r   r   r      s    aaad r   c                 0    |                      |d          S )N   )level)xsr   s     r   r   r      s    !$$qPQ$BRBR r   zlevel1_value, expectedr   index      c                     t          j        g dddg          }t          g d|          }d|j        _         | ||          }t          j        ||           d S )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,      sn     
	 8 8 8c
	K	K	KB
"
%
%
%CHN]3--F68,,,,,r   level0_valueDr   c                    t          | ddgg dgg dg dgddg          }t          j                            t	          |          d	          }t          ||d
g          }| dk    r@t          j        t          d          5  |j	        d          d d d            n# 1 swxY w Y   t          j        t          d          5  |j	        d          d d d            n# 1 swxY w Y   |j	        |          }t          |                                dd         d
t          g dd                    }t          j        ||           d S )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   valr   columnsr   z^'A'$matchz^'X'$Xr   r   )r1   r3   r4   r$   )r$   r   )r   nprandomrandnlenr   pytestraisesKeyErrorrA   r   ravelr   r%   r&   )r-   r   arrdfr+   r(   s         r   )test_series_getitem_duplicates_multiindexrR   &   s   
 sC(*I*I*IJ---/M/M/MNen  E
 )//#e**a
(
(C	3eeW	5	5	5B s]88444 	 	F3KK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 
xx	0	0	0  
s               VL!F		AaCuE,,,U,K,K,K  H 68,,,,,s$   BB!$B!CC!$C!c                 
   | d         }|                     |j        dd                   }|j                            d                              d          |_         ||          d         }t          j        ||           d S )Nr   *   A   r   )  r   )reindexr   	droplevelr%   r&   /multiindex_year_month_day_dataframe_random_data
indexer_slr   r(   r+   s        r   test_series_getitemr\   B   sw    7<AyyB((H^--a00::1==HNZ]]7#F68,,,,,r   c                 b    | d         }|j         d         } ||          d         }||k    sJ d S )Nr   1   )rV   r   
   )ilocrY   s        r   "test_series_getitem_returns_scalarra   K   sB     	8<AvbzHZ]];'FXr   z)indexer,expected_error,expected_error_msgc                 ,    |                      d          S N)rV   r   r8   )__getitem__r   s    r   r   r   X   s    1==.. r   z^\(2000, 3, 4\)$c                     | d         S rc   r   re   s    r   r   r   Y   s
    1\? r   c                     | j         d         S rc   r   re   s    r   r   r   Z   s    15& r   c                     | j         d         S )N)rV   r   r8   r:   r   re   s    r   r   r   [   s    15) r   zToo many indexersc                 F    |                      t          |                     S r
   )rd   rK   re   s    r   r   r   \   s    1==Q(( r    c                 ,    | t          |                    S r
   )rK   re   s    r   r   r   ]   s    1SVV9 r   c                 6    | j         t          |                    S r
   )r`   rK   re   s    r   r   r   _   s    afSVVn r   z*single positional indexer is out-of-boundsc                     | d         }t          j        ||          5   ||           d d d            d S # 1 swxY w Y   d S )Nr   rD   )rL   rM   )rZ   indexerexpected_errorexpected_error_msgr   s        r   #test_series_getitem_indexing_errorsrq   U   s    , 	8<A	~-?	@	@	@  


                 s   8<<c                 |    | d         }|d |D                      }||dk             }t          j        ||           d S )Nr   c              3   "   K   | ]
}|d k    V  dS )r   Nr   ).0r   s     r   	<genexpr>z7test_series_getitem_corner_generator.<locals>.<genexpr>t   s&      !!!A!!!!!!r   r   )r%   r&   )rZ   r   r+   r(   s       r   $test_series_getitem_corner_generatorrv   p   sM     	8<A!!q!!!"FQxH68,,,,,r   c                 z    | j         }|j        d d df         }|d         j        }t          j        ||           d S )Nr   )fooone)Tvaluesr%   assert_almost_equal) multiindex_dataframe_random_datarQ   r(   r+   s       r   test_getitem_simpler~   ~   sC    	)	+ByAH$F68,,,,,r   zindexer,expected_error_msgc                     | d         S )N)rx   fourr   rQ   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            d S # 1 swxY w Y   d S )NrD   )rz   rL   rM   rN   )r}   rn   rp   rQ   s       r   #test_frame_getitem_simple_key_errorr      s     
*	+B	x'9	:	:	:                   s   <A A 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        ||           d S )N)123)r   r   4)abzlevel1 item1zlevel1 item2rj   zlevel2 item2zlevel3 item1zlevel3 item2r   r   r   rB   )r   rC   r   r%   assert_frame_equalrQ   r+   r(   s      r   *test_frame_getitem_multicolumn_empty_levelr      s    	??	@	@B	(	^	(BJ F
uRX7G  H &(+++++r   zindexer,expected_slicec                     | d         S )Nrx   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    BF111e8$ r   c                     | j         }|                    |j        |                   }|j                            d          |_         ||          }t	          j        ||           d S )NrC   r   )rz   rW   rC   rX   r%   r   )r}   rn   expected_slicerQ   r(   r+   s         r   test_frame_getitem_toplevelr      se     
*	+Bzz"*^"<z==H'11!44HWR[[F&(+++++r   c                     g dg dg dg} t          t          |            }t          j        |          }t	          t
          j                            dd          |          }|d         }|d                             d          }t          j
        ||           |d	         }|d
         }|                    d	          }t          j
        ||           d S )N)r   topr   routine1r   routine2)rj   ODr   result1result2r   )rj   wxwyrj   rj   rj   r8   r9   r   r   )r   rj   rj   )r   r   )r   r   rj   )sortedzipr   r#   r   rH   rI   rJ   renamer%   r&   )arraystuplesr   rQ   r+   r(   s         r   test_frame_mixed_depth_getr      s    ???999$$$F CL!!F"6**E	29??1a((%	8	8	8BWF+%%c**H68,,,%&F+,H677H68,,,,,r   c                 z   | }g d}t          d|dgd|dgd|dgd|d	gg|
                              ddg          }|d                             d          |d<   d|f}|j        d |         }t          d|dgd|dgg|
                              ddg          }|d                             d          |d<   t	          j        ||           |j        |d          }t          d|dgd|dgd|d	gg|
                              ddg          }|d                             d          |d<   t	          j        ||           d|fd|f}}|j        ||         }t          d|dgd|dgg|
                              ddg          }|d                             d          |d<   t	          j        ||           d S )N)r   r   c               !   )   +   r   r   r   r   int64)r   	set_indexastyper   r%   r   )	nulls_fixturencolsrQ   idxr+   r(   idx1idx2s	            r   !test_frame_getitem_nan_multiindexr      s
    	A??D	
ar1bkB2;Q<
 
 
 ic
  gnnW%%BsGq'CVDSD\F2q"+Ar{3TBBBLLcSVZXXHSM((11HSM&(+++VCDD\F
ar1bkB2;/  ic
  SM((11HSM&(+++a2q'$DVDIF2q"+Ar{3TBBBLLcSVZXXHSM((11HSM&(+++++r   zindexer,expectedr   r   r9   r   r   r   rC   dtyper   r"   r8   r:   r9   r   rx   rx   )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        ||           d S )Nr"   r   r   r   r   r   r   )r   r   r#   r   r%   assert_equal)rn   r(   r   rQ   r+   s        r   &test_frame_getitem_nan_cols_multiindexr      s{    F 
	III&<#})=>
 
 
 
 
B VAAAwJFOFH%%%%%r   c                      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   =  s     +**,>,>,>@R@R@RSDEc
4445!!!#5#5#56uo  G
 T8888r   rn   c                     | d         S Nr   r   r   r   s    r   r   r   K  s
    2k? r   c                 $    | j         d d df         S r   r   r   s    r   r   r   K  s    rvaaan7M r   c                     | }t          g d          }t          j        dgddg          }t          g dg||          j        } ||          }t          j        ||           d S )Nr   r   r   r   r    r   r   r   rB   )r   r   r#   r   rz   r%   r   )r   rn   rQ   r   rC   r(   r+   s          r   test_frame_mi_accessr   J  s{    
 
(B$$$%%E$k]65/JJJG+++guEEEGHWR[[F&(+++++r   c                 |    | }t          g dg dd          }|d         d         }t          j        ||           d S )Nr   r   r   )r   r$   r   )r   r%   r&   r   rQ   r(   r+   s       r   #test_frame_mi_access_returns_seriesr   X  sN    
 
(Bkkk);););$GGGHWT]F68,,,,,r   c                     | }t          g dg dgt          ddgd          g d          j        }|d         d         }t          j        ||           d S )	N)r   r8   r8   )r   r:   r:   r   r   rG   r   rB   r   )r   r   rz   r%   r   r   s       r   "test_frame_mi_access_returns_framer   c  sx    	'B	kkk"T4Lu---"""   	 
 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        ||           d S )Nr   r   r   rB   )r?   r@   )r   ranger   from_productr%   r   r   s      r   test_frame_mi_empty_slicer   o  s    	1E!HHj.EsQCj.Q.Q	R	R	RBVF!fj!qc
2r(KKK  H &(+++++r   c                     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        ||           d S )N)r   r   r   r   )r   r   r   r   )r   r   r    )r   r   r   r8   valuerB   r   Fr:   )r   from_arraysr   r   r   rK   r%   r   )r   r   rQ   empty_multiindexr+   r(   s         r   test_loc_empty_multiindexr   y  s.   """$8$8$89F"61ABBBE	<<<uwi	@	@	@B vbfQQQZ0A5qqq89?V$aaa'(FvugBH-qqq01H&(+++ >?BF26"&G$)*0'9:FUWIFFFH&(+++++r   )(numpyrH   rL   pandasr   r   r   r   pandas._testing_testingr%   pandas.core.indexingr   markparametrizer,   rR   r\   ra   rN   
IndexErrorrq   rv   r~   r   r   slicer   r   r   nanr#   r   fixturer   r   r   r   r   r   r   r   r   <module>r      s                         . . . . . . 335R5RS  A3			 1ffaVAq6&B&B&B"CD 	- 	-	 	 	- #s44- - 54-6- - -   /	.	.:MN	"	"H.AB	&	&2EF	)	)=:MN	(	((B7		h+$$8	
   !  - - -- - -  	'	')?@	 	 -0   , , , 		uuQxx(		uuQ{{+	$	$eeAqkk2 , , ,- - -*, , ,>  UUBFO$	VaV$2J2L3-3PQQ!  		
 3Z	YY			*2J2%|c26]C  "  	
 U	VaV$2J2L3-3PQQ!  		
 UUG	S1#J2J2L>BB!  		
 URVH	S1#J&J !sRDkC:u~2N   "  	
 rv1vWC=IIIJo8; ;x& &y; ;x&0 	9 	9 	9 **,M,MN , , ,- - -	, 	, 	,, , ,, , , , ,r   