o
    5c                     @   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                   @   sN   e Zd Zdd Zdd Zdd Zdd Zej	d	g d
g d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tz2013Az
Asia/Tokyo)	r   nprandomr   	set_indextmassert_index_equalindexreindex)selfdfidx1idx2 r#   ]/var/www/html/gps/gps/lib/python3.10/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s=J d S )Ni  
         Hr   )r   r      acolumnsr      )	r   r   r   r   r   randnr   r   r   )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 g dddtjtjd}|dg}g |d< | }t g dtdddtjtjtjd}t	|| |dd	g}g |d< | }t	|| d S )
Nr+   bcr-   zdatetime64[ns]r+   d)r+   r<   r=   r?   r   r,   r<   )
r   astyper   int64float64r   r8   r5   r   assert_frame_equal)r   r    df1r1   expecteddf2r#   r#   r$   test_setitem_reset_index_dtypesA   s   z3TestReindexSetIndex.test_setitem_reset_index_dtypesz timezone, year, month, day, hour)zAmerica/Chicagoi        r'   )zAmerica/Santiagoi     rI   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+   r<   )r   valsr   12)gettzr6   	Timestampr   r   r   r   rC   )
r   timezonerK   rL   rM   rN   test_timezonetransition_1transition_2r    r#   r#   r$    test_reindex_timestamp_with_foldS   s6   	

z4TestReindexSetIndex.test_reindex_timestamp_with_foldN)__name__
__module____qualname__r%   r2   r:   rG   pytestmarkparametrizer[   r#   r#   r#   r$   r      s    	r   c                   @   sR  e Zd Zdd Zejdd Zdd Zej	
ddg d	fd
ejdddgfdg dfgdd Zdd Zdd Zdd Zdd Zej	
ddg dfddddejgfgd d! Zd"d# Zej	
d$g d%d&gg d'd&gd(gd&gg d)d&gg d*d&gd+d,gd&gd+d(gd&gd(d,gd&gg d-d&gd.d/gd0gg d1d0ggd2d3 Zej	
d4g d5d6d7 Zej	
d8g d9g d:gg d;g d<gd=d>gg d?gd>d@gg dAggdBdC Zej	
dDedEg dFd&gedGg dHd&gedIg dJd&gedKg dLd&gedMg dNd&gedOg dPd&gedQg dRd&gedSg d0ggdTdU ZdVdW ZdXdY ZdZd[ Zd\d] Z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 Z0dd Z1dd Z2ej	
dd
e3dddde3dd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r-J |j||j	dd}t|d j|d jrDJ d S )Nr&   T)r-   copyr   )r-   r   rc   )
r   r   r   r/   arangeshuffler   shares_memory_valuesr   )r   Nr    colsr1   result2r#   r#   r$   test_reindex_copies{   s   
 z.TestDataFrameSelectReindex.test_reindex_copiesc                 C   s6  t dddjdd}t|ddgtdd}|jd	 }| }tt	 |j
td
g d|d}W d    n1 s;w   Y  t|d  |g |d  |g |gd
 d}t|| tt	 |j
td
|d}W d    n1 sxw   Y  t||ddg  |j
td
g ddd}t|| d S )N
2016-01-01r   r   rI   r.   r   r4   r,   r   r   rJ   r   r4   Cr   r-   
fill_value)r   rr   )r   valuesreshaper   r5   ilocdater   assert_produces_warningFutureWarningr   tolistrC   )r   arrr    tsfvresrE   r#   r#   r$   test_reindex_date_fill_value   s&   
,z7TestDataFrameSelectReindex.test_reindex_date_fill_valuec                 C   s^  t dgd dgd  dgd  ttdd g dd ddd	g}g d
}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 |g dddd	g}|j|dd}t	
|| |j|dd}t	
|| t dgd |g dddd	g}|j|dd}t	
|| |j|dd}t	
|| d S )N   r   r'   rI   )r   r4   rp   DEFGr;   r+   r<   )      ?       @g      @g333333@)namesrJ   rp   r   )r4   rp   r   r   bfillmethodbackfill)r   rp   r   r   padffill)r   listr5   r   r	   from_productr   r   nanr   rC   )r   r    r0   new_multi_index	reindexedrE   reindexed_with_backfillingreindexed_with_paddingr#   r#   r$   test_reindex_with_multi_index   sF   &





