o
    Û­jb   ã                	   @   st  d dl mZ d dlZd dlZd dlZd dlmZmZm	Z	 d dl
mZ ej dddgddggdd gddggddgdd ggdd gdd ggg¡ej dddg¡d	d
„ ƒƒZej dddgddggdd gddggddgdd ggdd gdd ggg¡ej dddg¡ej dddg¡dd„ ƒƒƒZdd„ Zdd„ Zdd„ Zej dg d¢¡dd„ ƒZdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ ZdS )%é    )ÚtimezoneN)ÚSeriesÚ
date_rangeÚperiod_rangezfirst_slice,second_sliceé   éûÿÿÿÚfilléÿÿÿÿc                 C   s&  | t |Ž  }| t |Ž  }|j|||d�\}}|jj|j|d�}	|d urQ|j |	¡}
|j |	¡}t|
ƒdkr@| |
¡|k ¡ s@J ‚t|ƒdkrQ| |¡|k ¡ sQJ ‚| |	¡}| |	¡}|d uri| |¡}| |¡}t	 
||¡ t	 
||¡ |jdks|J ‚|jdksƒJ ‚|jdksŠJ ‚|jdks‘J ‚d S )N)ÚjoinÚ
fill_value©Úhowr   Úts)ÚsliceÚalignÚindexr
   Ú
differenceÚlenÚreindexÚallÚfillnaÚtmÚassert_series_equalÚname)Údatetime_seriesÚfirst_sliceÚsecond_sliceÚ	join_typer   ÚaÚbÚaaÚabÚ
join_indexÚdiff_aÚdiff_bÚeaÚeb© r'   úc/var/www/html/CropPilot/venv/lib/python3.10/site-packages/pandas/tests/series/methods/test_align.pyÚ
test_align   s,   



r)   ÚmethodÚpadÚbfillÚlimité   c                 C   sð   | t |Ž  }| t |Ž  }d}tjt|d�� |j||||d�\}	}
W d   ƒ n1 s+w   Y  |jj|j|d�}| |¡}| |¡}d}tjt|d�� |j||d�}|j||d�}W d   ƒ n1 sew   Y  t 	|	|¡ t 	|
|¡ d S )NúNThe 'method', 'limit', and 'fill_axis' keywords in Series.align are deprecated©Úmatch)r
   r*   r-   r   z)Series.fillna with 'method' is deprecated)r*   r-   )
r   r   Úassert_produces_warningÚFutureWarningr   r   r
   r   r   r   )r   r   r   r   r*   r-   r   r   Úmsgr    r!   r"   r%   r&   Úmsg2r'   r'   r(   Útest_align_fill_method7   s"   ÿÿ

þr6   c                 C   sn  | d d…   ¡ }|   ¡ }|j|dd�\}}d|d d…< |d d… dk ¡ r'J ‚|   ¡ }|j|ddd�\}}d|d d…< |rJ|d d… dk ¡ rIJ ‚n|d d… dk ¡ sVJ ‚|   ¡ }| d d…   ¡ }|j|dd�\}}d|d d…< |d d… dk ¡ r}J ‚|   ¡ }| d d…   ¡ }|j|ddd�\}}d|d d…< |r©|d d… dk ¡ r§J ‚d S |d d… dk ¡ sµJ ‚d S )	Né   Úleft©r
   F)r
   ÚcopyÚrighté   r   )r:   r   Úanyr   )r   Úusing_copy_on_writer   r   ÚraÚ_Úrbr'   r'   r(   Útest_align_nocopy\   s.   rB   c                 C   s¶   | j | dd�\}}|s|j| ju sJ ‚|j| ju sJ ‚n|j | j¡s%J ‚|j | j¡s.J ‚| j | dd�\}}|j| jus?J ‚|j| jusGJ ‚|j | j¡sPJ ‚|j | j¡sYJ ‚d S )NF)r:   T)r   r   Úis_)r   r>   r   r   r'   r'   r(   Útest_align_same_index€   s   rD   c                  C   sv  t jjtdƒtdƒtdƒgdd�} t jtdƒdd�}ttjddd	�| d
