o
    d+7                  	   @   s  d dl Zd dl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!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)d*e
d+d*ge
d)d*e
d+d*d,gd-d-gd-d-ej'gfe
d)d*e
d+d*ge
d)d*e
d+d*gd-d-gd-d-gfgd.d/ Z(d0d1 Z)d2d3 Z*d4d5 Z+ej"#d6d7gd8ggg g ggd9d: Z,d;d< Z-d=d> Z.ej"#dd?d@gdAdB Z/dS )C    N)NACategoricalFloat64DtypeIndex
MultiIndexNaTPeriodPeriodIndex
RangeIndexSeries	Timedelta	Timestamp
date_rangeisnac                 C   s@  | |j}zt|j|jsJ W n	 ty   Y nw |j|js%J |j|js.J |jdd }| |}| D ]\}}||| ksJJ q>| jdd }|  |}| D ]\}}|| | ksgJ q[|  |}	t|		 svJ | jd d d }
|  |
}| D ]\}}|| | ksJ q|   }|| usJ d S )N
         )
reindexindexnpmay_share_memoryAttributeErroris_	identicalitemsisnanall)datetime_seriesstring_seriesidentitysubIndex	subSeriesidxval	subIndex2subTSstuffSeriesnonContigIndexsubNonContigresult r*   m/var/www/html/visualizacion-main/env/lib/python3.10/site-packages/pandas/tests/series/methods/test_reindex.pytest_reindex   s0   



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-   r0   r   objectF)check_index_type)	r   r   nantmassert_series_equalr   ilocr   astype)tsijr*   r*   r+   test_reindex_nan>   s
     r>   c                  C   sp   t dddd} t| }|td}t|jtdsJ | }|dd   s,J |d d 	 r6J d S )Nz1/1/2000 00:00:00r   10speriodsfreq   zM8[ns])
r   r   r   ranger   
issubdtypedtyper   r   any)rngseriesr)   maskr*   r*   r+   test_reindex_series_add_natJ   s   rL   c                  C   s   t ddd} ttjd| d}|t|jdd }|dd }|jd |_t	
|| |t|jdd  }t	
|| d S )Nz1/1/2000r   rA   r3   r.   r   )r   r   r   randomrandnr   listr   
_with_freqr7   r8   )rI   r;   r)   expectedr*   r*   r+   test_reindex_with_datetimesV   s   rS   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    d S 1 sNw   Y  d S )Nr3   padmethodr   zVInvalid fill method\. Expecting pad \(ffill\), backfill \(bfill\) or nearest\. Got foomatchfoo)
r   r   r   rP   rQ   r7   r8   pytestraises
ValueError)r   empty	reindexedr;   msgr*   r*   r+   test_reindex_cornerc   s   
"r`   c                  C   s  t tddd} | d d d }|j| jdd}|j| jdd}t|| t g d}t|| t g d	g d
d} g d}t g d|d}| | }t||d | |jdd}t|| t g d|d}| j|dd}t|| t g dt	dd} d}| t	| }t g dt	|d}t|| t dt
ddd} | djdd}t dt
ddd}t|| d S )Nr   int64rG   r   rT   rU   ffill)
r   r   r   r   r1   r1      rd   r2   r2   r0   r   r-   r1   r.   )abcder3   )rf   grh   f)r0   r0   r-   r-   float64infer)downcast)r0   r.   r-   r.   )TFFTabcdagc)TTFFr   r.   r0   bfill)r   r   aranger   r   r7   r8   rc   r:   rP   rE   shiftfillna)ss2r^   
reindexed2rR   	new_indexr)   r*   r*   r+   test_reindex_padz   s4   rz   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   ra   rb   )g?g?g      ?       @nearestrU   g?)rV   	tolerancer   r0   r   )g333333?g{Gz?g?r-   )	r   r   rs   r   aroundr:   r7   r8   r6   )rv   targetr)   rR   r*   r*   r+   test_reindex_nearest   s   r   c                 C   p   | d d d }t tjt|td|jd}|| j}|jtjks#J ||jd d d }|jtj	ks6J d S Nr   rb   r3   )
r   r   zeroslenintr   r   rG   float_int_)r   r;   int_tsreindexed_intr*   r*   r+   test_reindex_int   s   r   c                 C   r   r   )
r   r   r   r   boolr   r   rG   object_bool_)r   r;   bool_tsreindexed_boolr*   r*   r+   test_reindex_bool   s   r   c                 C   sT   | dd  }t tjt|td|jd}|j| jdd}t|d d  s(J d S )Nr.   rb   r3   rT   rU   )	r   r   r   r   r   r   r   r   r   )r   r;   r   filled_boolr*   r*   r+   test_reindex_bool_pad   s   r   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 )N20000101r-   rM   )rf   rg   rh   categoryrb   )values
categoriesrg   rh   r0   r   )	r   r   r   r   r   r6   r   r7   r8   )r   rv   r)   rR   r*   r*   r+   test_reindex_categorical   s    


