U
    ¾mœd²  ã                   @   sÀ   d dl m Z mZ d dlZd dlZd dlZd dlmZ d dl	m
  mZ d dlZd dlmZmZmZmZmZmZmZmZ d dlmZ d dlmZ d dlm  mZ  G dd„ dƒZ!G dd	„ d	ƒZ"dS )
é    )ÚdatetimeÚ	timedeltaN)Údateutil_gettz)ÚCategoricalÚCategoricalIndexÚ	DataFrameÚIndexÚ
MultiIndexÚSeriesÚ
date_rangeÚisna)ÚCategoricalDtypec                	   @   sZ   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zej 	d	d
ddddgdddddgg¡dd„ ƒZ
dS )ÚTestReindexSetIndexc                 C   sd   t tj d¡ƒ}tddddd�}tddddd�}| |¡}t |j|¡ | |¡}t |j|¡ d S )	Né   z
2011/01/01ÚMú
US/Eastern©ÚperiodsÚfreqÚtzZ2013ÚAz
Asia/Tokyo)	r   ÚnpÚrandomr   Ú	set_indexÚtmÚassert_index_equalÚindexÚreindex)ÚselfÚdfZidx1Zidx2© r    ú`/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/pandas/tests/frame/methods/test_reindex.pyÚ(test_dti_set_index_reindex_datetimeindex    s    

z<TestReindexSetIndex.test_dti_set_index_reindex_datetimeindexc                 C   s~   t tdddƒtddddƒddd�}ttj dd¡d	g|d
�}t tdddƒtddddƒddd�}| |¡}|jj|jkszt	‚d S )Niß  é
   é   é   ÚHr   )r   r   é   Úa©Úcolumnsr   é   )
r   r   r   r   r   Úrandnr   r   r   ÚAssertionError)r   r   r   Ú	new_indexÚresultr    r    r!   Ú'test_dti_set_index_reindex_freq_with_tz+   s    
   ÿ
   ÿ
z;TestReindexSetIndex.test_dti_set_index_reindex_freq_with_tzc                 C   s<   t dtdƒiƒ}t |jd¡}||d< | d¡}| ¡ }d S )Nr   r#   é   ÚB)r   ÚrangeÚpdÚcutr   r   Úreset_index)r   r   Úserr    r    r!   Ú"test_set_reset_index_intervalindex8   s
    
z6TestReindexSetIndex.test_set_reset_index_intervalindexc                 C   s¦   t dddgd� dtjtjdœ¡}| dg¡}g |d< | ¡ }t ddddgtdƒd	� dtjtjtjd
œ¡}t 	||¡ | ddg¡}g |d< | ¡ }t 	||¡ d S )Nr(   ÚbÚc©r*   zdatetime64[ns]©r(   r9   r:   Údr   r)   ©r(   r9   r:   r=   )
r   Úastyper   Úint64Úfloat64r   r6   r3   r   Úassert_frame_equal)r   r   Zdf1r/   ÚexpectedÚdf2r    r    r!   Útest_setitem_reset_index_dtypes@   s    ÿÿz3TestReindexSetIndex.test_setitem_reset_index_dtypesz timezone, year, month, day, hourzAmerica/ChicagoiÝ  é   é   r$   zAmerica/Santiagoiå  é   r%   c           
   	   C   s†   t |ƒ}tj||||dd|d�}tj||||dd|d�}t||gddgdœƒ d¡ dd	g¡}	t |	tdd	gd d gdœƒ d¡¡ d S )
Nr   )ÚyearÚmonthÚdayÚhourÚminuteÚfoldÚtzinfor$   r(   r9   )r   Úvalsr   Ú1Ú2)Úgettzr4   Ú	Timestampr   r   r   r   rB   )
r   ÚtimezonerI   rJ   rK   rL   Ztest_timezoneZtransition_1Ztransition_2r   r    r    r!   Ú test_reindex_timestamp_with_foldR   s:    ù	ù
ÿþÿþz4TestReindexSetIndex.test_reindex_timestamp_with_foldN)Ú__name__Ú
__module__Ú__qualname__r"   r0   r8   rE   ÚpytestÚmarkÚparametrizerV   r    r    r    r!   r      s   þr   c                   @   s^  e Zd Zdd„ Zdd„ Zejdd„ ƒZdd„ Ze	j
 d	d
ddddgfdejdddgfdddddgfg¡dd„ ƒZdd„ Zdd„ Zdd„ Zdd„ Ze	j
 ddddddgfdddd ejgfg¡d!d"„ ƒZd#d$„ Ze	j
 d%d&d'd(gd)gd*d&d(d+gd)gd(gd)gd(d'd&gd)gd&d(d'gd)gd&d'gd)gd&d(gd)gd(d'gd)gd'd(d&gd)gd+d*gd,gd(d&d'gd,gg¡d-d.„ ƒZe	j
 d/d0d1d2d0d3d4d5d6d7d5d8d9d:d;d<d:d=d>g¡d?d@„ ƒZe	j
 dAdBdCdDgdddEdddFdGdHdIdJdKdLdMdNdOdPdQdRdSdTggdDdCdBgdddddEdKdLdMdHdIdJdFdGdRdSdTdPdQdNdOggdCdDgdddHdIdJdKdLdMdPdQdRdSdTggdDdBgdddddEdKdLdMdFdGdRdSdTdNdOggg¡dUdV„ ƒZe	j
 dWedXƒdddddHdEdFdJdIg	d)gedYƒdddddHdFdJdIgd)gedZƒddddFdJdIgd)ged[ƒdddEdIdFgd)ged\ƒdddEdHdIgd)ged]ƒdddddEdHdFdJdIg	d)ged^ƒddEdHgd)ged_ƒg d,gg¡d`da„ ƒZdbdc„ Zddde„ Zdfdg„ Zdhdi„ Zdjdk„ Zdldm„ Zdndo„ Z dpdq„ Z!drds„ Z"dtdu„ Z#dvdw„ Z$dxdy„ Z%dzd{„ 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�„ Z0d�d‘„ Z1d’d“„ Z2d”d•„ Z3d–d—„ Z4d˜d™„ Z5e	j
 dšde6dGd›�dœœde6dGd›�dœœd�d
