o
    d                     @   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   l/var/www/html/visualizacion-main/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 | jg ddd jd jjtjks1J t	
ddg}t	jdd	d
d}t ||g}|jg ddd jd j|jksYJ |jg ddd jd j|jkskJ 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_pdCategorical
date_range)r   catdtimir   r   r   @test_reindex_lvl_preserves_type_if_target_is_empty_list_or_arrayN   s   &&$(rQ   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]   r^   z'cannot handle a non-unique multi-index!r"   )
r   from_tuplesrK   Seriesr(   rT   r,   r-   rX   r   )r   rB   new_idxmsgr   r   r   test_reindex_non_uniquef   s   "rd   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   codesrR   )	r   from_arraysr   r(   r)   rG   r*   assert_index_equalr+   )r?   r   r   result_indexerrY   expected_indexerr   r   r   test_reindex_empty_with_levelp   s   
rk   c                  C   s`   g d} t | d d }t| }||\}}t|| tjg dtjd}t	|| d S )N))irl   )rl   j)rm   rl   rm   r!   )r   r8   r   r!   rR   )
r   r`   r   r   r*   rh   r(   r)   rV   r+   )keysrP   r   resr   rY   r   r   r   test_reindex_not_all_tuples{   s   rp   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   rr   r   B)g{Gz?g{Gz?g~jt?r_   )	rq   )r9   ru   rs   rt   )r   C)   ru   )rw   rv   )   ru   )rx   rv   zFlimit argument only valid if doing pad, backfill or nearest reindexingr"   r   r8   )
fill_valuelimit)r   r`   rK   ra   r,   r-   rX   r   )r   dfrb   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   r_   )r   r`   rK   	DataFramereindex_liker*   assert_frame_equal)r/   index2	df1_dtype	df2_dtyper   rY   r   r   r   +test_reindex_with_none_in_nested_multiindex   s   
r   )numpyr(   r,   pandasrK   r   r   pandas._testing_testingr*   r   r7   rA   rD   rQ   r[   rd   markparametrizerk   rp   r|   r   r   r   r   r   <module>   s"    



