U
    sVc                     @   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    K/tmp/pip-unpacked-wheel-xj8nt62q/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_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(   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_dtypesA   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(   r8   )r   valsr   12)gettzr4   Z	Timestampr   r   r   r   r@   )
r   timezonerG   rH   rI   rJ   Ztest_timezoneZtransition_1Ztransition_2r   r    r    r!    test_reindex_timestamp_with_foldS   s:    	
z4TestReindexSetIndex.test_reindex_timestamp_with_foldN)__name__
__module____qualname__r"   r0   r7   rC   pytestmarkparametrizerS   r    r    r    r!   r      s   	r   c                   @   sF  e Z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-d.d/d0d.d1d2d3d4d5d3d6d7d8d9d:d8d;d<gd=d> Zej	
d?d@dAdBgdddCd	d
dDdEdFdGdHdIdJdKdLdMdNdOdPdQdRggdBdAd@gd	d
dddCdIdJdKdFdGdHdDdEdPdQdRdNdOdLdMggdAdBgd	d
dFdGdHdIdJdKdNdOdPdQdRggdBd@gd	d
dddCdIdJdKdDdEdPdQdRdLdMgggdSdT Zej	
dUedVddd
d	dFdCdDdHdGg	d'gedWddd
d	dFdDdHdGgd'gedXddd
dDdHdGgd'gedYd
ddCdGdDgd'gedZd	d
dCdFdGgd'ged[dd	dd
dCdFdDdHdGg	d'ged\d	dCdFgd'ged]g d*ggd^d_ Z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(dd Z)dd Z*dd Z+dd Z,dd Z-dd Z.dd Z/dd Z0dd Z1dd Z2ej	
dde3dEddde3dEddddiddigdd Z4ej	
de5g e6g gej	
de5g e6g e5d&d%ge6d&d%ge5d&d&ge6d&d&ggdd Z7ej	
dddgdd Z8ej	
de6g d&gde5d&ge5d&gfe6g d&gde5d%ge5d%gfe6g d&gde6d&ge6d&gfe6g d&gde6d%ge6d%gfgdd Z9dS )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rt	d S )Nr#   T)r*   copyr   )r*   r   r[   )r   r   r   r,   arangeshuffler   Zshares_memoryZ_valuesr-   r   )r   Nr   colsr/   Zresult2r    r    r!   test_reindex_copies{   s    
z.TestDataFrameSelectReindex.test_reindex_copiesc              	   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|| tt	 |j
td
|d}W 5 Q R X t||ddg  |j
td
dddgdd}t|| d S )N
2016-01-01r   r   rE   r+   r   r2   r)   r   r   rF   Cr   r*   
fill_valuer   r2   rd   )r   rf   )r   valuesZreshaper   r3   ilocdater   assert_produces_warningFutureWarningr   tolistr@   )r   arrr   tsfvresrA   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$   rE   r   r2   rd   DEFGr;   r(   r8         ?       @g      @g333333@)namesrF   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_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~   	tolerancers   rE   r   r+   r   r   )	r   r   r3   r   arrayr   r   r@   ri   )
r   r~   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 )Nr   r1   r   r   r   r   r   r$   r   r   g?r   ry   g{Gz?g?g?)	r   r   r3   r   r   r   r   r   r@   )r   r   r   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   r   r   rE   r   r}   )r   r   r   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:00r   r   r}   )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_nat2  s    z5TestDataFrameSelectReindex.test_reindex_frame_add_natzmethod, exp_valuesr   rE   r|         ?rz   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+   rE   z2020-01-01 00:00:00rF   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/   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   rd   ru   r   r$   r+   rE   rF   r1   r   )r~   limit)r   r   r   r   r   r@   )r   dataZexp_datar   r/   rA   r    r    r!   test_reindex_limitL  s    $z-TestDataFrameSelectReindex.test_reindex_limitzidx, check_index_typerd   r2   r   Trw   ru   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	abcdeabcdrs   r#         rE   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!   fx  s    zKTestDataFrameSelectReindex.test_reindex_level_verify_first_level.<locals>.flevelcheck_index_type)r   r   r   r   randintconcatenatemapr   r   ri   r   r@   )r   r   r   icolr   ileftrightr    r   r!   %test_reindex_level_verify_first_level\  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   rt   3rdr+   1strE   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+   rE   rE   r+   rE   r+   rE   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   ri   r   r@   )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   rF   r   r   r1   r   rt   r#   rD                  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   rt   r   r+   r   rE   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   ri   r   r@   )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abcdeZ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   rs   r#   r   r   rE   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   ri   r   r@   )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*   rE   rF   r1   r   r+   z0index must be monotonic increasing or decreasingmatchr   r}   r   r|   r   )r   r   r   r,   r   r   rW   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?   r   )	r   r4   r   ZSparseDtyper   r   r   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)r[   )r   ZmakeTimeSeriesr   r   r*   itemsr   isnanr-   ZequalContentsr   r   emptyr   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+   rE   r1   rt   rD   r   r%   r   r   r   r   objectFr   r(   r8   r9   z
2015-03-22z
2012-01-08rF   )otherrj   amountrj   z
2015-06-18deltar   r   r:   )r   r   r   r   r@   r   ri   r   r=   r4   Zto_datetimerj   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#   r   ZinamenameZtmpnamer:   )r
   r   r   Zrandr   r\   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   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   rv   r:   rd   )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 )NrD   r   r         r%          !   r$   r+   rF   )r   r   r*   r   r   r:   r   )r*   r~   r|   )r   floatr   r3   r   r   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rE   rE   i  r$   r+   rE   r(   r8   r9   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#   rF   r   r   r   )rf   r1   r   )r*   rf   foo)r   r   r   r,   r   r   r3   r   rh   r   r-   Zfillnar   r@   r[   r   r    r    r!   test_reindex_fill_value  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	8 t	jtd
d	 |jttt|d W 5 Q R X W 5 Q R X d S )Nr#   r$   r+   rE   rF   r1   r   /cannot reindex on an axis with duplicate labelsr   
non-unique)r   r   r,   r   r[   r   r3   r   r   r   r@   rW   r   r   rk   rl   r   )r   rn   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. tjtd	d |jdgd W 5 Q R X W 5 Q R X tjt|d0 tjtd	d |jdd
gd W 5 Q R X W 5 Q R X d S )Nr$   r1   g      @barr(   r:   r  r   r  r  )r   rW   r   r   r   rk   rl   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+   rE   rF   r1   r   r   r   r   axisr   )r   r   r   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+   rE   rF   r1   r   r   r   g      @rg   r   r   r2   rd   )r   r   r   r   rk   rl   r   r@   r  r    r    r!   test_reindex_positional_warns6  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+   rE   rF   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   rW   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+   rE   r   r   r   r:   r   r   r   r@   r   r    r    r!   !test_reindex_single_named_indexerb  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+   rE   rF   r1   r   rt   r(   r8   r9   r<   er   r   r   r  r   )r   r  r  r:   r   r)   )	r   r   r   r@   rk   rl   strmessager-   )	r   r   Zres1Zres2Zres3Zres4Zres5rq   mr    r    r!   test_reindex_api_equivalencei  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$   rE   r:   )r   r   r  boolr\   r   rh   r   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(   r8   r9   r$   r+   rE   r   r:   r   r2   rv   )
r   r   r   r   r   r*   r   r   r?   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+   rE   rF   rt   r   r   r#   r(   r8   g      Y@g     @Y@g     Y@g     Y@r)   r   )r   r   r   r   ri   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 )NrE   rF   r   r:   r   r#   r  r+   r1   y              ?r(   r8   r9   r$   )
r   r   r   r,   r   r3   r   r   r@   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(   r8   r9   r  rE   r&   r   r   r   r$   r+   rF   r1   r   r   )r	   r   r   r   r   r3   r   ri   r   r   r   r   r@   )r   Zmidxr   rB   r/   rA   r    r    r!   #test_reindex_multi_categorical_time  s    
$z>TestDataFrameSelectReindex.test_reindex_multi_categorical_timec              
   C   sH  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. t
