a
    Pf6                     @   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   s8   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   r   r      columnsindex)nprandomdefault_rngstandard_normalr   )data r   c/var/www/ai-form-bot/venv/lib/python3.9/site-packages/pandas/tests/indexing/multiindex/test_iloc.pysimple_multiindex_dataframe   s    r   zindexer, expectedc                 C   s
   | j d S )Nr   ilocdfr   r   r   <lambda>       r   c                 C   s   t | d g dg dgddS )Nr   r   r	   )r   r   r   namer   arrr   r   r   r      r    c                 C   s
   | j d S Nr   r   r   r   r   r   r   "   r    c                 C   s   t | d g dg dgddS )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   &   r    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   '   r    c                 C   s*   |}|j }| |}||}t|| d S )N)valuestmassert_series_equal)Z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Z
drop_level)r   xsr(   assert_frame_equal)r   r   r+   r*   r   r   r   test_iloc_returns_dataframe3   s    r1   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
    
r3   c                  C   sd   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)ar4   br5   )xyr6   r7   r   )r   r   r   r   r5   Fr.   )zipr   from_tuplesr   r   r   r   r   r   r/   r(   r0   )tupr   r   r+   r*   r   r   r    test_iloc_getitem_multiple_itemsB   s    
r<   c                  C   sZ   t jdd} t| g dg dgg dg dgd}|jd }| d }||ksVJ d S )	Nr   r   r   )ir>   j)Ar@   B)r>   r>   r?   k)XrC   YrD   r   r2   )r   r   r   r   r   r   )r%   r   r+   r*   r   r   r   test_iloc_getitem_labelsL   s    
rE   c                 C   s.   | }|j d d }|d d }t|| d S )Nr   )r   r(   r0    multiindex_dataframe_random_datar   r+   r*   r   r   r   test_frame_getitem_sliceY   s    rH   c                 C   sJ   | }d|j d d< |jd d dk s,J |jdd  dk sFJ d S )Nr   r   )r   r'   all)rG   r   r   r   r   test_frame_setitem_slice`   s    rJ   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rK   Red)ZColoradorL   ))r4   r-   )r4   r   )r5   r-   )r5   r   r   r=   )r   r   r-   rM   )
r   r:   r   r   ZarangeZreshaper   locr(   r)   )r   r   r   r+   r*   r   r   r    test_indexing_ambiguity_bug_1678h   s    rP   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 )NZstr00Zstr01Zstr10Zstr11Zstr20Zsrt21Zstr30Zstr31Zstr40Zstr41))CCr@   rQ   rA   rR   )BBr4   )rS   r5   r8   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>   r    z:test_iloc_integer_locations.<locals>.<listcomp>.<listcomp>r   )range)rT   r   )rV   r   rW      r    z/test_iloc_integer_locations.<locals>.<listcomp>   )r   r:   r   rX   r(   r0   )r   r   r*   r+   r   r   r   test_iloc_integer_locationsv   s    rZ   z!data, indexes, values, expected_k)r      rY   )r   !   r
   )r   r-   )r   r   r-      r   )r-   r[   i+  )r-   r\   i  )   i,  d   i  i*  )r-   r   r^   )r   r   r   )r   r   i     i  )r-      r   )r   r\   r
   )r   r^   r   )r         c           	      C   sl   t | g dd}|ddg}|j }t||D ]\}}|j|  |7  < q2||d< |j}t|| d S )N)r>   r?   rB   )r   r   r>   r?   rB   )r   Z	set_indexrB   copyr9   r   r(   r)   )	r   Zindexesr'   Z
expected_kr   Zseriesr>   vr*   r   r   r   'test_iloc_setitem_int_multiindex_series   s    
rg   c                 C   s.   | }|j d }||jd }t|| d S r&   )r   r/   r   r(   r)   rF   r   r   r   test_getitem_iloc   s    
rh   )numpyr   ZpytestZpandasr   r   r   Zpandas._testingZ_testingr(   Zfixturer   markZparametrizer,   r1   r3   r<   rE   rH   rJ   rP   rZ   rg   rh   r   r   r   r   <module>   sJ   


"""(
