U
    ¾mœd«5  ã                	   @   sÔ  d dl Zd dlZd dlmZmZmZmZmZm	Z	m
Z
mZmZmZmZ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dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Z ej! "dddg¡ej! "d d!d ed ƒg¡d"d#„ ƒƒZ#d$d%„ Z$d&d'„ Z%ej! "d(e
d)d*ƒe
d+d*ƒge
d)d*ƒe
d+d*ƒd,gd-d-gd-d-ej&gfe
d)d*ƒe
d+d*ƒge
d)d*ƒe
d+d*ƒgd-d-gd-d-gfg¡d.d/„ ƒZ'd0d1„ Z(d2d3„ Z)d4d5„ Z*ej! "d6d7gd8ggg g gg¡d9d:„ ƒZ+d;d<„ Z,d=d>„ Z-dS )?é    N)ÚNAÚCategoricalÚFloat64DtypeÚIndexÚ
MultiIndexÚNaTÚPeriodÚPeriodIndexÚSeriesÚ	TimedeltaÚ	TimestampÚ
date_rangeÚisnac                 C   sH  |  |j¡}zt |j|j¡s"t‚W n tk
r8   Y nX |j |j¡sLt‚|j |j¡s^t‚|jdd… }|  |¡}| ¡ D ]\}}||| ks~t‚q~| jdd… }|   |¡}| ¡ D ]\}}|| | ks¸t‚q¸|   |¡}	t 	|	¡ 
¡ sît‚| jd d d… }
|   |
¡}| ¡ D ]\}}|| | k�st‚�q|   ¡ }|| k	�sDt‚d S )Né
   é   é   )ÚreindexÚindexÚnpZmay_share_memoryÚAssertionErrorÚAttributeErrorÚis_Z	identicalÚitemsÚisnanÚall)Údatetime_seriesZstring_seriesÚidentityZsubIndexZ	subSeriesÚidxÚvalZ	subIndex2ZsubTSZstuffSeriesZnonContigIndexZsubNonContigÚresult© r    úa/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/pandas/tests/series/methods/test_reindex.pyÚtest_reindex   s.    



r"   c                  C   sŒ   t ddddgddtjdgd�} tjdtjddtjgdd	ddddg }}t |  |¡| j| ¡ | j d
¡| _tj|  |¡| j| dd� d S )Nr   é   é   é   é   é   é   ©r   r   ÚobjectF)Zcheck_index_type)	r
   r   ÚnanÚtmÚassert_series_equalr   Zilocr   Úastype)ÚtsÚiÚjr    r    r!   Útest_reindex_nan=   s
    (r2   c                  C   sp   t dddd�} t| ƒ}| tdƒ¡}t |jt d¡¡s<t‚| ¡ }|dd …  	¡ sXt‚|d d…  
¡ rlt‚d S )Nz1/1/2000 00:00:00r   Z10s©ÚperiodsÚfreqé   zM8[ns]éûÿÿÿ)r   r
   r   Úranger   Z
issubdtypeÚdtyper   r   r   Úany)ÚrngZseriesr   Úmaskr    r    r!   Útest_reindex_series_add_natI   s    r=   c                  C   s„   t ddd�} ttj d¡| d�}| t|jdd… ƒ¡}|dd… }|j d ¡|_t	 
||¡ |t|jdd… ƒ }t	 
||¡ d S )Nz1/1/2000r   ©r4   r)   r$   r   )r   r
   r   ÚrandomZrandnr   Úlistr   Ú
_with_freqr,   r-   )r;   r/   r   Úexpectedr    r    r!   Útest_reindex_with_datetimesU   s    rC   c              	   C   s”   t g d�}|j| jdd� |j| jdd�}|  t| jƒ¡}| j d ¡| _t | |¡ | d d d… }d}tjt	|d�� |j| jdd� W 5 Q R X d S )Nr)   Úpad©Úmethodr   zVInvalid fill method\. Expecting pad \(ffill\), backfill \(bfill\) or nearest\. Got foo©ÚmatchÚfoo)
r
   r   r   r@   rA   r,   r-   ÚpytestÚraisesÚ
ValueError)r   ÚemptyÚ	reindexedr/   Úmsgr    r    r!   Útest_reindex_cornerb   s    
ÿrP   c                  C   s¶  t t d¡dd�} | d d d… }|j| jdd�}|j| jdd�}t ||¡ t ddddd	d	d
d
ddg
ƒ}t ||¡ t dddd	dgdddddgd�} ddddg}t ddddg|d�}|  |¡ ¡ }t || d¡¡ |  |¡jdd�}t ||¡ t ddddg|d�}| j|dd�}t ||¡ t ddddgt	dƒd�} d}|  t	|ƒ¡ ¡ }t dddgt	|ƒd�}t ||¡ t dt
ddƒd�} |  d¡jdd�}t dt
ddƒd�}t ||¡ d S )Nr   Úint64©r9   r   rD   rE   Úffillr   r'   é   r(   r&   r#   r$   ÚaÚbÚcÚdÚer)   ÚgÚfZfloat64Zinfer)ZdowncastTFÚabcdZagcZbfill)r
   r   Úaranger   r   r,   r-   rS   r.   r@   r8   ÚshiftZfillna)ÚsÚs2rN   Z