jtdd |d
dg W 5 Q R X 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   rE   r>   r   r   Zcaber2   )r   r   r   r(   r8   r%  r   r$   Zaber   Tr   abr<   
categoriesZae)r5  ordered)r6  adr   Zaabbcar  r   r  z<argument {} is not implemented for CategoricalIndex\.reindexr~   r   r}   r   r   r   r+   )r   )r   r   r\   r   r   CDTr   r   r
   r   r   r@   r   r=   rW   r   r   rk   rl   NotImplementedErrorformat)r   r   r/   rA   ZcatsrB   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~   rf   r   )inspect	signaturer   r   set
parametersr-   )r   sigr?  r    r    r!   test_reindex_signatureA  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   rt   rE   rF   r   yr   )hr   r   )r  r~   )r	   from_tuplesr   r   r   r@   )r   mir   Zmi2r/   rA   r    r    r!   (test_reindex_multiindex_ffill_added_rowsR  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30srE   )startr   r   timer   r(   r   r   )r   r   r   r   r4   ZNAr   r@   )r   rG  r   r   r/   rA   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   r   r:   )r   r*   r   r#  )r   rL  rM  r   r/   rA   r    r    r!   test_reindex_emptym  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+   ra   r#   rb   NaTnsrP  r   r   rE   r$   r  re   r   r   )r   r$   r  rc   )rs   r   )rs   r$   )r	   r   r   r3   r   r   Ztimedelta64Z
datetime64r
   r4   rQ  Zunstackr   appendr   r*   r   r   rm   r   r   Zdtypesr   r   r-   ri   r   r@   )r   r   rE  r   rp   r6   r   r   r*   rq   rA   r    r    r!   #test_reindex_datetimelike_to_object  s0    z>TestDataFrameSelectReindex.test_reindex_datetimelike_to_objectzindex_df,index_res,index_expr4  c                 C   s0   t |d}|j|d}t |d}t|| d S )Nr   r#  )r   Zindex_dfZ	index_resZ	index_expr   r/   rA   r    r    r!   test_reindex_not_category  s    

z4TestDataFrameSelectReindex.test_reindex_not_category):rT   rU   rV   r`   tdZ&skip_array_manager_not_yet_implementedrr   r   rW   rX   rY   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/  r0  r1  r2  r;  rA  rF  r   rK  r   r   rO  rT  rU  r    r    r    r!   rZ   w   sD  
K

 






"**$(

?4!	#
\
	





"rZ   )#r   r   r<  Znumpyr   rW   Zpandas._libs.tslibs.timezonesr   rQ   Zpandas.util._test_decoratorsutilZ_test_decoratorsrV  Zpandasr4   r   r   r   r   r	   r
   r   r   Zpandas._testingZ_testingr   Zpandas.api.typesr   r8  Zpandas.core.commoncorecommonr   r   rZ   r    r    r    r!   <module>   s   (
Z