o
    _~#g%                  
   @   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         @col1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
MultiIndexfrom_producttmassert_frame_equal)r   dfdf2resultindicesr   expected r.   /var/www/static.ux5.de/https/Moving-Object-Detection-with-OpenCV/env/lib/python3.10/site-packages/pandas/tests/frame/methods/test_compare.pytest_compare_axis
   s0   

"r0   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   )r1   r2   r)   r*   r+   r,   r   r-   r.   r.   r/   test_compare_various_formats*   sH   




r4   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   

r6   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   r5   r.   r.   r/   !test_compare_with_non_equal_nullsq   s    

 r7   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	   )xr8   yr3   r
   )r   r   r   )r   r   r   r   )r8   r8   r9   r9   )r   r   r   r   )r   r   r   r   r   r	   r   r   r   r8   r9   r   )r   r   r	   r	   )r   r   r   r   )datar   r   )r   r   r   r    r%   from_arraysr   r   r!   ilocr#   r'   r(   )r   r)   r*   r+   r,   r   r:   r-   r.   r.   r/   test_compare_multi_index   s2   

& r=   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   oneszeros)msgdf1r*   r.   r.   r/   test_compare_unaligned_objects   s   "rI   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   rK   )r   rL   )r   rK   )r   rL   )r   r   r   r    r#   r'   r(   )rH   r*   r+   r-   r.   r.   r/   test_compare_result_names   s$   




rO   rN   r   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   rJ   zPassing 'result_names' as a z= is not supported. Provide 'result_names' as a tuple instead.r>   rM   )	r   r   r   r    rB   rC   	TypeErrortyper#   )rN   rH   r*   r.   r.   r/   test_invalid_input_result_names   s   

"rU   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dtyper   r   r   r	   r   r   )r   r   )r	   r   )r	   r   )r   r\   z boolean value of NA is ambiguousr>   Tr1   )r   Seriesr   r   r    NAr"   r   rB   rC   rS   r#   r'   r(   )val1val2arrserrH   r*   r-   r+   r.   r.   r/   test_compare_ea_and_np_dtype   s&   "rd   z$df1_val,df2_val,diff_self,diff_other)rV   r@   rV   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 )
NrW   rX   r   r   rZ   )r   r   r[   Tr]   )r   r   r^   r_   r!   r"   r   r    r#   r'   r(   )df1_valdf2_val	diff_self
diff_otherrH   r*   r-   r+   r.   r.   r/   !test_compare_nullable_int64_dtype  s   $
ri   )numpyr   rB   pandas.compat.numpyr   pandasr   pandas._testing_testingr'   markparametrizer0   r4   r6   r7   r=   rI   rO   rU   r_   rd   ri   r.   r.   r.   r/   <module>   sT    

	-
"

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