U
    *if                  	   @   s^  d dl 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S )    N)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$   Y/home/mars/bis/venv/lib/python3.8/site-packages/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_method6   s    

r+   c                 C   s2  | d d   }|   }|j|dd\}}d|d d< |d d dk rNt|   }|j|ddd\}}d|d d< |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< |d d dk s.td S )	N   leftr	   F)r	   copyright   r   )r/   r   anyr   r   )r   r   r   ra_rbr$   r$   r%   test_align_nocopyT   s&    r6   c                 C   sh   | j | dd\}}|j| jks"t|j| jks2t| j | dd\}}|j| jk	sTt|j| jk	sdtd S )NF)r/   T)r   r   r   )r   r   r   r$   r$   r%   test_align_same_indexr   s    r7   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   r1   )r   r   c)namesr   )r      Zint64)Zdtyper   r-   r.   r0   r   r*            	   )pdZ
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|   s6       rI   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 )Nr1   r;   g        )r   columns)r'   )r   rA   r@   Z	DataFramer   r   r   Zassert_frame_equal)r'   serZdfZ
result_serZ	result_dfr$   r$   r%    test_align_with_dataframe_method   s
    rL   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   rC   randomrandnr   Z
tz_convertr   r   rO   pytzUTCr   )Zidx1rK   Zser_centralZnew1Znew2r$   r$   r%   %test_align_dt64tzindex_mismatched_tzs   s    
rT   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)rN   r;   r   r.   )r   r   rC   rP   rQ   r   r   )r   rngr   r$   r$   r%   test_align_periodindex   s    rW   )numpyrC   ZpytestrR   Zpandasr@   r   r   r   Zpandas._testingZ_testingr   markZparametrizer&   r+   r6   r7   rI   rL   rT   rW   r$   r$   r$   r%   <module>   sB   		
#

