o
    �¨Êhð8  ã                	   @   s@  d dl Zd dlZd dlm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 ejjeƒ dd�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.„ Z0d/d0„ Z1ej .d1ed2d3ƒed4d3ƒged2d3ƒed4d3ƒd5gd6d6gd6d6ej2gfed2d3ƒed4d3ƒged2d3ƒed4d3ƒgd6d6gd6d6gfg¡d7d8„ ƒZ3d9d:„ Z4d;d<„ Z5d=d>„ Z6ej .d?d@gdAggg g gg¡dBdC„ ƒZ7dDdE„ Z8dFdG„ Z9ej .d&dHdIg¡dJdK„ ƒZ:dS )Lé    N)Úusing_pyarrow_string_dtype)ÚNAÚCategoricalÚFloat64DtypeÚIndexÚ
MultiIndexÚNaTÚPeriodÚPeriodIndexÚ
RangeIndexÚSeriesÚ	TimedeltaÚ	TimestampÚ
date_rangeÚisnaz#share memory doesn't work for arrow)Úreasonc                 C   s(  |  |j¡}t |j|j¡sJ ‚|j |j¡sJ ‚|j |j¡s"J ‚|jdd… }|  |¡}| ¡ D ]\}}||| ks>J ‚q2| jdd… }|   |¡}| ¡ D ]\}}|| | ks[J ‚qO|   |¡}	t |	¡ ¡ sjJ ‚| jd d d… }
|   |
¡}| ¡ D ]\}}|| | ks‡J ‚q{|   ¡ }|| us’J ‚d S )Né
   é   é   )	ÚreindexÚindexÚnpÚmay_share_memoryÚis_Ú	identicalÚitemsÚisnanÚall)Údatetime_seriesÚstring_seriesÚidentityÚsubIndexÚ	subSeriesÚidxÚvalÚ	subIndex2ÚsubTSÚstuffSeriesÚnonContigIndexÚsubNonContigÚresult© r+   úZ/var/www/html/env/lib/python3.10/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.   r1   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_natL   s   rM   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   ©rB   r   r4   r/   r   )r   r   r   ÚrandomÚdefault_rngÚstandard_normalr   Úlistr   Ú