id�džig¡dŸd „ ƒZ7e	j
 d¡e8g ƒe9g ƒg¡e	j
 d¢e8g ƒe9g ƒe8d(d'gƒe9d(d'gƒe8d(d(gƒe9d(d(gƒg¡d£d¤„ ƒƒZ:e	j
 d¥d¦d§g¡d¨d©„ ƒZ;e	j
 dªe9g d(gd«�e8d(gƒe8d(gƒfe9g d(gd«�e8d'gƒe8d'gƒfe9g d(gd«�e9d(gƒe9d(gƒfe9g d(gd«�e9d'gƒe9d'gƒfg¡d¬d­„ ƒZ<džS )®ÚTestDataFrameSelectReindexc                 C   sŒ   d}t tj |d |¡ƒ}t |¡}tj |¡ |j|dd�}t |d j|d j¡rZt	‚|j||j
dd�}t |d j|d j¡rˆt	‚d S )Nr#   T©r*   Úcopyr   ©r*   r   r_   )r   r   r   r,   ÚarangeÚshuffler   Úshares_memoryZ_valuesr-   r   )r   ÚNr   Úcolsr/   Úresult2r    r    r!   Útest_reindex_copiesz   s    
z.TestDataFrameSelectReindex.test_reindex_copiesc                 C   sä   d}t tj |d |¡dd�}t |¡}tj |¡ |j|dd�}|rht |d jj	|d jj	¡sˆt
‚n t |d jj	|d jj	¡rˆt
‚|j||jdd�}|rÀt |d jj	|d jj	¡sàt
‚n t |d jj	|d jj	¡ràt
‚d S )Nr#   ZFloat64©ÚdtypeTr^   r   r`   )r   r   r   r,   ra   rb   r   rc   ÚarrayÚ_datar-   r   )r   Zusing_copy_on_writerd   r   re   r/   rf   r    r    r!   Útest_reindex_copies_eaˆ   s    
" "z1TestDataFrameSelectReindex.test_reindex_copies_eac                 C   s  t ddd�j dd¡}t|ddgtdƒd�}|jd	 }| ¡ }|jtd
ƒdddg|d�}t|d  ¡ |g |d  ¡ |g |gd
 dœt	d�}t
 ||¡ |jtd
ƒ|d�}t
 ||ddg ¡ |jtd
ƒdddgdd�}t|d  ¡ |g |d  ¡ |g |gd
 dœƒ}t
 ||¡ d S )Nú
2016-01-01r   ©r   rG   r+   r   r2   r)   ©r   r   rH   ÚC©r   r*   Ú
fill_value)r   r2   rp   rh   )r   rr   )r   ÚvaluesZreshaper   r3   ÚilocÚdater   ÚtolistÚobjectr   rB   )r   Úarrr   ÚtsÚfvÚresrC   r    r    r!   Útest_reindex_date_fill_value�   s*    
,þ  ÿ,ÿz7TestDataFrameSelectReindex.test_reindex_date_fill_valuec              
   C   st  t dgd dgd  dgd  ttdƒƒd dddd	d
ddgd dœƒ ddg¡}ddddg}tjdg|gddgd�}| |¡}t dgd |tjddtjgdœƒ ddg¡}t	 
||¡ t dgd |ddddgdœƒ ddg¡}|j|dd�}t	 
||¡ |j|dd�}t	 
||¡ t dgd |ddddgdœƒ ddg¡}|j|dd�}t	 
||¡ |j|dd�}t	 
||¡ d S )Néÿÿÿÿé   r   r$   rG   r   r2   rp   ÚDÚEÚFÚGr<   r(   r9   ç      à?ç       @g      @g333333@)ÚnamesrH   Úbfill©ÚmethodÚbackfillÚpadÚffill)r   Úlistr3   r   r	   Úfrom_productr   r   Únanr   rB   )r   r   r.   Znew_multi_indexÚ	reindexedrC   Zreindexed_with_backfillingZreindexed_with_paddingr    r    r!   Útest_reindex_with_multi_index»   sF    &ýÿú
ÿþÿþÿþz8TestDataFrameSelectReindex.test_reindex_with_multi_indexzmethod,expected_valuesÚnearestr   r$   r+   rŠ   r‰   c           
      C   s>  t dttdƒƒiƒ}t ddddg¡}t d|i|d�}|j||d�}t ||¡ |j||d	d