z8TestDataFrameSelectReindex.test_reindex_with_multi_indexzmethod,expected_valuesnearest)r   r'   r'   r.   r   r   r'   r   )r   r'   r.   r.   c           
      C   s.  t dttdi}tg d}t d|i|d}|j||d}t|| |j||dd}t|| |j||g dd}t|| |d d d	 }|j|d d d	 |d}t|| g d
}|j| }|j|| |d}t|| |dkr{dn|dkrdn|}	|d d d	 j||	d}t|| d S )Nxr3   gg?g?g      ?r   r   r'   r   	tolerance)r'   r'   r'   r'   r   )rI   r   r.   r'   r   r   )	r   r   r5   r   arrayr   r   rC   ru   )
r   r   expected_valuesr    targetrE   actuale2	new_orderswitched_methodr#   r#   r$   test_reindex_methods   s(   	
z/TestDataFrameSelectReindex.test_reindex_methodsc                 C   s   t dttdi}tg d}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g d
d	}t|| d S )Nr   r3   r   r   r'   r   r   g?r   )r   g{Gz?g?g?)	r   r   r5   r   r   r   r   r   rC   )r   r    r   rE   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-01r3   )r   r   r   r   rI   r   r   )r   r   r   r5   headr   r   rC   )r   tz_aware_fixturer   idxr    rE   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   )r6   DatetimeIndexr   r   r   rC   )r   dtir    rE   r1   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s)J t
|d }|d	d   s:J |d d	  rDJ d S )
Nz1/1/2000 00:00:00r&   10sr   r   r   r4      r4   M8[ns])r   r   r   r   r/   lenr   r5   
issubdtypedtypecomr   allany)r   rngr    r1   maskr#   r#   r$   test_reindex_frame_add_nat2  s   z5TestDataFrameSelectReindex.test_reindex_frame_add_natzmethod, exp_valuesr   r   r'   r.   rI   r         ?r   g      @c                 C   s^   |g dt dddddd}t ddddd}|j||td	d
}|||d}t|| d S )Nr   z2020-01-01 00:00:00rJ   r)   UTCr   r   z2020-01-01 00:01:00z1 hourr   )r   r   r6   	Timedeltar   assert_equal)r   frame_or_seriesr   
exp_valuesobjr0   r1   rE   r#   r#   r$   !test_reindex_frame_tz_ffill_bfill=  s   z<TestDataFrameSelectReindex.test_reindex_frame_tz_ffill_bfillc                 C   s   g dg dg dg dg}g dg dg dg dg dt jt jt jgg}t|}|jg dddd}t|}t|| d S )	N)r   r   r   )r4   r4   r4   )rp   rp   rp   )r   r   r   )r   r'   r.   rI   rJ   r3   r   r'   )r   limit)r   r   r   r   r   rC   )r   dataexp_datar    r1   rE   r#   r#   r$   test_reindex_limitL  s   z-TestDataFrameSelectReindex.test_reindex_limitzidx, check_index_type)rp   r4   r   T)r   rp   r   r   r   ro   )rp   r   r4   rp   r4   )r4   r   rp   r   r   F)r   rp   r4   c              	      s   t tdtdd d d g dd tjdddd	 g d
} fdd}ttt||} |j|dd} j	| |}t
j|||d d S )N	BBBBAACCC	abcdeabcdr   r&         rI   r     	   jimjoejoliejoliner   r   r   c                       t  d | k d S Nr   r   r   nonzeroto_numpyvalr    r#   r$   fx     zKTestDataFrameSelectReindex.test_reindex_level_verify_first_level.<locals>.fr   levelcheck_index_type)r   r   r   r   randintconcatenatemapr   r   ru   r   rC   )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   topr   )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   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 g d} fdd}ttt||} |j	|dd} j
| |}t|| d S )Nr   r3   r      r   r   3rdr.   1strI   2ndc                 S      g | ]}t jjd |ddqS r   F)replacer   r   choice.0r   r#   r#   r$   
<listcomp>      z\TestDataFrameSelectReindex.test_reindex_level_verify_first_level_repeats.<locals>.<listcomp>r.   rI   rI   r.   rI   r.   rI   r.   r   r&   r   r   c                    r   r   r   r   r   r#   r$   r     r   zSTestDataFrameSelectReindex.test_reindex_level_verify_first_level_repeats.<locals>.fr   r   )r   r   r   r   r/   roundr   r   r   r   ru   r   rC   )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, indexer)r   r   r   )r.   rI   rJ   r   r'   r   r   r3   r   r   r&   rH                  r         )r   r   r   )r   r'   r.   rI   rJ   r&   rH   r  r3   r   r   r   r   r   r  r  r  r  r  r  r   r   )r   r'   r3   r   r   r&   rH   r  r  r  r   r  r  r   )r   r'   r.   rI   rJ   r&   rH   r  r   r   r   r  r  r  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}g d}||j|dd}|j| |}t	
|| d S )Nr   r3   r   r   r   r   r   r.   r   rI   r   c                 S   r   r   r   r   r#   r#   r$   r     r   zPTestDataFrameSelectReindex.test_reindex_level_verify_repeats.<locals>.<listcomp>r   r   r&   r   r   r   r   )r   r   r   r   r/   r   r   r   ru   r   rC   )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_typeabcde)	rI   r.   r'   r   r3   rJ   r   r   r   abcd)rI   r.   r'   r   r3   r   r   r   abc)rI   r.   r'   r   r   r   eca)r'   rI   rJ   r   r   edc)r   r'   rJ   r3   r   eadbc)	rI   r   r.   r'   rJ   r3   r   r   r   edwq)r   rJ   r3   wqc              	   C   sx   t tdtdd d d g dd tjdddd	}g d
}||j|dd}|j| |}tj	|||d d S )Nr   r   r   r   rI   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   ru   r   rC   )r   r   r  r   r    r   r   r   r#   r#   r$   test_reindex_level_verify  s   
z4TestDataFrameSelectReindex.test_reindex_level_verifyc                 C   sR  t dddd}tjdd}t||tdd}t||g dg d	  tdd}d
}tjt|d |j	|j
dd W d    n1 sDw   Y  tjt|d |j	|j
dd W d    n1 scw   Y  tjt|d |j	|j
dd W d    n1 sw   Y  tjt|d |j	|j
dd W d    d S 1 sw   Y  d S )Nz
2013-08-01r   r4   r   r'   r   r   r-   rI   rJ   r3   )r   r'   r.   z0index must be monotonic increasing or decreasingmatchr   r   r   r   r   )r   r   r   r/   r   r   r_   raises
ValueErrorr   r   )r   drr   r    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'   rA   r   r   r.           rB   r   )	r   r6   r   SparseDtyper   r   r   r   rC   r   r    r1   rE   r#   r#   r$   test_reindex_sparse  s   "z.TestDataFrameSelectReindex.test_reindex_sparsec                 C   sb  t jdd}||j}|jD ]5}||  D ],\}}||jv r<t|r1t|| | s0J q||| | ks;J qt|sCJ qq| D ]\}}t |j|jsWJ qI|t	g }t
|jdkshJ ||jd d d }	|	jD ]5}|	|  D ],\}}||jv rt|rt|| | sJ q~||| | ksJ q~t|sJ q~qv|	 D ]\}}t |j|	jsJ q|j|jdd}|j|ju sJ |g }|jsJ t
|jt
|jksJ |g }||j}t
|jt
|jksJ t
|jt
|jks	J |t|j}|jd }
t |j|
 | }t || ||us/J d S )Nr   )nperr   r.   F)rc   )r   makeTimeSeriesr   r   r-   itemsr   isnanequalContentsr   r   emptyr   
