U
    >vf                     @   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-vdrwu74i/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_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(   r8   )r   valsr   12)gettzr4   Z	Timestampr   r   r   r   rA   )
r   timezonerH   rI   rJ   rK   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   r7   rD   pytestmarkparametrizerT   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(dd Z)dd Z*dd Z+dd Z,dd Z-dd Z.dd Z/dd Z0dd Z1dd Z2dd Z3dd Z4dd Z5e	j
dde6dGddde6dGdddd
iddigdd Z7e	j
de8g e9g ge	j
de8g e9g e8d(d'ge9d(d'ge8d(d(ge9d(d(ggdd Z:e	j
dddgdd Z;e	j
de9g 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dd Z<dS )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   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	st
n t|d jj	|d jj	rt
|j||jdd}|rt|d jj	|d jj	st
n t|d jj	|d jj	rt
d S )Nr#   ZFloat64dtypeTr\   r   r^   )r   r   r   r,   r_   r`   r   ra   array_datar-   r   )r   Zusing_copy_on_writerb   r   rc   r/   rd   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   rF   r+   r   r2   r)   r   r   rG   Cr   r*   
fill_value)r   r2   rn   rf   )r   rp   )r   valuesZreshaper   r3   ilocdater   tolistobjectr   rA   )r   arrr   tsfvresrB   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$   rF   r   r2   rn   DEFGr;   r(   r8         ?       @g      @g333333@)namesrG   bfillmethodbackfillpadffill)r   listr3   r   r	   from_productr   r   nanr   rA   )r   r   r.   Znew_multi_index	reindexedrB   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{   rF   r   r+   r   r   )	r   r   r3   r   rh   r   r   rA   rr   )
r   r   Zexpected_valuesr   targetrB   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{Gz?g?g?)	r   r   r3   r   rh   r   r   r   rA   )r   r   r   rB   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   rF   r   r   )r   r   r   r3   headr   r   rA   )r   Ztz_aware_fixturer   idxr   rB   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   rA   )r   dtir   rB   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
issubdtyperg   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   rF   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+   rF   z2020-01-01 00:00:00rG   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/   rB   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   rn   r}   r   r$   r+   rF   rG   r1   r   )r   limit)r   r   r   r   r   rA   )r   dataZexp_datar   r/   rB   r    r    r!   test_reindex_limitb  s    $z-TestDataFrameSelectReindex.test_reindex_limitzidx, check_index_typern   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#         rF   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   rr   r   rA   )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+   1strF   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+   rF   rF   r+   rF   r+   rF   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   rr   r   rA   )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   rG   r   r   r1   r   r|   r#   rE                  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   rF   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   rr   r   rA   )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   rF   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   rr   r   rA   )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*   rF   rG   r1   r   r+   z0index must be monotonic increasing or decreasingmatchr   r   r   r   r   )r   r   r   r,   r   r   rX   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?   rf   r   r+           r@   r   )	r   r4   rh   ZSparseDtyper   r   r   r   rA   r   r   r/   rB   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   rA   )r   float_frameZdatetime_seriesZnewFramecolr   r   ZseriesZ
emptyFrameZnonContigFramerB   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+   rF   r1   r|   rE   r   r%   r   r   r   r   ru   Fr   r(   r8   r9   z
2015-03-22z
2012-01-08rG   )otherrs   amountrs   z
2015-06-18deltar   r   r:   )r   r   r   r   rA   r   rr   r   r>   r4   Zto_datetimers   shiftr   r5   )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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   rg   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:   rn   )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 )NrE   r   r         r%          !   r$   r+   rG   )r   r   r*   rg   r   r:   r   )r*   r   r   )r   floatr   r3   r   r   r   rA   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rF   rF   i  r$   r+   rF   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#   rG   r   r   r   )rp   r1   r   )r*   rp   foo)r   r   r   r,   r   r   r3   r   rq   r   r-   Zfillnar   rA   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(   r8   rf   r   r   rF   r#   r*   r   rp   r=   )r   r   r   r   rA   )r   Zany_unsigned_int_numpy_dtyper   r/   rB   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+   rf   abr   r#   r  r  )r   r   r   r
   r   rA   )r   Zany_numeric_ea_dtyper   r/   rB   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+   rF   rG   r1   r   /cannot reindex on an axis with duplicate labelsr   )r   r   r,   r   r]   r   r3   r   r   r   rA   rX   r   r   r   )r   rv   r   r/   rB   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   rX   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+   rF   rG   r1   r   r   r   r   axisr   )r   r   r   r   r   rA   )r   r   rB   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+   rF   rG   r1   r   r   zCreindex\(\) takes from 1 to 2 positional arguments but 3 were givenr   r   r   r2   rn   r   rX   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+   rF   rG   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+   rF   r   r   r   r:   r   r   r   rA   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+   rF   rG   r1   r   r|   r(   r8   r9   r<   er   r   r   r*  r   )r)  r$  r#  r:   r)   r,  )r   r   Zres1Zres2Zres3Zres4Zres5ry   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  st	d S )N)r#   r+   rf   r   r   r+   r   r#   r$   rF   r:   )r   r   r  boolr_   r   rq   rg   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+   rF   r   r:   r   r2   r~   )