�}t ||¡ |j||d	d	d	d	gd
�}t ||¡ |d d d… }|j|d d d… |d�}t ||¡ dddd	g}|j| }|j|| |d�}t ||¡ |dk�rdn|dk�rdn|}	|d d d… j||	d�}t ||¡ d S )NÚxr1   çš™™™™™¹¿çÍÌÌÌÌÌì?çš™™™™™ñ?ç      ø?©r   r‡   r$   ©rˆ   Ú	tolerancer}   rG   r   r+   r‰   rŠ   )	r   rŒ   r3   r   rj   r   r   rB   rt   )
r   rˆ   Zexpected_valuesr   ÚtargetrC   ÚactualÚe2Z	new_orderZswitched_methodr    r    r!   Útest_reindex_methods  s(    	
ÿz/TestDataFrameSelectReindex.test_reindex_methodsc                 C   s    t dttdƒƒiƒ}t ddddg¡}t ddddtjgi|d	�}|j|d
dd�}t ||¡ t ddtjdtjgi|d	�}|j|d
ddddgd�}t ||¡ d S )Nr’   r1   r“   r”   r•   r–   r   r$   r—   r‘   gš™™™™™É?r˜   rƒ   g{®Gáz„?gš™™™™™Ù?gš™™™™™¹?)	r   rŒ   r3   r   rj   rŽ   r   r   rB   )r   r   rš   rC   r›   r    r    r!   Ú$test_reindex_methods_nearest_special*  s    z?TestDataFrameSelectReindex.test_reindex_methods_nearest_specialc                 C   sZ   |}t dd|d�}tdttdƒƒi|d�}| d¡}|j|d d… dd�}t ||¡ d S )	Nz
2019-01-01r1   )r   r   r’   r—   rG   r‘   r‡   )r   r   rŒ   r3   Úheadr   r   rB   )r   Ztz_aware_fixturer   Úidxr   rC   r›   r    r    r!   Útest_reindex_nearest_tz6  s    
z2TestDataFrameSelectReindex.test_reindex_nearest_tzc                 C   sF   t  dg¡}tt  dg¡d�}t|d�}|j|dd�}t ||¡ d S )Nz2016-06-26 14:27:26+00:00z2016-07-04 14:00:59+00:00r—   r‘   r‡   )r4   ZDatetimeIndexr   r   r   rB   )r   Údtir   rC   r/   r    r    r!   Ú#test_reindex_nearest_tz_empty_frame@  s
    
z>TestDataFrameSelectReindex.test_reindex_nearest_tz_empty_framec                 C   sŒ   t dddd�}ttj t|ƒ¡|dœƒ}| tdƒ¡}t |d j	t 	d¡¡sRt
‚t |¡d }|d	d …  ¡ stt
‚|d d	…  ¡ rˆt
‚d S )
Nz1/1/2000 00:00:00r#   Z10s©r   r   ©r   r2   é   r2   úM8[ns]éûÿÿÿ)r   r   r   r   r,   Úlenr   r3   Z
issubdtyperi   r-   Úcomr   ÚallÚany)r   Úrngr   r/   Úmaskr    r    r!   Útest_reindex_frame_add_natH  s    z5TestDataFrameSelectReindex.test_reindex_frame_add_natzmethod, exp_valuesr‹   rG   r†   g      ð?r„   g      @c                 C   sb   |ddddgt ddddd	�d
�}t ddddd	�}|j||t d¡d�}|||d
�}t ||¡ d S )Nr   r$   r+   rG   z2020-01-01 00:00:00rH   r&   ÚUTCr   r—   z2020-01-01 00:01:00z1 hourr˜   )r   r   r4   Z	Timedeltar   Zassert_equal)r   Zframe_or_seriesrˆ   Z
exp_valuesÚobjr.   r/   rC   r    r    r!   Ú!test_reindex_frame_tz_ffill_bfillS  s    
þz<TestDataFrameSelectReindex.test_reindex_frame_tz_ffill_bfillc                 C   sš   dddgdddgdddgdddgg}dddgdddgdddgdddgdddgt jt jt jgg}t|ƒ}|jddddd	d
gddd�}t|ƒ}t ||¡ d S )Nr   r2   rp   r   r   r$   r+   rG   rH   r1   r‹   )rˆ   Úlimit)r   rŽ   r   r   r   rB   )r   ÚdataZexp_datar   r/   rC   r    r    r!   Útest_reindex_limitb  s    $úz-TestDataFrameSelectReindex.test_reindex_limitzidx, check_index_typerp   r2   r   Tr�   r   Fc              	      sœ   t tdƒtdƒd d d… dddgd tj dd	d
¡dœƒ‰ dddg}‡ fdd„}t tt||ƒƒ¡}ˆ  |¡j|dd�}ˆ j	|  |¡}t
j|||d� d S )NÚ	BBBBAACCCÚ	abcdeabcdr}   r#   é   é   rG   r   éè  é	   ©ÚjimÚjoeÚjolieZjoliner½   r¾   r¿   c                    s   t  ˆ d | k ¡ ¡d S ©Nr½   r   ©r   ZnonzeroZto_numpy©Úval©r   r    r!   ÚfŽ  s    zKTestDataFrameSelectReindex.test_reindex_level_verify_first_level.<locals>.f©Úlevel©Úcheck_index_type)r   rŒ   r   r   ÚrandintÚconcatenateÚmapr   r   rt   r   rB   )r   r    rÉ   ÚicolrÅ   ÚiÚleftÚrightr    rÄ   r!   Ú%test_reindex_level_verify_first_levelr  s    üÿ
z@TestDataFrameSelectReindex.test_reindex_level_verify_first_levelr    )Úmid)rÒ   Úbtm)rÒ   rÓ   Útop)rÒ   rÔ   )rÒ   rÔ   rÓ   )rÓ   )rÓ   rÒ   )rÓ   rÒ   rÔ   )rÓ   rÔ   )rÓ   rÔ   rÒ   )rÔ   )rÔ   rÒ   )rÔ   rÒ   rÓ   )rÔ   rÓ   )rÔ   rÓ   rÒ   c                    sø   t dgd dgd  dgd  dgd d	gd
  dgd
  d	gd  dgd
  d	gd  dgd
  dgd  t dd„ dD ƒ¡tj d¡ d