r   c                  C   s`   t g dg dd} g d}d}t}| |||}| |||}t|| d S )Nr0   r   r-   )r   r   r0   r3   )r   r0   r   r   )r   strr   r:   r7   r8   )serry   
temp_dtype	new_dtyper)   rR   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	stJ 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)      ?r{         @r   r{   r   r3   r   
fill_value)r{   r   r   )r   r-   r   rb   r   r-   r   rG   rY   )r   r-   rY   )TFTFT)FTF)r   r   r   r6   r7   r8   
issubclassrG   typeintegerr4   )floatsr)   rR   intsobjectsboolsr*   r*   r+   test_reindex_fill_value   s:   r   rG   zdatetime64[ns]timedelta64[ns]r   stringc                 C   sp   |rt d | dkr|tdkrtd}ttg| d}|jddg|d}td |gddgtd}t	|| d S )Nz3Array manager does not promote dtype, hence we failr   r   rb   r0   r   r   )
rZ   skipr   r   r   r   r   r4   r7   r8   )rG   r   using_array_managerr   r)   rR   r*   r*   r+   +test_reindex_fill_value_datetimelike_upcast0  s   
r   c                  C   sr   t dddd} t dddd}ttd| d	}d
}tjt|d |j|dd W d    d S 1 s2w   Y  d S )N20131101zAmerica/Chicagor/   )tzrA   20131103r   Hr@   r3   zLCannot compare dtypes datetime64\[ns, America/Chicago\] and datetime64\[ns\]rW   rc   rU   )r   r   rE   rZ   r[   	TypeErrorr   )r"   newidxrv   r_   r*   r*   r+   /test_reindex_datetimeindexes_tz_naive_and_awareB  s   "r   c                  C   s6   t ddddg} t tgd dd}t| | d S )Nzdatetime64[ns, UTC]rb   r   r0   r   )r   r   r   r7   assert_equal)r)   rR   r*   r*   r+   "test_reindex_empty_series_tz_dtypeO  s   r   z+p_values, o_values, values, expected_values2019Q1zQ-DEC2019Q2Allr   c           	      C   sB   t | }t|}t||d}||}t||d}t|| d S )Nr3   )r	   r   r   r   r7   r8   )	p_valueso_valuesr   expected_valuesperiod_indexobject_indexr   r)   rR   r*   r*   r+   $test_reindex_periodindex_with_objectV  s   
r   c                  C   sT   t ddg} d}tjt|d | ddgd W d    d S 1 s#w   Y  d S )Nr0   r   zCreindex\(\) takes from 1 to 2 positional arguments but 3 were givenrW   r-   Fr   rZ   r[   r   r   r   r_   r*   r*   r+   test_reindex_too_many_argsr  s
   "r   c                  C   sZ   t ddg} d}tjt|d | jddgddgd W d    d S 1 s&w   Y  d S )Nr0   r   z4reindex\(\) got multiple values for argument 'index'rW   r-   r1   r3   r   r   r*   r*   r+   test_reindex_double_indexz  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 )Nr0   r   r   r3   )r   r   r7   r8   )r   r)   rR   r*   r*   r+   test_reindex_no_posargs  s   r   r   rf   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   r4   r   rg   )levelr0   )levelscodes)
r   rE   r   r   from_arraysr   r   arrayr7   r8   )r   r   r)   rR   r*   r*   r+   test_reindex_empty_with_level  s   r   c                  C   sZ   t g ddd} d}tjt|d | jg ddd W d    d S 1 s&w   Y  d S )	N)r0   r   r-   r0   r   rb   z:Cannot setitem on a Categorical with a new category \(-1\)rW   re   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    d S 1 sLw   Y  d S )Nr   rb   r-   r0   r   )r   r   r   r   rE   r   _datar   r   NaNr7   assert_numpy_array_equalassert_produces_warninglogr8   )rv   	s_reindexr)   rR   
result_logexpected_logr*   r*   r+   #test_reindexing_with_float64_NA_log  s   
"r   timedelta64
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 )Nr0   z[s]rb   r   natrv   )r   r   r   r   r
   getattrr7   r8   )rG   r   r)   rR   r*   r*   r+   test_reindex_expand_nonnano_nat  s   "r   )0numpyr   rZ   pandasr   r   r   r   r   r   r   r	   r
   r   r   r   r   r   pandas._testing_testingr7   r,   r>   rL   rS   r`   rz   r   r   r   r   r   r   r   markparametrizer   r   r   r6   r   r   r   r   r   r   r   r   r*   r*   r*   r+   <module>   s\    @')3


