
    bMh6                        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   r   r      columnsindex)nprandomdefault_rngstandard_normalr   )datas    j/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/indexing/multiindex/test_iloc.pysimple_multiindex_dataframer      s_     9  ##33F;;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_seriesr6      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   xsr1   assert_frame_equal)r   r!   r5   r4   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   )r0   r   )r   r!   r)   r5   r4   s        r   test_iloc_returns_scalarr@   :   s9    	$B
)CWT]F4yHXr   c                  D   t          g dg dg } t          j        |           }t          t          j                            d                              d          |          }|j        ddg         }|	                    dd	          }t          j        ||           d S )
N)arB   brC   )xyrD   rE   r   )r
   r
   r   r   rC   Fr9   )zipr   from_tuplesr   r   r   r   r   r   r;   r1   r<   )tupr   r!   r5   r4   s        r    test_iloc_getitem_multiple_itemsrJ   B   s    
$$$&:&:&:;
<C"3''E	29((++;;FCC5	Q	Q	QB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
   r   )irM   j)ArO   B)rM   rM   rN   k)XrR   YrS   r   r?   )r   r   r   r   r   r   )r)   r!   r5   r4   s       r   test_iloc_getitem_labelsrT   L   s    
)


"
"
2
26
:
:C	 ///2###%9%9%9:
 
 
B
 WT]F4yHXr   c                 f    | }|j         d d         }|d d         }t          j        ||           d S )Nr
   )r   r1   r<    multiindex_dataframe_random_datar!   r5   r4   s       r   test_frame_getitem_slicerX   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   r0   all)rW   r!   s     r   test_frame_setitem_slicer[   `   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^   ))rB   r8   )rB   r   )rC   r8   )rC   r   r   rL   )r   r   r8   r_   )
r   rH   r   r   arangereshaper   locr1   r2   )r   r   r!   r5   r4   s        r    test_indexing_ambiguity_bug_1678re   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))CCrO   rq   rP   rr   )BBrB   )rs   rC   rF   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)rw   ry   r!   s    @r   rz   z/test_iloc_integer_locations.<locals>.<listcomp>   s8    LLLa99999a999LLLr      )r   rH   r   r{   r1   r<   )r   r   r4   r5   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      r|   )r   !   r   )r   r8   )r   r   r8      r   )r8   r~   i+  )r8   r   i  )   i,  d   i  i*  )r8   r   r   )r   r
   r   )r   r   i     i  )r8      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)rM   rN   rQ   )r   r   rM   rN   rQ   )r   	set_indexrQ   copyrG   r   r1   r2   )	r   indexesr0   
expected_kr!   seriesrM   vr4   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   r1   r2   rV   s       r   test_getitem_ilocr      sB    	)BWQZFuuRXa[!!H68,,,,,r   )numpyr   pytestpandasr   r   r   pandas._testing_testingr1   fixturer   markparametrizer6   r=   r@   rJ   rT   rX   r[   re   r}   r   r   rv   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   