U
    `»{j…¬  ã                   @   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    úf/var/www/html/bwave/python/venv/lib/python3.8/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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Ú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 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(   r9   r:   Údr   r)   )r(   r9   r:   r=   )
r   Úastyper   Úint64Úfloat64r   r6   r3   r   Úassert_frame_equal)r   r   Zdf1r/   ÚexpectedÚdf2r    r    r!   Útest_setitem_reset_index_dtypesA   s    ÿÿz3TestReindexSetIndex.test_setitem_reset_index_dtypesz timezone, year, month, day, hourzAmerica/ChicagoiÝ  é   é   r$   zAmerica/Santiagoiå  é   r%   c           
   	   C   s†   t |ƒ}tj||||dd|d�}tj||||dd|d�}t||gddgdœƒ d¡ dd	g¡}	t |	tdd	gd d gdœƒ d¡¡ d S )
Nr   )ÚyearÚmonthÚdayÚhourÚminuteÚfoldÚtzinfor$   r(   r9   )r   Úvalsr   Ú1Ú2)Úgettzr4   Ú	Timestampr   r   r   r   rA   )
r   ÚtimezonerH   rI   rJ   rK   Ztest_timezoneZtransition_1Ztransition_2r   r    r    r!   Ú test_reindex_timestamp_with_foldS   s:    ù	ù
ÿþÿþz4TestReindexSetIndex.test_reindex_timestamp_with_foldN)Ú__name__Ú
__module__Ú__qualname__r"   r0   r8   rD   ÚpytestÚmarkÚparametrizerU   r    r    r    r!   r      s   	þr   c                   @   sF  e Zd Zdd„ Zejdd„ ƒZdd„ Zej	 
ddd	d
d
dgfdejd	d
d
gfdd	d
ddgfg¡dd„ ƒZdd„ Zdd„ Zdd„ Zdd„ Zej	 
ddd	d
ddgfddddejgfg¡dd „ ƒZd!d"„ Zej	 
d#d$d%d&gd'gd(d$d&d)gd'gd&gd'gd&d%d$gd'gd$d&d%gd'gd$d%gd'gd$d&gd'gd&d%gd'gd%d&d$gd'gd)d(gd*gd&d$d%gd*gg¡d+d,„ ƒZej	 
d-d.d/d0d.d1d2d3d4d5d3d6d7d8d9d:d8d;d<g¡d=d>„ ƒZej	 
d?d@dAdBgdddCd	d
dDdEdFdGdHdIdJdKdLdMdNdOdPdQdRggdBdAd@gd	d
dddCdIdJdKdFdGdHdDdEdPdQdRdNdOdLdMggdAdBgd	d
dFdGdHdIdJdKdNdOdPdQdRggdBd@gd	d
dddCdIdJdKdDdEdPdQdRdLdMggg¡dSdT„ ƒZej	 
dUedVƒddd
d	dFdCdDdHdGg	d'gedWƒddd
d	dFdDdHdGgd'gedXƒddd
dDdHdGgd'gedYƒd
ddCdGdDgd'gedZƒd	d
dCdFdGgd'ged[ƒdd	dd
dCdFdDdHdGg	d'ged\ƒd	dCdFgd'ged]ƒg d*gg¡d^d_„ ƒZd`da„ Zdbdc„ Zddde„ Zdfdg„ Zdhdi„ Zdjdk„ Zdldm„ Zdndo„ Z dpdq„ Z!drds„ Z"dtdu„ Z#dvdw„ Z$dxdy„ Z%dzd{„ Z&d|d}„ Z'd~d„ Z(d€d�„ Z)d‚dƒ„ Z*d„d…„ Z+d†d‡„ Z,dˆd‰„ Z-dŠd‹„ Z.dŒd�„ Z/dŽd�„ Z0d�d‘„ Z1d’d“„ Z2ej	 
d”de3dEd•�d–œde3dEd•�d–œd—did—d˜ig¡d™dš„ ƒZ4ej	 
d›e5g ƒe6g ƒg¡ej	 
dœe5g ƒe6g ƒe5d&d%gƒe6d&d%gƒe5d&d&gƒe6d&d&gƒg¡d�dž„ ƒƒZ7ej	 
dŸd d¡g¡d¢d£„ ƒZ8ej	 
d¤e6g 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¡d¦d§„ ƒZ9d˜S )¨Ú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¡rˆt	‚d S )Nr#   T)r*   Úcopyr   )r*   r   r]   )r   r   r   r,   ÚarangeÚshuffler   Zshares_memoryZ_valuesr-   r   )r   ÚNr   Úcolsr/   Zresult2r    r    r!   Útest_reindex_copies{   s    
z.TestDataFrameSelectReindex.test_reindex_copiesc              	   C   s  t ddd�j dd¡}t|ddgtdƒd�}|jd	 }| ¡ }t t	¡�  |j
td
ƒdddg|d�}W 5 Q R X t|d  ¡ |g |d  ¡ |g |gd
 dœƒ}t ||¡ t t	¡� |j
