a
    d7                  	   @   s"  d dl Zd dlZd dlm  mZ d dlmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZ d dlm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 Z"dd Z#dd Z$dd Z%dd Z&dd  Z'd!d" Z(ej)ej*+d#d$d%gej*+d&d'd ed gd(d) Z,d*d+ Z-d,d- Z.ej*+d.ed/d0ed1d0ged/d0ed1d0d2gd3d3gd3d3ej/gfed/d0ed1d0ged/d0ed1d0gd3d3gd3d3gfgd4d5 Z0d6d7 Z1d8d9 Z2d:d; Z3ej*+d<d=gd>ggg g ggd?d@ Z4dAdB Z5dCdD Z6ej*+d#dEdFgdGdH Z7dS )I    N)NACategoricalFloat64DtypeIndex
MultiIndexNaTPeriodPeriodIndex
RangeIndexSeries	Timedelta	Timestamp
date_rangeisnac                 C   sF  | |j}zt|j|js"J W n ty6   Y n0 |j|jsJJ |j|js\J |jdd }| |}| D ]\}}||| ks|J q|| jdd }|  |}| D ]\}}|| | ksJ q|  |}	t|		 sJ | jd d d }
|  |
}| D ]\}}|| | ksJ q|   }|| usBJ d S )N
         )
reindexindexnpZmay_share_memoryAttributeErroris_Z	identicalitemsisnanall)datetime_seriesZstring_seriesidentityZsubIndexZ	subSeriesidxvalZ	subIndex2ZsubTSZstuffSeriesZnonContigIndexZsubNonContigresult r    q/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/pandas/tests/series/methods/test_reindex.pytest_reindex   s.    



r"   c                  C   s   t g dddtjdgd} tjdtjddtjgg d }}t| || j|  | jd| _tj| || j| dd	 d S )
N)r                     r   )r   r   r   r#   r&   r   objectF)Zcheck_index_type)	r   r   nantmassert_series_equalr   Zilocr   astype)tsijr    r    r!   test_reindex_nan@   s
     r2   c                  C   sp   t dddd} t| }|td}t|jtds<J | }|dd   sXJ |d d 	 rlJ d S )Nz1/1/2000 00:00:00r   Z10speriodsfreq   zM8[ns])
r   r   r   ranger   Z
issubdtypedtyper   r   any)rngZseriesr   maskr    r    r!   test_reindex_series_add_natL   s    r=   c                  C   s   t ddd} ttjdd| d}|t|jdd }|dd }|j	d |_t
|| |t|jdd  }t
|| d S )Nz1/1/2000r   r4   r   r)   r$   r   )r   r   r   randomZdefault_rngZstandard_normalr   listr   
_with_freqr,   r-   )r;   r/   r   expectedr    r    r!   test_reindex_with_datetimesX   s    rC   c                 C   s   t g d}|j| jdd |j| jdd}| t| j}| jd | _t| | | d d d }d}tjt	|d  |j| jdd W d    n1 s0    Y  d S )Nr)   padmethodr   zVInvalid fill method\. Expecting pad \(ffill\), backfill \(bfill\) or nearest\. Got foomatchfoo)
r   r   r   r@   rA   r,   r-   pytestraises
ValueError)r   empty	reindexedr/   msgr    r    r!   test_reindex_cornere   s    
rP   c                  C   sh   t tddd} | d d d }|j| jdd}|j| jdd}t|| t g d}t|| d S )	Nr   int64r9   r   rD   rE   ffill)
r   r   r   r   r'   r'      rT   r(   r(   )r   r   aranger   r   r,   r-   )ss2rN   Z
reindexed2rB   r    r    r!   test_reindex_pad|   s    rX   c                  C   s   t g dg dd} g d}t g d|d}| | }t||d d}tjt|d" | |jd	d
}W d    n1 s0    Y  t|| t g d|d}| j|dd}t|| d S )Nr&   r   r#   r'   r$   )abcder)   )rZ   gr\   f)r&   r&   r#   r#   float64z-The 'downcast' keyword in ffill is deprecatedrG   Zinfer)Zdowncast)r&   r$   r#   r$   rS   rE   )r   r   rS   r,   r-   r.   assert_produces_warningFutureWarning)rV   	new_indexrB   r   rO   r    r    r!   test_reindex_pad2   s    0re   c                  C   sN   t g dtdd} d}| t| }t g dt|d}t|| d S )N)TFFTZabcdr)   Zagc)TTF)r   r@   r   rS   r,   r-   )rV   rd   r   rB   r    r    r!   test_reindex_inference   s
    rf   c                  C   sB   t dtddd} | d }t dtddd}t|| d S )NFr   r$   r)   r&   )r   r8   shiftZbfillr,   r-   )rV   r   rB   r    r    r!   test_reindex_downcasting   s    rh   c                  C   s   t tjddd} g d}| j|dd}t t|d|}t|| | j|ddd}t d	d
