o
    i                  	   @   sh  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
g ddd Zdd Z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 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sJ |jdksJ |jdksJ 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&   a/var/www/edux/Edux_v2/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 |  }|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   s0  | d d   }|   }|j|dd\}}d|d d< |d d dk r'J |   }|j|ddd\}}d|d d< |d d dk sGJ |   }| d d   }|j|dd\}}d|d d< |d d dk rnJ |   }| d d   }|j|ddd\}}d|d d< |d d dk sJ d S )	N   leftr	   F)r	   copyright   r   )r2   r   anyr   )r   r   r   ra_rbr&   r&   r'   test_align_nocopyT   s&   r9   c                 C   sh   | j | dd\}}|j| ju sJ |j| ju sJ | j | dd\}}|j| jus*J |j| jus2J d S )NF)r2   T)r   r   )r   r   r   r&   r&   r'   test_align_same_indexr   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   r4   r   r   cnamesr   )r      int64)dtyper   r0   r1   r3   r   r-   )r   r-   r   r4            	   )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    rZ   )backfillr+   r*   ffillNc                 C   sZ   t tdtdd}tjdtdtdd}|j|| d\}}t|| t|| d S )Nr4   rB   g        )r   columns)r)   )r   rJ   rG   	DataFramer   r   r   assert_frame_equal)r)   serdf
result_ser	result_dfr&   r&   r'    test_align_with_dataframe_method   s
   rd   c                  C   sh   t ddddd} ttjt| | d}|d}||\}}|jj	t
jks)J |jj	t
jks2J d S )N2001r/   Hz
US/Eastern)periodsfreqtzrB   z
US/Central)r   r   rL   randomrandnr   
tz_convertr   r   ri   pytzUTC)idx1r`   ser_centralnew1new2r&   r&   r'   %test_align_dt64tzindex_mismatched_tzs   s   
rs   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)rh   rB   r   r1   )r   r   rL   rj   rk   r   r   )r   rngr   r&   r&   r'   test_align_periodindex   s   rv   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-   r4   r   r<   r=   rB   r-   r-   r   r4   r;   )r-   r4   r   )r   r<   r   r   rG   rH   from_tuplesr   r   r   )r0   r3   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-      r4   )r   dr<   r=   rB   r-   rw   r;   )r-   r4   r   r   )r   r<   r   r   rx   )r0   r3   rz   r{   r}   r|   r&   r&   r'   &test_align_left_different_named_levels   s   r   )numpyrL   pytestrm   pandasrG   r   r   r   pandas._testing_testingr   markparametrizer(   r.   r9   r:   rZ   rd   rs   rv   r~   r   r&   r&   r&   r'   <module>   sH    		
#

