
    i!                        d dl Zd dlZd dlmc mZ d dlZd dlm	Z	m
Z
 d dlmZ d dlmZ d Zd Zd Zd Zd Zd	 Zd
 Zej.                  j1                  dd ej2                  d ej4                  d             ej2                  d ej4                  d             ej2                  d ej4                  d            g      d        Zd Zd Zd Zd Zy)    N)	DataFrame
MultiIndex)mergec                  l   t        dg dig d      } t        dg dig d      }t        | |dd	d	
      }t        dgt        j                  gddg      }t	        j
                  ||       t        | |dd	d	
      }t        t        j                  gdgddg      }t	        j
                  ||       y )NA         abcindexB)r	   r
      )r   r   d	left_antiThow
left_indexright_indexr   r   r   r   
right_antir   r   r   r   npnantmassert_frame_equalleftrightresultexpecteds       k/app/cer_product_mecsu/.venv/lib/python3.12/site-packages/pandas/tests/reshape/merge/test_merge_antijoin.pytest_merge_antijoinr'      s    c9%_=DsI&o>E4KDdSFs"&&23%@H&(+4LTtTFxqc23%@H&(+    c                  l   t        g dg dd      j                  dt        i      } t        g dg dd      j                  dt        i      }t        | |d	dd
      }t        dgdgt        j
                  gt        j
                  gddg      j                  t        t        d      }t        j                  ||       t        | |ddd
      }t        t        j
                  gt        j
                  gdgdgddg      j                  t        t        d      }t        j                  ||       y )N      ?       @      @r   r   r   r+   r,         @)r   r   r   CDr2   r   r   left_onright_onr-   r   r   r   r1   r2   r
   r   r   r2   r   r,   r   r	   r   astypeobjectr   r   r   r   r    r!   s       r&   (test_merge_antijoin_on_different_columnsr;      s   ?ABII3PV-XDO/BCJJ	fE 4KsKF&&&&		
 c f6'(  &(+4L#LF&&&&		
 c f6'(  &(+r(   c                     t        g dg dd      j                  dt        i      } t        g dg dd      j                  dt        i      }t        | |d	dd
      }t        dgdgt        j
                  gt        j
                  gddg      j                  t        t        d      }t        j                  ||       t        | |ddd
      }t        t        j
                  t        j
                  gt        j
                  t        j
                  gddgddgdddg      j                  t        t        d      }t        j                  ||       y )Nr*   )r   r   r   r   r   r.   )r   r   r   r0   r2   r   r3   r+   r   r6   r   r   r7   r   r,   r/   r   r
   r   r8   r!   s       r&   "test_merge_antijoin_nonunique_keysr=   <   s,   ?ABII3PV-XDO/BCJJ	fE 4KsKF&&&&		
 c f6'(  &(+4L#LF&&"&&!&&"&&!ss		
 !f f6'(  &(+r(   c                      t        dg dig dt        j                        } t        | | ddd      }t        g dd	gt        j                  
      }t	        j
                  ||d       y )Nr   r   r   )r   dtyper   Tr   A_xA_y)columnsr?   F)check_index_type)r   r   int64r   r   r    )r"   r$   r%   s      r&   test_merge_antijoin_same_dfrE   [   sS    c9%_BHHMD4;4TRFeU^288DH&(UCr(   c                     t        ddt        j                  gg dd      j                  dt        i      } t        ddt        j                  gg dd      j                  d	t        i      }t        | |d
d      }t        dgdgt        j                  gd      j                  t        t        d      }t        j                  ||       y )Nr+   r,   r   )r   r1   r1   r-   )r   ef)r   r2   r2   r   r   r   onr   )r   r1   r2   r0   )r   r   r   r9   r:   r   r   r    r!   s       r&   test_merge_antijoin_nansrK   b   s    Cbff-ODELL	fD S#rvv._EFMM	fE 4KC8FuC5x@AHH6"H &(+r(   c                  2   t        t        j                  ddd      ddgd      } t        t        j                  dd	d      g d
d      }t        t        j                  ddd      dgt        j                  gddg      }t        | |dd      }t        j                  ||       t        t        j                  ddd      t        j                  t        j                  gddgdddg      }t        | |dd      }t        j                  ||       y )N20151010r
   z
