
    bMh%              
          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             Zej
                            dg d          d             Zd	 Zd
 Zej
                            dd dg          d             Zd Zd Zej
                            dddgddddddg          d             Zej
                            ddej        fej        ej        fej        dfg          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             ZdS )    N)np_version_gte1p25
align_axis)r      indexcolumnsc                 &   t          j        g dddt          j        gg ddg d          }|                                }d|j        d<   d	|j        d
<   |                    ||           }| dv rt          j        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||          }nt           j        	                    ddgddgg          }t          j        ddg          }t          j        dt          j        gdt          j        gt          j        dgt          j        d	gg||          }t          j        ||           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   expecteds          g/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/frame/methods/test_compare.pytest_compare_axisr1   
   s    
 3RV*<oooVV(((
 
 
B ''))CCGICGIZZ
Z33F^##(Aq6""-,,vv.>@Q-RSS<3'"&"&#s)CD
 
 
 -,,q!fvw6G-HII(FF+,,<26]S"&MBFC=263-H
 
 

 &(+++++    zkeep_shape, keep_equal))TF)FT)TTc           
          t          j        g dddt          j        gg ddg d          }|                                }d|j        d<   d	|j        d
<   |                    || |          }| r0t          j        g d          }t           j        	                    g dddgg          }|r:t          j        g dg dddt          j        t          j        dd	gg||          }nt          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||          }nXt          j        ddg          }t           j        	                    ddgddgg          }t          j        g dg dg||          }t          j        ||           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   )r4   r5   r+   r,   r-   r.   r   r/   s           r0   test_compare_various_formatsr7   *   s    
 3RV*<oooVV(((
 
 
B ''))CCGICGIZZ
zZJJF 
(999%%-,,%%%'89
 
  	|222222#rvrvsC8
   HH |#rvrvrvrv>VRVRVRVRVRVDVRVRVRVS#>
   HH (Aq6""-,,vv.>@Q-RSS<!!!#7#7#78QX
 
 
 &(+++++r2   c                     t          j        g dddt          j        gg ddg d          } |                                 }d|j        d<   |                     |          }t          j        d	g          }t           j        	                    d