td
ƒ|d�}W 5 Q R X t ||ddg ¡ |j
td
ƒdddgdd�}t ||¡ d S )Nú
2016-01-01r   ©r   rF   r+   r   r2   r)   ©r   r   rG   ÚC©r   r*   Ú
fill_value©r   r2   rf   )r   rh   )r   ÚvaluesZreshaper   r3   ÚilocÚdater   Úassert_produces_warningÚFutureWarningr   ÚtolistrA   )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   rf   ÚDÚEÚFÚGr<   r(   r9   ç      à?ç       @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€   Ú	toleranceru   rF   r   r+   r�   r‚   )	r   r„   r3   r   Úarrayr   r   rA   rk   )
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{®Gáz„?gš™™™™™Ù?gš™™™™™¹?)	r   r„   r3   r   r’   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_tz   s    
z2TestDataFrameSelectReindex.test_reindex_nearest_tzc                 C   sF   t  dg¡}tt  dg¡d�}t|d�}|j|dd�}t ||¡ d S )Nz2016-06-26 14:27:26+00:00z2016-07-04 14:00:59+00:00r�   r‰   r   )r4   ZDatetimeIndexr   r   r   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	…  ¡ rˆt
‚d S )
Nz1/1/2000 00:00:00r#   Z10s©r   r   ©r   r2   é   r2   úM8[ns]éûÿÿÿ)r   r   r   r   r,   Úlenr   r3   Z
issubdtypeÚdtyper-   Úcomr   ÚallÚany)r   Úrngr   r/   Úmaskr    r    r!   Útest_reindex_frame_add_nat2  s    z5TestDataFrameSelectReindex.test_reindex_frame_add_natzmethod, exp_valuesrƒ   rF   r~   ç      ð?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_bfill=  s    
þz<TestDataFrameSelectReindex.test_reindex_frame_tz_ffill_bfillc                 C   sš   dddgdddgdddgdddgg}dddgdddgdddgdddgdddgt jt jt jgg}t|ƒ}|jddddd	d
gddd�}t|ƒ}t ||¡ d S )Nr   r2   rf   rw   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_limitL  s    $úz-TestDataFrameSelectReindex.test_reindex_limitzidx, check_index_typerf   r2   r   Try   rw   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Ú	abcdeabcdru   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!   Úfx  s    zKTestDataFrameSelectReindex.test_reindex_level_verify_first_level.<locals>.f©Úlevel©Úcheck_index_type)r   r„   r   r   ÚrandintÚconcatenateÚmapr   r   rk   r   rA   )r   r™   rÄ   ÚicolrÀ   ÚiÚleftÚrightr    r¿   r!   Ú%test_reindex_level_verify_first_level\  s    üÿ
z@TestDataFrameSelectReindex.test_reindex_level_verify_first_levelr™   )Úmid)rÍ   Úbtm)rÍ   rÎ   Útop)rÍ   rÏ   )rÍ   rÏ   rÎ   )rÎ   )rÎ   rÍ   )rÎ   rÍ   rÏ   )rÎ   rÏ   )rÎ   rÏ   rÍ   )rÏ   )rÏ   rÍ   )rÏ   rÍ   rÎ   )rÏ   rÎ   )rÏ   rÎ   rÍ   c                    sø   t dgd dgd  dgd  dgd d	gd
  dgd
  d	gd  dgd
  d	gd  dgd
  dgd  t dd„ dD ƒ¡tj d¡ d
