a
    é´«jF  ã                   @   sZ   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	m
Z
 d dlmZ G dd„ dƒZdS )é    )ÚtimezoneN)Ú	DataFrameÚIndexÚSeriesÚ
date_rangec                   @   s   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zej dddejgddegddegddejgg¡dd„ ƒZdd„ Zdd„ Zdd„ Zdd„ Zd d!„ Zd"d#„ Zd$d%„ Zd&d'„ Zej d(d)d*g¡ej d+g d,¢¡ej d-d.d/g¡ej d0g d1¢¡ej d2ed3ƒed4ƒged.ƒed.ƒgg¡ej d5ed6d7ƒed8d7ƒged.ƒed.ƒgg¡ej d9d/d7g¡d:d;„ ƒƒƒƒƒƒƒZd<d=„ Zd>d?„ Zd@dA„ Zd7S )BÚTestDataFrameAlignc              	   C   s–   t ddtjdgiƒ}d}d}tjt|d��X tjt|d��* |j	|j
d d d… dd	� W d   ƒ n1 sj0    Y  W d   ƒ n1 sˆ0    Y  d S )
NÚAé   é   zInvalid fill methodz/The 'method', 'limit', and 'fill_axis' keywords©ÚmatchéÿÿÿÿZasfreq)Úmethod)r   ÚnpÚnanÚpytestÚraisesÚ
ValueErrorÚtmÚassert_produces_warningÚFutureWarningÚalignÚiloc)ÚselfÚdfÚmsgZmsg2© r   úd/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/pandas/tests/frame/methods/test_align.pyÚtest_align_asfreq_method_raises   s    z2TestDataFrameAlign.test_align_asfreq_method_raisesc                 C   sL  t ddddd�}t ddddd�}ttj d¡ t|ƒdf¡|ƒ}ttj d¡ t|ƒdf¡|ƒ}| |¡\}}|jj	|jj	ks‚J ‚|jj	|jj	ks–J ‚| 
d	¡}| |¡\}}|jj	tju sÀJ ‚|jj	tju sÒJ ‚|j|d
 d
d�\}}|jj	tju súJ ‚|jj	tju �sJ ‚|d
 j|d
d� |jj	tju �s4J ‚|jj	tju �sHJ ‚d S )NZ2001é   Úhz
US/Eastern)ZperiodsÚfreqÚtzZ2hr
   é   z