�}ttjddd	�|d
�}|j|dd�\}}|j|dd�\}}|}t	 
||¡ t	 
||¡ tddddtjtjgd | d
�}	t	 
|	|¡ t	 
|	|¡ |j|dd�\}}|j|dd�\}}t jjtdƒtdƒtdƒgdd�}
tg d¢|
d
�}t	 
||¡ t	 
||¡ tg d¢d |
d
�}	t	 
|	|¡ t	 
|	|¡ d S )Nr   r<   ©r   r   Úc©Únamesr   )r   é   Úint64©Údtype©r   r8   r9   r;   r   r.   )r   r.   r   r<   é   é   é   é	   )r   r   r.   r.   )ÚpdÚ
MultiIndexÚfrom_productÚrangeÚIndexr   ÚnpÚaranger   r   r   Únan)ÚmidxÚidxÚs1Ús2Úres1lÚres1rÚres2lÚres2rÚexplÚexprÚexp_idxr'   r'   r(   Útest_align_multiindex�   s2   ÿ ÿre   )Úbackfillr,   r+   ÚffillNc                 C   sŒ   t tdƒtdƒd�}tjdtdƒtdƒd�}d}tjt|d�� |j|| d�\}}W d   ƒ n1 s3w   Y  t ||¡ t 	||¡ d S )Nr<   rM   g        )r   Úcolumnsr/   r0   )r*   )
r   rU   rR   Ú	DataFramer   r2   r3   r   r   Úassert_frame_equal)r*   ÚserÚdfr4   Ú
result_serÚ	result_dfr'   r'   r(   Ú test_align_with_dataframe_method³   s   ÿÿro   c                  C   sn   t ddddd�} ttj d¡ t| ƒ¡| d�}| d¡}| |¡\}}|j	j
tju s,J ‚|j	j
tju s5J ‚d S )	NÚ2001r7   Úhz
US/Eastern)ÚperiodsÚfreqÚtzr   rM   z
US/Central)r   r   rW   ÚrandomÚdefault_rngÚstandard_normalr   Ú
tz_convertr   r   rt   r   Úutc)Úidx1rk   Úser_centralÚnew1Únew2r'   r'   r(   Ú%test_align_dt64tzindex_mismatched_tzsÃ   s   
r~   c                 C   sH   t dddd�}ttj d¡ t|ƒ¡|d�}|j|d d d… | d� d S )Nz1/1/2000z1/1/2010ÚY)rs   r   rM   r9   )r   r   rW   ru   rv   rw   r   r   )r   Úrngr   r'   r'   r(   Útest_align_periodindexÎ   s   r�   c                 C   s¤   t tdƒtjg d¢| d�d�}t tdƒtjg d¢| d�d�}| |¡\}}tjg d¢| d�}t ddtjd	g|d�}t ddd	tjg|d�}t ||¡ t ||¡ d S )
Nr<   )r   r   ÚdrK   rM   rE   )r   r   rF   r‚   r   r.   r   )	r   rU   rR   rV   r   rW   rY   r   r   )Úany_string_dtyper8   r;   Úresult_leftÚresult_rightÚexpected_idxÚexpected_leftÚexpected_rightr'   r'   r(   Útest_align_stringindexÖ   s   r‰   c                  C   sª   t dgtjjdgddgd�d�} t dgtjjdgg d	¢d�d�}|  |¡\}}t dgtjjd
gg d¢d�d�}t dgtjjd
gg d¢d�d�}t ||¡ t ||¡ d S )Nr   )r.   r<   r   rF   rG   rM   r.   ©r.   r   r<   rE   )r.   r<   r   )r   rF   r   ©r   rR   rS   Úfrom_tuplesr   r   r   )r8   r;   r„   r…   rˆ   r‡   r'   r'   r(   Útest_align_left_fewer_levelsã   s    ÿÿÿr�   c                  C   sª   t dgtjjdgg d¢d�d�} t dgtjjdgg d¢d�d�}|  |¡\}}t dgtjjd	gg d
¢d�d�}t dgtjjd	gg d
¢d�d�}t ||¡ t ||¡ d S )Nr   )r.   é   r<   )r   r‚   rF   rG   rM   r.   rŠ   rE   )r.   rŽ   r<   r   )r   r‚   rF   r   r‹   )r8   r;   r„   r…   r‡   rˆ   r'   r'   r(   Ú&test_align_left_different_named_levelsõ   s   ÿÿÿÿr�   )Údatetimer   ÚnumpyrW   ÚpytestÚpandasrR   r   r   r   Úpandas._testingÚ_testingr   ÚmarkÚparametrizer)   r6   rB   rD   re   ro   r~   r�   r‰   r�   r�   r'   r'   r'   r(   Ú<module>   sJ    üþ	üþ	$#