_with_freqr   rC   )r   float_framedatetime_seriesnewFramecolr   r   series
emptyFramenonContigFramerE   r1   r#   r#   r$   test_reindex  sP   


	


	


z'TestDataFrameSelectReindex.test_reindexc                 C   s   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g d}}t|||j|  |jd|_tj|||j| dd t ddtjdgdtjdtjgg dd}t	
|j|d< t	
d|d  d|d< |g d }|jg dd}t|| d S )Nr'   r.   rI   r3   r   rH   r   r(   r   r   r  )r'   rI   rI   r'   r.   r   r'   objectFr   r+   r<   r=   z
2015-03-22z
2012-01-08)r.   rI   rJ   r3   )otherrv   amountrv   z
2015-06-18delta)r4  r2  rv   )r4  r2  rv   r3  r>   )r   r   r   r   rC   r   ru   r   r@   r6   to_datetimerv   shiftr   r8   )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s)J |t
tddd}|jj	dks=J t tjd}t|jtt|d}t tddd}|j|d}|jj	dkshJ d S )Nr&   r   inamenametmpnamer>   )r
   r   r   randr   rd   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J | |j}|d jtjks%J |j ddgd}|d jtjks7J d S )Nr.   r   r4   r>   )r   r   r   r   rA   rB   )r   	int_framesmallerbiggerr#   r#   r$   test_reindex_int  s   z+TestDataFrameSelectReindex.test_reindex_intc                 C   s`   |j g dd}t|d |d  t|d  sJ d|vs#J |j g d}|js.J d S )Nr   r4   r   r>   r4   r   rp   )r   r   assert_series_equalr   r%  r   r'  )r   r)  	new_framer#   r#   r$   test_reindex_columns  s   z/TestDataFrameSelectReindex.test_reindex_columnsc              	   C   sj  t g dg dg dgg dg d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g d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g d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g dtdtd}t|| d S )N)rH   r  r  )      r(   )       !   )r'   r.   rJ   )r   r   r-   r   r   r>   rH   r  r  rI  rJ  r(   rK  rL  rM  r   )r-   r   r   )r   floatr   r5   r   r   r   rC   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g dd}tdd	d