US/Centralr   ©Úaxis)r   r   r   ÚrandomZdefault_rngZstandard_normalÚlenr   Úindexr"   Z
tz_convertr   Úutc)r   Zidx1Zidx2Údf1Údf2Znew1Znew2Zdf1_centralr   r   r   Útest_frame_align_aware   s"      
z)TestDataFrameAlign.test_frame_align_awarec           
      C   sN  |  |¡\}}|j|jusJ ‚|j |dd�\}}|sF|j|ju sVJ ‚n|j|jusVJ ‚|jd d…d d…f }|j |ddd�\}}t |j|j¡ |j |j¡}|j |¡}| 	|¡j
}|dk ¡ sÆJ ‚|j |ddd	�\}}t |j|j¡ t |j|j¡ t |j|j¡ |jd d…d d…f  ¡ }|j |d
d�\}}t |j|j¡ t |j|j¡ |j |j¡}|j |¡}| 	|¡j
}|dk ¡ �sŽJ ‚|j |dd
d	�\}}t |j|j¡ d}	tjt|	d��& |j |dd
dd�\}}W d   ƒ n1 �sò0    Y  t |j|j¡ d}	tjt|	d��6 |j |jd d …df dd
d d d�\}}W d   ƒ n1 �s\0    Y  t |jtg ƒ |jj¡¡ d}	tjt|	d��6 |j |jd d …df dd
d dd�\}}W d   ƒ n1 �sÒ0    Y  t |jtg ƒ |jj¡¡ d}	tjt|	d��. |j |jdd d…f ddd	� W d   ƒ n1 �s@0    Y  d S )NF)Úcopyéûÿÿÿr#   r   r   )r%   Ú
fill_valueÚright)Újoinr%   r	   r$   ÚinnerúQThe 'method', 'limit', and 'fill_axis' keywords in DataFrame.align are deprecatedr   Úpad©r1   r%   r   ©r1   r%   r   r/   z)No axis named 2 for object type DataFramer
   )r   Z_mgrr   r   Úassert_index_equalÚcolumnsr(   r1   Ú
differenceÚreindexÚvaluesÚallr-   r   r   r   ÚastypeÚdtyper   r   r   )
r   Úfloat_frameZusing_copy_on_writeÚafÚbfÚotherZjoin_idxZdiff_aZdiff_a_valsr   r   r   r   Útest_align_float3   sb    ÿ6ÿÿ*ÿÿ*z#TestDataFrameAlign.test_align_floatc                    sä   |j }ttt|ƒƒ|d�‰ |jˆ dd�\}}t |j |j ¡ t |j |j ¡ t|tƒsZJ ‚d}tjt	|d��" |jˆ dd�\}}W d   ƒ n1 s”0    Y  t |j |j ¡ ‡ fdd	„|j
D ƒ}t||j |j
d
�}t ||¡ d S )N©r(   r   r$   z=The 'broadcast_axis' keyword in DataFrame.align is deprecatedr   r	   )Zbroadcast_axisc                    s   i | ]
}|ˆ “qS r   r   )Ú.0Úc©Úsr   r   Ú
<dictcomp>�   ó    zCTestDataFrameAlign.test_align_frame_with_series.<locals>.<dictcomp>©r(   r8   )r(   r   Úranger'   r   r   r7   Ú
isinstancer   r   r8   r   Úassert_frame_equal)r   r?   ÚidxÚleftr0   r   Úexpectedr   rG   r   Útest_align_frame_with_series   s    0
ÿz/TestDataFrameAlign.test_align_frame_with_seriesc                 C   s†   t g d¢g d¢dœƒ}||d dk }t ddggdgddgd	�}t ||¡ | |d dkd
¡}t g d¢g d¢dœƒ}t ||¡ d S )N©r	   r
   r#   )é   r   é   ©ÚaÚbrW   r
   r   r	   rX   rK   r   )r   r
   r   )r   r   r   )r   r   rN   Úwhere)r   r   ÚresultrQ   r   r   r   Útest_align_series_condition“   s    z.TestDataFrameAlign.test_align_series_conditionc                 C   sp   t tdƒg d¢d�}d}tjt|d��& |j|dddd	�\}}W d   ƒ n1 sR0    Y  t |j|j¡ d S )
Nr   ©r   ÚBÚCrK   r3   r   r2   r	   r4   r5   )r   rL   r   r   r   r   r7   r8   )r   Z	int_framerB   r   r@   rA   r   r   r   Útest_align_intž   s    ÿ4z!TestDataFrameAlign.test_align_intc                 C   s\   d}t jt|d��& |j|dddd�\}}W d   ƒ n1 s>0    Y  t  |j|j¡ d S )Nr3   r   r2   r	   r4   r5   )r   r   r   r   r7   r8   )r   Zfloat_string_framer   r@   rA   r   r   r   Útest_align_mixed_typeª   s    ÿÿ(z(TestDataFrameAlign.test_align_mixed_typec                 C   s‚   t tdƒg d¢d�}d}tjt|d��6 |j|jd d …df ddd dd	�\}}W d   ƒ n1 sb0    Y  t |jt	g ƒ¡ d S ©
Nr   r\   rK   r3   r   r   r2   r	   r6   ©
r   rL   r   r   r   r   r   r7   r(   r   )r   Zmixed_float_framerB   r   r@   rA   r   r   r   Útest_align_mixed_floatµ   s    ÿÿ(z)TestDataFrameAlign.test_align_mixed_floatc                 C   s‚   t tdƒg d¢d�}d}tjt|d��6 |j|jd d …df ddd dd	�\}}W d   ƒ n1 sb0    Y  t |jt	g ƒ¡ d S ra   rb   )r   Zmixed_int_framerB   r   r@   rA   r   r   r   Útest_align_mixed_intÃ   s    ÿÿ(z'TestDataFrameAlign.test_align_mixed_intzl_ordered,r_ordered,expectedTFc                 C   s¶   t tjddd�ttdƒƒ tjtdƒ|d�¡dœƒ d¡}t tjd	dd�ttd
ƒƒ tjtdƒ|d�¡dœƒ d¡}| 	|¡\}}t
|j|ƒs’J ‚t
|j|ƒs¢J ‚t |j|j¡ d S )NrU   Úint64©r>   ZaabbcaZcab)Zordered)r   r]   r]   r   Zbabca)r   r   Úaranger   Úlistr=   ÚpdZCategoricalDtypeZ	set_indexr   rM   r(   r   r7   )r   Z	l_orderedZ	r_orderedrQ   Zdf_1Zdf_2Z	aligned_1Z	aligned_2r   r   r   Útest_align_categoricalÐ   s,    ÿþÿùÿþÿù	z)TestDataFrameAlign.test_align_categoricalc                 C   st  t jjtdƒtdƒtdƒgdd�}t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#   )rW   rX   rF   )ÚnamesrX   ©Únameé   re   rf   rD   rP   )r1   r0   r   r	   )r   r	   r
   r#   rU   é   é   é	   )r   r   r	   r	   )ri   Ú