reindexed2rB   Ú	new_indexr   r    r    r!   Útest_reindex_pady   s4     rb   c                  C   s¼   t tjddd�ƒ} ddddg}| j|dd	�}t t |¡ d¡|ƒ}t ||¡ | j|dd
d�}t ddtjdg|ƒ}t ||¡ | j|dddddgd�}t dtjtjdg|ƒ}t ||¡ d S )Nr   rQ   rR   gš™™™™™¹?gÍÌÌÌÌÌì?g      ø?ç       @ZnearestrE   gš™™™™™É?)rF   Z	tolerancer   r&   r   g333333Ó?g{®Gáz„?gš™™™™™Ù?r#   )	r
   r   r]   r   Zaroundr.   r,   r-   r+   )r_   Útargetr   rB   r    r    r!   Útest_reindex_nearest¢   s    re   c                 C   sp   | d d d… }t tjt|ƒtd�|jd�}| | j¡}|jtjksFt	‚| |jd d d… ¡}|jtj
kslt	‚d S ©Nr   rR   r)   )r
   r   ÚzerosÚlenÚintr   r   r9   Zfloat_r   Úint_)r   r/   Zint_tsZreindexed_intr    r    r!   Útest_reindex_int²   s    rk   c                 C   sp   | d d d… }t tjt|ƒtd�|jd�}| | j¡}|jtjksFt	‚| |jd d d… ¡}|jtj
kslt	‚d S rf   )r
   r   rg   rh   Úboolr   r   r9   Zobject_r   Zbool_)r   r/   Úbool_tsZreindexed_boolr    r    r!   Útest_reindex_boolÁ   s    rn   c                 C   sT   | dd … }t tjt|ƒtd�|jd�}|j| jdd�}t|d d… ƒ ¡ sPt	‚d S )Nr$   rR   r)   rD   rE   )
r
   r   rg   rh   rl   r   r   r   r   r   )r   r/   rm   Zfilled_boolr    r    r!   Útest_reindex_bool_padÑ   s    ro   c                  C   sÞ   t ddd�} tdddgdd�}| | ¡}tttjtjtjgdddgd	�ƒ}| |_t ||¡ ttddgdddgd	�ƒ}d
dg|_| d
dg¡}t ||¡ ttdtjgdddgd	�ƒ}ddg|_| ddg¡}t ||¡ d S )NZ20000101r#   r>   rU   rV   rW   ÚcategoryrR   )ÚvaluesÚ
categoriesr&   r   )	r   r
   r   r   r   r+   r   r,   r-   )r   r_   r   rB   r    r    r!   Útest_reindex_categoricalÙ   s     
ÿ

rs   c                  C   sf   t dddgdddgd�} dddg}d}t}|  |¡ |¡ |¡}|  |¡ |¡ |¡}t ||¡ d S )Nr&   r   r#   r   r)   rp   )r
   Ústrr   r.   r,   r-   )Úserra   Z
temp_dtypeZ	new_dtyper   rB   r    r    r!   Ú%test_reindex_astype_order_consistencyñ   s    
rv   c                  C   s  t dddgƒ} |  dddg¡}t ddtjgdddgd�}t ||¡ | jdddgdd	�}t dddgdddgd�}t ||¡ t dddgƒ}| dddg¡}t ddtjgdddgd�}t ||¡ |jdddgdd	�}t dddgdddgd�}t|jjtj	ƒ�st
‚t ||¡ t dddgtd
�}| dddg¡}t ddtjgdddgtd�}t ||¡ |jdddgdd	�}t dddgdddgtd�}t ||¡ t dddgƒ}| dddg¡}t ddtjgdddgtd�}t ||¡ |jdddgdd	�}t dddgdddgd�}t ||¡ d S )Nç      ð?rc   g      @r&   r   r#   r)   r   ©Ú
fill_valuerR   ©r   r9   rI   TF)r
   r   r   r+   r,   r-   Ú
