o
    _~#g׼                     @   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
Z
m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  G dd	 d	Z!G d
d dZ"dS )    )datetime	timedeltaN)dateutil_gettz)IS64is_platform_windows)np_version_gt2)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   sj   t tjdd}tddddd}tdddd	d}||}t|j| |	|}t|j| d S )
N      z
2011/01/01ME
US/Easternperiodsfreqtz2013YEz
Asia/Tokyo)
r
   nprandomdefault_rngr   	set_indextmassert_index_equalindexreindex)selfdfidx1idx2 r(   /var/www/static.ux5.de/https/Moving-Object-Detection-with-OpenCV/env/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   r   )   r,   acolumnsr"   )
r   r   r
   r   r   r   standard_normalr   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 )NAr+      B)r
   rangepdcutr7   r   reset_index)r$   r%   serr(   r(   r)   "test_set_reset_index_intervalindex@   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r0   bcr2   zdatetime64[ns]r0   dr0   rA   rB   rD   r   r1   rA   )
r
   astyper   int64float64r   r=   r:   r    assert_frame_equal)r$   r%   df1r5   expecteddf2r(   r(   r)   test_setitem_reset_index_dtypesH   s   z3TestReindexSetIndex.test_setitem_reset_index_dtypesz timezone, year, month, day, hour)zAmerica/Chicagoi        r,   )zAmerica/Santiagoi     rO   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dd	gtjtjgdd}
|
|	j	j
}
t|	|
 d S )
Nr   )yearmonthdayhourminutefoldtzinfor,   r0   rA   )r"   valsr"   12)gettzr;   	Timestampr
   r   r#   r   nanrF   rX   dtyper    rI   )r$   timezonerQ   rR   rS   rT   test_timezonetransition_1transition_2r%   expr(   r(   r)    test_reindex_timestamp_with_foldZ   s>   	

z4TestReindexSetIndex.test_reindex_timestamp_with_foldN)__name__
__module____qualname__r*   r6   r?   rM   pytestmarkparametrizerd   r(   r(   r(   r)   r   !   s    r   c                   @   s  e Zd Zejje pe oe dde	j
dd Zd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 d0d,gd1d2gd,gd1d.gd,gd.d2gd,gg d3d,gd4d5gd6gg d7d6ggd8d9 Zejd:g d;d<d= Zejd>g d?g d@gg dAg dBgdCdDgg dEgdDdFgg dGggdHdI ZejdJe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 dTd,gedUg dVd,gedWg dXd,gedYg d6gg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 Z0dd Z1dd Z2dd Z3dd Z4dd Z5dd Z6dd Z7dd Z8dd Z9dd Z:ejdde;dddde;dddddiddigdd Z<ejde=g e>g gejde=g e>g e=d.d2ge>d.d2ge=d.d.ge>d.d.ggdd Z?ejdddgdd Z@ejde>g d.gde=d.ge=d.gfe>g d.gde=d2ge=d2gfe>g d.gde>d.ge>d.gfe>g d.gde>d2ge>d2gfgdd ZAdd ZBdS )TestDataFrameSelectReindexzTPasses int32 values to DatetimeArray in make_na_array on windows, 32bit linux builds)reasonc                 C   sZ  t dgg}tjddd}|jddgd|d}|jd tjdddks%J t dg|gd	}|d |jd |d< t|| |	d 
d}|jddgd|d}|jd tdks^J t dg|gd	}t|| t||tjdd
 }|jddgd|d}|jd tddksJ t dg|gd	}|d |jd |d< t|| d S )Nr,   z2023-04-10 17:32z
