o
    թZh                     @   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   ^/var/www/html/lang_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)Z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   Ztarget2Zindexer2Z	exp_indexZ
exp_index2Zexp_indexerZexp_indexer2r   r   r   test_reindex_level   s   
"r0   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   r/   Zother_dtyper   r   r   ;test_reindex_preserves_names_when_target_is_list_or_ndarray.   s"   "  
"  "r9   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   r1   abr3   r4   )r   r   )r   r6   r   r   )r   r   r   r   =test_reindex_lvl_preserves_names_when_target_is_list_or_arrayG   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J | s#tjnt	}|jg ddd jd jj|ks7J t
ddg}t
jdd	d
d}t ||g}|jg ddd jd j|jks_J |jg ddd jd j|jksqJ d S )Nr   r1   r:   r;   r   r3   r4   z
2016-01-01r   z
US/Pacific)Zperiodstz)r   r6   r   r   dtypetyper'   Zint64Zobject_strpdZCategoricalZ
date_range)Zusing_infer_stringr   expcatZdtimir   r   r   @test_reindex_lvl_preserves_type_if_target_is_empty_list_or_arrayN   s   &$$(rE   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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   
"rN   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   r1   r1   rP   r   r   r   r.   )rO   rP   rQ   z'cannot handle a non-unique multi-index!r!   )
r   from_tuplesrA   Seriesr'   rH   r+   r,   rK   r   )r   r:   new_idxmsgr   r   r   test_reindex_non_uniquei   s   "rW   r8   r:   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   r1   )r   codesrF   )	r   Zfrom_arraysr   r'   r(   r>   r)   assert_index_equalr*   )r8   r   r   Zresult_indexerrL   Zexpected_indexerr   r   r   test_reindex_empty_with_levels   s   
r[   c                  C   s`   g d} t | d d }t| }||\}}t|| tjg dtjd}t	|| d S )N))ir\   )r\   j)r]   r\   r]   r    )r   r1   r   r    rF   )
r   rS   r   r   r)   rZ   r'   r(   rJ   r*   )keysrD   r   resr   rL   r   r   r   test_reindex_not_all_tuples~   s   r`   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)r2   Ar   rb   r   B)g{Gz?g{Gz?g~jt?rR   )	ra   )r2   re   rc   rd   )r   C)   re   )rg   rf   )   re   )rh   rf   zFlimit argument only valid if doing pad, backfill or nearest reindexingr!   r   r1   )Z
fill_valuelimit)r   rS   rA   rT   r+   r,   rK   r   )r   dfrU   r   r   r   &test_reindex_limit_arg_with_multiindex   s   "rk   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))r:   Nr1   ))r;   Nr   r1   r   rR   )r   rS   rA   Z	DataFrameZreindex_liker)   Zassert_frame_equal)r.   index2Z	df1_dtypeZ	df2_dtyper   rL   r   r   r   +test_reindex_with_none_in_nested_multiindex   s   
rm   )numpyr'   r+   ZpandasrA   r   r   Zpandas._testingZ_testingr)   r   r0   r9   r<   rE   rN   rW   markZparametrizer[   r`   rk   rm   r   r   r   r   <module>   s"    