MultiIndexÚfrom_productrL   r   r   r   rg   r   r   rN   r   )r   ZmidxrO   r*   r+   Zres1lZres1rZres2lZres2rZexplÚexprZexp_idxr   r   r   Útest_align_multiindexñ   s2    ÿ ÿz(TestDataFrameAlign.test_align_multiindexc                 C   sÚ   t g d¢g d¢dœtdƒd�}tg d¢tdƒdd�}|j|d	d
�\}}t dtjdtjdgdtjdtjdgdœtdƒd�}tddtjdtjgtdƒdd�}t ||¡ t ||¡ | |¡\}}t ||¡ t ||¡ d S )N)r	   r#   r   rV   ZACErD   ©r	   r
   rT   ZABDÚx©r(   rm   r   r$   r	   r#   r   ZABCDEr
   rT   )	r   rh   r   r   r   r   r   rN   Úassert_series_equal)r   r   rH   Zres1Zres2Zexp1Zexp2r   r   r   Útest_align_series_combinations  s    $þ z1TestDataFrameAlign.test_align_series_combinationsc                 C   sš   t g d¢dd�}t ddgdd�}tddg|dd�}td	t d
¡itj ||g¡d�}tddgd |jdd�}|j	|dd�\}}t
 ||¡ t
 ||¡ d S )NrS   Úfoorl   r	   r
   ÚbarÚ
foo_seriesrx   ÚcolrU   rD   r#   r   r$   ©r   r   r   r   rg   ri   rr   rs   r(   r   r   rN   ry   ©r   Ú	foo_indexÚ	bar_indexÚseriesr   Z
expected_rZresult_lZresult_rr   r   r   Ú7test_multiindex_align_to_series_with_common_index_level(  s    þzJTestDataFrameAlign.test_multiindex_align_to_series_with_common_index_levelc                 C   s¦   t g d¢dd�}t ddgdd�}tg d¢t g d¢dd�dd	�}td
t d¡itj ||g¡d�}tddgd |jdd	�}|j	|dd�\}}t
 ||¡ t
 ||¡ d S )NrS   r{   rl   r	   r
   r|   ©r	   r
   r#   rT   r}   rx   r~   rU   rD   r#   r   r$   r   r€   r   r   r   ÚGtest_multiindex_align_to_series_with_common_index_level_missing_in_left9  s    ÿþzZTestDataFrameAlign.test_multiindex_align_to_series_with_common_index_level_missing_in_leftc                 C   s®   t g d¢dd�}t g d¢dd�}tddgt ddgdd�dd	�}td
t d¡itj ||g¡d�}tddtjtjgd |j	dd	�}|j
|dd�\}}t ||¡ t ||¡ d S )NrS   r{   rl   r…   r|   r	   r
   r}   rx   r~   rn   rD   r#   r   r$   ©r   r   r   r   rg   ri   rr   rs   r   r(   r   r   rN   ry   r€   r   r   r   ÚHtest_multiindex_align_to_series_with_common_index_level_missing_in_rightL  s    þÿz[TestDataFrameAlign.test_multiindex_align_to_series_with_common_index_level_missing_in_rightc                 C   sª   t g d¢dd�}t g d¢dd�}tg d¢t g d¢dd�dd�}td	t d