US/Pacific)r   r   )axis
fill_values)unitr   )r   r,   secondszdatetime64[s, US/Pacific]right)r
   r;   r\   r#   dtypesDatetimeTZDtyperF   r    rI   tz_localize	to_periodPeriodDtypeInterval	TimedeltaIntervalDtype)r$   r%   tsresrK   perintervalr(   r(   r)   test_reindex_tzaware_fill_value   s$   z:TestDataFrameSelectReindex.test_reindex_tzaware_fill_valuec                 C   s   d}t tjd|d |f}t|}tjd| |j|dd}t|d j	|d j	r4J |j||j
dd}t|d j	|d j	rKJ d S )Nr+   r   Tr2   copyr   r2   r"   r   )r
   r   r   r   r3   arangeshuffler#   shares_memory_valuesr"   )r$   Nr%   colsr5   result2r(   r(   r)   test_reindex_copies   s   
 z.TestDataFrameSelectReindex.test_reindex_copiesc                 C   s   d}t tjd|d |fdd}t|}tjd| |j|dd}|r;t|d j	j
|d j	j
s:J nt|d j	j
|d j	j
rKJ |j||jdd}|rht|d j	j
|d j	j
sfJ d S t|d j	j
|d j	j
rxJ d S )	Nr+   r   Float64r^   Tr   r   r   )r
   r   r   r   r3   r   r   r#   r   array_datar"   )r$   using_copy_on_writer   r%   r   r5   r   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
g d|d}t|d  |g |d  |g |gd
 dt	d}t
|| |jtd
|d}t
||ddg  |jtd
g ddd}t|d  |g |d  |g |gd
 d}t
|| d S )N
2016-01-01r   r   rO   r   r7   r9   r1   r   r   rP   r7   r9   Cr"   r2   rn   r   )r"   rn   )r   valuesreshaper
   r:   ilocdater#   tolistobjectr    rI   )r$   arrr%   r|   fvr}   rK   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,   rO   )r7   r9   r   DEFGr@   r0   rA   )      ?       @g      @g333333@)namesrP   r   r   )r9   r   r   r   bfillmethodbackfill)r7   r   r   r   padffill)r
   listr:   r   r   from_productr#   r   r]   r    rI   )r$   r%   r4   new_multi_index	reindexedrK   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xr8   gg?g?g      ?r"   r   r,   r   	tolerance)r,   r,   r,   r,   r   )rO   r   r   r,   r   r   )	r
   r   r:   r   r   r#   r    rI   r   )
r$   r   expected_valuesr%   targetrK   actuale2	new_orderswitched_methodr(   r(   r)   test_reindex_methods2  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   r8   r   r   r,   r   r   g?r   )r   g{Gz?g?g?)	r
   r   r:   r   r   r]   r#   r    rI   )r$   r%   r   rK   r   r(   r(   r)   $test_reindex_methods_nearest_specialV  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-01r8   )r   r   r   r   rO   r   r   )r   r
   r   r:   headr#   r    rI   )r$   tz_aware_fixturer   idxr%   rK   r   r(   r(   r)   test_reindex_nearest_tzb  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   )r;   DatetimeIndexr
   r#   r    rI   )r$   dtir%   rK   r5   r(   r(   r)   #test_reindex_nearest_tz_empty_framel  s
   
z>TestDataFrameSelectReindex.test_reindex_nearest_tz_empty_framec                 C   s   t dddd}ttjdt||d}|td}t	|d j
t
d	s,J t|d }|d
d   s<J |d d
  rFJ d S )Nz1/1/2000 00:00:00r+   10sr   r   r   r7   r9      r9   M8[ns])r   r
   r   r   r   r3   lenr#   r:   
