
    d                        d dl Zd dlZd dlmZmZmZ d dlmZ	 ej
        d             Zej                            dd d fd d fd	 d
 fg          d             Zd Zd Zd Zd Zd Zd Zd Zd Zej                            dg dg dgg dg dddgfg dg dgg dg dddgfg d g d!gg dg d"d#d$gfg d%g dg d&gg dg d'g d(fg          d)             Zd* ZdS )+    N)	DataFrame
MultiIndexSeriesc                  ~    t           j                            dd          } t          | g dg dgg dg dg          S )z
    Factory function to create simple 3 x 3 dataframe with
    both columns and row MultiIndex using supplied data or
    random data by default.
          r	            
   r
   r
   r   r   r      columnsindex)nprandomrandnr   )datas    f/var/www/html/t/fyr/venv311/lib/python3.11/site-packages/pandas/tests/indexing/multiindex/test_iloc.pysimple_multiindex_dataframer      sQ     9??1a  Dyyy***-iii5M       zindexer, expectedc                     | j         d         S )Nr   ilocdfs    r   <lambda>r!          rwqz r   c                 >    t          | d         g dg dgd          S )Nr   r   r   )r
   r   r   namer   arrs    r   r!   r!      s&    s1viii-D6RRR r   c                     | j         d         S Nr	   r   r   s    r   r!   r!   "   r"   r   c                 >    t          | d         g dg dgd          S )Nr	   r   r   )r   r   r$   r&   r'   s    r   r!   r!   #   s&    s1viii-D7SSS r   c                 $    | j         d d df         S r*   r   r   s    r   r!   r!   &   s    rwqqq!t} r   c                 F    t          | d d df         g dg dgd          S )Nr	   r   r   )r
   r   r$   r&   r'   s    r   r!   r!   '   s.    s111a4yKKK0HwWWW r   c                 n    |}|j         } | |          } ||          }t          j        ||           d S )N)valuestmassert_series_equal)indexerexpectedr   r    r(   results         r   test_iloc_returns_seriesr5      sC    $ 
%B
)CWR[[Fx}}H68,,,,,r   c                     | }|j         ddg         }|                    dd          }t          j        ||           d S )Nr      r
   F
drop_level)r   xsr0   assert_frame_equal)r   r    r4   r3   s       r   test_iloc_returns_dataframer<   3   sD    	$BWaV_FuuQ5u))H&(+++++r   c                 R    | }|j         }|j        d         }|d         }||k    sJ d S )Nr	   r	   )r/   r   )r   r    r(   r4   r3   s        r   test_iloc_returns_scalarr?   :   s9    	$B
)CWT]F4yHXr   c                      t          g dg dg } t          j        |           }t          t          j                            dd          |          }|j        ddg         }|                    dd	          }t          j
        ||           d S )
N)arA   brB   )xyrC   rD   r
   r   r	   r   rB   Fr8   )zipr   from_tuplesr   r   r   r   r   r:   r0   r;   )tupr   r    r4   r3   s        r    test_iloc_getitem_multiple_itemsrI   B   s    
$$$&:&:&:;
<C"3''E	29??1a((	6	6	6BWaV_FuuSUu++H&(+++++r   c                      t           j                            dd          } t          | g dg dgg dg dg          }|j        d         }| d         }||k    sJ d S )	Nr
   r   )irK   j)ArM   B)rK   rK   rL   k)XrP   YrQ   r   r>   )r   r   r   r   r   )r(   r    r4   r3   s       r   test_iloc_getitem_labelsrR   L   s    
)//!Q

C	 ///2###%9%9%9:
 
 
B
 WT]F4yHXr   c                 f    | }|j         d d         }|d d         }t          j        ||           d S )Nr
   )r   r0   r;    multiindex_dataframe_random_datar    r4   r3   s       r   test_frame_getitem_slicerV   Y   s<    	)BWRaR[F"1"vH&(+++++r   c                     | }d|j         d d<   |j        d d         dk                                    sJ |j        dd          dk                                    sJ d S )Nr   r
   )r   r/   all)rU   r    s     r   test_frame_setitem_slicerY   `   sj    	)BBGBQBKIbqbMQ##%%%%%IabbMQ##%%%%%%%r   c                  :   t          j        g d          } t          j        g d          }t          t          j        d                              d          ||           }|j        d d df         }|j        d d df         }t          j	        ||           d S )N))OhioGreenr[   Red)Colorador\   ))rA   r7   )rA   r	   )rB   r7   )rB   r	   r   )r
   r   )r   r   r7   r]   )
r   rG   r   r   arangereshaper   locr0   r1   )r   r   r    r4   r3   s        r    test_indexing_ambiguity_bug_1678rc   h   s    $CCC G "#K#K#KLLE	29R==((00w	O	O	OBWQQQT]Fvaaa()H68,,,,,r   c                     ddgddgddgddgd	d
gg} t          j        g d          }t          |           }t          | |          t          fdt          d          D                       }t	          j        ||           d S )Nstr00str01str10str11str20srt21str30str31str40str41))CCrM   ro   rN   rp   )BBrA   )rq   rB   rE   c                 J    g | ]fd t          d          D             S )c                 .    g | ]}j         |f         S  r   ).0cr    rs     r   
<listcomp>z:test_iloc_integer_locations.<locals>.<listcomp>.<listcomp>   s#    9991A999r   r	   )range)ru   rw   r    s    @r   rx   z/test_iloc_integer_locations.<locals>.<listcomp>   s8    LLLa99999a999LLLr      )r   rG   r   ry   r0   r;   )r   r   r3   r4   r    s       @r   test_iloc_integer_locationsr{   v   s     
'	'	'	'	'D "III E H	4u	%	%	%BLLLL588LLLMMF&(+++++r   z!data, indexes, values, expected_k)r	      rz   )r	   !   r   )r   r7   )r	   r   r7      r   )r7   r|   i+  )r7   r}   i  )   i,  d   i  i*  )r7   r   r   )r	   r
   r   )r   r   i     i  )r7      r
   )r   r}   r   )r
   r   r   )r         c                 $   t          | g d          }|                    ddg          }|j                                        }t	          ||          D ]\  }}|j        |xx         |z  cc<   ||d<   |j        }t          j        ||           d S )N)rK   rL   rO   )r   r   rK   rL   rO   )r   	set_indexrO   copyrF   r   r0   r1   )	r   indexesr/   
expected_kr    seriesrK   vr3   s	            r   'test_iloc_setitem_int_multiindex_seriesr      s     
ooo	6	6	6B	sCj	!	!BTYY[[FGV$$  1A!BsGtH68,,,,,r   c                     | }|j         d         }|                    |j        d                   }t          j        ||           d S r*   )r   r:   r   r0   r1   rT   s       r   test_getitem_ilocr      sB    	)BWQZFuuRXa[!!H68,,,,,r   )numpyr   pytestpandasr   r   r   pandas._testing_testingr0   fixturer   markparametrizer5   r<   r?   rI   rR   rV   rY   rc   r{   r   r   rt   r   r   <module>r      sS                
       
 
 
  "!RR	

 "!SS	

 %$WW	
 "- -# "-, , ,  , , ,
 
 
, , ,& & &- - -, , ,, ' **jjj	!:::yyy1b'B
,,	%zzz???S$KP
))YYY	^^^b$ZH
**jjj***	-zzz:::{{{S	 - - -- - - - -r   