US/Eastern)periodstzr+   r,   )keyvalue20151011r   r*   r	   )rP   value_xvalue_yr   r   rP   r   )rJ   r   20151012r-   r   )r   pd
date_ranger   r   r   r   r    )r"   r#   r%   r$   s       r&   #test_merge_antijoin_on_datetime64tzrX   p   s   ==Q<H3Z	
D ==Q<H$	
E ==Q<Hux	

 cH 45k:F&(+==Q<H'Sz	

 !fH 45l;F&(+r(   c                  x   t        g dg ddt        j                  g dddg            } t        g d	g d
dt        j                  g dddg            }t        | |ddd      }t        dgdgt        j
                  gt        j
                  gdt        j                  dgddg            }t        j                  ||       t        | |ddd      }t        t        j
                  gt        j
                  gdgdgdt        j                  dgddg            }t        j                  ||       y )Nr   r         r   )r   xr   yr   zfirstsecond)namesr   )      	   )
         r0   )r]   r_   r   wr   Tr   r   r\   r6   ra   r   rh   rk   rl   )r   r   from_tuplesr   r   r   r   r    r!   s       r&   test_merge_antijoin_multiindexro      s4   	
 $$0(8K
D 	
 $$0(8K
E 4KDdSF&&&&		
 $$j\'89LMH &(+4LTtTF&&&&		
 $$j\'89LMH &(+r(   r?   Int64zint64[pyarrow]pyarrow)marksztimestamp[s][pyarrow]zstring[pyarrow]c                 r   t        g dg dd      }t        g dg dd      }|j                  d| i      }|j                  d| i      }t        ||dd      }t        d	d
gd	dgt        j                  t        j                  gdddg      }|j                  d| i      }t        j                  ||       y )N)r	   r   r[   r   )join_colleft_val)r
   r   r   )rt   	right_valrt   r   rI   r	   r[   r   )rt   ru   rv   r   r
   r   )r   r9   r   r   r   r   r    )r?   r"   r#   r$   r%   s        r&   #test_merge_antijoin_extension_dtyperw      s     !!	
D !"	
E ;;
E*+DLL*e,-E4KJ?FAA&&"&&)	

 !fH 
E23H&(+r(   c                      t        g g d      } t        g g d      }t        | |ddd      }t        g g g g d      }t        j                  ||       t        | |ddd      }t        j                  ||       y )	Nr   r0   r   r   r1   r3   r6   r   )r   r   r   r    r!   s       r&   #test_merge_antijoin_empty_dataframery      sw    2B'(DBR()E4KsKFr"=>H&(+4L#LF&(+r(   c                     t        dg di      } t        dg di      }t        | |ddd      }t        g dt        j                  t        j                  t        j                  gd      }t	        j
                  ||       t        | |ddd      }t        t        j                  t        j                  t        j                  gg dd      }t	        j
                  ||       y )	Nr   r   r   rZ   r   r3   r   r   r   r!   s       r&   &test_merge_antijoin_no_common_elementsr{      s    c9%&DsI&'E4KsKFy/GHIH&(+4L#LF7iHIH&(+r(   c                  ~   t        dg di      } t        dg di      }t        | |ddd      }t        ddgt        j                  t        j                  gd	d
dg      }t	        j
                  ||       t        | |ddd      }t        t        j                  gdgd	dg      }t	        j
                  ||       y )Nr   )r+   r,   Nr/   r   )r,   N      @r   r3   r+   r/   r   r   r   r   r   r}   r
   r   r!   s       r&   $test_merge_antijoin_with_null_valuesr~     s    c012Ds,-.E4KsKFSz0@A!QPH&(+4L#LFxse4QC@H&(+r(   c                  l   t        dg di      } t        dg di      }t        | |ddd      }t        dgt        j                  gdt        	      }t        j                  ||       t        | |d
dd      }t        t        j                  gdgdt        dg      }t        j                  ||       y )Nr   )r	   2r-   r   )r   r-   r   r   r3   r	   r   )r?   r   r   r
   )r?   r   )r   r   r   r   r:   r   r    r!   s       r&   %test_merge_antijoin_with_mixed_dtypesr     s    c=)*DsM*+E4KsKFs"&&2&AH&(+4L#LFxqc2&LH&(+r(   ) numpyr   pytestpandas.util._test_decoratorsutil_test_decoratorstdpandasrV   r   r   pandas._testing_testingr   pandas.core.reshape.merger   r'   r;   r=   rE   rK   rX   ro   markparametrizeparam
skip_if_norw   ry   r{   r~   r    r(   r&   <module>r      s      ) )   +,,>,>D,#,L*,Z %]R]]9-EF,MBMM)4LM&mbmmI.FG	,,8	,
,
,
,r(   