issubdtyper^   r   allany)r$   rngr%   r5   maskr(   r(   r)   test_reindex_frame_add_natt  s   z5TestDataFrameSelectReindex.test_reindex_frame_add_natzmethod, exp_valuesr   r   r,   r   rO   r   g      ?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:00rP   r.   UTCr   r   z2020-01-01 00:01:00z1 hourr   )r   r#   r;   rz   r    assert_equal)r$   frame_or_seriesr   
exp_valuesobjr4   r5   rK   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)r7   r7   r7   )r9   r9   r9   )r   r   r   )r   r   r   )r   r,   r   rO   rP   r8   r   r,   )r   limit)r   r]   r
   r#   r    rI   )r$   dataexp_datar%   r5   rK   r(   r(   r)   test_reindex_limit  s   z-TestDataFrameSelectReindex.test_reindex_limitzidx, check_index_type)r   r9   r7   T)r   r   r7   r   r7   r   )r   r7   r9   r   r9   )r9   r7   r   r   r   F)r7   r   r9   c              	      s   t tdtdd d d g dd tjd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+         rO   r   r     	   jimjoejoliejoliner   r   r   c                       t  d | k d S Nr   r   r   nonzeroto_numpyvalr%   r(   r)   f     zKTestDataFrameSelectReindex.test_reindex_level_verify_first_level.<locals>.fr   levelcheck_index_type)r
   r   r   r   r   integersconcatenatemapr   r#   r   r    rI   )r$   r   r   icolr   ileftrs   r(   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 d g d} fdd}ttt||} 	|j
|dd} j| 	|}t|| d S )Nr  r8   r     r	  r   3rdr   1strO   2ndc                 S   $   g | ]}t jd jd|ddqS r   r   F)replacer   r   r   choice.0r   r(   r(   r)   
<listcomp>      z\TestDataFrameSelectReindex.test_reindex_level_verify_first_level_repeats.<locals>.<listcomp>r   rO   rO   r   rO   r   rO   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   r3   roundr   r  r   r#   r   r    rI   )r$   r   r  r   r  r  rs   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   rO   rP   r   r,   r  r   r8   r   r   r+   rN                  r         )r  r  r  )r   r,   r   rO   rP   r+   rN   r  r8   r   r   r  r   r   r!  r"  r  r   r  r  r  r  )r   r,   r8   r   r   r+   rN   r  r  r   r   r!  r"  r  )r   r,   r   rO   rP   r+   rN   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 d}g d}||j|dd}|j	| |}t
|| d S )Nr  r8   r  r  r	  r   r  r   r  rO   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   r3   r  r   r#   r   r    rI   )r$   r   indexerr%   r  r  rs   r(   r(   r)   !test_reindex_level_verify_repeats  s:   z<TestDataFrameSelectReindex.test_reindex_level_verify_repeatszidx, indexer, check_index_typeabcde)	rO   r   r,   r   r8   rP   r  r   r   abcd)rO   r   r,   r   r8   r  r   r   abc)rO   r   r,   r  r   r   eca)r,   rO   rP   r   r  edc)r   r,   rP   r8   r   eadbc)	rO   r   r   r,   rP   r8   r  r   r   edwq)r   rP   r8   wqc              	   C   s~   t tdtdd d d g dd tjdddd	d
}g d}||j|dd}|j| |}t	j
|||d d S )Nr   r   r   r   rO   r   r   r   r   r   r   r   r   r   )r
   r   r   r   r   r   r   r#   r   r    rI   )r$   r   r#  r   r%   r  r  rs   r(   r(   r)   test_reindex_level_verify)  s   
z4TestDataFrameSelectReindex.test_reindex_level_verifyc                 C   sV  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 sFw   Y  tjt	|d |j
|jdd W d    n1 sew   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   r9   r   r   )r   r,   r7   r"   r2   rO   rP   r8   r   r,   r   z0index must be monotonic increasing or decreasingmatchr   r   r   r   r   )r   r   r   r   r3   r
   r   rh   raises
ValueErrorr#   r"   )r$   drr   r%   df_revmsgr(   r(   r)   "test_non_monotonic_reindex_methodsD  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,   rG   r   r   r           rH   r   )	r
   r;   r   SparseDtyper#   r   r]   r    rI   r$   r%   r5   rK   r(   r(   r)   test_reindex_sparseT  s   "z.TestDataFrameSelectReindex.test_reindex_sparsec                 C   s  t tjdtjdtdddd}||j}|jD ]5}||  D ],\}}||jv rFt	|r;t	|| | s:J q!||| | ksEJ q!t	|sMJ q!q| D ]\}}t
