o
    _~#g                     @   s   d dl Zd dlZd dlZd dlmZmZ d dlm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dgdggg g ggdd Zdd Zdd Zdd ZdS )    N)Index
MultiIndexc                 C   s   |  t| d d \}}t|tsJ |jddgksJ dd |jD ddgks+J |  t| \}}t|ts;J |d u sAJ |jddgksJJ dd |jD ddgksXJ d S )N   firstsecondc                 S      g | ]}|j qS  name.0levelr   r   /var/www/static.ux5.de/https/Moving-Object-Detection-with-OpenCV/env/lib/python3.10/site-packages/pandas/tests/indexes/multi/test_reindex.py
<listcomp>       z test_reindex.<locals>.<listcomp>c                 S   r   r   r	   r   r   r   r   r      r   )reindexlist
isinstancer   nameslevels)idxresultindexerr   r   r   test_reindex   s    r   c           
      C   s   t dg}| j|dd\}}|j| dd\}}| j|ddd}| j|ddd}||s.J tg d}tj||dd	 ||sDJ tg d
}	tj||	dd	 tj	t
dd | j| ddd W d    d S 1 snw   Y  d S )Noner   r   right)r   howleft)r      r   F)check_dtype)r   r   r!   r   r!   zFill method not supportedmatchpad)methodr   )r   r   joinequalsnparraytmassert_numpy_array_equalpytestraises	TypeError)
r   indextargetr   target2indexer2	exp_index
exp_index2exp_indexerexp_indexer2r   r   r   test_reindex_level   s   
"r7   c                 C   s  |   } |   }d d g | _|_tddgddgg}| g d jd d gks)J | tg d jd d gks:J | | d jd d gksJJ | |jd jd d gksYJ | | d jd d gksiJ | |jd jd d gksxJ ddg| _| g d jddgksJ | tg d jddgksJ | | d jddgksJ | |jd jddgksJ | | d jddgksJ | |jd jddgksJ d S )N   r      r   r   foobar)	copyr   r   from_productr   r(   r)   tolistvalues)r   r0   other_dtyper   r   r   ;test_reindex_preserves_names_when_target_is_list_or_ndarray.   s"   "  
"  "rA   c                  C   sb   t jddgddggddgd} | jg ddd jddgksJ | jg ddd jddgks/J d S )	Nr   r8   abr:   r;   )r   r   )r   r=   r   r   )r   r   r   r   =test_reindex_lvl_preserves_names_when_target_is_list_or_arrayG   s    $rD   c                 C   s   t ddgddgg}|jg ddd jd jjtjksJ | s#tjnt	}|jg ddd jd jj|ks7J t
ddg}t
jdd	d
d}t ||g}|jg ddd jd j|jks_J |jg ddd jd j|jksqJ d S )Nr   r8   rB   rC   r   r:   r;   z
2016-01-01r   z
US/Pacific)periodstz)r   r=   r   r   dtypetyper(   int64object_strpdCategorical
date_range)using_infer_stringr   expcatdtimir   r   r   @test_reindex_lvl_preserves_type_if_target_is_empty_list_or_arrayN   s   &$$(rT   c                 C   sj   t j| jt jd}| | }t|| tjt	dd | j| dd W d    d S 1 s.w   Y  d S )NrG   zInvalid fill methodr"   invalid)r%   )
r(   arangesizeintpget_indexerr*   r+   r,   r-   
ValueError)r   expectedactualr   r   r   test_reindex_base_   s   
"r^   c                  C   sr   t g d} tjtd| d}t g d}d}tjt|d |	| W d    d S 1 s2w   Y  d S )N)r   r   r8   r8   r`   r   r   r   r/   )r_   r`   ra   z'cannot handle a non-unique multi-index!r"   )
r   from_tuplesrL   Seriesr(   rW   r,   r-   r[   r   )r   rB   new_idxmsgr   r   r   test_reindex_non_uniquei   s   "rg   r?   rB   xc                 C   sj   t | }|jtdgdd\}}t dg| d gg g gd}tjg |jd}t|| t|| d S )NrC   r   r   r8   )r   codesrU   )	r   from_arraysr   r(   r)   rG   r*   assert_index_equalr+   )r?   r   r   result_indexerr\   expected_indexerr   r   r   test_reindex_empty_with_levels   s   
rn   c                  C   s`   g d} t | d d }t| }||\}}t|| tjg dtjd}t	|| d S )N))iro   )ro   j)rp   ro   rp   r!   )r   r8   r   r!   rU   )
r   rc   r   r   r*   rk   r(   r)   rY   r+   )keysrS   r   resr   r\   r   r   r   test_reindex_not_all_tuples~   s   rs   c                  C   sr   t g d} tjg d| d}t g d}tjtdd |j|ddd	 W d    d S 1 s2w   Y  d S )
N)r9   Ar   ru   r   B)g{Gz?g{Gz?g~jt?rb   )	rt   )r9   rx   rv   rw   )r   C)   rx   )rz   ry   )   rx   )r{   ry   zFlimit argument only valid if doing pad, backfill or nearest reindexingr"   r   r8   )
fill_valuelimit)r   rc   rL   rd   r,   r-   r[   r   )r   dfre   r   r   r   &test_reindex_limit_arg_with_multiindex   s   "r   c                  C   s^   t ddg} t ddg}tjddg| d}tjddg|d}||}|}t|| d S )N))rB   Nr8   ))rC   Nr   r8   r   rb   )r   rc   rL   	DataFramereindex_liker*   assert_frame_equal)r/   index2	df1_dtype	df2_dtyper   r\   r   r   r   +test_reindex_with_none_in_nested_multiindex   s   
r   )numpyr(   r,   pandasrL   r   r   pandas._testing_testingr*   r   r7   rA   rD   rT   r^   rg   markparametrizern   rs   r   r   r   r   r   r   <module>   s"    



