o
    5c                     @   sn  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d Zejddd dd fd	d d
d fdd dd fgdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zd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 d0g d g d1gg d"g d2g d3fgd4d5 Zd6d7 ZdS )8    N)	DataFrame
MultiIndexSeriesc                  C   s4   t jdd} t| g dg dgg dg dgd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   )data r   `/var/www/html/gps/gps/lib/python3.10/site-packages/pandas/tests/indexing/multiindex/test_iloc.pysimple_multiindex_dataframe   s   r   zindexer, expectedc                 C   
   | j d S )Nr   ilocdfr   r   r   <lambda>      
 r   c                 C      t | d g dg dgddS )Nr   r   r	   )r   r   r   namer   arrr   r   r   r          c                 C   r   Nr   r   r   r   r   r   r   "   r    c                 C   r!   )Nr   r   r	   )r   r   r"   r$   r%   r   r   r   r   #   r'   c                 C   s   | j d d df S r(   r   r   r   r   r   r   &   s    c                 C   s&   t | d d df g dg dgddS )Nr   r   r   )r   r   r"   r$   r%   r   r   r   r   '   s   & c                 C   s*   |}|j }| |}||}t|| d S )N)valuestmassert_series_equal)indexerexpectedr   r   r&   resultr   r   r   test_iloc_returns_series   s
   r/   c                 C   s0   | }|j ddg }|jddd}t|| d S )Nr      r   F
drop_level)r   xsr*   assert_frame_equal)r   r   r.   r-   r   r   r   test_iloc_returns_dataframe3   s   r5   c                 C   s,   | }|j }|jd }|d }||ksJ d S )Nr   r   )r)   r   )r   r   r&   r.   r-   r   r   r   test_iloc_returns_scalar:   s
   
r7   c                  C   s`   t g dg dg } t| }ttjdd|d}|jddg }|jddd	}t	
|| d S )
N)ar8   br9   )xyr:   r;   r   r   r   r   r9   Fr1   )zipr   from_tuplesr   r   r   r   r   r3   r*   r4   )tupr   r   r.   r-   r   r   r    test_iloc_getitem_multiple_itemsB   s   
r@   c                  C   sV   t jdd} t| g dg dgg dg dgd}|jd }| d }||ks)J d S )	Nr   r   )irA   j)ArC   B)rA   rA   rB   k)XrF   YrG   r   r6   )r   r   r   r   r   )r&   r   r.   r-   r   r   r   test_iloc_getitem_labelsL   s   
rH   c                 C   s.   | }|j d d }|d d }t|| d S )Nr   )r   r*   r4    multiindex_dataframe_random_datar   r.   r-   r   r   r   test_frame_getitem_sliceY   s   rK   c                 C   sJ   | }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)rJ   r   r   r   r   test_frame_setitem_slice`   s   rM   c                  C   sj   t g d} t g d}ttdd|| d}|jd d df }|jd d df }t	|| d S )N))OhioGreenrN   Red)ColoradorO   ))r8   r0   )r8   r   )r9   r0   )r9   r   r   )r   r   )r   r   r0   rP   )
r   r>   r   r   arangereshaper   locr*   r+   )r   r   r   r.   r-   r   r   r    test_indexing_ambiguity_bug_1678h   s   rV   c                     sn   ddgddgddgddgd	d
gg} t g d}t| }t| |d t fddtdD }t|| d S )Nstr00str01str10str11str20srt21str30str31str40str41))CCrC   ra   rD   rb   )BBr8   )rc   r9   r<   c                    s$   g | ]  fd dt dD qS )c                    s   g | ]	} j |f qS r   r   ).0c)r   rr   r   
<listcomp>   s    z:test_iloc_integer_locations.<locals>.<listcomp>.<listcomp>r   )range)rd   r   )rf   r   rg      s   $ z/test_iloc_integer_locations.<locals>.<listcomp>   )r   r>   r   rh   r*   r4   )r   r   r-   r.   r   r   r   test_iloc_integer_locationsv   s   rj   z!data, indexes, values, expected_k)r      ri   )r   !   r
   )r   r0   )r   r   r0      r   )r0   rk   i+  )r0   rl   i  )   i,  d   i  i*  )r0   r   rn   )r   r   r   )r   r   i     i  )r0      r   )r   rl   r
   )r   rn   r   )r         c           	      C   sl   t | g dd}|ddg}|j }t||D ]\}}|j|  |7  < q||d< |j}t|| d S )N)rA   rB   rE   )r   r   rA   rB   rE   )r   	set_indexrE   copyr=   r   r*   r+   )	r   indexesr)   
expected_kr   seriesrA   vr-   r   r   r   'test_iloc_setitem_int_multiindex_series   s   
r{   c                 C   s.   | }|j d }||jd }t|| d S r(   )r   r3   r   r*   r+   rI   r   r   r   test_getitem_iloc   s   
r|   )numpyr   pytestpandasr   r   r   pandas._testing_testingr*   fixturer   markparametrizer/   r5   r7   r@   rH   rK   rM   rV   rj   r{   r|   r   r   r   r   <module>   sL    


"""(
