a
    oÝEb…¬  ã                   @   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ÚtzZ2013ÚAz
Asia/Tokyo)	r   ÚnpÚrandomr   Ú	set_indexÚtmÚassert_index_equalÚindexÚreindex)ÚselfÚdfZidx1Zidx2© r    úg/home/ja/django-apps/lartica_env/lib/python3.9/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szJ ‚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(   r9   r:   r<   r   r)   r9   )
r   Úastyper   Úint64Úfloat64r   r5   r2   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, hour)zAmerica/ChicagoiÝ  é   é   r$   )zAmerica/Santiagoiå  é   rE   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)Úgettzr3   Ú	Timestampr   r   r   r   r@   )
r   ÚtimezonerG   rH   rI   rJ   Ztest_timezoneZtransition_1Ztransition_2r   r    r    r!   Ú test_reindex_timestamp_with_foldS   s:    ù	ù
ÿþÿþz4TestReindexSetIndex.test_reindex_timestamp_with_foldN)Ú__name__Ú
__module__Ú__qualname__r"   r/   r7   rC   ÚpytestÚmarkÚparametrizerT   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-d€d�„ Z.d‚dƒ„ Z/d„d…„ Z0d†d‡„ Z1dˆd‰„ Z2ej	 
dŠd
e3d‹dŒ�d�œde3d‹dŒ�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¡rZJ ‚|j||j	dd�}t |d j|d j¡rˆJ ‚d S )Nr#   T)r*   Úcopyr   )r*   r   r\   )
r   r   r   r,   ÚarangeÚshuffler   Zshares_memoryZ_valuesr   )r   ÚNr   Úcolsr.   Z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 sv0    Y  t|d  ¡ |g |d  ¡ |g |gd
 dœƒ}t ||¡ t t	¡�" |j
td
ƒ|d�}W d   ƒ n1 sð0    Y  t ||ddg ¡ |j
td
ƒg d¢dd�}t ||¡ d S )Nú
2016-01-01r   ©r   rE   r+   r   r1   r)   ©r   r   rF   ©r   r1   ÚC©r   r*   Ú
fill_value)r   rh   )r   ÚvaluesZreshaper   r2   ÚilocÚdater   Úassert_produces_warningÚFutureWarningr   Útolistr@   )r   Úarrr   ÚtsÚfvÚresrA   r    r    r!   Útest_reindex_date_fill_value‰   s"    
6,ÿ0ÿ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$   rE   )r   r1   rf   ÚDÚEÚFÚGr8   r(   r9   )ç      à?ç       @g      @g333333@)ÚnamesrF   rf   rx   )r1   rf   rx   ry   Úbfill©ÚmethodÚbackfill)r   rf   rx   rx   ÚpadÚffill)r   Úlistr2   r   r	   Úfrom_productr   r   Únanr   r@   )r   r   r-   Znew_multi_indexÚ	reindexedrA   Zreindexed_with_backfillingZreindexed_with_paddingr    r    r!   Útest_reindex_with_multi_index¥   sF    &
ýÿú
ÿþÿþÿþz8TestDataFrameSelectReindex.test_reindex_with_multi_indexzmethod,expected_valuesÚnearest)r   r$   r$   r+   r�   r   r$   r€   )r   r$   r+   r+   c           
      C   s0  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�rdn|}	|d d d	… j||	d�}t ||¡ d S )NÚxr0   ©gš™™™™™¹¿gÍÌÌÌÌÌì?gš™™™™™ñ?g      ø?©r   r~   r$   ©r   Ú	tolerance)r$   r$   r$   r$   rt   )rE   r   r+   r$   r€   r�   )	r   rƒ   r2   r   Úarrayr   r   r@   rj   )
