U
    >vf$                  
   @   sH  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d dddgdd Zej
d	d
ddg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   indexcolumnsc                 C   s  t jdddgddtjgdddgddd	d
gd}| }d|jd< d|jd< |j|| d}| dkrt 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}nVt 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      ?       @      @col1col2col3r   r   r   r   r   r         @   r   r   )r   r   r   r   selfotherr   r   pd	DataFramenpnancopyloccompareZIndex
MultiIndexZfrom_producttmassert_frame_equal)r   dfdf2resultindicesr   expected r*   K/tmp/pip-unpacked-wheel-vdrwu74i/pandas/tests/frame/methods/test_compare.pytest_compare_axis
   s0    

"r,   zkeep_shape, keep_equal)TF)FT)TTc              	   C   s  t jdddgddtjgdddgddd	d
gd}| }d|jd< d|jd< |j|| |d}| r(t dddg}t j	dd	d
gddgg}|rt jddddddgddddddgddtjtjddgg||d}nVt 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}nJt ddg}t j	dd
gddgg}t jddddgddddgg||d}t
|| d S )Nr   r   r	   r
   r   r   r   r   r   r   r   r   r   r   )
keep_shape
keep_equalr   r   r   r   r   r   r   )r-   r.   r%   r&   r'   r(   r   r)   r*   r*   r+   test_compare_various_formats*   sL    




  r/   c                  C   s   t jdddgddtjgdddgddd	d
g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*   r*   r+   test_compare_with_equal_nulls`   s    

r1   c                  C   s   t jdddgddtjgdddgddd	d
g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   r0   r*   r*   r+   !test_compare_with_non_equal_nullsq   s     

 r2   c                 C   s~  t dddgddtjgdddgd}t jdddgdd	d
gg|_t jdddgdddgg|_| }d|j	d< d|j	d< |j
|| d}| dkrt jddddgddddgddddg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}nbt jddgddgg}t jddddgddd
d
gddddg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   r   r   xyr   r   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   r5   r)   r*   r*   r+   test_compare_multi_index   s2    

 &


 r6   c               	   C   s   d} t jt| dD tjdddgdddgd	}tjdddgddd
gd	}|| W 5 Q R X d} t jt| d0 ttd}ttd}|| W 5 Q R X d S )NzQCan only compare identically-labeled \(both index and columns\) DataFrame objectsmatchr   r      r   r   r	   )r   d)r9   r9   )r   r   )	pytestraises
ValueErrorr   r   r!   r   Zoneszeros)msgdf1r&   r*   r*   r+   test_compare_unaligned_objects   s    rA   c                  C   s   t dddgddtjgdddgd} t dddg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   )leftrightresult_names)r   r   ))r   rB   )r   rC   )r   rB   )r   rC   )r   r   r   r   r!   r#   r$   )r@   r&   r'   r)   r*   r*   r+   test_compare_result_names   s$    




rF   rE   r   ZHKr9   )23r   c              	   C   s   t dddgddtjgdddgd}t dddgddtjgddtjgd}tjtdt|  d	d
 |j|| d W 5 Q R X d S )Nr   r   r	   r
   r   r   r   zPassing 'result_names' as a z= is not supported. Provide 'result_names' as a tuple instead.r7   rD   )	r   r   r   r   r;   r<   	TypeErrortyper!   )rE   r@   r&   r*   r*   r+   test_invalid_input_result_names   s    

rK   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krtrtjt	d	d
 |j
|dd}W 5 Q R X n|j
|dd}t|| d S )Nr   r   Int64Zdtyper
   r   r   r   )r   r   )r   r   )r   r   )r   r   z boolean value of NA is ambiguousr7   Tr-   )r   Seriesr   r   r   NAr   r;   r<   rI   r!   r#   r$   )Zval1Zval2ZarrZserr@   r&   r)   r'   r*   r*   r+   test_compare_ea_and_np_dtype   s     rT   z$df1_val,df2_val,diff_self,diff_other)rL   r9   rL   r9   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 )
NrM   rN   r
   r   rO   )r   r   rP   TrQ   )r   r   rR   rS   r   r    r   r   r!   r#   r$   )Zdf1_valZdf2_valZ	diff_selfZ
diff_otherr@   r&   r)   r'   r*   r*   r+   !test_compare_nullable_int64_dtype  s    $
rU   )Znumpyr   r;   Zpandas.compat.numpyr   Zpandasr   Zpandas._testingZ_testingr#   markZparametrizer,   r/   r1   r2   r6   rA   rF   rK   rS   rT   rU   r*   r*   r*   r+   <module>   sX   
	
-
"

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