_with_freqr8   r9   )rJ   r<   r*   Úexpectedr+   r+   r,   Útest_reindex_with_datetimesX   s   rU   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 )Nr4   Úpad©Úmethodr   zVInvalid fill method\. Expecting pad \(ffill\), backfill \(bfill\) or nearest\. Got foo©ÚmatchÚfoo)
r   r   r   rR   rS   r8   r9   ÚpytestÚraisesÚ
ValueError)r   ÚemptyÚ	reindexedr<   Úmsgr+   r+   r,   Útest_reindex_cornere   s   
ÿ"ÿrb   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©rH   r   rV   rW   Úffill)
r   r   r   r   r2   r2   é   rf   r3   r3   )r   r   Úaranger   r   r8   r9   )ÚsÚs2r`   Ú
reindexed2rT   r+   r+   r,   Útest_reindex_pad|   s   rk   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 sCw   Y  t ||¡ t g d¢|d�}| j|dd�}t ||¡ d S )N©r1   r   r.   r2   r/   )ÚaÚbÚcÚdÚer4   )rm   Úgro   Úf)r1   r1   r.   r.   Úfloat64z-The 'downcast' keyword in ffill is deprecatedrY   Úinfer)Údowncast)r1   r/   r.   r/   re   rW   )r   r   re   r8   r9   r;   Úassert_produces_warningÚFutureWarning)rh   Ú	new_indexrT   r*   ra   r+   r+   r,   Útest_reindex_pad2ˆ   s   ÿrz   c                  C   s€   t g d¢tdƒd�} d}d}tjt|d�� |  t|ƒ¡ ¡ }W d   ƒ n1 s)w   Y  t g d¢t|ƒd�}t ||¡ d S )N)TFFTÚabcdr4   Úagcú"Downcasting object dtype arrays onrY   )TTF)r   rR   r8   rw   rx   r   re   r9   )rh   ry   ra   r*   rT   r+   r+   r,   Útest_reindex_inferenceœ   s   ÿr~   c                  C   sp   t dtdƒd�} d}tjt|d�� |  d¡ ¡ }W d   ƒ n1 s#w   Y  t dtdƒd�}t ||¡ d S )NFr/   r4   r}   rY   r1   )r   rF   r8   rw   rx   ÚshiftÚbfillr9   )rh   ra   r*   rT   r+   r+   r,   Útest_reindex_downcasting§   s   ÿr�   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   rc   rd   )gš™™™™™¹?gÍÌÌÌÌÌì?g      ø?ç       @ÚnearestrW   gš™™™™™É?)rX   Ú	tolerancer   r1   r   )g333333Ó?g{®Gáz„?gš™™™™™Ù?r.   )	r   r   rg   r   Úaroundr;   r8   r9   r7   )rh   Útargetr*   rT   r+   r+   r,   Útest_reindex_nearest±   s   r‡   c                 C   st   | d d d… }t tjt|ƒtd�|jd�}| | j¡}|jtjks#J ‚| |jd d d… ¡}|jt t¡ks8J ‚d S ©Nr   rd   r4   )	r   r   ÚzerosÚlenÚintr   r   rH   rt   )r   r<   Úint_tsÚreindexed_intr+   r+   r,   Útest_reindex_intÁ   s   rŽ   c                 C   sp   | 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 rˆ   )
r   r   r‰   rŠ   Úboolr   r   rH   Ú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/   rd   r4   rV   rW   )	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.   rN   )rm   rn   ro   Úcategoryrd   )ÚvaluesÚ
categoriesrn   ro   r1   r   )	r   r   r   r   r   r7   r   r8   r9   )r   rh   r*   rT   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©r1   r   r.   )r   r   r1   r4   )r   r1   r   r˜   )r   Ústrr   r;   r8   r9   )Úserry   Ú
temp_dtypeÚ	new_dtyper*   rT   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£   r4   r   ©Ú
fill_value)r‚   r£   r   )r   r.   r   rd   r   r.   ©r   rH   r[   )r   r.   r[   )TFTFT)FTF)r   r   r   r7   r8   r9   Ú
issubclassrH   ÚtypeÚintegerr5   )Úfloatsr*   rT   ÚintsÚobjectsÚboolsr+   r+   r,   Útest_reindex_fill_value  s:   r®   rH   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   rd   r1   r¤   r¦   )r   r   r   r   r   r5   r8   r9   )rH   r¥   Úusing_array_managerrž   r*   rT   r+   r+   r,   Ú+test_reindex_fill_value_datetimelike_upcast>  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/Chicagor0   )ÚtzrB   Ú20131103r   ÚhrA   r4   zLCannot compare dtypes datetime64\[ns, America/Chicago\] and datetime64\[ns\]rY   re   rW   )r   r   rF   r\   r]   Ú	TypeErrorr   )r#   Únewidxrh   ra   r+   r+   r,   Ú/test_reindex_datetimeindexes_tz_naive_and_awareN  s   ÿ"ÿr¹   c                  C   s6   t dd� ddg¡} t tgd dd�}t | |¡ d S )Nzdatetime64[ns, UTC]rd   r   r1   r   )r   r   r   r8   Úassert_equal)r*   rT   r+   r+   r,   Ú"test_reindex_empty_series_tz_dtype[  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 )Nr4   )r
   r   r   r   r8   r9   )	Úp_valuesÚo_valuesr™   Úexpected_valuesÚperiod_indexÚobject_indexrž   r*   rT   r+   r+   r,   Ú$test_reindex_periodindex_with_objectb  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 )Nr1   r   zCreindex\(\) takes from 1 to 2 positional arguments but 3 were givenrY   r.   F©r   r\   r]   r·   r   ©rž   ra   r+   r+   r,   Útest_reindex_too_many_args~  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 )Nr1   r   z4reindex\(\) got multiple values for argument 'index'rY   r.   r2   r4   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 )Nr1   r   r   r4   )r   r   r8   r9   )rž   r*   rT   r+   r+   r,   Útest_reindex_no_posargsŽ  s   rÉ   r™   rm   Ú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   r5   r¦   rn   )Úlevelr1   )ÚlevelsÚcodes)
r   rF   rŠ   r   Úfrom_arraysr   r   Úarrayr8   r9   )r™   rž   r*   rT   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)r1   r   r.   r1   r˜   rd   z:Cannot setitem on a Categorical with a new category \(-1\)rY   rl   éÿÿÿÿ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¢   rd   r.   r1   r   )r   r   r   r   rF   r™   Ú_datar   rÏ   r7   r8   Úassert_numpy_array_equalrw   Úlogr9   )rh   Ú	s_reindexr*   rT   Ú
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 )Nr1   z[s]rd   r   Únatrh   )r   r   rÏ   r   r   Úgetattrr8   r9   )rH   rž   r*   rT   r+   r+   r,   Útest_reindex_expand_nonnano_nat¸  s   "ÿrÞ   );Únumpyr   r\   Úpandas._configr   Úpandas.util._test_decoratorsÚutilÚ_test_decoratorsÚtdÚpandasr   r   r   r   r   r   r	   r
   r   r   r   r   r   r   Úpandas._testingÚ_testingr8   ÚmarkÚxfailr-   r?   rM   rU   rb   rk   rz   r~   r�   r‡   rŽ   r”   r–   r›   r¡   r®   Ú&skip_array_manager_not_yet_implementedÚparametrizer²   r¹   r»   r7   rÄ   rÇ   rÈ   rÉ   rÐ   rÒ   rÙ   rÞ   r+   r+   r+   r,   Ú<module>   sn    @ÿ
"
3
üüùþ