¡d dœƒ‰ dddg}‡ fdd„}t tt||ƒƒ¡}ˆ  |¡j	|dd�}ˆ j
|  |¡}t ||¡ d S )NrÍ   r1   rÎ   é   rÏ   rv   Ú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   rk   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   rv   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Ï   rv   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   rk   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²   ru   r#   r³   r´   rF   r   rµ   r¶   r·   r¸   r¹   rº   rÁ   rÃ   )
r   r„   r   r   rÅ   r   r   rk   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„   rY   ÚraisesÚ
ValueErrorr   r   )r   Zdrr¯   r   Zdf_revÚmsgr    r    r!   Ú"test_non_monotonic_reindex_methods   s    &z=TestDataFrameSelectReindex.test_non_monotonic_reindex_methodsc                 C   sz   t ddgtjddgt dd¡d�dœƒ}| ddg¡}t dtjgtjdtjgt dd¡d�dœddgd	�}t ||¡ d S )
Nr   r$   r?   ©r£   rž   r+   ç        r@   r�   )	r   r4   r’   ZSparseDtyper   r   r†   r   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s†t‚q.t |¡s.t‚q.q| ¡ D ]\}}t  	|j|j¡s’t‚q’| t
g ƒ¡}t|jƒdksÐt‚| |jd d d… ¡}	|	jD ]r}|	|  ¡ D ]`\}}||jk�rNt |¡�r6t || | ¡�sLt‚n||| | k�s\t‚qüt |¡süt‚qüqì|	 ¡ D ] \}}t  	|j|	j¡�sht‚�qh|j|jdd�}|j|jk�s¬t‚| g ¡}|j�sÂt‚t|jƒt|jƒk�sÜt‚| 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_reindex  sL    





z'TestDataFrameSelectReindex.test_reindexc                 C   s4  t ddgddgddgddggdtjddgd	d
gd�}tjddtjddtjgdddddddg }}t | |¡|j| ¡ |j d¡|_tj| |¡|j| dd� t ddtjdgdtjdtjgddddgdœƒ}t	 
|j¡|d< t	 
d¡|d   d¡|d< | dddg¡ ¡ }|jddddgd�}t ||¡ d S )Nr$   r+   rF   r1   rv   rE   r¶   r%   r¹   r¸   rê   r   ÚobjectFrÃ   r(   r9   r:   z
2015-03-22z
2012-01-08rG   )Úotherrl   Úamountrl   z
2015-06-18Údeltarü   rý   r;   )r   r   r†   r   rA   r   rk   r   r>   r4   Úto_datetimerl   Úshiftr   r6   )r   r   rÉ   ÚjrÊ   rË   r    r    r!   Útest_reindex_nan^  s(    ý,
ýÿz+TestDataFrameSelectReindex.test_reindex_nanc                 C   sÔ   t tj d¡ƒ}t|t t|ƒ¡d�}t t d¡dd�}| |¡}|jj	dksRt
‚| tt d¡dd�¡}|jj	dkszt
‚t tj d¡ƒ}t|jt t|ƒ¡d�}t t d¡dd�}|j|d�}|jj	dksÐt
‚d S )Nr#   r�   Ziname©ÚnameZtmpnamer;   )r
   r   r   Zrandr   r^   r¢   r   r   r  r-   r   ÚTr*   )r   Úsr   rÉ   r    r    r!   Útest_reindex_name_remains{  s    
z4TestDataFrameSelectReindex.test_reindex_name_remainsc                 C   sr   |  |jd d d… ¡}|d jtjks*t‚|  |j¡}|d jtjksJt‚|j ddgd�}|d jtjksnt‚d S )Nr+   r   r2   r;   )r   r   r£   r   r?   r-   r@   )r   Ú	int_frameÚsmallerZbiggerr    r    r!   Útest_reindex_intŒ  s    z+TestDataFrameSelectReindex.test_reindex_intc                 C   sb   |j dddgd�}t |d |d ¡ t |d ¡ ¡ s<t‚d|ksHt‚|j g d�}|js^t‚d S )Nr   r2   rx   r;   rf   )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*   r£   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s”t‚||ks t‚d S )N©rF   rF   iÜ  r$   r+   rF   r(   r9   r:   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   )rh   r1   rò   )r*   rh   Úfoo)r   r   r   r,   r   r„   r3   rö   rj   r¥   r-   Zfillnar   rA   r]   ró   r    r    r!   Útest_reindex_fill_valueæ  s,    z2TestDataFrameSelectReindex.test_reindex_fill_valuec                 C   s¾   t j d¡}t|ddddddddddg
d�}| ¡ }ttt|ƒƒƒ|_t|ttt|ƒƒƒd�}t	 
||¡ d}tjt|d	��8 t	jtd
d	�� |jttt|ƒƒƒd� W 5 Q R X W 5 Q R X d S )Nr#   r$   r+   rF   rG   r1   r�   ú/cannot reindex on an axis with duplicate labelsrë   ú
non-unique)r   r   r,   r   r]   r„   r3   r¢   r   r   rA   rY   rí   rî   rm   rn   r   )r   rp   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��. tjtd	d�� |jdgd� W 5 Q R X W 5 Q R X tjt|d��0 tjtd	d�� |jdd
gd� W 5 Q R X W 5 Q R X d S )Nr$   r1   g      @Úbarr(   r;   r  rë   r  r  )r   rY   rí   rî   r   rm   rn   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_style'  s     ÿz2TestDataFrameSelectReindex.test_reindex_axis_stylec              	   C   sv   t dddgdddgdœƒ}t ddgd	dgtjtjgd
œƒ}t t¡� | ddgdddg¡}W 5 Q R X t ||¡ d S )Nr$   r+   rF   rG   r1   r   rž   rª   g      @ri   r   r   r2   rf   )r   r   r†   r   rm   rn   r   rA   r   r    r    r!   Útest_reindex_positional_warns6  s
      z8TestDataFrameSelectReindex.test_reindex_positional_warnsc              	   C   sì  t dddgdddgdœƒ}tjtdd	�� |jd
dgdgdd� W 5 Q R X tjtdd	�� |jd
dgdgdd� W 5 Q R X tjtdd	�� |jd
dgdd� W 5 Q R X tjtdd	�� |jd
dgdd� W 5 Q R X tjtdd	�� |jd
dgdd� W 5 Q R X tjtdd	�� |jd
dgd
dgdd� W 5 Q R X tjtdd	�� | d
dgd
gdg¡ W 5 Q R X tjtdd	�� |jd
dgdd� W 5 Q R X tjtdd	�� |jd
dgdd� W 5 Q R X tjtdd	�� |jd
dgd
dgd� W 5 Q R X d S )Nr$   r+   rF   rG   r1   r   rž   zCannot specify both 'axis'rë   r   r   r  r   )r   r  r*   )r*   r  )r   r*   r  zCannot specify allzmultiple values©Úlabels)r   rY   rí   Ú	TypeErrorr   )r   r   r    r    r!   Útest_reindex_axis_style_raises?  s*      " z9TestDataFrameSelectReindex.test_reindex_axis_style_raisesc                 C   sN   t dddgdddgdœƒ}|jddgdgd�}t dddgiƒ}t ||¡ d S )Nr$   r+   rF   rž   r   r   r;   ©r   r   r   rA   ró   r    r    r!   Ú!test_reindex_single_named_indexerb  s    z<TestDataFrameSelectReindex.test_reindex_single_named_indexerc           	   	   C   sˆ  t dddgdddgdddggdd	d
gdddgd�}| d	dg¡}|jd	dgd�}|jd	dgd�}|jd	dgdd�}|jd	dgdd�}||||fD ]}t ||¡ q�|jddgd�}|jddgdd�}|jddgdd�}||fD ]}t ||¡ qÞt t¡�}| d	dgddg¡}W 5 Q R X dt|d jƒk�s2t‚|jddgd	dgd�}|jd	dgdd�jddgdd�}||fD ]}t ||¡ �qpd S )Nr$   r+   rF   rG   r1   r   rv   r(   r9   r:   r=   ÚerÀ   rê   r�   r#  r   )r$  r  r  r;   r   r)   )	r   r   r   rA   rm   rn   ÚstrÚmessager-   )	r   r   Zres1Zres2Zres3Zres4Zres5rs   Úmr    r    r!   Útest_reindex_api_equivalencei  s0    ý z7TestDataFrameSelectReindex.test_reindex_api_equivalencec                 C   s–   t tjdtd�t ddd¡ddgd�}| t d¡¡}|jjtjksHt	‚t
|d d ƒs\t	‚|jtd	ƒd
�}|jjtjks~t	‚t
|d ƒ ¡ s’t	‚d S )N)r#   r+   rñ   r   r³   r+   rê   r#   r$   rF   r;   )r   r   r  Úboolr^   r   rj   r£   Zobject_r-   r   r3   r¥   )r   Úframer‡   r    r    r!   Útest_reindex_booleanˆ  s      ÿz/TestDataFrameSelectReindex.test_reindex_booleanc                 C   s>   |j dddgd�}d|kst‚|j ddgd�}d|ks:t‚d S )Nr  r   r2   r;   )r   r-   )r   Zfloat_string_framer‡   r    r    r!   Útest_reindex_objects•  s    z/TestDataFrameSelectReindex.test_reindex_objectsc                 C   sh   t dddgƒ}ti ƒjdddgd�}|j|d�}t |j|¡ |jd	d
dgd�}|d jtjksdt	‚d S )Nr(   r9   r:   r$   r+   rF   r�   r;   r   r2   rx   )
r   r   r   r   r   r*   r£   r   r@   r-   )r   r  r   Údmr‡   r	  r    r    r!   Útest_reindex_cornerœ  s    z.TestDataFrameSelectReindex.test_reindex_cornerc                 C   s¾   t ddgddgtjtjgddgddggd	d
gddtjddgd�}|jdddgd�}|jdddg }t ||¡ |jdgd�}|jdg }t ||¡ |jdgd�}|jdg }t ||¡ d S )Nr$   r+   rF   rG   rv   rÐ   r¶   r#   r(   r9   g      Y@g     @Y@g     €Y@g     ÀY@r)   r�   )r   r   r†   r   rk   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(   r9   r:   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(   r9   r:   r  rF   r&   r�   r�   r   r$   r+   rG   r1   r   rÐ   )r	   r…   r   r   r   r3   r¢   rk   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   sH  t dtjddd�ittdƒttdƒƒdd�d	�}| d
ddg¡}t ddtjgttdƒƒdœƒ 	d¡}t
j||dd� | d
dg¡}t ddgttdƒƒdœƒ 	d¡}t
j||dd� | dg¡}t tjgtdgƒdœƒ 	d¡}t
j||dd� | dg¡}t tjgtdgƒdœƒ 	d¡}t
j||dd� tdƒ}| td
dg|d�¡}t dtjgttdƒƒ t|ƒ¡dœƒ 	d¡}t
j||dd� | td
g|d�¡}t dgttd
ƒƒ t|ƒ¡dœƒ 	d¡}t
j||dd� | d
ddg¡}t ddtjgttdƒƒdœƒ 	d¡}t
j||dd� | d
dg¡}t ddgttdƒƒdœƒ 	d¡}t
j||dd� | dg¡}t tjgtdgƒdœƒ 	d¡}t
j||dd� | td
dg|dd�¡}t dtjgttdƒƒ t|dd�¡dœƒ 	d¡}t
j||dd� | td
dgd
dgd�¡}t dtjgttdƒƒ td
dgƒ¡dœƒ 	d¡}t
j||dd� t dtjddd�ittdƒttdƒƒdd�d	�}d}tjt|d��. t
jtdd�� | d
dg¡ W 5 Q R X W 5 Q R X d}tjt| d ¡d�� |jd
gd!d"� W 5 Q R X tjt| d#¡d�� |jd
gdd$� W 5 Q R X tjt| d%¡d�� |jd
gd&d'� W 5 Q R X d S )(Nr   rF   r?   rñ   rè   Zcaber2   )r£   r  r�   r(   r9   r)  r   r$   Zaberž   TrÃ   Úabr=   ©Ú
categoriesZae)r9  Úordered)r:  Úadr   Zaabbcar  rë   r  z<argument {} is not implemented for CategoricalIndex\.reindexr€   rƒ   r   rÂ   rÁ   r®   r+   )r®   )r   r   r^   r   r„   ÚCDTr   r†   r
   r   r   rA   r   r>   rY   rí   rî   rm   rn   Ú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€   rh   r‘   )ÚinspectÚ	signaturer   r   ÚsetÚ
parametersr-   )r   ÚsigrC  r    r    r!   Útest_reindex_signatureA  s    
õz1TestDataFrameSelectReindex.test_reindex_signaturec                 C   s€   t  ddg¡}tddgddgg|ddgd	�}t  ddd
g¡}|j|ddd�}tddgddgddgg|ddgd	�}t ||¡ d S )N)r(   r9   )r=   r)  r   rv   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_rowsR  s    $zCTestDataFrameSelectReindex.test_reindex_multiindex_ffill_added_rowsÚkwargs)Úsecondsr�   r€   Nc                 C   s\   t dddd�}tg tg dd�dgd�}|j|f|Ž}tdtjgd i|d	�}t ||¡ d S )
NZ2020Z30srF   )Ústartr   r   Útimer  r(   rê   r�   )r   r   r   r   r4   ZNAr   rA   )r   rK  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   r£   r;   )r   r*   r£   r'  )r   rP  rQ  r   r/   rB   r    r    r!   Útest_reindex_emptym  s    z-TestDataFrameSelectReindex.test_reindex_emptyr£   úm8[ns]r    c                 C   sR  t  tdƒtdƒg¡}tddd�}t dd¡}|dkrN||d	  }t dd¡}t||d
�}t	j
|d d d…< | ¡ }|j tdgƒ¡}|j tdgƒ¡}|j|||d�}	t|d	  ¡ |g |d  ¡ |g tjdgd |jd�dœ|d
�}
|	jd	dg tk ¡ �st‚|	jd t	j
k�st‚|	jd |k�s.t‚|	jd |k�sBt‚t |	|
¡ d S )NZABCDEr+   rc   r#   rd   ÚNaTÚnsrT  r   r�   rF   r$   r  rg   r   rñ   )r   r$   r  re   )ru   r   )ru   r$   )r	   r…   r„   r3   r   r   Ztimedelta64Z
datetime64r
   r4   rU  Zunstackr   Úappendr   r*   r   r   ro   r’   r£   Zdtypesrû   r¥   r-   rk   r   rA   )r   r£   rI  r›   rr   r7   r   r   r*   rs   rB   r    r    r!   Ú#test_reindex_datetimelike_to_objectˆ  s0    ýúz>TestDataFrameSelectReindex.test_reindex_datetimelike_to_objectzindex_df,index_res,index_expr8  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):rV   rW   rX   rb   ÚtdZ&skip_array_manager_not_yet_implementedrt   rˆ   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-  r0  r1  r3  r4  r5  r6  r?  rE  rJ  r   rO  r   r   rS  rX  rY  r    r    r    r!   r\   w   sD  
Kýþ

 þ




ôþ
îþ
"*þ*þ$(öþ
øþ
?4!	#
\
üþ	
þþ



øþ
"ýýýýðþr\   )#r   r   r@  Únumpyr   rY   Zpandas._libs.tslibs.timezonesr   rR   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsrZ  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   (
Z