a
    Pf                  	   @   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   fillc                 C   s,  | t |  }| t |  }|j|||d\}}|jj|j|d}	|d ur|j|	}
|j|	}t|
dkr||
|k sJ t|dkr|||k sJ ||	}||	}|d ur||}||}t	
|| t	
|| |jdksJ |jdksJ |jdksJ |jdks(J d S )N)joinZ
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_indexZdiff_aZdiff_beaeb r$   _/var/www/ai-form-bot/venv/lib/python3.9/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 sV0    Y  |jj|j|d}||}||}d}tjt|d, |j||d}|j||d}W d    n1 s0    Y  t	|	| t	|
| d S )NNThe '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#   Zmsg2r$   r$   r%   test_align_fill_method7   s    4

,r2   c                 C   sr  | d d   }|   }|j|dd\}}d|d d< |d d dk rNJ |   }|j|ddd\}}d|d d< |r|d d dk rJ n|d d dk sJ |   }| d d   }|j|dd\}}d|d d< |d d dk rJ |   }| d d   }|j|ddd\}}d|d d< |rT|d d dk rnJ n|d d dk snJ d S )	N   leftr
   F)r
   copyright   r   )r6   r   anyr   )r   using_copy_on_writer   r   ra_rbr$   r$   r%   test_align_nocopy\   s.    r>   c                 C   s   | j | dd\}}|s8|j| ju s&J |j| ju s\J n$|j| jsJJ |j| js\J | j | dd\}}|j| jus~J |j| jusJ |j| jsJ |j| jsJ d S )NF)r6   T)r   r   is_)r   r:   r   r   r$   r$   r%   test_align_same_index   s    r@   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   r8   r   r   cnamesr   )r      Zint64)Zdtyper   r4   r5   r7   r   r+   )r   r+   r   r8            	   )r   r   r+   r+   )pd
MultiIndexZfrom_productrangeIndexr   npZaranger   r   r   nan)Zmidxidxs1s2Zres1lZres1rZres2lZres2rZexplexprZexp_idxr$   r$   r%   test_align_multiindex   s2     rU   )Zbackfillr)   r(   Z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 sf0    Y  t|| t	|| d S )Nr8   rF   g        )r   columnsr,   r-   )r'   )
r   rM   rK   Z	DataFramer   r/   r0   r   r   Zassert_frame_equal)r'   serZdfr1   Z
result_serZ	result_dfr$   r$   r%    test_align_with_dataframe_method   s    0rX   c                  C   sn   t ddddd} ttjdt| | d}|d}||\}}|j	j
tju sXJ |j	j
tju sjJ d S )	NZ2001r3   hz
US/Eastern)Zperiodsfreqtzr   rF   z
US/Central)r   r   rO   randomdefault_rngstandard_normalr   Z
tz_convertr   r   r[   r   utc)Zidx1rW   Zser_centralZnew1Z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)rZ   r   rF   r5   )r   r   rO   r\   r]   r^   r   r   )r   rngr   r$   r$   r%   test_align_periodindex   s    rc   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+   r8   r   rB   rC   rF   r+   r+   r   r8   rA   )r+   r8   r   )r   rB   r   r   rK   rL   from_tuplesr   r   r   )r4   r7   result_leftresult_rightexpected_rightexpected_leftr$   r$   r%   test_align_left_fewer_levels   s     rk   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+      r8   )r   drB   rC   rF   r+   rd   rA   )r+   rl   r8   r   )r   rm   rB   r   re   )r4   r7   rg   rh   rj   ri   r$   r$   r%   &test_align_left_different_named_levels   s    rn   )datetimer   numpyrO   ZpytestZpandasrK   r   r   r   Zpandas._testingZ_testingr   markZparametrizer&   r2   r>   r@   rU   rX   r`   rc   rk   rn   r$   r$   r$   r%   <module>   sF   		$#