d}ddg}|j|djj}|j||djj}|j|dj|djj}||ksIJ ||ksOJ d S )NrI   rI   i  r'   r.   rI   r;   r  
2012-01-01z
2012-01-03r?   )r   r+   r<   r   r>   )r   r   onesr   r   r   r   r   )r   r    	time_freq	some_cols
index_freq	both_freq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 J |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&   rJ   r   r   r   )rr   r3   r  )r-   rr   foo)r   r   r   r/   r   r   r5   r%  rs   r   fillnar   rC   rc   r   r#   r#   r$   test_reindex_fill_value  s,   z2TestDataFrameSelectReindex.test_reindex_fill_valuec              	   C   s   t jd}t|g dd}| }ttt||_t|ttt|d}t	
|| d}tjt|d4 t	jtdd |jttt|d W d    n1 sUw   Y  W d    d S W d    d S 1 smw   Y  d S )Nr&   )
r'   r.   rI   rJ   r3   r'   r.   rI   rJ   r3   r   /cannot reindex on an axis with duplicate labelsr  
non-unique)r   r   r/   r   rc   r   r5   r   r   r   rC   r_   r  r  rw   rx   r   )r   rz   r    r1   rE   r  r#   r#   r$   test_reindex_dups  s   "z,TestDataFrameSelectReindex.test_reindex_dupsc              	   C   s  t g dg dg dgg dd}d}tjt|d& tjtdd |jdgd W d    n1 s4w   Y  W d    n1 sCw   Y  tjt|d0 tjtdd |jddgd W d    n1 sjw   Y  W d    d S W d    d S 1 sw   Y  d S )	N)r'   r3   g      @)barr+   r+   r>   r\  r  r]  r_  rY  )r   r_   r  r  r   rw   rx   r   )r   r    r  r#   r#   r$   #test_reindex_with_duplicate_columns  s"   "z>TestDataFrameSelectReindex.test_reindex_with_duplicate_columnsc                 C   s   t g dg dd}t ddtjgddtjgdg dd	}|g d}t|| |jg dd
d}t|| |jg ddd}t|| d S )Nr'   r.   rI   rJ   r3   r   r   r'   r.   rJ   r3   )r   r'   rI   r   r   axisr   )r   r   r   r   r   rC   r   r    rE   r1   r#   r#   r$   test_reindex_axis_style'  s   z2TestDataFrameSelectReindex.test_reindex_axis_stylec                 C   s   t g dg dd}t ddgddgtjtjgd}tt |d	d
gg d}W d    n1 s5w   Y  t|| d S )Nra  rb  r   r   r.   g      @r3   ro   r   r'   )r   r   r   r   rw   rx   r   rC   re  r#   r#   r$   test_reindex_positional_warns6  s    z8TestDataFrameSelectReindex.test_reindex_positional_warnsc                 C   s  t g dg dd}tjtdd |jddgdgdd	 W d    n1 s(w   Y  tjtdd |jddgdgd
d	 W d    n1 sJw   Y  tjtdd |jddgd
d W d    n1 sjw   Y  tjtdd |jddgdd W d    n1 sw   Y  tjtdd |jddgdd W d    n1 sw   Y  tjtdd |jddgddgdd W d    n1 sw   Y  tjtdd |ddgdgdg W d    n1 sw   Y  tjtdd |jddgd
d W d    n	1 sw   Y  tjtdd |jddgdd W d    n	1 s1w   Y  tjtdd |jddgddgd W d    d S 1 sUw   Y  d S )Nra  rb  r   zCannot specify both 'axis'r  r   r'   r   rc  r   )r   rd  r-   )r-   rd  )r   r-   rd  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   sJ   t g dg dd}|jddgdgd}t dddgi}t|| d S )Nra  r   r   r'   r   r>   r.   r   r   r   rC   r   r#   r#   r$   !test_reindex_single_named_indexerb  s   z<TestDataFrameSelectReindex.test_reindex_single_named_indexerc           	      C   s  t g dg dg dgg dg d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|| qC|jddgd}|jddgdd}|jddgdd}||fD ]}t|| qjtt}|ddgddg}W d    n1 sw   Y  dt|d jv sJ |jddgddgd}|jddgddjddgdd}||fD ]}t|| qd S )Nra  r  )r3   r   r   r;   )r?   er   r  r<   r+   r   rh  r   )ri  rd  rc  rn  r?   r>   r'   r   r,   )r   r   r   rC   rw   rx   strmessage)	r   r    res1res2res3res4res5r}   mr#   r#   r$   test_reindex_api_equivalencei  s4    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s$J t	|d d s.J |jt
d	d
}|jjtjks?J t	|d  sIJ d S )N)r&   r.   r  r   r   r.   r  r&   r'   rI   r>   )r   r   rR  boolrd   r   rs   r   object_r   r5   r   )r   framer   r#   r#   r$   test_reindex_boolean  s   z/TestDataFrameSelectReindex.test_reindex_booleanc                 C   s<   |j g dd}d|v sJ |j ddgd}d|vsJ d S )N)rY  r   r4   r>   rY  r   r4   )r   )r   float_string_framer   r#   r#   r$   test_reindex_objects  s   z/TestDataFrameSelectReindex.test_reindex_objectsc                 C   sb   t g d}ti jg dd}|j|d}t|j| |jg dd}|d jtjks/J d S )Nr;   ra  r   r>   rE  r   )	r   r   r   r   r   r-   r   r   rB   )r   rA  r   dmr   rB  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g dd}|jg d }t|| |jdgd}|jdg }t|| |jdgd}|jdg }t|| d S )Nr'   r.   rI   rJ   r   r   r   r&   r+   r<   g      Y@     @Y@     Y@     Y@r,   )r  r  r  r   )r'   rI   rJ   )r   r   r   r   ru   r   rC   r   r#   r#   r$   test_reindex_with_nans  s   $z1TestDataFrameSelectReindex.test_reindex_with_nansc                 C   sT  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
 g dd}|jddgddgd}|ddgjddgd}t|| d S )NrI   rJ   r  r>   r   r&   rP  r.   r3   y              ?r;   r'   r+   r<   )