issubclassr9   ÚtypeÚintegerr   r*   )Zfloatsr   rB   ZintsÚobjectsZboolsr    r    r!   Útest_reindex_fill_valueü   s:    r   r9   zdatetime64[ns]útimedelta64[ns]ry   Ústringc                 C   sp   |rt  d¡ | dkr*|tdƒkr*tdƒ}ttg| d�}|jddg|d�}td |gddgtd�}t 	||¡ d S )Nz3Array manager does not promote dtype, hence we failr€   r   rR   r&   rx   rz   )
rJ   Úskipr   r   r
   r   r   r*   r,   r-   )r9   ry   Zusing_array_managerru   r   rB   r    r    r!   Ú+test_reindex_fill_value_datetimelike_upcast/  s    
rƒ   c               	   C   s\   t dddd�} t dddd�}ttdƒ| d	�}d
}tjt|d�� |j|dd� W 5 Q R X d S )NZ20131101zAmerica/Chicagor%   )Útzr4   Z20131103r   ÚHr3   r)   zLCannot compare dtypes datetime64\[ns, America/Chicago\] and datetime64\[ns\]rG   rS   rE   )r   r
   r8   rJ   rK   Ú	TypeErrorr   )r   Znewidxr_   rO   r    r    r!   Ú/test_reindex_datetimeindexes_tz_naive_and_awareA  s    ÿr‡   c                  C   s6   t dd� ddg¡} t tgd dd�}t | |¡ d S )Nzdatetime64[ns, UTC]rR   r   r&   r   )r
   r   r   r,   Zassert_equal)r   rB   r    r    r!   Ú"test_reindex_empty_series_tz_dtypeN  s    rˆ   z+p_values, o_values, values, expected_valuesZ2019Q1zQ-DECZ2019Q2ZAllrw   c           	      C   sB   t | ƒ}t|ƒ}t||d�}| |¡}t||d�}t ||¡ d S )Nr)   )r	   r   r
   r   r,   r-   )	Zp_valuesZo_valuesrq   Zexpected_valuesZperiod_indexZobject_indexru   r   rB   r    r    r!   Ú$test_reindex_periodindex_with_objectU  s    
r‰   c               	   C   s>   t ddgƒ} d}tjt|d�� |  ddgd¡ W 5 Q R X d S )Nr&   r   zCreindex\(\) takes from 1 to 2 positional arguments but 3 were givenrG   r#   F©r
   rJ   rK   r†   r   ©ru   rO   r    r    r!   Útest_reindex_too_many_argsq  s    rŒ   c               	   C   sD   t ddgƒ} d}tjt|d�� | jddgddgd� W 5 Q R X d S )Nr&   r   z4reindex\(\) got multiple values for argument 'index'rG   r#   r'   r)   rŠ   r‹   r    r    r!   Útest_reindex_double_indexy  s    r�   c                  C   s@   t ddgƒ} | jddgd�}t ddgddgd�}t ||¡ d S )Nr&   r   r   r)   )r
   r   r,   r-   )ru   r   rB   r    r    r!   Útest_reindex_no_posargs�  s    rŽ   rq   rU   Úxc                 C   sh   t tt| d ƒƒt | ¡dd�}|jt dg¡dd�}t tdg| d gg g gd�dd�}t 	||¡ d S )Nr   r*   rz   rV   )Úlevelr&   )ZlevelsÚcodes)
r
   r8   rh   r   Zfrom_arraysr   r   Úarrayr,   r-   )rq   ru   r   rB   r    r    r!   Útest_reindex_empty_with_level‰  s      ÿ ÿr“   c               	   C   sN   t ddddgdd�} d}tjt|d�� | jddddd	gd
d� W 5 Q R X d S )Nr&   r   r#   rp   rR   z:Cannot setitem on a Categorical with a new category \(-1\)rG   r'   r$   éÿÿÿÿrx   rŠ   r‹   r    r    r!   Útest_reindex_missing_category–  s    r•   c               	   C   s�   t dtgtƒ d�} |  tdƒ¡}|jj}t dtj	tj	g¡}t
 ||¡ t
 d ¡�4 t |¡}t dtj	tj	gtƒ d�}t
 ||¡ W 5 Q R X d S )Nrw   rR   r#   r&   r   )r
   r   r   r   r8   rq   Ú_datar   r’   ÚNaNr,   Zassert_numpy_array_equalZassert_produces_warningÚlogr-   )r_   Z	s_reindexr   rB   Z
result_logZexpected_logr    r    r!   Ú#test_reindexing_with_float64_NA_logž  s    
r™   ).Únumpyr   rJ   Zpandasr   r   r   r   r   r   r   r	   r
   r   r   r   r   Zpandas._testingZ_testingr,   r"   r2   r=   rC   rP   rb   re   rk   rn   ro   rs   rv   r   ÚmarkZparametrizerƒ   r‡   rˆ   r+   r‰   rŒ   r�   rŽ   r“   r•   r™   r    r    r    r!   Ú<module>   sV   <')3
üüùþ

