a
    dv1                     @   sP  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ejd4d5d edfd6d edd7fd8d edd7fgd9d: Zd;d< Zd=d> Zejd?d@gdAejgfeddgd7dBggedCd@ejfgdDdEfdFd@geg dGg dHgedIdCd@ejfgdDdEfd@geddgd7dBggedCd@ejfgdDdEfd@gdAgfedgd7ggedCgdDdEfd@gejgfedgdBgged
gdJggdFd@gdAdKggdLdDdEfd@ejfeddBgdDd@ejfdMfgdNdO Z ej!dPdQ Z"ejdRdSd dTd gdUdV Z#dWdX Z$dYdZ Z%d[d\ Z&d]d^ Z'dS )_    N)	DataFrameIndex
MultiIndexSeries)IndexingErroraccess_methodc                 C   s   | d d |f S N sxr	   r	   v/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/pandas/tests/indexing/multiindex/test_getitem.py<lambda>       r   c                 C   s   | j d d |f S r   locr
   r	   r	   r   r      r   c                 C   s   | j |ddS )N   )level)xsr
   r	   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   Zlevel1_valueexpectedmiZ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rtjt	dd |j
d  W d    n1 s0    Y  tjt	dd |j
d  W d    n1 s0    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KeyErrorr9   r   Zravelr   r    r!   )r&   r   Zarrdfr$   r"   r	   r	   r   )test_series_getitem_duplicates_multiindex&   s"    ((
rI   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_dataZ
indexer_slr   r"   r$   r	   r	   r   test_series_getitemB   s
    rQ   c                 C   s.   | d }|j d }||d }||ks*J d S )Nr   1   )rL   r   
   )ilocrO   r	   r	   r   "test_series_getitem_returns_scalarK   s    
rU   z)indexer,expected_error,expected_error_msgc                 C   s
   |  dS N)rL   r   r0   )__getitem__r   r	   r	   r   r   X   r   z^\(2000, 3, 4\)$c                 C   s   | d S rV   r	   rX   r	   r	   r   r   Y   r   c                 C   s
   | j d S rV   r   rX   r	   r	   r   r   Z   r   c                 C   s
   | j d S )N)rL   r   r0   r2   r   rX   r	   r	   r   r   [   r   zToo many indexersc                 C   s   |  t| S r   )rW   rD   rX   r	   r	   r   r   \   r    c                 C   s   | t |  S r   )rD   rX   r	   r	   r   r   ]   r   c                 C   s   | j t|  S r   )rT   rD   rX   r	   r	   r   r   _   r   z*single positional indexer is out-of-boundsc                 C   sB   | d }t j||d || W d    n1 s40    Y  d S )Nr   r<   )rE   rF   )rP   indexerZexpected_errorexpected_error_msgr   r	   r	   r   #test_series_getitem_indexing_errorsU   s    r\   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   r   z7test_series_getitem_corner_generator.<locals>.<genexpr>r   )r    r!   )rP   r   r$   r"   r	   r	   r   $test_series_getitem_corner_generatorp   s    r_   c                 C   s2   | j }|jd d df }|d j}t|| d S )Nr   )fooZone)Tvaluesr    Zassert_almost_equal) multiindex_dataframe_random_datarH   r"   r$   r	   r	   r   test_getitem_simple~   s    
rd   zindexer,expected_error_msgc                 C   s   | d S )N)r`   Zfourr	   rH   r	   r	   r   r      r   z^\('foo', 'four'\)$c                 C   s   | d S )NZfoobarr	   re   r	   r	   r   r      r   z
^'foobar'$c                 C   s@   | j }tjt|d || W d    n1 s20    Y  d S )Nr<   )ra   rE   rF   rG   )rc   rZ   r[   rH   r	   r	   r   #test_frame_getitem_simple_key_error   s    
rf   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)rh   ri   4)abzlevel1 item1zlevel1 item2rY   zlevel2 item2zlevel3 item1zlevel3 item2rg   rh   ri   r:   )r   r;   r   r    assert_frame_equalrH   r$   r"   r	   r	   r   *test_frame_getitem_multicolumn_empty_level   s    ro   zindexer,expected_slicec                 C   s   | d S )Nr`   r	   re   r	   r	   r   r      r   c                 C   s   | d S Nbarr	   re   r	   r	   r   r      r   r2   c                 C   s   | j d d df S rp   r   re   r	   r	   r   r      r   c                 C   s>   | j }|j|j| d}|jd|_||}t|| d S )Nr;   r   )ra   rM   r;   rN   r    rm   )rc   rZ   Zexpected_slicerH   r"   r$   r	   r	   r   test_frame_getitem_toplevel   s
    rs   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)rk   toprt   routine1ru   Zroutine2)rY   ODrv   result1Zresult2rw   )rY   ZwxZwyrY   rY   rY   r   )r0   r1   rr   rk   )rk   rY   rY   )ru   rw   )ru   rw   rY   )sortedzipr   r   r   r@   rA   rB   rC   renamer    r!   )arraysZtuplesr   rH   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)rk   rl   c               !   )   +   rr   rk   rl   r}   int64)r   Z	set_indexZastyper   r    rm   )	nulls_fixturencolsrH   idxr$   r"   idx1idx2r	   r	   r   !test_frame_getitem_nan_multiindex   s6    "&&r   zindexer,expectedrl   rq   r1   rl   rq   r   r;   dtyperk   r   r0   r2   r1   rk   r`   r`   )r8   r7   )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   rl   r   r   )r   r   r   r   r    Zassert_equal)rZ   r"   r   rH   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)rk   der}   frl   )r   r0   r2   r   r1   r   h1h3h5r   r   )A1A2ZB1B2)r   r   r   r   r   r   )r   r   r   r   r   r   mainsubr6   r:   )r   r   )datar   r;   r	   r	   r   dataframe_with_duplicate_index=  s    r   rZ   c                 C   s   | d S Nr   r   r	   re   r	   r	   r   r   K  r   c                 C   s   | j d d df S r   r   re   r	   r	   r   r   K  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   rk   r   r   r:   )r   r   r   r   ra   r    rm   )r   rZ   rH   r   r;   r"   r$   r	   r	   r   test_frame_mi_accessJ  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   rH   r"   r$   r	   r	   r   #test_frame_mi_access_returns_seriesX  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   r0   r0   )r   r2   r2   r   r   r?   r   r:   r   )r   r   ra   r    rm   r   r	   r	   r   "test_frame_mi_access_returns_framec  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:   )r7   r8   )r   ranger   Zfrom_productr    rm   rn   r	   r	   r   test_frame_mi_empty_sliceo  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)rk   rk   rl   rk   )rk   rk   rl   rl   )r   r   r   )r   r   r   r0   valuer:   r   Fr2   )r   Zfrom_arraysr   r   r   rD   r    rm   )r{   r   rH   Zempty_multiindexr$   r"   r	   r	   r   test_loc_empty_multiindexy  s    &(r   )(numpyr@   rE   Zpandasr   r   r   r   Zpandas._testingZ_testingr    Zpandas.core.indexingr   markZparametrizer%   rI   rQ   rU   rG   
IndexErrorr\   r_   rd   rf   ro   slicers   r|   r   nanr   r   Zfixturer   r   r   r   r   r   r	   r	   r	   r   <module>   s   *
	










 <



