o
    _~#g3                     @   sX  d dl Zd dlZd dlmZmZmZmZ d dlm	Z
 d dlmZ ejddd dd dd gejd	d ed
gd gdfd
eddgd
dgdfgdd Zejdddgdd Zdd Zdd Zejddd edfdd edfdd edfdd edfd d ed!fd"d ed!fd#d ed$fgd%d& Zd'd( Zd)d* Zejd+d,d d-fd.d d/fgd0d1 Zd2d3 Zd4d5 Zejd6d7d edfd8d edd9fd:d edd9fgd;d< Zd=d> Zd?d@ ZejdAdBgdCejgfeddgd9dDgge dEdBejfgdFdGfdHdBgeg dIg dJge dKdEdBejfgdFdGfdBgeddgd9dDgge dEdBejfgdFdGfdBgdCgfedgd9gge dEgdFdGfdBgejgfedgdDgged
gdLggdHdBgdCdMggdNdFdGfdBejfeddDgdFdBejfdOfgdPdQ Z!ej"dRdS Z#ejdTdUd dVd gdWdX Z$dYdZ Z%d[d\ Z&d]d^ Z'd_d` Z(dS )a    N)	DataFrameIndex
MultiIndexSeries)IndexingErroraccess_methodc                 C   s   | d d |f S N sxr	   r	   /var/www/static.ux5.de/https/Moving-Object-Detection-with-OpenCV/env/lib/python3.10/site-packages/pandas/tests/indexing/multiindex/test_getitem.py<lambda>   s    r   c                 C   s   | j d d |f S r   locr
   r	   r	   r   r          c                 C   s   | j |ddS )N   )level)xsr
   r	   r	   r   r          zlevel1_value, expectedr   index      c                 C   sH   t jg dddgd}tg d|d}d|j_| ||}t|| d S )N))r   r   )r   r   )r   r   ABnamesr   r   r   r   )r   from_tuplesr   r   nametmassert_series_equal)r   level1_valueexpectedmiserresultr	   r	   r   test_series_getitem_multiindex   s
   
r(   level0_valueDr   c                 C   s  t | ddgg dgg dg dgddgd}tjd	t|d
f}t||dgd}| dkrKtjt	dd |j
d  W d    n1 sFw   Y  tjt	dd |j
d  W d    n1 sbw   Y  |j
|  }t| dd dtg dddd}t|| d S )Nr   C)r         %   9   C   K   R   )
r   r   r   r   r   r   r   r   r   r   )
r   r         r   r   r   r         tagdaylevelscodesr   r   r   valr   columnsr   z^'A'$matchz^'X'$Xr   r   )r,   r.   r/   r    )r    r   )r   nprandomdefault_rngstandard_normallenr   pytestraisesKeyErrorr<   r   ravelr   r!   r"   )r)   r   arrdfr'   r$   r	   r	   r   )test_series_getitem_duplicates_multiindex&   s&   
rN   c                 C   sL   | d }| |jdd }|jdd|_||d }t|| d S )Nr   *   A   r   )  r   )reindexr   	droplevelr!   r"   /multiindex_year_month_day_dataframe_random_data
indexer_slr   r$   r'   r	   r	   r   test_series_getitemB   s
   rW   c                 C   s.   | d }|j d }||d }||ksJ d S )Nr   1   )rQ   r   
   )ilocrT   r	   r	   r   "test_series_getitem_returns_scalarK   s   
r[   z)indexer,expected_error,expected_error_msgc                 C   s
   |  dS N)rQ   r   r3   )__getitem__r   r	   r	   r   r   X      
 z^\(2000, 3, 4\)$c                 C      | d S r\   r	   r^   r	   r	   r   r   Y       c                 C   
   | j d S r\   r   r^   r	   r	   r   r   Z   r_   c                 C   rb   )N)rQ   r   r3   r5   r   r^   r	   r	   r   r   [   r_   zToo many indexersc                 C   s   |  t| S r   )r]   rG   r^   r	   r	   r   r   \   r    c                 C   s   | t |  S r   )rG   r^   r	   r	   r   r   ]   s    c                 C   s   | j t|  S r   )rZ   rG   r^   r	   r	   r   r   _   r   z*single positional indexer is out-of-boundsc                 C   sD   | d }t j||d || W d    d S 1 sw   Y  d S )Nr   r?   )rH   rI   )rU   indexerexpected_errorexpected_error_msgr   r	   r	   r   #test_series_getitem_indexing_errorsU   s   
"rg   c                 C   s6   | d }|dd |D  }||dk }t || d S )Nr   c                 s   s    | ]}|d kV  qdS )r   Nr	   ).0r   r	   r	   r   	<genexpr>t   s    z7test_series_getitem_corner_generator.<locals>.<genexpr>r   )r!   r"   )rU   r   r'   r$   r	   r	   r   $test_series_getitem_corner_generatorp   s   rj   c                 C   s2   | j }|jd d df }|d j}t|| d S )Nr   )fooone)Tvaluesr!   assert_almost_equal) multiindex_dataframe_random_datarM   r$   r'   r	   r	   r   test_getitem_simple~   s   
rq   zindexer,expected_error_msgc                 C   r`   )N)rk   fourr	   rM   r	   r	   r   r      ra   z^\('foo', 'four'\)$c                 C   r`   )Nfoobarr	   rs   r	   r	   r   r      ra   z
^'foobar'$c                 C   sB   | j }tjt|d || W d    d S 1 sw   Y  d S )Nr?   )rm   rH   rI   rJ   )rp   rd   rf   rM   r	   r	   r   #test_frame_getitem_simple_key_error   s   