|j|j qS|tg }	t|	jdkspJ ||jd d d }
|
jD ]5}|
|  D ],\}}||jv rt	|rt	|| | sJ q||| | ksJ qt	|sJ qq~|
 D ]\}}t
|j|
j q|j|jdd	}|r|j|jsJ n|j|ju sJ |g }|jsJ t|jt|jksJ |g }||j}t|jt|jksJ t|jt|jksJ |t|j}|jd }t
|j| | }t
|| ||usBJ d S )
Nr   r   z
2020-01-01r   r   r   r   F)r   )r   r   r   rH   r   r#   r"   r2   itemsisnanr    r!   r   r   is_emptyr   
_with_freqrI   )r$   float_framer   datetime_seriesnewFramecolr   r   series
emptyFramenonContigFramerK   r5   r(   r(   r)   test_reindexc  sX   


	


	


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   rO   r8   r   rN   r   r-   r   r   r.  )r,   rO   rO   r,   r   r   r,   r   Fr   r0   rA   rB   z
2015-03-22z
2012-01-08)r   rO   rP   r8   )otherr   amountr   z
2015-06-18delta)rL  rJ  r   )rL  rJ  r   rK  rC   )r
   r   r]   r    rI   r#   r   r"   rF   r;   to_datetimer   shiftr   r=   )r$   r%   r  jr  rs   r(   r(   r)   test_reindex_nan  s(   "z+TestDataFrameSelectReindex.test_reindex_nanc                 C   s   t tjd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d}t|jtt|d}t tddd}|j|d}|jj	dksnJ d S )Nr   r+   r   inamenametmpnamerC   )r   r   r   r   r
   r   r   r#   r"   rS  r   Tr2   )r$   ro   r%   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   r7   r9   rC   )r#   r"   r^   r   rG   rH   )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r7   r9   r   rC   r9   r   r   )r#   r    assert_series_equalr   r>  r   r@  )r$   rB  	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)rN   r  r  )      r-   )       !   )r,   r   rP   )r   r"   r2   r^   r   rC   rN   r  r  r_  r`  r-   ra  rb  rc  r   )r2   r   r   )r
   floatr#   r:   r   r]   r    rI   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rO   rO   i  r,   r   rO   r@   r.  
2012-01-01z
2012-01-03rD   )r   r0   rA   r   rC   )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   )r+   rP   r   r   r   )rn   r8   r9  )r2   rn   rP   foo0)r
   r   r   r   r3   r#   r   r:   r>  r   r   fillnar    rI   r   r;  r(   r(   r)   test_reindex_fill_value.  s,   z2TestDataFrameSelectReindex.test_reindex_fill_valuec                 C   s`   t ddgddgd|d}|jtdg ddd}t g d	g d	ddd
|d}t|| d S )Nr,   r   r0   rA   r   r&  r   r+   r2   r"   rn   )r,   r   r+   r+   rE   )r
   r#   r   r    rI   )r$   any_unsigned_int_numpy_dtyper%   r5   rK   r(   r(   r)   #test_reindex_uint_dtypes_fill_valueO  s   z>TestDataFrameSelectReindex.test_reindex_uint_dtypes_fill_valuec                 C   sV   t dddgi|d}|jtdg ddd}t tg d	|ddd
}t|| d S )Nr0   r,   r   r   abr0  r+   rt  )r,   r   r+   rs  )r
   r#   r   r   r    rI   )r$   any_numeric_ea_dtyper%   r5   rK   r(   r(   r)   /test_reindex_single_column_ea_index_and_columnsY  s   zJTestDataFrameSelectReindex.test_reindex_single_column_ea_index_and_columnsc                 C   s   t jdd}t|g dd}| }ttt||_	t|ttt|d}t