r   r   Zexpected_valuesr   ÚtargetrA   ÚactualÚe2Z	new_orderZswitched_methodr    r    r!   Útest_reindex_methodsð   s(    	
ÿz/TestDataFrameSelectReindex.test_reindex_methodsc                 C   s˜   t dttdƒƒiƒ}t 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‰   r0   rŠ   r   r$   r‹   rˆ   gš™™™™™É?rŒ   )rz   g{®Gáz„?gš™™™™™Ù?gš™™™™™¹?)	r   rƒ   r2   r   rŽ   r…   r   r   r@   )r   r   r�   rA   r�   r    r    r!   Ú$test_reindex_methods_nearest_special  s    z?TestDataFrameSelectReindex.test_reindex_methods_nearest_specialc                 C   sZ   |}t dd|d�}tdttdƒƒi|d�}| d¡}|j|d d… dd�}t ||¡ d S )	Nz
2019-01-01r0   )r   r   r‰   r‹   rE   rˆ   r~   )r   r   rƒ   r2   Úheadr   r   r@   )r   Ztz_aware_fixturer   Úidxr   rA   r�   r    r    r!   Útest_reindex_nearest_tz   s    
z2TestDataFrameSelectReindex.test_reindex_nearest_tzc                 C   sF   t  dg¡}tt  dg¡d�}t|d�}|j|dd�}t ||¡ d S )Nz2016-06-26 14:27:26+00:00z2016-07-04 14:00:59+00:00r‹   rˆ   r~   )r3   ZDatetimeIndexr   r   r   r@   )r   Údtir   rA   r.   r    r    r!   Ú#test_reindex_nearest_tz_empty_frame*  s
    
z>TestDataFrameSelectReindex.test_reindex_nearest_tz_empty_framec                 C   sŒ   t dddd�}ttj t|ƒ¡|dœƒ}| tdƒ¡}t |d j	t 	d¡¡sRJ ‚t
 |¡d }|d	d …  ¡ stJ ‚|d d	…  ¡ rˆJ ‚d S )
