a
    GGb                     @   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sVJ |  t| \}}t|tsvJ |d u sJ |jddgksJ dd |jD ddgksJ d S )N   firstsecondc                 S   s   g | ]
}|j qS  name.0levelr   r   Flib/python3.9/site-packages/pandas/tests/indexes/multi/test_reindex.py
<listcomp>       z test_reindex.<locals>.<listcomp>c                 S   s   g | ]
}|j qS 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	 ||sJ tg d
}	tj||	dd	 tj	t
dd  | j| ddd W d    n1 s0    Y  tj	t
dd  |j|ddd W d    n1 s0    Y  d S )NZoner   r   right)r   Zhowleft)r      r   F)Zcheck_dtype)r   r   r   r   r   zFill method not supportedmatchZpad)methodr   Zbfillr   )r   r   joinZequals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sRJ | tg d jd d gkstJ | | 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d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s^J | |jd jddgks~J | | 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   r*   Zother_dtyper   r   r   ;test_reindex_preserves_names_when_target_is_list_or_ndarray1   s"    "  
$" "r4   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   r,   abr.   r/   )r   r   )r   r1   r   r   )r   r   r   r   =test_reindex_lvl_preserves_names_when_target_is_list_or_arrayJ   s     r7   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sbJ t	
ddg}t	jdd	d
d}t ||g}|jg ddd jd j|jksJ |jg ddd jd j|jksJ d S )Nr   r,   r5   r6   r   r.   r/   z
2016-01-01r   z
US/Pacific)ZperiodsZtz)r   r1   r   r   dtypetyper"   Zint64Zobject_pdZCategoricalZ
date_range)r   catZdtimir   r   r   @test_reindex_lvl_preserves_type_if_target_is_empty_list_or_arrayQ   s    &&$r=   c                 C   sl   | } t j| jt jd}| | }t|| tjt	dd | j| dd W d    n1 s^0    Y  d S )Nr8   zInvalid fill methodr   Zinvalid)r    )
r"   arangesizeintpZget_indexerr$   r%   r&   r'   
ValueError)r   expectedZactualr   r   r   test_reindex_base_   s    
rD   c               	   C   s   t g d} tjtd| d}t g d}d}tjt|dH t	j
tdd || W d    n1 sr0    Y  W d    n1 s0    Y  d S )N)r   r   r,   r,   rF   r   r   r   r)   )rE   rF   rG   z'cannot handle a non-unique multi-index!r   z
non-unique)r   from_tuplesr:   Seriesr"   r?   r&   r'   rB   r$   Zassert_produces_warningFutureWarningr   )r   r5   new_idxmsgr   r   r   test_reindex_non_uniquej   s    rN   r3   r5   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 )Nr6   r   r   r,   )r   Zcodesr>   )	r   Zfrom_arraysr   r"   r#   r8   r$   assert_index_equalr%   )r3   r   r   Zresult_indexerrC   Zexpected_indexerr   r   r   test_reindex_empty_with_levelu   s    
rQ   c                  C   s`   g d} t | d d }t| }||\}}t|| tjg dtjd}t	|| d S )N))irR   )rR   j)rS   rR   rS   r   )r   r,   r   r   r>   )
r   rI   r   r   r$   rP   r"   r#   rA   r%   )keysr<   r   resr   rC   r   r   r   test_reindex_not_all_tuples   s    rV   c                  C   sp   t g d} tjg d| d}t g d}tjtdd  |j|ddd	 W d    n1 sb0    Y  d S )
N)r-   Ar   rX   r   B)g{Gz?g{Gz?g~jt?rH   )	rW   )r-   r[   rY   rZ   )r   C)   r[   )r]   r\   )   r[   )r^   r\   zFlimit argument only valid if doing pad, backfill or nearest reindexingr   r   r,   )Z
fill_valuelimit)r   rI   r:   rJ   r&   r'   rB   r   )r   ZdfrL   r   r   r   &test_reindex_limit_arg_with_multiindex   s    r`   )Znumpyr"   r&   Zpandasr:   r   r   Zpandas._testingZ_testingr$   r   r+   r4   r7   r=   rD   rN   ZmarkZparametrizerQ   rV   r`   r   r   r   r   <module>   s   