|| d}tjt|d |jttt|d W d    d S 1 sQw   Y  d S )Nr   r+   )
r,   r   rO   rP   r8   r,   r   rO   rP   r8   r   /cannot reindex on an axis with duplicate labelsr1  )r   r   r   r3   r
   r   r   r:   r   r"   r    rI   rh   r3  r4  r#   )r$   r   r%   r5   rK   r7  r(   r(   r)   test_reindex_dupsb  s   "z,TestDataFrameSelectReindex.test_reindex_dupsc                 C   s   t g dg dg dgg dd}d}tjt|d |jdgd W d    n1 s,w   Y  tjt|d |jddgd W d    d S 1 sLw   Y  d S )N)r,   r8   g      @)barr0   r0   rC   rz  r1  r|  ro  )r
   rh   r3  r4  r#   r$   r%   r7  r(   r(   r)   #test_reindex_with_duplicate_columnsr  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   rO   rP   r8   r   r   r,   r   rP   r8   )r   r,   rO   r   r   rm   r"   )r
   r   r]   r#   r    rI   )r$   r%   rK   r5   r(   r(   r)   test_reindex_axis_style}  s   z2TestDataFrameSelectReindex.test_reindex_axis_stylec                 C   sb   t g dg dd}d}tjt|d |ddgg d W d    d S 1 s*w   Y  d S )	Nr  r  r   zCreindex\(\) takes from 1 to 2 positional arguments but 3 were givenr1  r   r,   r   r
   rh   r3  	TypeErrorr#   r}  r(   r(   r)   test_reindex_positional_raises  s
   "z9TestDataFrameSelectReindex.test_reindex_positional_raisesc                 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 |jddgdgdgd 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 s2w   Y  tjtdd |jddgddgd W d    d S 1 sVw   Y  d S )Nr  r  r   zCannot specify both 'axis'r1  r   r,   r7   )r2   rm   r"   )r"   rm   r2   )r"   r2   rm   zCannot specify all)labelsr"   r2   zmultiple valuesr  r  )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 )Nr  r   r   r,   r7   rC   r   r
   r#   r    rI   r;  r(   r(   r)   !test_reindex_single_named_indexer  s   z<TestDataFrameSelectReindex.test_reindex_single_named_indexerc                 C   sP  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|| qj|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|| qd S )Nr  r/  )r8   r   r   r@   )rD   er   r.  rA   r0   r   r  r   )r  rm   r  r  rD   rC   r,   r1   r  )r$   r%   res1res2res3res4res5r}   r(   r(   r)   test_reindex_api_equivalence  s.    z7TestDataFrameSelectReindex.test_reindex_api_equivalencec                 C   s   t tjdtdtdddddgd}|td}|jjtjk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,   rO   rC   )r
   r   rh  boolr   r#   r   r^   object_r   r:   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)ro  r7   r9   rC   ro  r7   r9   )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@   r  r   rC   r[  r   )	r   r
   r#   r    r!   r2   r^   r   rH   )r$   rW  r"   dmr   rX  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   rO   rP   r   r  r   r+   r0   rA   g      Y@     @Y@     Y@     Y@r1   )r  r  r  r   )r,   rO   rP   )r
   r   r]   r#   r   r    rI   r;  r(   r(   r)   test_reindex_with_nans  s   $z1TestDataFrameSelectReindex.test_reindex_with_nansc                 C   sh  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d}|jtdtdd}|ttdjtdd}t	|| t tjd
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 )Nr   rf  rP   r.  rC   r   r+   )r8   rO   y              ?r@   r,   r0   rA   )r
   r   r   r   r3   r#   r:   r   r    rI   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@   rg  rO   r.   r   r0   r   )r   r,   r   rO   rP   r8   r   r  r   r,   r   rP   r8   r   r  )r   r   r   r   r
   r:   r   r   r#   r   r]   r    rI   )r$   midxr%   rL   r5   rK   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 |ddg W d    n	1 sw   Y  d}tjt|d d |jdgd!d" W d    n	1 sw   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 s;w   Y  d S )(Nr7   rO   rG   r   r'  caber9   )r^   rS  r   )r0   rA   r  r   r,   aber   Tr   r0   rA   rw  r  rD   
