
    Owg%              
       &   d dl Zd dlZd dlmZ d dlZd dlmZ	 ej                  j                  dg d      d        Zej                  j                  dg d      d        Zd	 Zd
 Zej                  j                  dd dg      d        Zd Zd Zej                  j                  dddgddddddg      d        Zej                  j                  ddej(                  fej(                  ej(                  fej(                  dfg      d        Zej                  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y)    N)np_version_gte1p25
align_axis)r      indexcolumnsc                 |   t        j                  g dddt        j                  gg ddg d      }|j	                         }d|j
                  d<   d	|j
                  d
<   |j                  ||       }| dv rt        j                  ddg      }t         j                  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                  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                  ||       y )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          ^/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/frame/methods/test_compare.pytest_compare_axisr1   
   si    
 3RVV*<oV(
B '')CCGGICGGIZZ
Z3F^#((Aq6"--,,vv.>@Q-RS<<3'"&&"&&#s)CD
 --,,q!fvw6G-HI((FF+,<<266]S"&&MBFFC=2663-H

 &(+    zkeep_shape, keep_equal))TF)FT)TTc           
         t        j                  g dddt        j                  gg ddg d      }|j	                         }d|j
                  d<   d	|j
                  d
<   |j                  || |      }| rst        j                  g d      }t         j                  j                  g dddgg      }|rCt        j                  g dg dddt        j                  t        j                  dd	gg||      }nLt        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||      }nZt        j                  ddg      }t         j                  j                  ddgddgg      }t        j                  g dg dg||      }t        j                  ||       y )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RVV*<oV(
B '')CCGGICGGIZZ
zZJF((9%--,,%'89
 ||22#rvvrvvsC8
 H ||#rvvrvvrvvrvv>VVRVVRVVRVVRVVRVVDVVRVVRVVRVVS#>
 H ((Aq6"--,,vv.>@Q-RS<<!#78QX
 &(+r2   c                     t        j                  g dddt        j                  gg ddg d      } | j	                         }d|j
                  d<   | j                  |      }t        j                  d	g      }t         j                  j                  d
gddgg      }t        j                  ddgg||      }t        j                  ||       y )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RVV*<oV(
B '')CCGGIZZ_FhhsmGmm((6(VW4E)FGG||c3ZLIH&(+r2   c                  v   t        j                  g dddt        j                  gg ddg d      } | j	                         }d|j
                  d<   t        j                  |j
                  d	<   | j                  |      }t        j                  d
dg      }t         j                  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                  ||       y )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RVV*<oV(
B '')CCGGICGGIZZ_Fhh1vGmm((66*:VW<M)NOG||
sBFFBFF	#bffbffc266%BCH
 &(+r2   r   c                 :   t        j                  g dddt        j                  gg dd      }t         j                  j                  g dg dg      |_        t         j                  j                  g dg dg      |_        |j                         }d	|j                  d
<   d|j                  d<   |j                  ||       }| dk(  rt         j                  j                  g dg dg dg      }t         j                  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                  j                  ddgddgg      }t         j                  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                  ||       y )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RVV*<oV
B **O=U+VWBJ}}((/9)EFBH
'')CCHHTNCHHTNZZ
Z3FQ--++!<1ST
 --++c3Z&&9I,JKbffRVV}rvvsmbffc]K--++c3Z!Q,@A--++$02
 c266266*RVVRVVS#,FG||WgFH&(+r2   c                     d} t        j                  t        |       5  t        j                  g dg d      }t        j                  g dg d      }|j                  |       d d d        d} t        j                  t        |       5  t        j                  t        j                  d            }t        j                  t        j                  d            }|j                  |       d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)	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	- ll9O<ll9O<C	  
z	- ll2776?+ll288F+,C   s   AC6A"D6C?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      }| j	                  |d      }t        j                  d	t        j                  d
dt        j                  d
t        j                  dd
t        j                  t        j                  d
d      }t        j                  ||       y )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RVV*<oVC ,,##rvv&#rvv&	
C [[+<[=F||"%"&&1#&2662"$&&S1#%66bff5		
H &(+r2   rV   r   HKrG   )23r   c                 z   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  |j                  || 
       d d d        y # 1 sw Y   y xY w)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RVV*<oVC ,,##rvv&#rvv&	
C 
*4+=*> ?D D
 4 	Cl34 4 4s   B11B:z	val1,val2   c                    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 r>t        r8t        j                  t        d
      5  |j                  |d      }d d d        y |j                  |d      }t        j                  ||       y # 1 sw Y   y xY w)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
1C
,,SQx0
1C||66FF		
H ruu})+%&ruu}+]]9,NO 	7[[[6F	7 	7 ST2
fh/		7 	7s   <EE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	                         }||j
                  d<   t        j                  t        j                  |t         j                  gd      t        j                  |t         j                  gd      t        j                  t        j                  d      }|j                  |d	      }t        j                  ||       y )
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     ,,RYY'7wGsTUhW
XC
((*CCGGFO||99i%7wGIIz255&9I66FF		
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}      s     2   'AB, C,> *,*,Z,",. 1v., /,D,,0 	
Aa		4	4, Z"%%"%%,0	08 *	
Aruubee	
BEE1bee	ruubee$	,,r2   