o
    Û­j�%  ã                
   @   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.   úd/var/www/html/CropPilot/venv/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�}| r†t  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    
þ
	-
"ûþ

þ
üþ	