o
    Û­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
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(   úd/var/www/html/CropPilot/venv/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„ Z0d€d�„ Z1d‚dƒ„ Z2d„d…„ Z3d†d‡„ Z4dˆd‰„ Z5dŠd‹„ Z6dŒd�„ Z7dŽd�„ Z8d�d‘„ Z9d’d“„ Z:ej d”de;d•d–�d—œde;d•d–�d—œd˜did˜d™ig¡dšd›„ ƒZ<ej dœe=g ƒe>g ƒg¡ej d�e=g ƒe>g ƒe=d.d2gƒe>d.d2gƒe=d.d.gƒe>d.d.gƒg¡dždŸ„ ƒƒZ?ej d d¡d¢g¡d£d¤„ ƒZ@ej d¥e>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¡d§d¨„ ƒZAd©dª„ ZBd™S )«Ú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s�J ‚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r�dn|}	|d d d	… j||	d�}t ||¡ d S )NÚxr8   ©gš™™™™™¹¿gÍÌÌÌÌÌì?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{®Gáz„?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 s„w   Y  tjt	|d�� |j
|jdd� W d   ƒ d S 1 s¤w   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 r«t 	|¡r t 	|| | ¡sŸJ ‚q†||| | ksªJ ‚q†t 	|¡s²J ‚q†q~|
 ¡ D ]\}}t
 |j|
j¡ q¸|j|jdd	�}|rÙ|j |j¡sØJ ‚n|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�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 sŠw   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gdd� W d   ƒ n1 sÍw   Y  tjtdd�� |jddgdgdgd� W d   ƒ n1 sðw   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 ||¡ q�d 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 �sÏw   Y  d}tjt| d ¡d�� |jdgd!d"� W d   ƒ n	1 �sôw   Y  tjt| d#¡d�� |jdgdd$� W d   ƒ n	1 �sw   Y  tjt| d%¡d�� |jdgd&d'� W d   ƒ d S 1 �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 ¡ s�J ‚|	jd t	j
u s‹J ‚|	jd |u s”J ‚|	jd |u s�J ‚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