U
    f/eݖ                     @   s   d dl m Z mZ d dlZd dlmZ d dlZ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 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)permutations)CategoricalCategoricalIndex	DataFrameIndex
MultiIndexSeries
date_rangeisna)CategoricalDtypec                   @   s,   e Zd Zdd Zdd Zdd Z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    K/tmp/pip-unpacked-wheel-tiezk1ph/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pdZcutr   r   reset_index)r   r   serr    r    r!   "test_set_reset_index_intervalindex6   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(   r8   r9   dr   r)   )r(   r8   r9   r<   )
r   astyper   int64float64r   r5   r3   r   assert_frame_equal)r   r   Zdf1r/   expecteddf2r    r    r!   test_setitem_reset_index_dtypes?   s    z3TestReindexSetIndex.test_setitem_reset_index_dtypesN)__name__
__module____qualname__r"   r0   r7   rC   r    r    r    r!   r      s   	r   c                   @   sN  e Zd Z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d!d" Zd#d$ Zd%d& Zd'd( Zd)d* Zd+d, Zd-d. Zd/d0 Zd1d2 Zd3d4 Zd5d6 Zd7d8 Zd9d: Zd;d< Zd=d> Zd?d@ Z dAdB Z!dCdD Z"dEdF Z#dGdH Z$dIdJ Z%dKdL Z&dMdN Z'dOdP Z(dQdR Z)dSdT Z*dUdV Z+ejdWd
e,dXdYdZde,dXdYdZd[did[d\igd]d^ Z-ejd_e.g e/g gejd`e.g e/g e.dadbge/dadbge.dadage/dadaggdcdd Z0ejdedfdggdhdi Z1d\S )jTestDataFrameSelectReindexc              	   C   s   t dddjdd}t|ddgtdd}|jd	 }| }tt	  |j
td
dddg|d}W 5 Q R X t|d  |g |d  |g |gd
 d}t|| |j
td
dddgdd}t|| d S )N
2016-01-01r   r      r+   r   r2   r)   r   r      Cr   r*   
fill_valuer   r2   rM   )r   valuesZreshaper   r3   ilocdater   assert_produces_warningFutureWarningr   tolistr@   )r   arrr   tsfvresrA   r    r    r!   test_reindex_date_fill_valueV   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$   rJ   r   r2   rM   DEFGr;   r(   r8         ?       @g      @g333333@)namesrL   bfillmethodbackfillpadffill)r   listr3   r   r	   from_productr   r   nanr   r@   )r   r   r.   Znew_multi_index	reindexedrA   Zreindexed_with_backfillingZreindexed_with_paddingr    r    r!   test_reindex_with_multi_indexl   sF    &
z8TestDataFrameSelectReindex.test_reindex_with_multi_indexzmethod,expected_valuesnearestr   r$   r+   ri   rh   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   rf   r$   rg   	tolerancer\   rJ   r   r+   rh   ri   )	r   rk   r3   r   arrayr   r   r@   rR   )
r   rg   Zexpected_valuesr   targetrA   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 )Nrq   r1   rr   rs   rt   ru   r   r$   rv   rp   g?rw   rb   g{Gz?g?g?)	r   rk   r3   r   ry   rm   r   r   r@   )r   r   rz   rA   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   rq   rv   rJ   rp   rf   )r   r   rk   r3   headr   r   r@   )r   Ztz_aware_fixturer   idxr   rA   r{   r    r    r!   test_reindex_nearest_tz   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:00rv   rp   rf   )r4   ZDatetimeIndexr   r   r   r@   )r   dtir   rA   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	  rt
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
issubdtypedtyper-   comr   allany)r   rngr   r/   maskr    r    r!   test_reindex_frame_add_nat   s    z5TestDataFrameSelectReindex.test_reindex_frame_add_natzmethod, exp_valuesrj   rJ   re         ?rc   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+   rJ   z2020-01-01 00:00:00rL   r&   UTCr   rv   z2020-01-01 00:01:00z1 hourrw   )r   r   r4   Z	Timedeltar   Zassert_equal)r   Zframe_or_seriesrg   Z
exp_valuesobjr.   r/   rA   r    r    r!   !test_reindex_frame_tz_ffill_bfill  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   rM   r^   r   r$   r+   rJ   rL   r1   rj   )rg   limit)r   rm   r   r   r   r@   )r   dataZexp_datar   r/   rA   r    r    r!   test_reindex_limit  s    $z-TestDataFrameSelectReindex.test_reindex_limitc                    s  dddg d< fdd	}d= fdd	}t td	td
d d d dddgd tjdddd}dddgddddgdgdddgdddgddgddgddgdddgg	}|D ]}||d| qddgdddgfD ]}||d|dd q||dtdddddddd d!d"g	 ||dtd#dddddd d!d"g ||dtd$dddd d!d"g ||dtd%dddd"d g ||dtd&ddddd"g ||dtd'ddddddd d!d"g	 ||dtd(dddg ||dtd)g dd 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d0d1 d2D tjddd d}t|d 	 D ].}t
dD ]}||d|d |d   qqzdddddd ddd"d!dd3d4d5d6d7d8d9d:d;g}||dd.d/d-g| ddddddd3d4dd"d!d dd9d:d;d7d8d5d6g}||dd-d/d.g| dddd"d!dd3d4d7d8d9d:d;g}||dd/d-g| ddddddd3d4d dd9d:d;d5d6g}||dd-d.g| d S )>NjimjoejolieTc                    sZ    fdd}t tt||} j|d} j| }tj|||d d S )Nc                    s   t   | k d S )Nr   )r   ZnonzeroZto_numpy)valr   levelr    r!   f'  s    zTTestDataFrameSelectReindex.test_reindex_level.<locals>.verify_first_level.<locals>.fr   check_index_type)	r   concatenaterk   mapr   r   rR   r   r@   )r   r   r   r   r   ileftrightZicolr   r!   verify_first_level&  s
    zITestDataFrameSelectReindex.test_reindex_level.<locals>.verify_first_levelc                    s8   |   j||d}| j|   }tj|||d d S )Nr   r   )r   r   rR   r   r@   )r   r   r   Zindexerr   r   r   r   r    r!   verify/  s    z=TestDataFrameSelectReindex.test_reindex_level.<locals>.verifyZ	BBBBAACCCZ	abcdeabcdr\   r#         rJ   r     	   )r   r   r   ZjolinerM   r2   r   r`   r^   Fr   Zabcder+   r$   r1   rL      r]   r   ZabcdabcZecaZedcZeadbcZedwqZwqZmidZbtmtopZ3rdZ1stZ2ndc                 S   s   g | ]}t jjd |ddqS )r   F)replace)r   r   choice).0rq   r    r    r!   
