U
    f/e                     @   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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   K/tmp/pip-unpacked-wheel-tiezk1ph/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 )NZ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"    "  
$" "r7   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   r/   abr1   r2   )r   r   )r   r4   r   r   r   r   r   r   r   =test_reindex_lvl_preserves_names_when_target_is_list_or_arrayJ   s     r;   c                  C   sf   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d S )Nr   r/   r8   r9   r   )
r   r4   r   r   dtypetyper%   Zint64r   Zobject_r:   r   r   r   @test_reindex_lvl_preserves_type_if_target_is_empty_list_or_arrayQ   s    &r>   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_baseX   s    
rG   c               	   C   sb   t ddddg} tjtd| d}t dddg}d}tjt|d |	| W 5 Q R X d S )N)r   r   )r/   r/   )r   r   r   )r,   z'cannot handle a non-unique multi-index!r   )
r   from_tuplespdZSeriesr%   rA   r)   r*   rD   r   )r   r8   Znew_idxmsgr   r   r   test_reindex_non_uniquec   s    rK   r6   r8   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 )Nr9   r   r   r/   )r   codesr?   )	r   Zfrom_arraysr   r%   r&   r<   r'   assert_index_equalr(   )r6   r   r   Zresult_indexerrE   Zexpected_indexerr   r   r   test_reindex_empty_with_levelm   s    
rO   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)irP   )rP   j)rQ   rP   rQ   r   r   r/   r   r?   )
r   rH   r   r   r'   rN   r%   r&   rC   r(   )keysmir   resr   rE   r   r   r   test_reindex_not_all_tuplesx   s    rU   )Znumpyr%   r)   ZpandasrI   r   r   Zpandas._testingZ_testingr'   r   r.   r7   r;   r>   rG   rK   markZparametrizerO   rU   r   r   r   r   <module>   s   


