o
    _~#g6                     @   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   /var/www/static.ux5.de/https/Moving-Object-Detection-with-OpenCV/env/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
   r0   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   r6   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
   
r8   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)ar9   br:   )xyr;   r<   r   )r   r   r   r   r:   Fr2   )zipr   from_tuplesr   r   r   r   r   r   r4   r+   r5   )tupr   r   r/   r.   r   r   r    test_iloc_getitem_multiple_itemsB   s   
rA   c                  C   sZ   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   r   )irC   j)ArE   B)rC   rC   rD   k)XrH   YrI   r   r7   )r   r   r   r   r   r   )r'   r   r/   r.   r   r   r   test_iloc_getitem_labelsL   s   
rJ   c                 C   s.   | }|j d d }|d d }t|| d S )Nr   )r   r+   r5    multiindex_dataframe_random_datar   r/   r.   r   r   r   test_frame_getitem_sliceY   s   rM   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)rL   r   r   r   r   test_frame_setitem_slice`   s   rO   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rP   Red)ColoradorQ   ))r9   r1   )r9   r   )r:   r1   )r:   r   r   rB   )r   r   r1   rR   )
r   r?   r   r   arangereshaper   locr+   r,   )r   r   r   r/   r.   r   r   r    test_indexing_ambiguity_bug_1678h   s   rX   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))CCrE   rc   rF   rd   )BBr9   )re   r:   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)rf   r   )rh   r   ri      s   $ z/test_iloc_integer_locations.<locals>.<listcomp>   )r   r?   r   rj   r+   r5   )r   r   r.   r/   r   r   r   test_iloc_integer_locationsv   s   rl   z!data, indexes, values, expected_k)r      rk   )r   !   r
   )r   r1   )r   r   r1      r   )r1   rm   i+  )r1   rn   i  )   i,  d   i  i*  )r1   r   rp   )r   r   r   )r   r   i     i  )r1      r   )r   rn   r
   )r   rp   r   )r         c           	      C   sl   t | g dd}|ddg}|j }t||D ]\}}|j|  |7  < q||d< |j}t|| d S )N)rC   rD   rG   )r   r   rC   rD   rG   )r   	set_indexrG   copyr>   r   r+   r,   )	r   indexesr*   
expected_kr   seriesrC   vr.   r   r   r   'test_iloc_setitem_int_multiindex_series   s   
r}   c                 C   s.   | }|j d }||jd }t|| d S r)   )r   r4   r   r+   r,   rK   r   r   r   test_getitem_iloc   s   
r~   )numpyr   pytestpandasr   r   r   pandas._testing_testingr+   fixturer   markparametrizer0   r6   r8   rA   rJ   rM   rO   rX   rl   r}   r~   r   r   r   r   <module>   sL    


"""(