<listcomp>h  s   zATestDataFrameSelectReindex.test_reindex_level.<locals>.<listcomp>)r+   rJ   rJ   r+   rJ   r+   rJ   r+                     r         )T)T)r   rk   r   r   randintr   r,   roundr   uniquer3   )r   r   r   r   rz   r   r   r    r   r!   test_reindex_level#  s    
	

$"$ ,,"z-TestDataFrameSelectReindex.test_reindex_levelc              	   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*   rJ   rL   r1   r   r+   z0index must be monotonic increasing or decreasingmatchri   rf   rj   re   rp   )r   r   r   r,   r   rk   pytest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>   r   r   r+           r?   rv   )	r   r4   ry   ZSparseDtyper   r   rm   r   r@   r   r   r/   rA   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stq.t|s.tq.q| D ]\}}t 	|j|jstq|t
g }t|jdkst||jd d d }	|	jD ]r}|	|  D ]`\}}||jkrNt|r6t|| | sLtn||| | ks\tqt|stqq|	 D ] \}}t 	|j|	jshtqh|j|jdd}|j|jkst|g }|jstt|jt|jkst|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)copy)r   ZmakeTimeSeriesr   r   r*   itemsr   isnanr-   ZequalContentsr   r   emptyrk   Z
_with_freqr   r@   )r   float_frameZdatetime_seriesZnewFramecolr   r   ZseriesZ
emptyFrameZnonContigFramerA   r/   r    r    r!   test_reindex  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+   rJ   r1   r]   r   r   r%   r   r   r   r   objectFr   r(   r8   r9   z
2015-03-22z
2012-01-08rL   )otherrS   amountrS   z
2015-06-18deltar   r   r:   )r   r   rm   r   r@   r   rR   r   r=   r4   Zto_datetimerS   shiftr   r5   )r   r   r   jr   r   r    r    r!   test_reindex_nan  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st
d S )Nr#   rv   ZinamenameZtmpnamer:   )r
   r   r   Zrandr   aranger   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   r   r   r>   r-   r?   )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:   rM   )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 )Nr   r   r         r%          !   r$   r+   rL   )r   r   r*   r   r   r:   rj   )r*   rg   re   )r   floatr   r3   r   rm   r   r@   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st||kstd S )NrJ   rJ   i  r$   r+   rJ   r(   r8   r9   r   
2012-01-01z
2012-01-03r<   )r   rv   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_axesW  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#   rL   r   r   r   )rO   r1   r   )r*   rO   foo)r   r   r   r,   r   rk   r3   r   rQ   r   r-   Zfillnar   r@   r   r   r    r    r!   test_reindex_fill_valueg  s,    z2TestDataFrameSelectReindex.test_reindex_fill_valuec                 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+   rJ   rL   r1   rv   $cannot reindex from a duplicate axisr   )r   r   r,   r   r   rk   r3   r   r   r   r@   r   r   r   r   )r   rW   r   r/   rA   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   r   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+   rJ   rL   r1   r   r   r   rv   axisr   )r   r   rm   r   r   r@   r   r   rA   r/   r    r    r!   test_reindex_axis_style  s     z2TestDataFrameSelectReindex.test_reindex_axis_stylec              	   C   sv   t dddgdddgd}t ddgd	dgtjtjgd
}tt |ddgdddg}W 5 Q R X t|| d S )Nr$   r+   rJ   rL   r1   r   r   r   g      @rP   r   r   r2   rM   )r   r   rm   r   rT   rU   r   r@   r   r    r    r!   test_reindex_positional_warns  s
      z8TestDataFrameSelectReindex.test_reindex_positional_warnsc              	   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	 |d
dgd
gdg 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+   rJ   rL   r1   r   r   zCannot specify both 'axis'r   r   r   r   r   )r   r   r*   )r*   r   )r   r*   r   zCannot specify allzmultiple valueslabels)r   r   r   	TypeErrorr   )r   r   r    r    r!   test_reindex_axis_style_raises  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+   rJ   r   r   r   r:   r   r   r   r@   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|| qtt}|d	dgddg}W 5 Q R X dt|d jks2t|jddgd	dgd}|jd	dgddjddgdd}||fD ]}t|| qpd S )Nr$   r+   rJ   rL   r1   r   r]   r(   r8   r9   r<   er   r   rv   r   r   )r   r   r   r:   r   r)   )	r   r   r   r@   rT   rU   strmessager-   )	r   r   Zres1Zres2Zres3Zres4Zres5rZ   mr    r    r!   test_reindex_api_equivalence  s0     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  st	d S )N)r#   r+   r   r   r   r+   r   r#   r$   rJ   r:   )r   r   r   boolr   r   rQ   r   Zobject_r-   r   r3   r   )r   framern   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_framern   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(   r8   r9   r$   r+   rJ   rv   r:   r   r2   r_   )
r   r   r   r   r   r*   r   r   r?   r-   )r   r   r   dmrn   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+   rJ   rL   r]   r   r   r#   r(   r8   g      Y@g     @Y@g     Y@g     Y@r)   rv   )r   r   rm   r   rR   r   r@   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 )NrJ   rL   r   r:   r   r#   r   r+   r1   y              ?r(   r8   r9   r$   )
r   r   r   r,   r   r3   rk   r   r@   r   r   r    r    r!   test_reindex_multi7  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(   r8   r9   r   rJ   r&   r   rv   r   r$   r+   rL   r1   r   r   )r	   rl   r   r   r   r3   r   rR   r   r   rm   r   r@   )r   Zmidxr   rB   r/   rA   r    r    r!   #test_reindex_multi_categorical_timeT  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   rJ   r>   r   r   Zcaber2   )r   r   rv   r(   r8   r  r   r$   Zaber   Tr   abr<   )
categoriesZae)r  ordered)r  adr   Zaabbcar   r   z<argument {} is not implemented for CategoricalIndex\.reindexrg   rj   rf   r   r   r   r+   )r   )r   r   r   r   rk   CDTr   rm   r
   r   r   r@   r   r=   r   r   r   NotImplementedErrorformat)r   r   r/   rA   ZcatsrB   r   r    r    r!   "test_reindex_with_categoricalindexc  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   rg   rO   rx   )inspect	signaturer   r   set
parametersr-   )r   sigr  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 )N)r(   r8   )r<   r  r   r]   rJ   rL   rq   yr   )hr   rj   )r   rg   )r	   from_tuplesr   r   r   r@   )r   mir   Zmi2r/   rA   r    r    r!   (test_reindex_multiindex_ffill_added_rows  s    $zCTestDataFrameSelectReindex.test_reindex_multiindex_ffill_added_rowskwargsr   )secondsrw   rg   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30srJ   )startr   r   timer   r(   r   rv   )r   r   r   r   r4   ZNAr   r@   )r   r"  r   r   r/   rA   r    r    r!   test_reindex_empty_frame  s
    z3TestDataFrameSelectReindex.test_reindex_empty_framesrc_idxcat_idxr   r2   c                 C   s<   t |dgdd}|j|d}t dg|dd}t|| d S )NKZf8)r*   r   r   r:   )r   r*   r   r   )r   r'  r(  r   r/   rA   r    r    r!   test_reindex_empty  s    z-TestDataFrameSelectReindex.test_reindex_emptyr   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+   rH   r#   rI   NaTnsr+  r   rv   rJ   r$   r   rN   r   r   )r   r$   r   rK   )r\   r   )r\   r$   )r	   rl   rk   r3   r   r   Ztimedelta64Z
datetime64r
   r4   r,  Zunstackr   appendr   r*   r   r   rV   ry   r   Zdtypesr   r   r-   rR   r   r@   )r   r   r   r   rY   r6   r   r   r*   rZ   rA   r    r    r!   #test_reindex_datetimelike_to_object  s0    z>TestDataFrameSelectReindex.test_reindex_datetimelike_to_object)2rD   rE   rF   r[   ro   r   markZparametrizer   rm   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  r!  r   r&  r   r   r*  r/  r    r    r    r!   rG   R   s   K

 
^?4!	#
[
	




rG   )r   r   r  	itertoolsr   Znumpyr   r   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   rG   r    r    r    r!   <module>   s   (
7