gddgg          }t          j        ddgg||          }t          j        ||           d S )Nr	   r   r   r   r   r   r   r   r   r   r   r   r
   r   r   r+   r,   r-   r.   r   r/   s         r0   test_compare_with_equal_nullsr:   `   s     
 3RV*<oooVV(((
 
 
B ''))CCGIZZ__FhsmmGm((6(VW4E)FGGG|c3ZLIIIH&(+++++r2   c                  4   t          j        g dddt          j        gg ddg d          } |                                 }d|j        d<   t          j        |j        d	<   |                     |          }t          j        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||          }t          j        ||           d S )Nr	   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r
   r   r   r   r9   s         r0   !test_compare_with_non_equal_nullsr<   q   s    
 3RV*<oooVV(((
 
 
B ''))CCGICGIZZ__Fh1vGm((66*:VW<M)NOOG|
sBFBF	#bfbfc26%BC  H
 &(+++++r2   r   c                    t          j        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<   |
                    ||           }| dk    rt           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}nt           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        |||          }t          j        ||           d S )Nr	   r   r   r   r   )r
   r
   r   )xr>   yr6   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   r   r   )datar   r   )r   r    r!   r"   r'   from_arraysr   r   r#   ilocr%   r)   r*   )r   r+   r,   r-   r.   r   r@   r/   s           r0   test_compare_multi_indexrC      s   	 3RV*<oooVV
 
B **OOO=U=U=U+VWWBJ}((///999)EFFBH
''))CCHTNCHTNZZ
Z33FQ-++!!!<<<1S1S1ST
 
 -++c3Z&&9I,JKKbfRV}rvsmbfc]K-++c3Z!Q,@AA-++$$$000222
 
 c2626*RVRVS#,FG|WgFFFH&(+++++r2   c                  0   d} t          j        t          |           5  t          j        g dg d          }t          j        g dg d          }|                    |           d d d            n# 1 swxY w Y   d} t          j        t          |           5  t          j        t          j        d                    }t          j        t          j        d                    }|                    |           d d d            d S # 1 swxY w Y   d S )	NzQCan only compare identically-labeled \(both index and columns\) DataFrame objectsmatch)r   r      r	   )r   )r
   r   d)rG   rG   )r   r   )	pytestraises
ValueErrorr   r    r%   r!   oneszeros)msgdf1r,   s      r0   test_compare_unaligned_objectsrP      s   	  
z	-	-	-  l999OOO<<<l999OOO<<<C              	  
z	-	-	-  l276??++l28F++,,C                 s%   A
A44A8;A8A"DDDc                     t          j        g dddt          j        gg dd          } t          j        g dddt          j        gddt          j        gd          }|                     |d          }t          j        d	t          j        d
dt          j        d
t          j        dd
t          j        t          j        d
d          }t          j        ||           d S )Nr	   r   r   r   r   r   r   r   )leftrightresult_namesr
   )r   r   r   r   ))r   rS   )r   rT   )r   rS   )r   rT   )r   r    r!   r"   r%   r)   r*   )rO   r,   r-   r/   s       r0   test_compare_result_namesrW      s    
, 3RV*<oooVV C ,#OO#rv&#rv&	
 	
 C [[+<[==F|"%"&11#&2622"$&S11#%6bf55		
 	
 H &(+++++r2   rV   r   HKrG   )23r   c                 x   t          j        g dddt          j        gg dd          }t          j        g dddt          j        gddt          j        gd          }t	          j        t          dt          |            d	          5  |                    || 
           d d d            d S # 1 swxY w Y   d S )Nr	   r   r   r   r   rR   zPassing 'result_names' as a z= is not supported. Provide 'result_names' as a tuple instead.rE   rU   )	r   r    r!   r"   rI   rJ   	TypeErrortyper%   )rV   rO   r,   s      r0   test_invalid_input_result_namesr^      s)    , 3RV*<oooVV C ,#OO#rv&#rv&	
 	
 C 
D4+=+= D D D
 
 
 4 4 	Cl3334 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4s   
B//B36B3z	val1,val2   c                 x   d| g}t          j        d|gd          }t          j        |ddgd          }t          j        |ddgd          }t          j        ||t          j        t          j        d          }| t           j        u r"|t           j        u rt          j        |j        d	<   | t           j        u rTt          rMt          j	        t          d
          5  |                    |d          }d d d            d S # 1 swxY w Y   d S |                    |d          }t          j        ||           d S )Nr   r   Int64dtyper   r   r
   r   r
   r   )r
   r   )r   r   )r   r   )r   rf   z boolean value of NA is ambiguousrE   Tr4   )r   Seriesr    r!   r"   NAr$   r   rI   rJ   r\   r%   r)   r*   )val1val2arrserrO   r,   r/   r-   s           r0   test_compare_ea_and_np_dtypern      s{    +C
)QIW
-
-
-C
,SQx00
1
1C
,SQx00
1
1C|6F		
 	
 H ru}})+%&ru}}+}]9,NOOO 	7 	7[[[66F	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 ST22
fh/////s   DDDz$df1_val,df2_val,diff_self,diff_other)r_   rG   r_   rG   c                    t          j        t          j        | t           j        gd          ddgd          }|                                }||j        d<   t          j        t          j        |t           j        gd          t          j        |t           j        gd          t          j        t          j        d          }|                    |d	          }t          j
        ||           d S )
Nra   rb   r   r   rd   )r   r
   re   Trg   )r   r    rh   ri   r#   r$   r!   r"   r%   r)   r*   )df1_valdf2_val	diff_self
diff_otherrO   r,   r/   r-   s           r0   !test_compare_nullable_int64_dtypert     s     ,RY'7wGGGsTUhWW
X
XC
((**CCGFO|9i%7wGGGIz25&9III6F		
 	
 H [[[..F&(+++++r2   )numpyr!   rI   pandas.compat.numpyr   pandasr   pandas._testing_testingr)   markparametrizer1   r7   r:   r<   rC   rP   rW   r^   ri   rn   rt    r2   r0   <module>r}      sO        2 2 2 2 2 2           'A'A'ABB, , CB,>    *, *, *,Z, , ,", , ,. 1v.., , /.,D  ,, , ,0 	
Aa		 	4 4	 	4, Z"%"%, 0 0	 08 *	
Arube	
BE1be	rube$	 , , , , ,r2   