"ru   c                  C   s   t g d} ttdtddtddg| d}d|d	< | }|j |_d|d
< |dd
g }tddgddgddggtdd
gd}t	|| d S )N)aaa)rw   ab)bba)rz   bbr3   r   r5   r   r4   r>   r   single_indexnew_single_indexrv   )
r   r   r   rangecopyr>   to_flat_indexr   r!   assert_frame_equal)r%   rM   df_flatr'   r$   r	   r	   r   test_tuple_string_column_names   s   "r   c                  C   sd   t g dg dd} ddgddgdd	gg| _| d }t d
gdgdgg| jdgd}t|| d S )N)123)r   r   4)rw   rz   zlevel1 item1zlevel1 item2rc   zlevel2 item2zlevel3 item1zlevel3 item2r   r   r   r=   )r   r>   r   r!   r   rM   r'   r$   r	   r	   r   *test_frame_getitem_multicolumn_empty_level   s   r   zindexer,expected_slicec                 C   r`   )Nrk   r	   rs   r	   r	   r   r      ra   c                 C   r`   Nbarr	   rs   r	   r	   r   r      ra   r5   c                 C      | j d d df S r   r   rs   r	   r	   r   r      r   c                 C   s>   | j }|j|j| d}|jd|_||}t|| d S )Nr}   r   )rm   rR   r>   rS   r!   r   )rp   rd   expected_slicerM   r$   r'   r	   r	   r   test_frame_getitem_toplevel   s
   r   c                  C   s   g dg dg dg} t t|  }t|}ttjdd|d}|d }|d 	d}t
|| |d	 }|d
 }|	d	}t
|| d S )N)rw   topr   routine1r   routine2)rc   ODr   result1result2r   )rc   wxwyrc   rc   rc   r   )r3   r4   r}   rw   )rw   rc   rc   )r   r   )r   r   rc   )sortedzipr   r   r   rC   rD   rE   rF   renamer!   r"   )arraystuplesr   rM   r'   r$   r	   r	   r   test_frame_mixed_depth_get   s   

r   c           	      C   sp  | }g d}t d|dgd|dgd|dgd|d	gg|d
ddg}|d d|d< d|f}|jd | }t d|dgd|dgg|d
ddg}|d d|d< t|| |j|d  }t d|dgd|dgd|d	gg|d
ddg}|d d|d< t|| d|fd|f}}|j|| }t d|dgd|dgg|d
ddg}|d d|d< t|| d S )N)rw   rz   c               !   )   +   r}   rw   rz   r   int64)r   	set_indexastyper   r!   r   )	nulls_fixturencolsrM   idxr'   r$   idx1idx2r	   r	   r   !test_frame_getitem_nan_multiindex   s6   "
&
&r   zindexer,expectedrz   r   r4   rz   r   r   r>   dtyperw   r   r3   r5   r4   rw   rk   rk   )r;   r:   )r   r    c                 C   sL   t g dg dgtddd|fgdd}|jd d | f }t|| d S )Nr   r   r   r   rz   r   r   )r   r   r   r   r!   assert_equal)rd   r$   r   rM   r'   r	   r	   r   &test_frame_getitem_nan_cols_multiindex   s   Cr   c                  C   sV   g dg dg dg} g d}t ddgg dgg dg dgd	d
gd}t| ||dS )z;Fixture for DataFrame used in tests for gh-4145 and gh-4146)rw   der   frz   )r   r3   r5   r   r4   r   h1h3h5r   r   )A1A2B1B2)r   r   r   r   r   r   )r   r   r   r   r   r   mainsubr9   r=   )r   r   )datar   r>   r	   r	   r   dataframe_with_duplicate_indexN  s   r   rd   c                 C   r`   Nr   r   r	   rs   r	   r	   r   r   \  ra   c                 C   r   r   r   rs   r	   r	   r   r   \  r   c                 C   sR   | }t g d}tjdgddgd}tg dg||dj}||}t|| d S )Nr   r   r   r   r   rw   r   r   r=   )r   r   r   r   rm   r!   r   )r   rd   rM   r   r>   r$   r'   r	   r	   r   test_frame_mi_access[  s   r   c                 C   s6   | }t g dg ddd}|d d }t|| d S )Nr   r   r   )r   r    r   )r   r!   r"   r   rM   r$   r'   r	   r	   r   #test_frame_mi_access_returns_seriesi  s   r   c                 C   sL   | }t g dg dgtddgddg ddj}|d d }t|| d S )	N)r   r3   r3   )r   r5   r5   r   r   rB   r   r=   r   )r   r   rm   r!   r   r   r	   r	   r   "test_frame_mi_access_returns_framet  s   r   c                  C   s\   t dtdtdgdggd} | g  }t ddgtdgdggg g gdd}t|| d S )Nr   r   r   r=   )r:   r;   )r   r   r   from_productr!   r   r   r	   r	   r   test_frame_mi_empty_slice  s    r   c                  C   s   g dg dg} t j| dd}tg d|dgd}|j|jd d df dkd d f j}|j|d d f }|jd	gt|j d d f }t|| d
|j|j|jd d df dk jdf< |}tg d|dgd}t|| d S )N)rw   rw   rz   rw   )rw   rw   rz   rz   )r   r   r   )r   r   r   r3   valuer=   r   Fr5   )r   from_arraysr   r   r   rG   r!   r   )r   r   rM   empty_multiindexr'   r$   r	   r	   r   test_loc_empty_multiindex  s   &(r   ))numpyrC   rH   pandasr   r   r   r   pandas._testing_testingr!   pandas.core.indexingr   markparametrizer(   rN   rW   r[   rJ   
IndexErrorrg   rj   rq   ru   r   r   slicer   r   r   nanr   r   fixturer   r   r   r   r   r   r	   r	   r	   r   <module>   s    *
	










 
<


