U
    >vf                  	   @   sr  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dddddg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 k	r|j|	}
|j|	}t|
dkr||
|k stt|dkr|||k st||	}||	}|d k	r|	|}|	|}t
|| t
|| |jdkst|jdkst|jdkst|jdks(td S )N)joinZ
fill_valuehowr   ts)slicealignindexr
   
differencelenreindexallAssertionError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%   J/tmp/pip-unpacked-wheel-vdrwu74i/pandas/tests/series/methods/test_align.py
test_align   s,    



r'   methodpadZbfilllimit   c                 C   s   | t |  }| t |  }|j||||d\}}	|jj|j|d}
||
}||
}|j||d}|j||d}t|| t|	| d S )N)r
   r(   r*   r   )r(   r*   )r   r   r   r
   r   r   r   r   )r   r   r   r   r(   r*   r   r   r    r!   r"   r#   r$   r%   r%   r&   test_align_fill_method7   s    

r,   c                 C   sr  | d d   }|   }|j|dd\}}d|d d< |d d dk rNt|   }|j|ddd\}}d|d d< |r|d d dk rtn|d d dk st|   }| d d   }|j|dd\}}d|d d< |d d dk rt|   }| d d   }|j|ddd\}}d|d d< |rT|d d dk rntn|d d dk sntd S )	N   leftr
   F)r
   copyright   r   )r0   r   anyr   r   )r   using_copy_on_writer   r   ra_rbr%   r%   r&   test_align_nocopyU   s.    r8   c                 C   s   | j | dd\}}|j| jks"t|j| jks2t| j | dd\}}|sj|j| jk	sXt|j| jk	stn |j| jkszt|j| jkstd S )NF)r0   T)r   r   r   )r   r4   r   r   r%   r%   r&   test_align_same_indexy   s    r9   c               	   C   s  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ddddddddg|
d
}t	
|| t	
|| tddddgd |
d
}	t	
|	| t	
|	| d S )Nr   r2   )r   r   cnamesr   )r      Zint64)Zdtyper   r.   r/   r1   r   r+            	   )pd
MultiIndexZfrom_productrangeZIndexr   npZaranger   r   r   nan)Zmidxidxs1s2Zres1lZres1rZres2lZres2rZexplexprZexp_idxr%   r%   r&   test_align_multiindex   s6       rL   ZbackfillZffillc                 C   sZ   t tdtdd}tjdtdtdd}|j|| d\}}t|| t|| d S )Nr2   r>   g        )r   columns)r(   )r   rE   rC   Z	DataFramer   r   r   Zassert_frame_equal)r(   serZdfZ
result_serZ	result_dfr%   r%   r&    test_align_with_dataframe_method   s
    rO   c                  C   sh   t ddddd} ttjt| | d}|d}||\}}|jj	t
jksRt|jj	t
jksdtd S )NZ2001r-   Hz
US/Eastern)Zperiodsfreqtzr>   z
US/Central)r   r   rF   randomrandnr   Z
tz_convertr   r   rR   r   utcr   )Zidx1rN   Zser_centralZnew1Znew2r%   r%   r&   %test_align_dt64tzindex_mismatched_tzs   s    
rV   c                 C   sB   t dddd}ttjt||d}|j|d d d | d d S )Nz1/1/2000z1/1/2010A)rQ   r>   r   r/   )r   r   rF   rS   rT   r   r   )r   rngr   r%   r%   r&   test_align_periodindex   s    rY   c                  C   s   t dgtjjdgddgdd} t dgtjjdgdd	dgdd}| |\}}t dgtjjd
gddd	gdd}t dgtjjd
gddd	gdd}t|| t|| d S )Nr   )r+   r2   r   r:   r;   r>   r+   r+   r   r2   r   )r+   r2   r   r   rC   rD   from_tuplesr   r   r   )r.   r1   result_leftresult_rightexpected_rightexpected_leftr%   r%   r&   test_align_left_fewer_levels   s         ra   c                  C   s   t dgtjjdgdddgdd} t dgtjjd	gdd
dgdd}| |\}}t dgtjjdgdddd
gdd}t dgtjjdgdddd
gdd}t|| t|| d S )Nr   )r+      r2   r   dr:   r;   r>   r+   rZ   r   )r+   r2   rb   r   r[   )r.   r1   r]   r^   r`   r_   r%   r%   r&   &test_align_left_different_named_levels   s&        rd   )datetimer   ZnumpyrF   ZpytestZpandasrC   r   r   r   Zpandas._testingZ_testingr   markZparametrizer'   r,   r8   r9   rL   rO   rV   rY   ra   rd   r%   r%   r%   r&   <module>   sF   		$#