¡d dœƒ‰ dddg}‡ fdd„}t tt||ƒƒ¡}ˆ  |¡j	|dd�}ˆ j
|  |¡}t ||¡ d S )NrÒ   r1   rÓ   é   rÔ   r~   Ú3rdr+   Ú1strG   Ú2ndc                 S   s   g | ]}t jjd |dd�‘qS ©rº   F)Úreplace©r   r   Úchoice©Ú.0r’   r    r    r!   Ú
<listcomp>½  s   ÿz\TestDataFrameSelectReindex.test_reindex_level_verify_first_level_repeats.<locals>.<listcomp>©r+   rG   rG   r+   rG   r+   rG   r+   r¸   r#   r¼   r½   r¾   r¿   c                    s   t  ˆ d | k ¡ ¡d S rÀ   rÁ   rÂ   rÄ   r    r!   rÅ   Ç  s    zSTestDataFrameSelectReindex.test_reindex_level_verify_first_level_repeats.<locals>.frÆ   )r   r   rË   r   r,   ÚroundrŒ   rÌ   r   r   rt   r   rB   )r   r    rÍ   rÅ   rÎ   rÏ   rÐ   r    rÄ   r!   Ú-test_reindex_level_verify_first_level_repeats–  s>    ÿþýüûúùþÿíÿ
zHTestDataFrameSelectReindex.test_reindex_level_verify_first_level_repeatszidx, indexerr×   rØ   rÖ   rH   rÕ   r»   r1   r   r~   r#   rF   é   é   é   é   é   r¦   é   é   c                 C   sØ   t dgd dgd  dgd  dgd d	gd
  dgd
  d	gd  dgd
  d	gd  dgd
  dgd  t dd„ dD ƒ¡tj d¡ d
