U
    ¹Ç-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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s‚t‚|jddgks”t‚dd„ |jD ƒddgks°t‚d S )Né   ÚfirstÚsecondc                 S   s   g | ]
}|j ‘qS © ©Úname©Ú.0Úlevelr   r   úh/var/www/html/Darija-Ai-Train/env/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 | |¡sŠt‚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 d S )NÚoner   ©r   Úright)r   ÚhowÚleftr   é   r   F)Zcheck_dtypeéÿÿÿÿzFill method not supported©ÚmatchÚpad)Úmethodr   )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s”t‚|  |j	¡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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s t‚|  |j	¡d jddgksÀt‚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_ndarray.   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_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<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s²t‚|jg ddd jd j|jksÖt‚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_arrayN   s    &&$rB   c              	   C   sT   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   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   )r0   r0   )r   r   r   ©r-   z'cannot handle a non-unique multi-index!r    )
r   Úfrom_tuplesr?   ÚSeriesr&   rE   r*   r+   rH   r   )r   r9   Únew_idxÚmsgr   r   r   Útest_reindex_non_uniquef   s    rQ   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_levelp   s    
rU   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)ÚirV   )rV   Új)rW   rV   rW   r   r   r0   r   rC   )
r   rM   r   r   r(   rT   r&   r'   rG   r)   )ÚkeysrA   r   Úresr   rI   r   r   r   Útest_reindex_not_all_tuples{   s    rZ   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{®Gáz”?g{®Gáz„?gú~j¼t“ˆ?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dfrO   r   r   r   Ú&test_reindex_limit_arg_with_multiindex†   s&    ÷ÿþra   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))r9   Nr0   ))r:   Nr   r0   r   rL   )r   rM   r?   Z	DataFrameZreindex_liker(   Zassert_frame_equal)r-   Úindex2Z	df1_dtypeZ	df2_dtyper   rI   r   r   r   Ú+test_reindex_with_none_in_nested_multiindex¢   s    
rc   )Únumpyr&   r*   Zpandasr?   r   r   Zpandas._testingZ_testingr(   r   r/   r8   r;   rB   rK   rQ   ÚmarkZparametrizerU   rZ   ra   rc   r   r   r   r   Ú<module>   s    