tjdg|}t|| | j|dg dd}t d	tjtjdg|}t|| d S )Nr   rQ   rR   )g?g?g      ?       @ZnearestrE   g?)rF   Z	tolerancer   r&   r   )g333333?g{Gz?g?r#   )	r   r   rU   r   Zaroundr.   r,   r-   r+   )rV   targetr   rB   r    r    r!   test_reindex_nearest   s    rk   c                 C   sp   | d d d }t tjt|td|jd}|| j}|jtjksFJ ||jd d d }|jtj	kslJ d S Nr   rR   r)   )
r   r   zeroslenintr   r   r9   ra   int_)r   r/   Zint_tsZreindexed_intr    r    r!   test_reindex_int   s    rq   c                 C   sp   | d d d }t tjt|td|jd}|| j}|jtjksFJ ||jd d d }|jtj	kslJ d S rl   )
r   r   rm   rn   boolr   r   r9   Zobject_Zbool_)r   r/   bool_tsZreindexed_boolr    r    r!   test_reindex_bool   s    rt   c                 C   sT   | dd  }t tjt|td|jd}|j| jdd}t|d d  sPJ d S )Nr$   rR   r)   rD   rE   )	r   r   rm   rn   rr   r   r   r   r   )r   r/   rs   Zfilled_boolr    r    r!   test_reindex_bool_pad   s    ru   c                  C   s   t ddd} tg ddd}|| }tttjtjtjgg dd}| |_t|| ttdd	gg dd}d
dg|_|d
dg}t|| ttd	tjgg dd}ddg|_|ddg}t|| d S )NZ20000101r#   r>   )rZ   r[   r\   categoryrR   )values
categoriesr[   r\   r&   r   )	r   r   r   r   r   r+   r   r,   r-   )r   rV   r   rB   r    r    r!   test_reindex_categorical   s     