¡itj ||g¡d�}tdtjdgd |j	dd�}|j
|dd�\}}t ||¡ t ||¡ d S )NrS   r{   rl   )r	   r#   rT   r|   rv   r}   rx   r~   rq   rD   r	   r#   r   r$   r‡   r€   r   r   r   ÚGtest_multiindex_align_to_series_with_common_index_level_missing_in_both_  s    ÿþzZTestDataFrameAlign.test_multiindex_align_to_series_with_common_index_level_missing_in_bothc                 C   s¬   t g d¢dd�}t ddgdd�}tddg|dd�}tt d	¡ d
d¡tj ||g¡d�}g d¢|_	tddgd |j
dd�}|j|dd�\}}t ||¡ t |j	|j	¡ d S )NrS   r{   rl   r	   r
   r|   r}   rx   é   rU   r#   rD   )ÚcfooZcbarr‹   r   r$   )r   r   r   r   rg   Úreshaperi   rr   rs   r8   r(   r   r   ry   r7   )r   r�   r‚   rƒ   r   rQ   Zresult_leftZresult_rightr   r   r   ÚGtest_multiindex_align_to_series_with_common_index_level_non_unique_colsr  s    þ
zZTestDataFrameAlign.test_multiindex_align_to_series_with_common_index_level_non_unique_colsc                 C   s^   t t d¡ d¡ƒ}tt d¡ƒ}tjtdd�� | |¡ W d   ƒ n1 sP0    Y  d S )Né2   )é
   r   r   zaxis=0 or 1r   )	r   r   rg   rŒ   r   r   r   r   r   )r   r   rƒ   r   r   r   Ú)test_missing_axis_specification_exception„  s    z<TestDataFrameAlign.test_missing_axis_specification_exceptionr   r4   Zbfillr%   )r   r	   NÚ	fill_axisr   r	   Úhow)r2   ÚouterrP   r0   Ú
left_slicerT   r�   Úright_slicer
   NrU   Úlimitc	              	   C   st  |}	|	j |d |d f }
|	j |d |d f }d}tjt|d��* |
j||||||d�\}}W d   ƒ n1 sr0    Y  d\}}|
| }}|d u sž|dkrÈ|
jj|j|d�}|j|d�}|j|d�}|d u sÚ|dk�r|
jj|j|d�}|j|d	�}|j|d	�}d
}tjt|d��0 |j	|||d�}|j	|||d�}W d   ƒ n1 �sN0    Y  t 
||¡ t 
||¡ d S )Nr   r	   r3   r   )r%   r1   r   r–   r‘   )NN)r’   rD   )r8   z,DataFrame.fillna with 'method' is deprecated)r%   r   r–   )r   r   r   r   r   r(   r1   r:   r8   ZfillnarN   )r   r’   r   r%   r‘   r?   r”   r•   r–   ÚframerP   r0   r   ZaaÚabZ
join_indexZjoin_columnsZeaZebr   r   r   Útest_align_fill_method‹  s<    ÿú(	
0z)TestDataFrameAlign.test_align_fill_methodc                 C   sR   t dddgiƒ}tdgdd�}| ¡ }|j|dd�\}}d|jd< t ||¡ d S )Nr   r	   r
   rl   r$   éd   )r   r   r-   r   r   r   ry   )r   r   ÚserrQ   rZ   rB   r   r   r   Útest_align_series_check_copyÉ  s    
z/TestDataFrameAlign.test_align_series_check_copyc                 C   sb   t dddgiƒ}tddgƒ}|j|dd�\}}t ||¡ t ||¡ ||usRJ ‚||us^J ‚d S )NrW   r	   r
   r#   rT   r   r$   ©r   r   r   r   rN   ry   ©r   r   r›   rZ   Zresult2r   r   r   Ú%test_align_identical_different_objectÒ  s    z8TestDataFrameAlign.test_align_identical_different_objectc                 C   sf   t dddgiƒ}tdgdgd�}|j|dd�\}}t ||¡ t ||¡ ||usVJ ‚||usbJ ‚d S )NrW   r	   r
   rD   r$   r�   rž   r   r   r   Ú-test_align_identical_different_object_columnsÜ  s    z@TestDataFrameAlign.test_align_identical_different_object_columns) Ú__name__Ú
__module__Ú__qualname__r   r,   rC   rR   r[   r_   r`   rc   rd   r   ÚmarkZparametrizeri   ZCategoricalIndexr   rj   ru   rz   r„   r†   rˆ   r‰   r�   r�   Úslicer™   rœ   rŸ   r    r   r   r   r   r      s^   L

üþ	
#þþþþ+	
r   )Údatetimer   Únumpyr   r   Zpandasri   r   r   r   r   Zpandas._testingZ_testingr   r   r   r   r   r   Ú<module>   s   