¡d dœƒ}dddg}| |¡j|dd�}|j|  |¡}t	 
||¡ d S )NrÒ   r1   rÓ   rÕ   rÔ   r~   rÖ   r+   r×   rG   rØ   c                 S   s   g | ]}t jjd |dd�‘qS rÙ   rÛ   rÝ   r    r    r!   rß   î  s   ÿzPTestDataFrameSelectReindex.test_reindex_level_verify_repeats.<locals>.<listcomp>rà   r¸   r#   r¼   r½   r¾   r¿   rÆ   )r   r   rË   r   r,   rá   r   r   rt   r   rB   )r   r    Úindexerr   rÍ   rÏ   rÐ   r    r    r!   Ú!test_reindex_level_verify_repeatsÏ  s:    ÿþýüûúùþÿíÿ
z<TestDataFrameSelectReindex.test_reindex_level_verify_repeatszidx, indexer, check_index_typeZabcdeÚabcdÚabcZecaZedcZeadbcZedwqZwqc              	   C   s|   t tdƒtdƒd d d… dddgd tj dd	d
¡dœƒ}dddg}| |¡j|dd�}|j|  |¡}tj	|||d� d S )Nr¶   r·   r}   r#   r¸   r¹   rG   r   rº   r»   r¼   r½   r¾   r¿   rÆ   rÈ   )
r   rŒ   r   r   rÊ   r   r   rt   r   rB   )r   r    rê   rÉ   r   rÍ   rÏ   rÐ   r    r    r!   Útest_reindex_level_verifyû  s    üÿ
z4TestDataFrameSelectReindex.test_reindex_level_verifyc              	   C   s  t dddd�}tj dd¡}t||tdƒd�}t||dd	d
gdddg  tdƒd�}d}tjt|d�� |j	|j
dd� W 5 Q R X tjt|d�� |j	|j
dd� W 5 Q R X tjt|d�� |j	|j
dd� W 5 Q R X tjt|d�� |j	|j
dd� W 5 Q R X d S )Nz
2013-08-01r   r2   r¤   r$   r   ©r   r*   rG   rH   r1   r   r+   z0index must be monotonic increasing or decreasing©ÚmatchrŠ   r‡   r‹   r†   r‘   )r   r   r   r,   r   rŒ   rZ   ÚraisesÚ
ValueErrorr   r   )r   Zdrr´   r   Zdf_revÚmsgr    r    r!   Ú"test_non_monotonic_reindex_methods  s    &z=TestDataFrameSelectReindex.test_non_monotonic_reindex_methodsc                 C   sz   t ddgtjddgt dd¡d�dœƒ}| ddg¡}t dtjgtjdtjgt dd¡d�dœddgd	�}t ||¡ d S )
Nr   r$   r@   rh   r¥   r+   ç        rA   r—   )	r   r4   rj   ZSparseDtyper   r   rŽ   r   rB   ©r   r   r/   rC   r    r    r!   Útest_reindex_sparse&  s    "ÿþûz.TestDataFrameSelectReindex.test_reindex_sparsec                 C   sv  t jdd�}| |j¡}|jD ]j}||  ¡ D ]X\}}||jkrxt |¡rbt || | ¡svt‚q†||| | ks†t‚q.t |¡s.t‚q.q| ¡ D ]\}}t  	|j|j¡s’t‚q’| t
g ƒ¡}t|jƒdksÐt‚| |jd d d… ¡}	|	jD ]r}|	|  ¡ D ]`\}}||jk�rNt |¡�r6t || | ¡�sLt‚n||| | k�s\t‚qüt |¡süt‚qüqì|	 ¡ D ] \}}t  	|j|	j¡�sht‚�qh|j|jdd�}|j|jk�s¬t‚| g ¡}|j�sÂt‚t|jƒt|jƒk�sÜt‚| g ¡}| |j¡}t|jƒt|jƒk�st‚t|jƒt|jƒk�s&t‚| t|jƒ¡}|j d ¡}
t  |j|
¡ | ¡ }t  ||¡ ||k	�srt‚d S )Nr¹   )Znperr   r+   F)r_   )r   ZmakeTimeSeriesr   r   r*   Úitemsr   Úisnanr-   ZequalContentsr   r©   ÚemptyrŒ   Z
_with_freqr   rB   )r   Úfloat_frameZdatetime_seriesZnewFrameÚcolr    rÃ   ZseriesZ
emptyFrameZnonContigFramerC   r/   r    r    r!   Útest_reindex5  sL    





z'TestDataFrameSelectReindex.test_reindexc                 C   s4  t ddgddgddgddggdtjddgd	d
gd�}tjddtjddtjgdddddddg }}t | |¡|j| ¡ |j d¡|_tj| |¡|j| dd� t ddtjdgdtjdtjgddddgdœƒ}t	 
|j¡|d< t	 
d¡|d   d¡|d< | dddg¡ ¡ }|jddddgd�}t ||¡ d S )Nr$   r+   rG   r1   r~   rF   r»   r%   r¾   r½   rï   r   rw   FrÈ   r(   r9   r:   z
2015-03-22z
2012-01-08rH   )Úotherru   Úamountru   z
2015-06-18Údeltarÿ   r   r;   )r   r   rŽ   r   rB   r   rt   r   r?   r4   Úto_datetimeru   Úshiftr   r6   )r   r   rÎ   ÚjrÏ   rÐ   r    r    r!   Útest_reindex_nant  s(    ý,
ýÿz+TestDataFrameSelectReindex.test_reindex_nanc                 C   sÔ   t tj d¡ƒ}t|t t|ƒ¡d�}t t d¡dd�}| |¡}|jj	dksRt
‚| tt d¡dd�¡}|jj	dkszt
‚t tj d¡ƒ}t|jt t|ƒ¡d�}t t d¡dd�}|j|d�}|jj	dksÐt
‚d S )Nr#   r—   Ziname©ÚnameZtmpnamer;   )r
   r   r   Zrandr   ra   r©   r   r   r  r-   r   ÚTr*   )r   Úsr   rÎ   r    r    r!   Útest_reindex_name_remains‘  s    
z4TestDataFrameSelectReindex.test_reindex_name_remainsc                 C   sr   |  |jd d d… ¡}|d jtjks*t‚|  |j¡}|d jtjksJt‚|j ddgd�}|d jtjksnt‚d S )Nr+   r   r2   r;   )r   r   ri   r   r@   r-   rA   )r   Ú	int_frameÚsmallerZbiggerr    r    r!   Útest_reindex_int¢  s    z+TestDataFrameSelectReindex.test_reindex_intc                 C   sb   |j dddgd�}t |d |d ¡ t |d ¡ ¡ s<t‚d|ksHt‚|j g d�}|js^t‚d S )Nr   r2   r€   r;   rp   )r   r   Zassert_series_equalr   rú   r«   r-   rû   )r   rü   Z	new_framer    r    r!   Útest_reindex_columns­  s    z/TestDataFrameSelectReindex.test_reindex_columnsc              	   C   sz  t dddgdddgddd	ggd
ddgd
ddgtd�}|jtdƒd�}t tjddtjdtjgtjddtjdtjgtjddtjd	tjggd
ddgtdƒtd�}t ||¡ |jtdƒdd�}t tjdddddgtjdddddgtjdddd	d	ggd
ddgtdƒtd�}t ||¡ |jtdƒdd�}t dddddtjgdddddtjgdddd	d	tjggd
ddgtdƒtd�}t ||¡ d S )NrF   rã   rä   é   é   r%   é   é    é!   r$   r+   rH   )r´   r   r*   ri   r   r;   r‹   )r*   rˆ   r†   )r   Úfloatr   r3   r   rŽ   r   rB   r÷   r    r    r!   Útest_reindex_columns_method¸  sN    üýø
ýø
ýø
z6TestDataFrameSelectReindex.test_reindex_columns_methodc                 C   s¤   t t d¡tdddƒtdddƒtdddƒgdddgd	�}td
ddd�}ddg}|j|d�jj}|j||d	�jj}|j|d�j|d�jj}||ks”t‚||ks t‚d S )N©rG   rG   iÜ  r$   r+   rG   r(   r9   r:   rï   ú
2012-01-01z
2012-01-03r=   )r   r—   r;   )	r   r   Úonesr   r   r   r   r   r-   )r   r   Z	time_freqZ	some_colsZ
index_freqZ	both_freqZseq_freqr    r    r!   Útest_reindex_axesë  s     ýz,TestDataFrameSelectReindex.test_reindex_axesc                 C   s:  t tj dd¡ƒ}| ttdƒƒ¡}t |jdd … ¡ 	¡ s@t
‚|jtdƒdd�}| tdƒ¡ d¡}t ||¡ |jtdƒdd	�}| ¡ }d|d< t ||¡ |jtdƒdd	�}| ¡ }d|d< t ||¡ |jtdƒd
d	�}| ¡ }d
|d< t ||¡ d
|d
< |jtdƒdd�}| tdƒ¡ d¡}t ||¡ d S )Nr#   rH   r¦   r¨   r   )rr   r1   rö   )r*   rr   Úfoo)r   r   r   r,   r   rŒ   r3   rú   rs   r«   r-   Zfillnar   rB   r_   r÷   r    r    r!   Útest_reindex_fill_valueû  s,    z2TestDataFrameSelectReindex.test_reindex_fill_valuec                 C   sl   t ddgddgdœ|d�}|jtdƒddddgdd	�}t ddddgddddgddd
œ|d�}t ||¡ d S )Nr$   r+   ©r(   r9   rh   rì   r   rG   r#   ©r*   r   rr   r>   )r   r   rŒ   r   rB   )r   Zany_unsigned_int_numpy_dtyper   r/   rC   r    r    r!   Ú#test_reindex_uint_dtypes_fill_value  s    þz>TestDataFrameSelectReindex.test_reindex_uint_dtypes_fill_valuec                 C   sZ   t dddgi|d�}|jtdƒdddgdd�}t tdddg|d�dd	œƒ}t ||¡ d S )
Nr(   r$   r+   rh   Úabr   r#   r  r  )r   r   rŒ   r
   r   rB   )r   Zany_numeric_ea_dtyper   r/   rC   r    r    r!   Ú/test_reindex_single_column_ea_index_and_columns&  s    ÿzJTestDataFrameSelectReindex.test_reindex_single_column_ea_index_and_columnsc                 C   s¤   t j d¡}t|ddddddddddg
d�}| ¡ }ttt|ƒƒƒ|_t|ttt|ƒƒƒd�}t	 
||¡ d}tjt|d	�� |jttt|ƒƒƒd� W 5 Q R X d S )
Nr#   r$   r+   rG   rH   r1   r—   ú/cannot reindex on an axis with duplicate labelsrð   )r   r   r,   r   r_   rŒ   r3   r©   r   r   rB   rZ   rò   ró   r   )r   rx   r   r/   rC   rô   r    r    r!   Útest_reindex_dups/  s     z,TestDataFrameSelectReindex.test_reindex_dupsc              	   C   s„   t dddgdddgdddggdddgd�}d}tjt|d�� |jdgd� W 5 Q R X tjt|d�� |jdd	gd� W 5 Q R X d S )
Nr$   r1   g      @Úbarr(   r;   r!  rð   r  )r   rZ   rò   ró   r   ©r   r   rô   r    r    r!   Ú#test_reindex_with_duplicate_columns?  s     ÿz>TestDataFrameSelectReindex.test_reindex_with_duplicate_columnsc                 C   s¢   t dddgdddgdœƒ}t ddtjgddtjgdœdddgd	�}| dddg¡}t ||¡ |jdddgdd
�}t ||¡ |jdddgdd
�}t ||¡ d S )Nr$   r+   rG   rH   r1   r   r¥   r   r—   ©Úaxisr   )r   r   rŽ   r   r   rB   )r   r   rC   r/   r    r    r!   Útest_reindex_axis_styleJ  s     ÿz2TestDataFrameSelectReindex.test_reindex_axis_stylec              	   C   sR   t dddgdddgdœƒ}d}tjt|d	�� | d
dgdddg¡ W 5 Q R X d S )Nr$   r+   rG   rH   r1   r   r¥   zCreindex\(\) takes from 1 to 2 positional arguments but 3 were givenrð   r   r   r2   rp   ©r   rZ   rò   Ú	TypeErrorr   r$  r    r    r!   Útest_reindex_positional_raisesY  s    z9TestDataFrameSelectReindex.test_reindex_positional_raisesc              	   C   sî  t dddgdddgdœƒ}tjtdd	�� |jd
dgdgdd� W 5 Q R X tjtdd	�� |jd
dgdgdd� W 5 Q R X tjtdd	�� |jd
dgdd� W 5 Q R X tjtdd	�� |jd
dgdd� W 5 Q R X tjtdd	�� |jd
dgdd� W 5 Q R X tjtdd	�� |jd
dgd
dgdd� W 5 Q R X tjtdd	�� |jd
dgd
gdgd� W 5 Q R X tjtdd	�� |jd
dgdd� W 5 Q R X tjtdd	�� |jd
dgdd� W 5 Q R X tjtdd	�� |jd
dgd
dgd� W 5 Q R X d S )Nr$   r+   rG   rH   r1   r   r¥   zCannot specify both 'axis'rð   r   r   )r*   r'  r   )r   r'  r*   )r   r*   r'  zCannot specify all)Úlabelsr   r*   zmultiple values©r,  r)  )r   r   r    r    r!   Útest_reindex_axis_style_raisesa  s*      ""z9TestDataFrameSelectReindex.test_reindex_axis_style_raisesc                 C   sN   t dddgdddgdœƒ}|jddgdgd�}t dddgiƒ}t ||¡ d S )Nr$   r+   rG   r¥   r   r   r;   ©r   r   r   rB   r÷   r    r    r!   Ú!test_reindex_single_named_indexer„  s    z<TestDataFrameSelectReindex.test_reindex_single_named_indexerc                 C   s\  t dddgdddgdddggdd	d
gdddgd�}| d	dg¡}|jd	dgd�}|jd	dgd�}|jd	dgdd�}|jd	dgdd�}||||fD ]}t ||¡ q�|jddgd�}|jddgdd�}|jddgdd�}||fD ]}t ||¡ qÞ|jd	dgddgd�}|jddgd	dgd�}|jd	dgdd�jddgdd�}||fD ]}t ||¡ �qDd S )Nr$   r+   rG   rH   r1   r   r~   r(   r9   r:   r=   ÚerÅ   rï   r—   r-  r   )r,  r'  r&  r;   r)   r/  )r   r   Zres1Zres2Zres3Zres4Zres5r{   r    r    r!   Útest_reindex_api_equivalence‹  s,    ý z7TestDataFrameSelectReindex.test_reindex_api_equivalencec                 C   s–   t tjdtd�t ddd¡ddgd�}| t d¡¡}|jjtjksHt	‚t
|d d ƒs\t	‚|jtd	ƒd
�}|jjtjks~t	‚t
|d ƒ ¡ s’t	‚d S )N)r#   r+   rh   r   r¸   r+   rï   r#   r$   rG   r;   )r   r   r  Úboolra   r   rs   ri   Zobject_r-   r   r3   r«   )r   Úframer�   r    r    r!   Útest_reindex_boolean¨  s      ÿz/TestDataFrameSelectReindex.test_reindex_booleanc                 C   s>   |j dddgd�}d|kst‚|j ddgd�}d|ks:t‚d S )Nr  r   r2   r;   )r   r-   )r   Zfloat_string_framer�   r    r    r!   Útest_reindex_objectsµ  s    z/TestDataFrameSelectReindex.test_reindex_objectsc                 C   sh   t dddgƒ}ti ƒjdddgd�}|j|d�}t |j|¡ |jd	d
dgd�}|d jtjksdt	‚d S )Nr(   r9   r:   r$   r+   rG   r—   r;   r   r2   r€   )
r   r   r   r   r   r*   ri   r   rA   r-   )r   r  r   Údmr�   r  r    r    r!   Útest_reindex_corner¼  s    z.TestDataFrameSelectReindex.test_reindex_cornerc                 C   s¾   t ddgddgtjtjgddgddggd	d
gddtjddgd�}|jdddgd�}|jdddg }t ||¡ |jdgd�}|jdg }t ||¡ |jdgd�}|jdg }t ||¡ d S )Nr$   r+   rG   rH   r~   rÕ   r»   r#   r(   r9   g      Y@g     @Y@g     €Y@g     ÀY@r)   r—   )r   r   rŽ   r   rt   r   rB   r÷   r    r    r!   Útest_reindex_with_nansÆ  s    $ýz1TestDataFrameSelectReindex.test_reindex_with_nansc                 C   sV  t tj dd¡ƒ}|jtdƒtdƒd�}| ttdƒƒ¡jtdƒd�}t ||¡ t tj 	ddd¡ƒ}|jtdƒtdƒd�}| ttdƒƒ¡jtdƒd�}t ||¡ t tj 	ddd¡ƒ}|jtdƒtdƒd�}| tdƒ¡jtdƒd�}t ||¡ t tj d	d¡d
 dddgd�}|jddgddgd�}| ddg¡jddgd�}t ||¡ d S )NrG   rH   rï   r;   r   r#   r  r+   r1   y              ð?r(   r9   r:   r$   )
r   r   r   r,   r   r3   rŒ   r   rB   rÊ   r÷   r    r    r!   Útest_reindex_multiÙ  s      z-TestDataFrameSelectReindex.test_reindex_multic                 C   s–   t  tdddgƒttdddd�ƒg¡}tdtt|ƒƒi|d�}|jd	d
ddddddg }| |¡}tdd	d
dddddt	j
dg	i|d�}t ||¡ d S )Nr(   r9   r:   r  rG   r&   r¤   r—   r   r$   r+   rH   r1   r   rÕ   )r	   r�   r   r   r   r3   r©   rt   r   r   rŽ   r   rB   )r   Zmidxr   rD   r/   rC   r    r    r!   Ú#test_reindex_multi_categorical_timeö  s    þÿ
$z>TestDataFrameSelectReindex.test_reindex_multi_categorical_timec              	   C   s.  t dtjddd�ittdƒttdƒƒdd�d	�}| d
ddg¡}t ddtjgttdƒƒdœƒ 	d¡}t
j||dd� | d
dg¡}t ddgttdƒƒdœƒ 	d¡}t
j||dd� | dg¡}t tjgtdgƒdœƒ 	d¡}t
j||dd� | dg¡}t tjgtdgƒdœƒ 	d¡}t
j||dd� tdƒ}| td
dg|d�¡}t dtjgttdƒƒ t|ƒ¡dœƒ 	d¡}t
j||dd� | td
g|d�¡}t dgttd
ƒƒ t|ƒ¡dœƒ 	d¡}t
j||dd� | d
ddg¡}t ddtjgttdƒƒdœƒ 	d¡}t
j||dd� | d
dg¡}t ddgttdƒƒdœƒ 	d¡}t
j||dd� | dg¡}t tjgtdgƒdœƒ 	d¡}t
j||dd� | td
dg|dd�¡}t dtjgttdƒƒ t|dd�¡dœƒ 	d¡}t
j||dd� | td
dgd
dgd�¡}t dtjgttdƒƒ td
dgƒ¡dœƒ 	d¡}t
j||dd� t dtjddd�ittdƒttdƒƒdd�d	�}d}tjt|d�� | d
dg¡ W 5 Q R X d}tjt| d¡d�� |jd
gd d!� W 5 Q R X tjt| d"¡d�� |jd
gdd#� W 5 Q R X tjt| d$¡d�� |jd
gd%d&� W 5 Q R X d S )'Nr   rG   r@   rh   rí   Zcaber2   )ri   r  r—   r(   r9   r1  r   r$   Zaber¥   TrÈ   r  r=   ©Ú
categoriesZae)r=  Úordered)r>  Úadr   Zaabbcar!  rð   z<argument {} is not implemented for CategoricalIndex\.reindexrˆ   r‹   r‡   rÇ   rÆ   r³   r+   )r³   )r   r   ra   r   rŒ   ÚCDTr   rŽ   r
   r   r   rB   r   r?   rZ   rò   ró   ÚNotImplementedErrorÚformat)r   r   r/   rC   ZcatsrD   rô   r    r    r!   Ú"test_reindex_with_categoricalindex  s˜     ÿü	ÿ  ÿþÿþÿ $ÿþ$ÿþ ÿüz=TestDataFrameSelectReindex.test_reindex_with_categoricalindexc                 C   s<   t  tj¡}t|jƒ}|ddddddddd	d
dhks8t‚d S )Nr   r,  r   r*   r'  r³   r_   rÇ   rˆ   rr   r™   )ÚinspectÚ	signaturer   r   ÚsetÚ
parametersr-   )r   ÚsigrG  r    r    r!   Útest_reindex_signature`  s    
õz1TestDataFrameSelectReindex.test_reindex_signaturec                 C   s€   t  ddg¡}tddgddgg|ddgd	�}t  ddd
g¡}|j|ddd�}tddgddgddgg|ddgd	�}t ||¡ d S )Nr  )r=   r1  r   r~   rG   rH   r’   Úyrï   )ÚhrÎ   r‹   )r'  rˆ   )r	   Úfrom_tuplesr   r   r   rB   )r   Úmir   Zmi2r/   rC   r    r    r!   Ú(test_reindex_multiindex_ffill_added_rowsq  s    $zCTestDataFrameSelectReindex.test_reindex_multiindex_ffill_added_rowsÚkwargs)Úsecondsr˜   rˆ   Nc                 C   s\   t dddd�}tg tg dd�dgd�}|j|f|Ž}tdtjgd i|d	�}t ||¡ d S )
NZ2020Z30srG   )Ústartr   r   Útimer  r(   rï   r—   )r   r   r   r   r4   ZNAr   rB   )r   rO  r    r   r/   rC   r    r    r!   Útest_reindex_empty_frame{  s
    z3TestDataFrameSelectReindex.test_reindex_empty_frameÚsrc_idxÚcat_idxc                 C   s<   t |dgdd�}|j|d�}t dg|dd�}t ||¡ d S )NÚKZf8)r*   r   ri   r;   )r   r*   ri   r/  )r   rT  rU  r   r/   rC   r    r    r!   Útest_reindex_emptyŒ  s    z-TestDataFrameSelectReindex.test_reindex_emptyri   úm8[ns]r§   c                 C   sR  t  tdƒtdƒg¡}tddd�}t dd¡}|dkrN||d	  }t dd¡}t||d
