
    Owg6                        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                  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                  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y)+    N)	DataFrame
MultiIndexSeriesc                      t         j                  j                  d      j                  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    a/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/indexing/multiindex/test_iloc.pysimple_multiindex_dataframer      sA     99  #33F;Dy*-i5M     zindexer, expectedc                      | j                   d   S )Nr   ilocdfs    r   <lambda>r"          rwwqz r   c                 0    t        | d   g dg dgd      S )Nr   r	   r   )r
   r   r   namer   arrs    r   r"   r"      s    s1vi-D6R r   c                      | j                   d   S Nr   r   r    s    r   r"   r"   "   r#   r   c                 0    t        | d   g dg dgd      S )Nr   r	   r   )r   r   r%   r'   r(   s    r   r"   r"   #   s    s1vi-D7S r   c                 (    | j                   d d df   S r+   r   r    s    r   r"   r"   &   s    rwwq!t} r   c                 8    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    s1a4yK0HwW r   c                 l    |}|j                   } | |      } ||      }t        j                  ||       y )N)valuestmassert_series_equal)indexerexpectedr   r!   r)   results         r   test_iloc_returns_seriesr6      s4    $ 
%B
))CR[F}H68,r   c                 |    | }|j                   ddg   }|j                  dd      }t        j                  ||       y )Nr      r
   F
drop_level)r   xsr1   assert_frame_equal)r   r!   r5   r4   s       r   test_iloc_returns_dataframer=   3   s:    	$BWWaV_FuuQ5u)H&(+r   c                 V    | }|j                   }|j                  d   }|d   }||k(  sJ y )Nr   r   )r0   r   )r   r!   r)   r5   r4   s        r   test_iloc_returns_scalarr@   :   s4    	$B
))CWWT]F4yHXr   c                  0   t        g dg dg } t        j                  |       }t        t        j
                  j                  d      j                  d      |      }|j                  ddg   }|j                  dd	      }t        j                  ||       y )
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	299((+;;FC5	QBWWaV_FuuSUu+H&(+r   c                      t         j                  j                  d      j                  d      } t	        | g dg dgg dg dg      }|j
                  d   }| d   }||k(  sJ y )	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   se    
))


"
2
26
:C	 /2#%9:
B
 WWT]F4yHXr   c                 \    | }|j                   d d }|d d }t        j                  ||       y )Nr
   )r   r1   r<    multiindex_dataframe_random_datar!   r5   r4   s       r   test_frame_getitem_slicerX   Y   s1    	)BWWRa[F"1vH&(+r   c                     | }d|j                   d d |j                  d d dk(  j                         sJ |j                  dd  dk7  j                         sJ y )Nr   r
   )r   r0   all)rW   r!   s     r   test_frame_setitem_slicer[   `   sX    	)BBGGBQKIIbqMQ##%%%IIabMQ##%%%r   c                  8   t        j                  g d      } t        j                  g d      }t        t        j                  d      j                  d      ||       }|j                  d d df   }|j                  d d df   }t        j                  ||       y )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G ""#KLE	299R=((0w	OBWWQT]Fvva()H68,r   c                  Z   ddgddgddgddgd	d
gg} t        j                  g d      }t        |       }t        | |      }t        t        d      D cg c]*  }t        d      D cg c]  }|j                  ||f    c}, c}}      }t        j                  ||       y c c}w c c}}w )Nstr00str01str10str11str20srt21str30str31str40str41))CCrO   rq   rP   rr   )BBrB   )rs   rC   rF      r   )r   rH   r   ranger   r1   r<   )r   r   r4   r!   rcr5   s          r   test_iloc_integer_locationsrx   v   s     
'	'	'	'	'D ""IE H	4u	%B58Laa91A9LMF&(+ :Ls   B'
&B">B'
"B'
z!data, indexes, values, expected_k)r      rt   )r   !   r   )r   r8   )r   r   r8      r   )r8   ry   i+  )r8   rz   i  )   i,  d   i  i*  )r8   r   r|   )r   r
   r   )r   r   i     i  )r8      r
   )r   rz   r   )r
   r|   r   )r         c                     t        | g d      }|j                  ddg      }|j                  j                         }t	        ||      D ]  \  }}|j
                  |xx   |z  cc<    ||d<   |j                  }t        j                  ||       y )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     
o	6B	sCj	!BTTYY[FGV$ 1A! BsGttH68,r   c                     | }|j                   d   }|j                  |j                  d         }t        j                  ||       y r+   )r   r;   r   r1   r2   rV   s       r   test_getitem_ilocr      s:    	)BWWQZFuuRXXa[!H68,r   )numpyr   pytestpandasr   r   r   pandas._testing_testingr1   fixturer   markparametrizer6   r=   r@   rJ   rT   rX   r[   re   rx   r   r    r   r   <module>r      s0     
  
 
  "R	

 "S	

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