r   r   r   r/   r   r5   r   r   rC   r   r   r#   r#   r$   test_reindex_multi  s    z-TestDataFrameSelectReindex.test_reindex_multic                 C   s   t tg dttddddg}tdtt|i|d}|jg d }||}tdd	d
dddddt	j
dg	i|d}t|| d S )Nr;   rQ  rI   r)   r   r+   r   )r   r'   r.   rI   rJ   r3   r   r   r   r'   r.   rJ   r3   r   r   )r	   r   r   r   r   r5   r   ru   r   r   r   r   rC   )r   midxr    rF   r1   rE   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	}|g d
}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 |g d
}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 d    n	1 sw   Y  W d    n	1 sw   Y  d }tjt|d!d |jdgd"d# W d    n	1 sw   Y  tjt|d$d |jdgdd% W d    n	1 s/w   Y  tjt|d&d |jdgd'd( W d    d S 1 sSw   Y  d S ))Nr   rI   rA   r  r  caber4   )r   r;  r   )r+   r<   rn  r   r'   aber   Tr   r+   r<   abrn  r?   
categoriesae)r  ordered)r  adr   aabbcar\  r  r]  z<argument {} is not implemented for CategoricalIndex\.reindexr   r   r   r   r   r   r.   )r   )r   r   rd   r   r   CDTr   r   r
   r   r   rC   r   r@   r_   r  r  rw   rx   NotImplementedErrorformat)r   r    r1   rE   catsrF   r  r#   r#   r$   "test_reindex_with_categoricalindex  s   	   $$$z=TestDataFrameSelectReindex.test_reindex_with_categoricalindexc                 C   s*   t tj}t|j}|h dksJ d S )N>   rd  rc   r   r   r   r   ri  r   r-   r   rr   )inspect	signaturer   r   set
