a
    oÝEbÇ  ã                   @   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 s‚J ‚|jddgks”J ‚dd„ |jD ƒddgks°J ‚d S )Né   ÚfirstÚsecondc                 S   s   g | ]
}|j ‘qS © ©Úname©Ú.0Úlevelr   r   úg/home/ja/django-apps/lartica_env/lib/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	� | |¡sˆJ ‚t g d
¢¡}	tj||	dd	� tj	t
dd��  | j| ddd� W d   ƒ n1 sÚ0    Y  tj	t
dd��  |j|ddd� W d   ƒ n1 �s0    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   Zbfillr   )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    
.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s”J ‚|  |j¡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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�s J ‚|  |j¡d jddgk�sÀJ ‚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"    "  
$" "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>J ‚| jg dd�d jddgks^J ‚d S )	Nr   r0   ÚaÚbr2   r3   )r   r   )r   r5   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<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s²J ‚|jg dd�d jd j|jksÖJ ‚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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    &&$rB   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©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  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 s�0    Y  d S )N)©r   r   ©r0   r0   rM   ©r   r   r   ©r-   )rL   rM   rN   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    rU   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    
rY   c                  C   s`   g d¢} t  | d d… ¡}t| ƒ}| |¡\}}t ||¡ tjg d¢tjd�}t 	||¡ d S )N))ÚirZ   )rZ   Új)r[   rZ   r[   r   )r   r0   r   r   rC   )
r   rP   r   r   r(   rX   r&   r'   rG   r)   )ÚkeysrA   r   Úresr   rI   r   r   r   Útest_reindex_not_all_tuples€   s    r^   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)©r1   ÚA©r   r`   ©r   ÚB)g{®Gáz”?g{®Gáz„?gú~j¼t“ˆ?rO   )	r_   )r1   rc   ra   rb   )r   ÚC)é   rc   )re   rd   )é   rc   )rf   rd   zFlimit argument only valid if doing pad, backfill or nearest reindexingr    r   r0   )Z
fill_valueÚlimit)r   rP   r?   rQ   r*   r+   rH   r   )r   ZdfrS   r   r   r   Ú&test_reindex_limit_arg_with_multiindex‹   s    ÿþrh   )Únumpyr&   r*   Zpandasr?   r   r   Zpandas._testingZ_testingr(   r   r/   r8   r;   rB   rK   rU   ÚmarkZparametrizerY   r^   rh   r   r   r   r   Ú<module>   s   