�}t	j
|d d d…< | ¡ }|j tdgƒ¡}|j tdgƒ¡}|j|||d�}	t|d	  ¡ |g |d  ¡ |g tjdgd |jd�dœ|d
�}
|	jd	dg tk ¡ �st‚|	jd t	j
k�st‚|	jd |k�s.t‚|	jd |k�sBt‚t |	|
¡ d S )NZABCDEr+   rm   r#   rn   ÚNaTÚnsrX  r   r—   rG   r$   r  rq   r   rh   )r   r$   r  ro   )r}   r   )r}   r$   )r	   r�   rŒ   r3   r   r   Ztimedelta64Z
datetime64r
   r4   rY  Zunstackr   Úappendr   r*   r   r   rv   rj   ri   Zdtypesrw   r«   r-   rt   r   rB   )r   ri   rM  r¢   rz   r7   r   r   r*   r{   rC   r    r    r!   Ú#test_reindex_datetimelike_to_object§  s0    ýúz>TestDataFrameSelectReindex.test_reindex_datetimelike_to_objectzindex_df,index_res,index_expr<  c                 C   s0   t |d�}|j|d�}t |d�}t ||¡ d S )Nr—   r/  )r   Zindex_dfZ	index_resZ	index_expr   r/   rC   r    r    r!   Útest_reindex_not_categoryÊ  s    

z4TestDataFrameSelectReindex.test_reindex_not_category)=rW   rX   rY   rg   rl   ÚtdZ&skip_array_manager_not_yet_implementedr|   r�   rZ   r[   r\   r   rŽ   r�   rž   r¡   r£   r¯   r²   rµ   rÑ   râ   rë   rŒ   rî   rõ   rø   rþ   r  r
  r  r  r  r  r  r  r   r"  r%  r(  r+  r.  r0  r2  r5  r6  r8  r9  r:  r;  rC  rI  rN  r   rS  r   r   rW  r\  r]  r    r    r    r!   r]   v   sJ  
Kýþ

 þ




ôþ
îþ
"*þ*þ$(öþ
øþ
?3!
	#
[
üþ	
þþ



øþ
"ýýýýðþr]   )#r   r   rD  Únumpyr   rZ   Zpandas._libs.tslibs.timezonesr   rS   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsr^  Zpandasr4   r   r   r   r   r	   r
   r   r   Zpandas._testingZ_testingr   Zpandas.api.typesr   r@  Zpandas.core.commonÚcoreÚcommonrª   r   r]   r    r    r    r!   Ú<module>   s   (
Y