U
    sVc                     @   s   d dl Zd dl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d d! ZdS )"    N
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-xj8nt62q/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    

r0   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   r/   r)   r)   r*   !test_compare_with_non_equal_nullso   s     

 r1   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   r4   r(   r)   r)   r*   test_compare_multi_index   s2    

 &


 r5   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 )Nz6Can only compare identically-labeled DataFrame objectsmatchr   r      r   r   r   )r   d)r8   r8   )r   r   )	pytestraises
ValueErrorr   r   r    r   Zoneszeros)msgdf1r%   r)   r)   r*   test_compare_unaligned_objects   s    r@   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   rA   )r   rB   )r   rA   )r   rB   )r   r   r   r   r    r"   r#   r?   r%   r&   r(   r)   r)   r*   test_compare_result_names   s$    




rF   rD   r   ZHKr8   )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.r6   rC   )	r   r   r   r   r:   r;   	TypeErrortyper    )rD   r?   r%   r)   r)   r*   test_invalid_input_result_names   s    

rK   c                  C   s   t ddgddgd} t t jdt jgddddgd}| j|d	d
}t dtjgt jdt jgddtjtjd}t|| d S )Nr      r	   r   )r   r   r   ZInt64)ZdtypeT)r,   ))r   r   )r   r   )r   r   )r   r   )	r   r   ZSeriesZNAr    r   r   r"   r#   rE   r)   r)   r*   test_compare_ea_and_np_dtype   s    $rM   )Znumpyr   r:   Zpandasr   Zpandas._testingZ_testingr"   markZparametrizer+   r.   r0   r1   r5   r@   rF   rK   rM   r)   r)   r)   r*   <module>   s<   
	
-
"