r   r   r   r   r   r*   rg   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+   rF   rG   r|   r   r   r#   r(   r8   g      Y@g     @Y@g     Y@g     Y@r)   r   )r   r   r   r   rr   r   rA   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 )NrF   rG   r   r:   r   r#   r  r+   r1   y              ?r(   r8   r9   r$   )
r   r   r   r,   r   r3   r   r   rA   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  rF   r&   r   r   r   r$   r+   rG   r1   r   r   )r	   r   r   r   r   r3   r   rr   r   r   r   r   rA   )r   Zmidxr   rC   r/   rB   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   rF   r?   rf   r   Zcaber2   )rg   r  r   r(   r8   r.  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   r_   r   r   CDTr   r   r
   r   r   rA   r   r>   rX   r   r   NotImplementedErrorformat)r   r   r/   rB   ZcatsrC   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   rp   r   )inspect	signaturer   r   set
parametersr-   )r   sigrD  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<   r.  r   r|   rF   rG   r   yr   )hr   r   )r$  r   )r	   from_tuplesr   r   r   rA   )r   mir   Zmi2r/   rB   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30srF   )startr   r   timer  r(   r   r   )r   r   r   r   r4   ZNAr   rA   )r   rL  r   r   r/   rB   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   rg   r:   )r   r*   rg   r,  )r   rQ  rR  r   r/   rB   r    r    r!   test_reindex_empty  s    z-TestDataFrameSelectReindex.test_reindex_emptyrg   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+   rk   r#   rl   NaTnsrU  r   r   rF   r$   r  ro   r   rf   )r   r$   r  rm   )r{   r   )r{   r$   )r	   r   r   r3   r   r   Ztimedelta64Z
datetime64r
   r4   rV  Zunstackr   appendr   r*   r   r   rt   rh   rg   Zdtypesru   r   r-   rr   r   rA   )r   rg   rJ  r   rx   r6   r   r   r*   ry   rB   r    r    r!   #test_reindex_datetimelike_to_object  s0    z>TestDataFrameSelectReindex.test_reindex_datetimelike_to_objectzindex_df,index_res,index_expr9  c                 C   s0   t |d}|j|d}t |d}t|| d S )Nr   r,  )r   Zindex_dfZ	index_resZ	index_expr   r/   rB   r    r    r!   test_reindex_not_category  s    

z4TestDataFrameSelectReindex.test_reindex_not_category)=rU   rV   rW   re   rj   tdZ&skip_array_manager_not_yet_implementedrz   r   rX   rY   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/  r2  r3  r5  r6  r7  r8  r@  rF  rK  r   rP  r   r   rT  rY  rZ  r    r    r    r!   r[   v   sJ  
K

 






"**$(

?3!
	#
[
	





"r[   )#r   r   rA  Znumpyr   rX   Zpandas._libs.tslibs.timezonesr   rR   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