o
    թZh%                  
   @   sB  d dl Zd dlZd dlmZ d dlZd dlmZ	 ej
dg ddd Zej
dg dd	d
 Zdd Zdd Zej
dd dgdd Zdd Zdd Zej
dddgddddddgdd Zej
ddejfejejfejdfgd d! Zej
d"d#ddejejfdejdejfejejejejfgd$d% ZdS )&    N)np_version_gte1p25
align_axis)r      indexcolumnsc                 C   s  t jg dddtjgg ddg dd}| }d|jd< d	|jd
< |j|| d}| dv rXt ddg}t j	ddgddgg}t jddtjtjgtjtjdd	gg||d}n+t j	ddgddgg}t ddg}t jdtjgdtjgtjdgtjd	gg||d}t
|| d S )Nabc      ?       @r   r         @col1Zcol2col3r   r
   r   r         @   r   r   )r   r   r   r   r   r   selfotherr   r   r   r   pd	DataFramenpnancopyloccompareIndex
MultiIndexZfrom_producttmassert_frame_equal)r   dfdf2resultindicesr   expected r,   ^/var/www/html/lang_env/lib/python3.10/site-packages/pandas/tests/frame/methods/test_compare.pytest_compare_axis
   s0   

"r.   zkeep_shape, keep_equal))TF)FT)TTc              	   C   s^  t jg dddtjgg ddg dd}| }d|jd< d	|jd
< |j|| |d}| rt g d}t j	g dddgg}|rZt jg dg dddtjtjdd	gg||d}nMt jddtjtjtjtjgtjtjtjtjtjtjgtjtjtjtjdd	gg||d}n!t ddg}t j	ddgddgg}t jg dg dg||d}t
|| d S )Nr   r   r   r   r   r   r
   r   r   r   )
keep_shape
keep_equal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
   r   r   r   )r/   r0   r'   r(   r)   r*   r   r+   r,   r,   r-   test_compare_various_formats*   sH   




r2   c                  C   s   t jg dddtjgg ddg dd} |  }d|jd< | |}t d	g}t j	d
gddgg}t jddgg||d}t
|| d S )Nr   r   r   r   r   r   r
   r   r   r   r   r   r   r   r   r'   r(   r)   r*   r   r+   r,   r,   r-   test_compare_with_equal_nulls`   s   

r4   c                  C   s   t jg dddtjgg ddg dd} |  }d|jd< tj|jd	< | |}t d
dg}t j	ddgddgg}t jddtjtjgtjtjdtjgg||d}t
|| d S )Nr   r   r   r   r   r   r
   r   r   r   r   r   r   r   r   r   r   r   r   r3   r,   r,   r-   !test_compare_with_non_equal_nullsq   s    

 r5   r   c                 C   sZ  t g dddtjgg dd}t jg dg dg|_t jg dg dg|_| }d	|j	d
< d|j	d< |j
|| d}| dkrrt jg dg dg dg}t jddgddgg}dtjgd	tjgtjdgtjdgg}n+t jddgddgg}t jg dg dg dg}dd	tjtjgtjtjddgg}t j|||d}t|| d S )Nr   r   r   r   r   )r   r   r	   )xr6   yr1   r
   )r   r   r   )r   r   r   r   )r6   r6   r7   r7   )r   r   r   r   )r   r   r   r   r   r	   r   r   r   r6   r7   r   )r   r   r	   r	   )r   r   r   r   )datar   r   )r   r   r   r   r$   Zfrom_arraysr   r   r    Zilocr"   r%   r&   )r   r'   r(   r)   r*   r   r8   r+   r,   r,   r-   test_compare_multi_index   s2   

& r9   c                  C   s   d} t jt| d# tjg dg dd}tjg dg dd}|| W d    n1 s/w   Y  d} t jt| d ttd}ttd}|| W d    d S 1 s^w   Y  d S )	NzQCan only compare identically-labeled \(both index and columns\) DataFrame objectsmatch)r   r      r   )r   )r   r	   d)r<   r<   )r   r   )	pytestraises
ValueErrorr   r   r"   r   ZonesZzeros)msgdf1r(   r,   r,   r-   test_compare_unaligned_objects   s   "rC   c                  C   s   t g dddtjgg dd} t g dddtjgddtjgd}| j|dd}t d	tjd
dtjd
tjdd
tjtjd
d}t|| d S )Nr   r   r   r   r   r
   r	   r
   )leftrightresult_namesr   )r   r   r
   r   ))r   rE   )r   rF   )r   rE   )r   rF   )r   r   r   r   r"   r%   r&   )rB   r(   r)   r+   r,   r,   r-   test_compare_result_names   s$   




rI   rH   r   ZHKr<   )23r   c                 C   s   t g dddtjgg dd}t g dddtjgddtjgd}tjtdt|  dd	 |j|| d
 W d    d S 1 sDw   Y  d S )Nr   r   r   r   r   rD   zPassing 'result_names' as a z= is not supported. Provide 'result_names' as a tuple instead.r:   rG   )	r   r   r   r   r>   r?   	TypeErrortyper"   )rH   rB   r(   r,   r,   r-   test_invalid_input_result_names   s   

"rN   z	val1,val2   c                 C   s   d| g}t jd|gdd}t |ddgd}t |ddgd}t ||tjtjd}| t ju r=|t ju r=tj|jd	< | t ju retretj	t
d
d |j|dd}W d    d S 1 s^w   Y  d S |j|dd}t|| d S )Nr   r   Int64Zdtyper   r   r   r	   r   r   )r   r   )r	   r   )r	   r   )r   rT   z boolean value of NA is ambiguousr:   Tr/   )r   Seriesr   r   r   NAr!   r   r>   r?   rL   r"   r%   r&   )Zval1Zval2ZarrZserrB   r(   r+   r)   r,   r,   r-   test_compare_ea_and_np_dtype   s&   "rX   z$df1_val,df2_val,diff_self,diff_other)rO   r<   rO   r<   c                 C   s   t t j| t jgddddgd}| }||jd< t t j|t jgddt j|t jgddtjtjd}|j|dd	}t	
|| d S )
NrP   rQ   r   r   rR   )r   r   rS   TrU   )r   r   rV   rW   r    r!   r   r   r"   r%   r&   )Zdf1_valZdf2_valZ	diff_selfZ
diff_otherrB   r(   r+   r)   r,   r,   r-   !test_compare_nullable_int64_dtype  s   $
rY   )numpyr   r>   Zpandas.compat.numpyr   Zpandasr   Zpandas._testingZ_testingr%   markZparametrizer.   r2   r4   r5   r9   rC   rI   rN   rW   rX   rY   r,   r,   r,   r-   <module>   sT    

	-
"


	