o
    Û­jQ8  ã                	   @   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   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ÚtmÚshares_memoryÚis_Ú	identicalÚitemsÚnpÚisnanÚall)Údatetime_seriesÚstring_seriesÚidentityÚsubIndexÚ	subSeriesÚidxÚvalÚ	subIndex2ÚsubTSÚstuffSeriesÚnonContigIndexÚsubNonContigÚresult© r*   úe/var/www/html/CropPilot/venv/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-   r0   r   ÚobjectF)Úcheck_index_type)	r   r   Únanr   Ú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_natG   s   rK   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   ©r@   r   r3   r.   r   )r   r   r   ÚrandomÚdefault_rngÚstandard_normalr   Úlistr   Ú
_with_freqr   r7   )rH   r:   r)   Úexpectedr*   r*   r+   Útest_reindex_with_datetimesS   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   r   r7   ÚpytestÚraisesÚ
ValueError)r   ÚemptyÚ	reindexedr:   Úmsgr*   r*   r+   Útest_reindex_corner`   s   
ÿ"ÿr`   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©rF   r   rT   rU   Úffill)
r   r   r   r   r1   r1   é   rd   r2   r2   )r   r   Úaranger   r   r   r7   )ÚsÚs2r^   Ú
reindexed2rR   r*   r*   r+   Útest_reindex_padw   s   ri   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©r0   r   r-   r1   r.   )ÚaÚbÚcÚdÚer3   )rk   Úgrm   Úf)r0   r0   r-   r-   Úfloat64z-The 'downcast' keyword in ffill is deprecatedrW   Úinfer)Údowncast)r0   r.   r-   r.   rc   rU   )r   r   rc   r   r7   r9   Úassert_produces_warningÚFutureWarning)rf   Ú	new_indexrR   r)   r_   r*   r*   r+   Útest_reindex_pad2ƒ   s   ÿrx   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Úabcdr3   Úagcú"Downcasting object dtype arrays onrW   )TTF)r   rP   r   ru   rv   r   rc   r7   )rf   rw   r_   r)   rR   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.   r3   r{   rW   r0   )r   rD   r   ru   rv   ÚshiftÚbfillr7   )rf   r_   r)   rR   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   ra   rb   )gš™™™™™¹?gÍÌÌÌÌÌì?g      ø?ç       @ÚnearestrU   gš™™™™™É?)rV   Ú	tolerancer   r0   r   )g333333Ó?g{®Gáz„?gš™™™™™Ù?r-   )	r   r   re   r   Úaroundr9   r   r7   r6   )rf   Útargetr)   rR   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   rb   r3   )	r   r   ÚzerosÚlenÚintr   r   rF   rr   )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   rF   Ú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-   rL   )rk   rl   rm   Úcategoryrb   )ÚvaluesÚ
categoriesrl   rm   r0   r   )	r   r   r   r   r   r6   r   r   r7   )r   rf   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   r9   r   r7   )Úserrw   Ú
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   rF   rY   )r   r-   rY   )TFTFT)FTF)r   r   r   r6   r   r7   Ú
issubclassrF   ÚtypeÚintegerr4   )Úfloatsr)   rR   ÚintsÚobjectsÚboolsr*   r*   r+   Útest_reindex_fill_value  s:   r¬   rF   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   rb   r0   r¢   r¤   )r   r   r   r   r   r4   r   r7   )rF   r£   Úusing_array_managerrœ   r)   rR   r*   r*   r+   Ú+test_reindex_fill_value_datetimelike_upcast9  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/   )Útzr@   Ú20131103r   Úhr?   r3   zLCannot compare dtypes datetime64\[ns, America/Chicago\] and datetime64\[ns\]rW   rc   rU   )r   r   rD   rZ   r[   Ú	TypeErrorr   )r"   Únewidxrf   r_   r*   r*   r+   Ú/test_reindex_datetimeindexes_tz_naive_and_awareI  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   r   Úassert_equal)r)   rR   r*   r*   r+   Ú"test_reindex_empty_series_tz_dtypeV  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   r   r7   )	Úp_valuesÚo_valuesr—   Úexpected_valuesÚperiod_indexÚobject_indexrœ   r)   rR   r*   r*   r+   Ú$test_reindex_periodindex_with_object]  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_argsy  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_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 )Nr0   r   r   r3   )r   r   r   r7   )rœ   r)   rR   r*   r*   r+   Útest_reindex_no_posargs‰  s   rÇ   r—   rk   Ú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¤   rl   )Úlevelr0   )ÚlevelsÚcodes)
r   rD   rˆ   r   Úfrom_arraysr   r   Úarrayr   r7   )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   rj   éÿÿÿÿ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   rD   r—   Ú_datar   rÍ   r6   r   Úassert_numpy_array_equalru   Úlogr7   )rf   Ú	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   Únatrf   )r   r   rÍ   r   r
   Úgetattrr   r7   )rF   rœ   r)   rR   r*   r*   r+   Útest_reindex_expand_nonnano_nat³  s   "ÿrÜ   )8Únumpyr   rZ   Úpandas.util._test_decoratorsÚutilÚ_test_decoratorsÚtdÚpandasr   r   r   r   r   r   r   r	   r
   r   r   r   r   r   Úpandas._testingÚ_testingr   r,   r=   rK   rS   r`   ri   rx   r|   r   r…   rŒ   r’   r”   r™   rŸ   r¬   Ú&skip_array_manager_not_yet_implementedÚmarkÚparametrizer°   r·   r¹   r6   rÂ   rÅ   rÆ   rÇ   rÎ   rÐ   r×   rÜ   r*   r*   r*   r+   Ú<module>   sf    @"
3
üüùþ