categoriesae)r  ordered)r  adr   aabbcarz  r1  z<argument {} is not implemented for CategoricalIndex\.reindexr   r   r   r   r   r   r   )r   )r
   r   r   r	   r   r   r#   r]   r   r   r    rI   r   rF   rh   r3  r4  NotImplementedErrorformat)r$   r%   r5   rK   catsrL   r7  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>   rm   r   r$   r"   r   r   r  r   r2   r   rn   )inspect	signaturer
   r#   set
parameters)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 g d
}|j|ddd}tddgddgddgg|ddgd	}t|| d S )Nrs  rD   r  r   r   rO   rP   r   yr.  )rs  r  )r.   r  r   )rm   r   )r   from_tuplesr
   r#   r    rI   )r$   mir%   mi2r5   rK   r(   r(   r)   (test_reindex_multiindex_ffill_added_rows  s   $zCTestDataFrameSelectReindex.test_reindex_multiindex_ffill_added_rowskwargsr   rq   r   r   Nc                 C   sb   t dddd}tg tg dddgd}|j|fi |}tdtjgd i|td	}t|| d S )
N202030srO   )startr   r   timerR  r0   r.  )r"   r^   )	r   r
   r   r#   r   r]   r   r    rI   )r$   r  r   r%   r5   rK   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)r2   r"   r^   rC   )r"   r2   r^   r  )r$   r  r  r%   r5   rK   r(   r(   r)   test_reindex_empty  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   r   r+   r   NaTnsr  r   r   rO   r,   ro  r   r   r   )r   r,   ro  r   )r   r   )r   r,   )r   r   r   r:   r   r   timedelta64
datetime64r   r;   r  unstackr"   appendr   r2   r#   r
   r   r   r^   rt   r   r   r   r    rI   )r$   r^   r  r   r   r>   r%   r"   r2   r}   rK   r(   r(   r)   #test_reindex_datetimelike_to_object  s0   z>TestDataFrameSelectReindex.test_reindex_datetimelike_to_objectzindex_df,index_res,index_expr  c                 C   s0   t |d}|j|d}t |d}t|| d S )Nr   r  )r$   index_df	index_res	index_expr%   r5   rK   r(   r(   r)   test_reindex_not_category
  s   

z4TestDataFrameSelectReindex.test_reindex_not_categoryc                 C   s^   t ddtjdgi}d}tjt|d |jg ddd W d    d S 1 s(w   Y  d S )	Nr7   r,   r   zInvalid fill methodr1  )r,   r   r   asfreqr   )r
   r   r]   rh   r3  r4  r#   r}  r(   r(   r)   test_invalid_method*  s
   "z.TestDataFrameSelectReindex.test_invalid_method)Cre   rf   rg   rh   ri   xfailr   r   r   td&skip_array_manager_not_yet_implementedr   r   r   r   r   rj   r   r]   r   r   r   r   r   r   r   r  r  r$  r   r-  r8  r<  rI  rP  rV  rZ  r^  re  rn  rr  rv  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)   rk      s6   
K
















"

D3!
	#
 e

	




"
rk   )#r   r   r  numpyr   rh   pandas._libs.tslibs.timezonesr   r[   pandas.compatr   r   pandas.compat.numpyr   pandas.util._test_decoratorsutil_test_decoratorsr  pandasr;   r   r	   r
   r   r   r   r   r   pandas._testing_testingr    pandas.api.typesr   r   rk   r(   r(   r(   r)   <module>   s    (
a