o
    �¨Êh  ã                	   @   sl  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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'   úX/var/www/html/env/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   ÿ ÿrd   )Ú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<   rL   g        )r   Úcolumnsr/   r0   )r*   )
r   rT   rQ   Ú	DataFramer   r2   r3   r   r   Úassert_frame_equal)r*   ÚserÚdfr4   Ú
result_serÚ	result_dfr'   r'   r(   Ú test_align_with_dataframe_method³   s   ÿÿrn   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   rL   z
US/Central)r   r   rV   ÚrandomÚdefault_rngÚstandard_normalr   Ú
tz_convertr   r   rs   r   Úutc)Úidx1rj   Ú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)rr   r   rL   r9   )r   r   rV   rt   ru   rv   r   r   )r   Úrngr   r'   r'   r(   Útest_align_periodindexÎ   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   rL   r.   ©r.   r   r<   rE   )r.   r<   r   )r   rF   r   ©r   rQ   rR   Úfrom_tuplesr   r   r   )r8   r;   Úresult_leftÚresult_rightÚexpected_rightÚexpected_leftr'   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   ÚdrF   rG   rL   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   ÚnumpyrV   ÚpytestÚpandasrQ   r   r   r   Úpandas._testingÚ_testingr   ÚmarkÚparametrizer)   r6   rB   rD   rd   rn   r}   r€   rˆ   r‹   r'   r'   r'   r(   Ú<module>   sH    üþ	üþ	$#