ry   c                  C   s`   t g dg dd} g d}d}t}| |||}| |||}t|| d S )Nr&   r   r#   )r   r   r&   r)   )r   r&   r   rv   )r   strr   r.   r,   r-   )serrd   Z
temp_dtypeZ	new_dtyper   rB   r    r    r!   %test_reindex_astype_order_consistency   s    r}   c                  C   s  t g d} | g d}t ddtjgg dd}t|| | jg ddd}t g dg dd}t|| t g d}|g d}t ddtjgg dd}t|| |jg ddd}t g d	g dd}t|jjtj	sJ t|| t g dt
d
}|g d}t ddtjgg dt
d}t|| |jg ddd}t g dg dt
d}t|| t g d}|g d}t ddtjgg dt
d}t|| |jg ddd}t g dg dd}t|| d S )N)      ?ri         @rz   ri   r   r)   r   
fill_value)ri   r   r   )r   r#   r   rR   r   r#   r   r9   rI   )r   r#   rI   )TFTFT)FTF)r   r   r   r+   r,   r-   
issubclassr9   typeintegerr*   )Zfloatsr   rB   intsZobjectsZboolsr    r    r!   test_reindex_fill_value  s:    r   r9   zdatetime64[ns]timedelta64[ns]r   stringc                 C   sb   | dkr|t dkrtd}ttg| d}|jddg|d}tt|gddgtd}t|| d S )Nr   r   rR   r&   r   r   )r   r   r   r   r   r*   r,   r-   )r9   r   Zusing_array_managerr|   r   rB   r    r    r!   +test_reindex_fill_value_datetimelike_upcast:  s    r   c                  C   sp   t dddd} t dddd}ttd| d	}d
}tjt|d |j|dd W d    n1 sb0    Y  d S )NZ20131101zAmerica/Chicagor%   )tzr4   Z20131103r   Hr3   r)   zLCannot compare dtypes datetime64\[ns, America/Chicago\] and datetime64\[ns\]rG   rS   rE   )r   r   r8   rJ   rK   	TypeErrorr   )r   ZnewidxrV   rO   r    r    r!   /test_reindex_datetimeindexes_tz_naive_and_awareJ  s    r   c                  C   s6   t ddddg} t tgd dd}t| | d S )Nzdatetime64[ns, UTC]rR   r   r&   r   )r   r   r   r,   Zassert_equal)r   rB   r    r    r!   "test_reindex_empty_series_tz_dtypeW  s    r   z+p_values, o_values, values, expected_valuesZ2019Q1zQ-DECZ2019Q2ZAllr~   c           	      C   sB   t | }t|}t||d}||}t||d}t|| d S )Nr)   )r	   r   r   r   r,   r-   )	Zp_valuesZo_valuesrw   Zexpected_valuesZperiod_indexZobject_indexr|   r   rB   r    r    r!   $test_reindex_periodindex_with_object^  s    
r   c                  C   sR   t ddg} d}tjt|d  | ddgd W d    n1 sD0    Y  d S )Nr&   r   zCreindex\(\) takes from 1 to 2 positional arguments but 3 were givenrG   r#   Fr   rJ   rK   r   r   r|   rO   r    r    r!   test_reindex_too_many_argsz  s    r   c                  C   sX   t ddg} d}tjt|d& | jddgddgd W d    n1 sJ0    Y  d S )Nr&   r   z4reindex\(\) got multiple values for argument 'index'rG   r#   r'   r)   r   r   r    r    r!   test_reindex_double_index  s    r   c                  C   s@   t ddg} | jddgd}t ddgddgd}t|| d S )Nr&   r   r   r)   )r   r   r,   r-   )r|   r   rB   r    r    r!   test_reindex_no_posargs  s    r   rw   rZ   xc                 C   sh   t tt| d t| dd}|jtdgdd}t tdg| d gg g gddd}t	|| d S )Nr   r*   r   r[   )levelr&   )levelscodes)
r   r8   rn   r   Zfrom_arraysr   r   arrayr,   r-   )rw   r|   r   rB   r    r    r!   test_reindex_empty_with_level  s    r   c                  C   sX   t g ddd} d}tjt|d" | jg ddd W d    n1 sJ0    Y  d S )	N)r&   r   r#   r&   rv   rR   z:Cannot setitem on a Categorical with a new category \(-1\)rG   rY   r   r   r   r    r    r!   test_reindex_missing_category  s    r   c                  C   s   t dtgt d} | td}|jj}tdtj	tj	g}t
|| t
d > t|}t dtj	tj	gt d}t
|| W d    n1 s0    Y  d S )Nr~   rR   r#   r&   r   )r   r   r   r   r8   rw   _datar   r   r+   r,   Zassert_numpy_array_equalrb   logr-   )rV   Z	s_reindexr   rB   Z
result_logZexpected_logr    r    r!   #test_reindexing_with_float64_NA_log  s    
r   Ztimedelta64Z
datetime64c                 C   s`   t tjdg|  dd}|td}t tjdtt| ddg|  dd}t|| d S )Nr&   z[s]rR   r   ZnatrV   )r   r   r   r   r
   getattrr,   r-   )r9   r|   r   rB   r    r    r!   test_reindex_expand_nonnano_nat  s    "r   )8numpyr   rJ   Zpandas.util._test_decoratorsutilZ_test_decoratorstdZpandasr   r   r   r   r   r   r   r	   r
   r   r   r   r   r   Zpandas._testingZ_testingr,   r"   r2   r=   rC   rP   rX   re   rf   rh   rk   rq   rt   ru   ry   r}   r   Z&skip_array_manager_not_yet_implementedmarkZparametrizer   r   r   r+   r   r   r   r   r   r   r   r   r    r    r    r!   <module>   sd   @'	3


