o
    5cD                     @   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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/html/gps/gps/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   sn   | } t j| jt jd}| | }t|| tjt	dd | j| dd W d    d S 1 s0w   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   s   t g d} tjtd| d}t g d}d}tjt|d- t	j
tdd || W d    n1 s9w   Y  W d    d S W d    d S 1 sQw   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"   z
non-unique)r   from_tuplesrK   Seriesr(   rT   r,   r-   rX   r*   assert_produces_warningFutureWarningr   )r   rB   new_idxmsgr   r   r   test_reindex_non_uniqueg   s   "rf   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_levelr   s   
rm   c                  C   s`   g d} t | d d }t| }||\}}t|| tjg dtjd}t	|| d S )N))irn   )rn   j)ro   rn   ro   r!   )r   r8   r   r!   rR   )
r   r`   r   r   r*   rj   r(   r)   rV   r+   )keysrP   r   resr   rY   r   r   r   test_reindex_not_all_tuples}   s   rr   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   rt   r   B)g{Gz?g{Gz?g~jt?r_   )	rs   )r9   rw   ru   rv   )r   C)   rw   )ry   rx   )   rw   )rz   rx   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   dfrd   r   r   r   &test_reindex_limit_arg_with_multiindex   s   "r~   )numpyr(   r,   pandasrK   r   r   pandas._testing_testingr*   r   r7   rA   rD   rQ   r[   rf   markparametrizerm   rr   r~   r   r   r   r   <module>   s     