parameters)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 g d
}|j|ddd}tddgddgddgg|ddgd	}t|| d S )Nr+   r<   r?   rn  r   r   rI   rJ   r   yr  )r  r  )hr   r   )rd  r   )r	   from_tuplesr   r   r   rC   )r   mir    mi2r1   rE   r#   r#   r$   (test_reindex_multiindex_ffill_added_rowsR  s   $zCTestDataFrameSelectReindex.test_reindex_multiindex_ffill_added_rowskwargsr   )secondsr   r   Nc                 C   s`   t dddd}tg tg dddgd}|j|fi |}tdtjgd i|d	}t|| d S )
N202030srI   )startr   r   timer:  r+   r  r   )r   r   r   r   r6   NAr   rC   )r   r  r   r    r1   rE   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Kf8)r-   r   r   r>   )r   r-   r   rl  )r   r  r  r    r1   rE   r#   r#   r$   test_reindex_emptym  s   z-TestDataFrameSelectReindex.test_reindex_emptyr   m8[ns]r   c                 C   sJ  t tdtdg}tddd}tdd}|dkr'||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 sJ |	jd t	j
u sJ |	jd |u sJ |	jd |u sJ t|	|
 d S )NABCDEr.   rl   r&   rm   NaTnsr  r   r   rI   r'   rY  rq   r   r  )r   r'   rY  rn   )r   r   )r   r'   )r	   r   r   r5   r   r   timedelta64
datetime64r
   r6   r  unstackr   appendr   r-   r   r   ry   r   r   dtypesr1  r   ru   r   rC   )r   r   r  r   r|   r9   r    r   r-   r}   rE   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   rl  )r   index_df	index_res	index_expr    r1   rE   r#   r#   r$   test_reindex_not_category  s   

z4TestDataFrameSelectReindex.test_reindex_not_category):r\   r]   r^   rk   td&skip_array_manager_not_yet_implementedr~   r   r_   r`   ra   r   r   r   r   r   r   r   r   r   r   r   r	  r   r  r  r!  r0  r8  r@  rD  rH  rO  rX  r[  r^  r`  rf  rg  rk  rm  rw  r{  r}  r  r  r  r  r  r  r  r   r  r   r   r  r  r  r#   r#   r#   r$   rb   w   s"   
K
















"

?4!	#
\

	




"rb   )#r   r   r  numpyr   r_   pandas._libs.tslibs.timezonesr   rU   pandas.util._test_decoratorsutil_test_decoratorsr  pandasr6   r   r   r   r   r	   r
   r   r   pandas._testing_testingr   pandas.api.typesr   r  pandas.core.commoncorecommonr   r   rb   r#   r#   r#   r$   <module>   s    (
Z