Nz1/1/2000 00:00:00r#   Z10s©r   r   ©r   r1   é   r1   úM8[ns]éûÿÿÿ)r   r   r   r   r,   Úlenr   r2   Z
issubdtypeÚdtypeÚcomr   ÚallÚany)r   Úrngr   r.   Úmaskr    r    r!   Útest_reindex_frame_add_nat2  s    z5TestDataFrameSelectReindex.test_reindex_frame_add_natzmethod, exp_valuesr‚   ©r   r$   r+   rE   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:00rF   r&   ÚUTCr   r‹   z2020-01-01 00:01:00z1 hourrŒ   )r   r   r3   Z	Timedeltar   Zassert_equal)r   Zframe_or_seriesr   Z
exp_valuesÚobjr-   r.   rA   r    r    r!   Ú!test_reindex_frame_tz_ffill_bfill=  s    þz<TestDataFrameSelectReindex.test_reindex_frame_tz_ffill_bfillc                 C   s€   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   )r1   r1   r1   )rf   rf   rf   )rv   rv   rv   )r   r$   r+   rE   rF   r0   r‚   r$   )r   Úlimit)r   r…   r   r   r   r@   )r   ÚdataZexp_datar   r.   rA   r    r    r!   Útest_reindex_limitL  s    úz-TestDataFrameSelectReindex.test_reindex_limitzidx, check_index_type)rf   r1   r   T)rx   rf   r   rv   r   re   )rf   r   r1   rf   r1   )r1   r   rf   rv   rx   F)r   rf   r1   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Ú	abcdeabcdrt   ©r#   é   é   rE   r   éè  é	   ©ÚjimÚjoeÚjolieZjoline©r¶   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>.fr¶   ©Úlevel©Úcheck_index_type)r   rƒ   r   r   ÚrandintÚconcatenateÚmapr   r   rj   r   r@   )r   r•   rÃ   Úicolr¿   ÚiÚleftÚrightr    r¾   r!   Ú%test_reindex_level_verify_first_level\  s    
üÿz@TestDataFrameSelectReindex.test_reindex_level_verify_first_levelr•   )©Úmid)rÍ   Úbtm)rÍ   rÎ   Ú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Í   r0   rÎ   é   rÏ   ru   Ú3rdr+   Ú1strE   Ú2ndc                 S   s   g | ]}t jjd |dd�‘qS ©r³   F)Úreplace©r   r   Úchoice©Ú.0r‰   r    r    r!   Ú
<listcomp>§  s   ÿz\TestDataFrameSelectReindex.test_reindex_level_verify_first_level_repeats.<locals>.<listcomp>©r+   rE   rE   r+   rE   r+   rE   r+   r±   r#   rµ   r¹   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   r,   Úroundrƒ   rÆ   r   r   rj   r   r@   )r   r•   rÇ   r¿   rÈ   rÉ   rÊ   r    r¾   r!   Ú-test_reindex_level_verify_first_level_repeats€  s>    ÿþýüûúùþÿíÿzHTestDataFrameSelectReindex.test_reindex_level_verify_first_level_repeatszidx, indexer)rÔ   rÕ   rÓ   )r+   rE   rF   r   r$   rÒ   r´   r0   r   ru   r#   rD   é   é   é   é   é   r›   é   é   )rÓ   rÕ   rÔ   )r   r$   r+   rE   rF   r#   rD   rà   r0   r   ru   rÒ   r´   r›   rå   ræ   rã   rä   rá   râ   rÕ   rÓ   )r   r$   r0   r   ru   r#   rD   rà   rã   rä   r›   rå   ræ   rÔ   )r   r$   r+   rE   rF   r#   rD   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Í   r0   rÎ   rÒ   rÏ   ru   rÓ   r+   rÔ   rE   rÕ   c                 S   s   g | ]}t jjd |dd�‘qS rÖ   rØ   rÚ   r    r    r!   rÜ   Ø  s   ÿzPTestDataFrameSelectReindex.test_reindex_level_verify_repeats.<locals>.<listcomp>rÝ   r±   r#   rµ   r¹   r·   rÀ   )r   r   rÅ   r   r,   rÞ   r   r   rj   r   r@   )r   r•   Úindexerr   rÇ   rÉ   rÊ   r    r    r!   Ú!test_reindex_level_verify_repeats¹  s:    ÿþýüûúùþÿíÿz<TestDataFrameSelectReindex.test_reindex_level_verify_repeatszidx, indexer, check_index_typeZabcde)	rE   r+   r$   r   r0   rF   rÒ   ru   r   Úabcd)rE   r+   r$   r   r0   rÒ   ru   r   Úabc)rE   r+   r$   rÒ   ru   r   Zeca)r$   rE   rF   r   rÒ   Zedc)r   r$   rF   r0   r   Zeadbc)	rE   r   r+   r$   rF   r0   rÒ   ru   r   Zedwq)r   rF   r0   Z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¯   rt   r°   rE   r   r³   r´   rµ   r¹   r·   rÀ   rÂ   )
r   rƒ   r   r   rÄ   r   r   rj   r   r@   )r   r•   rç   rÃ   r   rÇ   rÉ   rÊ   r    r    r!   Útest_reindex_level_verifyå  s    
üÿz4TestDataFrameSelectReindex.test_reindex_level_verifyc                 C   sT  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 sˆ0    Y  tjt|d��  |j	|j
dd� W d   ƒ n1 sÆ0    Y  tjt|d��  |j	|j
dd� W d   ƒ n1 �s0    Y  tjt|d��  |j	|j
dd� W d   ƒ n1 �sF0    Y  d S )Nz
2013-08-01r   r1   r™   r$   r   ©r   r*   ©rE   rF   r0   )r   r$   r+   z0index must be monotonic increasing or decreasing©Úmatchr�   r~   r‚   r}   rˆ   )r   r   r   r,   r   rƒ   rX   ÚraisesÚ
ValueErrorr   r   )r   Zdrr¬   r   Zdf_revÚmsgr    r    r!   Ú"test_non_monotonic_reindex_methods   s    "..0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   r3   rŽ   ZSparseDtyper   r   r…   r   r@   ©r   r   r.   rA   r    r    r!   Útest_reindex_sparse  s    "ÿþûz.TestDataFrameSelectReindex.test_reindex_sparsec                 C   sv  t jdd�}| |j¡}|jD ]j}||  ¡ D ]X\}}||jv rxt |¡rbt || | ¡svJ ‚q†||| | ks†J ‚q.t |¡s.J ‚q.q| ¡ D ]\}}t  |j|j¡s’J ‚q’| t	g ƒ¡}t
|jƒdksÐJ ‚| |jd d d… ¡}	|	jD ]r}|	|  ¡ D ]`\}}||jv �rNt |¡�r6t || | ¡�sLJ ‚n||| | k�s\J ‚qüt |¡süJ ‚qüqì|	 ¡ D ] \}}t  |j|	j¡�shJ ‚�qh|j|jdd�}|j|ju �s¬J ‚| g ¡}|j�sÂJ ‚t
|jƒt
|jƒk�sÜJ ‚| g ¡}| |j¡}t
|jƒt
|jƒk�sJ ‚t
|jƒt
|jƒk�s&J ‚| t|jƒ¡}|j d ¡}
t  |j|
¡ | ¡ }t  ||¡ ||u�srJ ‚d S )Nr²   )Znperr   r+   F)r\   )r   ZmakeTimeSeriesr   r   r*   Úitemsr   ÚisnanZequalContentsr   rž   Úemptyrƒ   Z
_with_freqr   r@   )r   Úfloat_frameZdatetime_seriesZnewFrameÚcolr•   r½   ZseriesZ
emptyFrameZnonContigFramerA   r.   r    r    r!   Útest_reindex  sL    





z'TestDataFrameSelectReindex.test_reindexc                 C   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+   rE   r0   ru   rD   r´   r%   r·   r¶   rì   )r$   rE   rE   r$   r+   r   r$   ÚobjectFrÂ   r(   r9   r:   z
2015-03-22z
2012-01-08)r+   rE   rF   r0   )Úotherrk   Úamountrk   z
2015-06-18Údelta)r  rÿ   rk   )r  rÿ   rk   r   r;   )r   r   r…   r   r@   r   rj   r   r=   r3   Úto_datetimerk   Úshiftr   r5   )r   r   rÈ   ÚjrÉ   rÊ   r    r    r!   Útest_reindex_nan^  s(    ý"ýÿz+TestDataFrameSelectReindex.test_reindex_nanc                 C   sÔ   t tj d¡ƒ}t|t t|ƒ¡d�}t t d¡dd�}| |¡}|jj	dksRJ ‚| t
t d¡dd�¡}|jj	dkszJ ‚t tj d¡ƒ}t|jt t|ƒ¡d�}t t d¡dd�}|j|d�}|jj	dksÐJ ‚d S )Nr#   r‹   Ziname©ÚnameZtmpnamer;   )r
   r   r   Zrandr   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*J ‚|  |j¡}|d jtjksJJ ‚|j ddgd�}|d jtjksnJ ‚d S )Nr+   r   r1   r;   )r   r   rŸ   r   r>   r?   )r   Ú	int_frameÚsmallerZ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sFJ ‚|j g d�}|js\J ‚d S )N©r   r1   rw   r;   r1   rw   rf   )r   r   Zassert_series_equalr   rù   r¡   rú   )r   rû   Z	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)rD   rà   rá   )é   é   r%   )é   é    é!   )r$   r+   rF   )r¬   r   r*   rŸ   r   r;   rD   rà   rá   r  r  r%   r  r  r  r‚   )r*   r   r}   )r   Úfloatr   r2   r   r…   r   r@   rö   r    r    r!   Útest_reindex_columns_method¢  sN    üýø
ýø
ýø
z6TestDataFrameSelectReindex.test_reindex_columns_methodc                 C   s¢   t t d¡tdddƒtdddƒtdddƒg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s’J ‚||ksžJ ‚d S )N©rE   rE   iÜ  r$   r+   rE   r8   rì   ú
2012-01-01z
2012-01-03r<   )r   r(   r9   r‹   r;   )r   r   Úonesr   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@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#   rF   r›   r�   r   )rh   r0   rõ   )r*   rh   Úfoo)r   r   r   r,   r   rƒ   r2   rù   ri   r¡   Zfillnar   r@   r\   rö   r    r    r!   Útest_reindex_fill_valueæ  s,    z2TestDataFrameSelectReindex.test_reindex_fill_valuec              	   C   sÖ   t j d¡}t|g d¢d�}| ¡ }ttt|ƒƒƒ|_t|ttt|ƒƒƒd�}t	 
||¡ d}tjt|d��V t	jtdd��( |jttt|ƒƒƒd� W d   ƒ n1 sª0    Y  W d   ƒ n1 sÈ0    Y  d S )Nr#   )
r$   r+   rE   rF   r0   r$   r+   rE   rF   r0   r‹   ú/cannot reindex on an axis with duplicate labelsrî   ú
non-unique)r   r   r,   r   r\   rƒ   r2   rž   r   r   r@   rX   rð   rñ   rl   rm   r   )r   ro   r   r.   rA   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��L tjtdd�� |jdgd� W d   ƒ n1 sh0    Y  W d   ƒ n1 s†0    Y  tjt|d��N tjtdd��  |jddgd� W d   ƒ n1 sÔ0    Y  W d   ƒ n1 sò0    Y  d S )	N)r$   r0   g      @)Úbarr(   r(   r;   r  rî   r  r   r  )r   rX   rð   rñ   r   rl   rm   r   )r   r   rò   r    r    r!   Ú#test_reindex_with_duplicate_columns  s    ÿJ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+   rE   ©rF   r0   r   rš   r$   r+   rF   r0   )r   r$   rE   r‹   r   ©Úaxisr   )r   r   r…   r   r   r@   ©r   r   rA   r.   r    r    r!   Útest_reindex_axis_style'  s    ÿz2TestDataFrameSelectReindex.test_reindex_axis_stylec                 C   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 sj0    Y  t ||¡ d S )Nr"  r#  rš   r§   r+   g      @r0   re   r   r$   )r   r   r…   r   rl   rm   r   r@   r&  r    r    r!   Útest_reindex_positional_warns6  s
     2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 sP0    Y  tjtdd��& |jddgdgd
d	� W d   ƒ n1 s”0    Y  tjtdd��" |jddgd
d� W d   ƒ n1 sÔ0    Y  tjtdd��" |jddgdd� W d   ƒ n1 �s0    Y  tjtdd��" |jddgdd� W d   ƒ n1 �sX0    Y  tjtdd��( |jddgddgdd� W d   ƒ n1 �s 0    Y  tjtdd��& | ddgdgdg¡ W d   ƒ n1 �sæ0    Y  tjtdd��" |jddgd
d� W d   ƒ n1 �s(0    Y  tjtdd��" |jddgdd� W d   ƒ n1 �sj0    Y  tjtdd��& |jddgddgd� W d   ƒ n1 �s°0    Y  d S )Nr"  r#  rš   zCannot specify both 'axis'rî   r   r$   r   r$  r   )r   r%  r*   )r*   r%  )r   r*   r%  zCannot specify allzmultiple values©Úlabels)r   rX   rð   Ú	TypeErrorr   )r   r   r    r    r!   Útest_reindex_axis_style_raises?  s*    440228622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$   r   r;   r+   ©r   r   r   r@   rö   r    r    r!   Ú!test_reindex_single_named_indexerb  s    z<TestDataFrameSelectReindex.test_reindex_single_named_indexerc           	      C   s”  t 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 ||¡ 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 d   ƒ n1 �s0    Y  dt|d jƒv �s>J ‚|jddgddgd�}|jddgdd�jddgdd�}||fD ]}t ||¡ �q|d S )Nr"  rí   )r0   r   ru   r8   )r<   Úer¿   rì   r9   r(   r‹   r)  r   )r*  r%  r$  r/  r<   r;   r$   r   r)   )r   r   r   r@   rl   rm   ÚstrÚmessage)	r   r   Zres1Zres2Zres3Zres4Zres5rr   Úmr    r    r!   Útest_reindex_api_equivalencei  s0    ý4 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sHJ ‚t	|d d ƒs\J ‚|jt
d	ƒd
�}|jjtjks~J ‚t	|d ƒ ¡ s’J ‚d S )N)r#   r+   rô   r   r±   r+   rì   r#   r$   rE   r;   )r   r   r  Úboolr]   r   ri   rŸ   Zobject_r   r2   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s8J ‚d S )N)r  r   r1   r;   r  r   r1   )r   )r   Z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 )Nr8   r"  r‹   r;   r  rw   )	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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+   rE   rF   ru   rÒ   r´   r#   r(   r9   g      Y@ç     @Y@ç     €Y@ç     ÀY@r)   )r:  r;  r<  r‹   )r$   rE   rF   )r   r   r…   r   rj   r   r@   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 )NrE   rF   rì   r;   r   r#   r  r+   r0   y              ð?r8   r$   r(   r9   )
r   r   r   r,   r   r2   rƒ   r   r@   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 )Nr8   r  rE   r&   r™   r(   r‹   )r   r$   r+   rE   rF   r0   r   rÒ   r   r$   r+   rF   r0   r   rÒ   )r	   r„   r   r   r   r2   rž   rj   r   r   r…   r   r@   )r   Zmidxr   rB   r.   rA   r    r    r!   Ú#test_reindex_multi_categorical_timeÖ  s    
þÿ
$z>TestDataFrameSelectReindex.test_reindex_multi_categorical_timec              	   C   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��N t
jtdd�� | ddg¡ W d   ƒ n1 �s®0    Y  W d   ƒ n1 �sÎ0    Y  d }tjt| d!¡d��  |jdgd"d#� W d   ƒ n1 �s0    Y  tjt| d$¡d��  |jdgdd%� W d   ƒ n1 �s^0    Y  tjt| d&¡d��  |jdgd'd(� W d   ƒ n1 �s¤0    Y  d S ))Nr   rE   r>   rô   rê   Zcaber1   )rŸ   r  r‹   )r(   r9   r/  r   r$   Zaberš   TrÂ   r(   r9   Úabr/  r<   ©Ú
categoriesZae)rB  Úordered)rC  Úadr   Zaabbcar  rî   r  z<argument {} is not implemented for CategoricalIndex\.reindexr   r‚   r~   rÁ   rÀ   r«   r+   )r«   )r   r   r]   r   rƒ   ÚCDTr   r…   r
   r   r   r@   r   r=   rX   rð   rñ   rl   rm   ÚNotImplementedErrorÚformat)r   r   r.   rA   ZcatsrB   rò   r    r    r!   Ú"test_reindex_with_categoricalindexå  s–    ÿü	ÿ  ÿþÿþÿ $ÿþ$ÿþÿüN00z=TestDataFrameSelectReindex.test_reindex_with_categoricalindexc                 C   s*   t  tj¡}t|jƒ}|h d£ks&J ‚d S )N>   r   r   rh   r%  r*   rÁ   r   r«   r�   r\   r*  )ÚinspectÚ	signaturer   r   ÚsetÚ
parameters)r   ÚsigrL  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(   r9   ©r<   r/  r   ru   rE   rF   r‰   Úyrì   )rO  rP  )ÚhrÈ   r‚   )r%  r   )r	   Úfrom_tuplesr   r   r   r@   )r   Úmir   Zmi2r.   rA   r    r    r!   Ú(test_reindex_multiindex_ffill_added_rowsR  s    $zCTestDataFrameSelectReindex.test_reindex_multiindex_ffill_added_rowsÚ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 )
NZ2020Z30srE   )Ústartr   r   Útimer  r(   rì   r‹   )r   r   r   r   r3   ZNAr   r@   )r   rV  r•   r   r.   rA   r    r    r!   Útest_reindex_empty_frame\  s
    z3TestDataFrameSelectReindex.test_reindex_empty_frameÚsrc_idxÚcat_idxc                 C   s<   t |dgdd�}|j|d�}t dg|dd�}t ||¡ d S )NÚKZf8)r*   r   rŸ   r;   )r   r*   rŸ   r-  )r   r[  r\  r   r.   rA   r    r    r!   Útest_reindex_emptym  s    z-TestDataFrameSelectReindex.test_reindex_emptyrŸ   úm8[ns]rœ   c                 C   sR  t  tdƒtdƒg¡}tddd�}t dd¡}|dkrN||d	  }t dd¡}t||d
�}t	j
|d d d…< | ¡ }|j tdgƒ¡}|j tdgƒ¡}|j|||d�}	t|d	  ¡ |g |d  ¡ |g tjdgd |jd�dœ|d
�}
|	jd	dg tk ¡ �sJ ‚|	jd t	j
u �sJ ‚|	jd |u �s.J ‚|	jd |u �sBJ ‚t |	|
¡ d S )NZABCDEr+   rb   r#   rc   ÚNaTÚnsr_  r   r‹   rE   r$   r  rg   r   rô   )r   r$   r  rd   )rt   r   )rt   r$   )r	   r„   rƒ   r2   r   r   Ztimedelta64Z
datetime64r
   r3   r`  Zunstackr   Úappendr   r*   r   r   rn   rŽ   rŸ   Zdtypesrþ   r¡   rj   r   r@   )r   rŸ   rT  r—   rq   r6   r   r   r*   rr   rA   r    r    r!   Ú#test_reindex_datetimelike_to_objectˆ  s0    ýúz>TestDataFrameSelectReindex.test_reindex_datetimelike_to_objectzindex_df,index_res,index_exprA  c                 C   s0   t |d�}|j|d�}t |d�}t ||¡ d S )Nr‹   r-  )r   Zindex_dfZ	index_resZ	index_expr   r.   rA   r    r    r!   Útest_reindex_not_category«  s    

z4TestDataFrameSelectReindex.test_reindex_not_category):rU   rV   rW   ra   ÚtdZ&skip_array_manager_not_yet_implementedrs   r‡   rX   rY   rZ   r   r…   r’   r“   r–   r˜   r¥   rª   r­   rË   rß   rè   rƒ   rë   ró   r÷   rý   r  r
  r  r  r  r  r  r  r!  r'  r(  r,  r.  r3  r6  r7  r9  r=  r>  r?  rH  rN  rU  r   rZ  r   r   r^  rc  rd  r    r    r    r!   r[   w   s   
K

ýþ

þ










ôþ
þ
"þþöþ
øþ
?4!	#
\
üþ	
þþ



øþ
"ýýýýðþr[   )#r   r   rI  Únumpyr   rX   Zpandas._libs.tslibs.timezonesr   rQ   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsre  Zpandasr3   r   r   r   r   r	   r
   r   r   Zpandas._testingZ_testingr   Zpandas.api.typesr   rE  Zpandas.core.commonÚcoreÚcommonr    r   r[   r    r    r    r!   Ú<module>   s   (
Z