U
    +if                     @   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(t|jddgks:tdd |jD ddgksVt|  t| \}}t|tsvt|d kst|jddgkstdd |jD ddgkstd S )N   firstsecondc                 S   s   g | ]
}|j qS  name.0levelr   r   Z/home/mars/bis/venv/lib/python3.8/site-packages/pandas/tests/indexes/multi/test_reindex.py
<listcomp>   s     z test_reindex.<locals>.<listcomp>c                 S   s   g | ]
}|j qS r   r   r
   r   r   r   r      s     )reindexlist
isinstancer   AssertionError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\ttddd	g}tj||d
d ||sttddddddg}	tj||	d
d t	j
tdd | j| ddd W 5 Q R X t	j
tdd |j|ddd W 5 Q R X d S )Noner   r   right)r   howleftr      r   F)Zcheck_dtypezFill method not supportedmatchpad)methodr   Zbfillr   )r   r   joinequalsr   nparraytmassert_numpy_array_equalpytestraises	TypeError)
r   indextargetr   Ztarget2Zindexer2Z	exp_indexZ
exp_index2Zexp_indexerZexp_indexer2r   r   r   test_reindex_level   s    
r/   c                 C   s  |   } |   }d d g | _|_tddgddgg}| g d jd d gksRt| tg d jd d gkstt| | d jd d gkst| |j	d jd d gkst| | d jd d gkst| |j	d jd d gkstddg| _| g d jddgkst| tg d jddgks<t| | d jddgks^t| |j	d jddgks~t| | d jddgkst| |j	d jddgkstd S )N   r      r   r   foobar)
copyr   r   from_productr   r   r&   r'   tolistvalues)r   r.   Zother_dtyper   r   r   ;test_reindex_preserves_names_when_target_is_list_or_ndarray1   s"    "  
$" "r8   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>t| jg ddd jddgks^td S )	Nr   r0   abr2   r3   )r   r   )r   r5   r   r   r   )r   r   r   r   =test_reindex_lvl_preserves_names_when_target_is_list_or_arrayJ   s     r;   c                  C   s   t ddgddgg} | jg ddd jd jjtjks<t| jg ddd jd jjtj	ksbtt
ddg}t
jdd	d
d}t ||g}|jg ddd jd j|jkst|jg ddd jd j|jkstd S )Nr   r0   r9   r:   r   r2   r3   z
2016-01-01r   z
US/Pacific)Zperiodstz)r   r5   r   r   dtypetyper&   Zint64r   Zobject_pdZCategoricalZ
date_range)r   catZdtimir   r   r   @test_reindex_lvl_preserves_type_if_target_is_empty_list_or_arrayQ   s    &&$rB   c              	   C   sX   | } t j| jt jd}| | }t|| tjt	dd | j| dd W 5 Q R X d S )Nr=   zInvalid fill methodr    invalid)r#   )
r&   arangesizeintpZget_indexerr(   r)   r*   r+   
ValueError)r   expectedactualr   r   r   test_reindex_base_   s    
rK   c               
   C   s|   t ddddg} tjtd| d}t dddg}d}tjt|d* t	j
tdd || W 5 Q R X W 5 Q R X d S )	N)r   r   )r0   r0   )r   r   r   r-   z'cannot handle a non-unique multi-index!r    z
non-unique)r   from_tuplesr?   Seriesr&   rE   r*   r+   rH   r(   Zassert_produces_warningFutureWarningr   )r   r9   new_idxmsgr   r   r   test_reindex_non_uniquej   s    rR   r7   r9   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 )Nr:   r   r   r0   )r   codesrC   )	r   Zfrom_arraysr   r&   r'   r=   r(   assert_index_equalr)   )r7   r   r   Zresult_indexerrI   Zexpected_indexerr   r   r   test_reindex_empty_with_levelu   s    
rV   c                  C   sh   ddddg} t | d d }t| }||\}}t|| tjddddgtjd	}t	|| d S )
N)irW   )rW   j)rX   rW   rX   r   r   r0   r   rC   )
r   rM   r   r   r(   rU   r&   r'   rG   r)   )keysrA   r   resr   rI   r   r   r   test_reindex_not_all_tuples   s    r[   c                  C   sn   t dddg} tjdddg| d}t ddddd	d
dddg	}tjtdd |j|ddd W 5 Q R X d S )N)r1   A)r   r\   )r   Bg{Gz?g{Gz?g~jt?rL   )r1   r]   )r   C)   r]   )r_   r^   )   r]   )r`   r^   zFlimit argument only valid if doing pad, backfill or nearest reindexingr    r   r0   )Z
fill_valuelimit)r   rM   r?   rN   r*   r+   rH   r   )r   ZdfrP   r   r   r   &test_reindex_limit_arg_with_multiindex   s&    rb   )numpyr&   r*   Zpandasr?   r   r   Zpandas._testingZ_testingr(   r   r/   r8   r;   rB   rK   rR   markZparametrizerV   r[   rb   r   r   r   r   <module>   s   

