
    bMh-                     F   d Z ddlmZ ddlZddlZddlZddlmZ ddlm	Z	 ddl
mZmZmZmZmZmZmZmZmZ ddlmZ ddlmZmZ defd	Z ej        ej        g d
z             d             Zd Zd Z ej!        "                    d e ej#        d          ej$                   ed          f e ej#        d          ej%                   e ej#        d          ej$                  f e ej#        d          ej%                   ed          f e ej#        d          ej%                   e ej#        d          ej&                  fg          d             Z'ej!        "                    dg d          ej!        "                    dddg          d                         Z(ej!        "                    dg dddgg          d             Z) G d d          Z*ej!        +                    d          ej!        +                    d           ej!        "                    d!g d"          d#                                     Z,d$ Z-d% Z.d& Z/d' Z0d( Z1ej!        "                    d)d*ej2        g          d+             Z3d, Z4d- Z5d. Z6 G d/ d0          Z7dS )1zX
The tests in this package are to ensure the proper resultant dtypes of
set operations.
    )datetimeN)lib)find_common_type)	CategoricalDtypeCategoricalIndexDatetimeTZDtypeIndex
MultiIndexPeriodDtype
RangeIndexSeries	Timestamp)is_signed_integer_dtypepandas_dtypereturnc                 B    t          |           t          |          k    S )zO
    Checks if the set of unique elements of arr1 and arr2 are equivalent.
    )	frozenset)arr1arr2s     `/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/indexes/test_setops.pyequal_contentsr   !   s     T??ioo--    )objectcategorydatetime64[ns]ztimedelta64[ns])paramsc                     | j         S )z
    Dtypes that can be given to an Index with small positive integers.

    This means that for any dtype `x` in the params list, `Index([1, 2, 3], dtype=x)` is
    valid and gives the correct Index (sub-)class.
    )param)requests    r   'any_dtype_for_small_pos_integer_indexesr    (   s      =r   c                     |                                  }|                                  }|                    |          j        |j        k    sJ d S N)sort_valuesuniondtype)indexidx1idx2s      r   test_union_same_typesr)   ;   sN     DD::d!TZ//////r   c                    | }|}|j         s'|j         s |j        j        dk    r|j        j        dk    s.|j         sc|j         s\|j        j        dk    rL|j        j        dk    r<t          j                            dt          d          }|                    |           t          |j        |j        g          }d }d}t          |          rt          |          sn	|j        j        dk    rt          j        |j        d          r*|j        j        dk    r"t          j        |j        d          st          }nt          |j        t                    rt          |j        t                    s4t          |j        t                    r_t          |j        t                    rEt           }d	}t          j                            d
t"          d          }|                    |           t$          j        |j        |j        fv }	t)          |j                  }
t)          |j                  }|                                }|                                }t-          j        ||          5  |                    |          }|                    |          }d d d            n# 1 swxY w Y   |	rD|
s|r@|j        t%          j        d          k    sJ |j        t%          j        d          k    sJ d S |j        |k    sJ |j        |k    sJ d S )NibzGH#44000 True==1F)reasonraisesstrictz'<' not supported betweenciufczPeriodDtype\[B\] is deprecatedz"Warning not produced on all buildsmatchO)	is_uniquer%   kindpytestmarkxfail
ValueErrorapplymarkerr   lenr   is_np_dtypeRuntimeWarning
isinstancer   r   FutureWarningAssertionErrornpuint64r   r#   tmassert_produces_warningr$   )
index_flatindex_flat2r   r'   r(   r8   common_dtypewarnmsg
any_uint64idx1_signedidx2_signedres1res2s                 r   test_union_different_typesrP   C   sA    DD N"" JOs""JOs""N #  # JOs""JOs"" {  %j ! 
 
 	D!!!#TZ$<==LD
%Ct99 "CII "
*/S
 
 #/$*f*M*M
 
3
F(K(K 4:{++"0:4:GW0X0X" 	4:{++" 1;4:GW0X0X"
 /{  7! ! 
 

 	D!!!tz4:66J)$*55K)$*55K DD		#D	4	4	4    zz$zz$                               *{ *k *zRXc]]****zRXc]]******z\))))z\))))))s   %+JJ #J z	idx1,idx2   r%   c                     |                      |          }|                     |           }|j        | j        |j        fv sJ |j        | j        |j        fv sJ d S r"   )r$   r%   )r'   r(   rN   rO   s       r   "test_compatible_inconsistent_pairsrT      sd     ::dD::dD:$*dj11111:$*dj1111111r   zleft, right, expected))int64rU   rU   )rU   rC   r   )rU   float64rV   )rC   rV   rV   )rC   rC   rC   )rV   rV   rV   )r   rU   r   )r   rC   r   )r   rV   r   )datetime64[ns, CET]rU   r   )rW   rC   r   )rW   rV   r   )	Period[D]rU   r   )rX   rC   r   )rX   rV   r   names)foorZ   rZ   )rZ   barNc                 \   t          |           } t          |          }t          g | |d                   }t          g ||d                   }|                    |          }|j        |k    sJ |j        |d         k    sJ |                    |          }|j        |d         k    sJ d S )Nr   )r%   name      )r   r	   r$   r%   r]   intersection)leftrightexpectedrY   ar,   results          r   test_union_dtypesrf      s    , DEb58,,,AbE!H---AWWQZZF<8####;%("""" ^^AF;%(""""""r   valuesr^   r_   r_      ri   c                     t          |           }t          ddg          }|                    |          }t          dg          }t          j        ||           d S )Nri   )r	   r`   rD   assert_index_equal)rg   rd   r,   re   rc   s        r   test_intersection_duplicatesrl      sU     	fAq!fA^^AFaSzzH&(+++++r   c                   @   e Zd Zej                            dddg          ej                            dg d          d                         Zej                            d          d             Zej                            d          d	             Z	ej                            d          d
             Z
ej                            d          d             Zej                            dg d          d             Zej                            dg d          d             Zej                            dg d          d             Zej                            dg d          d             Zej                            d          d             Zd Zd Zd ZdS )
TestSetOpscaseg      ?xxxmethodr`   r$   
differencesymmetric_differencec                     d}t          j        t          |          5   t          ||          |           d d d            d S # 1 swxY w Y   d S )Nz!Input must be Index or array-liker2   )r7   r.   	TypeErrorgetattr)selfro   rq   r&   rJ   s        r   test_set_ops_error_casesz#TestSetOps.test_set_ops_error_cases   s     2]9C000 	) 	)"GE6""4(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)s   AA	A	3ignore:PeriodDtype\[B\] is deprecated:FutureWarningc                    t          |t                    r)t          j        dt	          |          j                    |d d                                         }|d d                                         }|                    |          }t          j	        ||           t          |j
        t                    rd S |                                |                                |                                g}|D ])}|                    |          }t          ||          sJ *t          |t                     rOd}t          j        t$          |          5  |                    g d           d d d            d S # 1 swxY w Y   d S d S )NNot relevant for rQ   ri   .other must be a MultiIndex or a list of tuplesr2   r^   r_   ri   )r?   r   r7   skiptype__name__uniquer`   rD   rk   r%   r   to_numpy	to_seriesto_listr   r
   r.   rv   )	rx   r&   firstsecond	intersectcasesro   re   rJ   s	            r   test_intersection_basez!TestSetOps.test_intersection_base   s   e-.. 	DKBDKK,@BBCCCbqb	  ""rr!!##&&v..	
i000ek?33 	 F ""F$4$4$6$68H8HI 	2 	2D''--F!&&111111eZ(( 	.BCy444 . .""999---. . . . . . . . . . . . . . . . . .	. 	.s   E;;E?E?c                    |                                 }|dd          }|d d         }|}|                    |          }t          j        |                                |                                           t          |j        t                    rd S |                                |	                                |
                                g}|D ])}|                    |          }t          ||          sJ *t          |t                    rOd}	t          j        t          |	          5  |                    g d           d d d            d S # 1 swxY w Y   d S d S )Nri   rQ   r}   r2   r~   )r   r$   rD   rk   r#   r?   r%   r   r   r   r   r   r
   r7   r.   rv   )
rx   r&   r   r   
everythingr$   r   ro   re   rJ   s
             r   test_union_basezTestSetOps.test_union_base   s   abb	rr
F##
e//11:3I3I3K3KLLLek?33 	 F ""F$4$4$6$68H8HI 	6 	6D[[&&F!&*555555eZ(( 	'BCy444 ' 'III&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '	' 	's   .EEEc                    |dd          }|d d         }|j         dk    r0t          |                              t          |                    }n"t          |t                    rg }n
|dd          }|                    ||          }t          ||          sJ |                                |                                |                                g}|D ]*}|                    ||          }t          ||          sJ +t          |t                    rPd}	t          j        t          |	          5  |                    g d|           d d d            d S # 1 swxY w Y   d S d S )Nr_      booleanr}   r2   r~   )inferred_typesetrs   r?   r   r   r   r   r   r
   r7   r.   rv   )
rx   sortr&   r   r   answerre   r   ro   rJ   s
             r   test_difference_basezTestSetOps.test_difference_base  s   abb	rr)++ ZZ**3v;;77FF/00 	FF122YF!!&$//ff----- ""F$4$4$6$68H8HI 	2 	2D%%dD11F!&&111111eZ(( 	2BCy444 2 2  D1112 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2	2 	2s   4EE!Ec                 D   |rI|j         dk    r>|j        dk    r3|                    t          j                            d                     t          |t                    r)t          j        dt          |          j
                    t          |          dk     rt          j        d           |d         |d	d          v s|d
         |d d
         v rt          j        d           |d	d          }|d d
         }|dd
g         }|                    |          }t          j        |                                |                                           |                                |                                |                                g}|D ])}	|                    |	          }t'          ||          sJ *t          |t(                    rOd}
t          j        t,          |
          5  |                    g d           d d d            d S # 1 swxY w Y   d S d S )Nr   stringzTODO: infer_string)r-   r|   r_   zToo few values for testr   r^   z+Index values no not satisfy test condition.r}   r2   r~   )r%   r   r;   r7   r8   r9   r?   r   r   r   r   r<   rt   rD   rk   r#   r   r   r   r   r
   r.   rv   )rx   r&   using_infer_stringr   r   r   r   re   r   ro   rJ   s              r   test_symmetric_differencez$TestSetOps.test_symmetric_difference'  sf    	Px''#x// 1 19M 1 N NOOOe-.. 	DKBDKK,@BBCCCu::>>K12228uQRRy  E"Iss$;$; KEFFFabb	ss2w++F33
f0022F4F4F4H4HIII ""F$4$4$6$68H8HI 	2 	2D//55F!&&111111eZ(( 	6BCy444 6 6**9995556 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6	6 	6s   .HHHzfname, sname, expected_name)Ar   r   r   BN)r   NNNr   N)NNNc                 D   |j         s|                                }n|}|                                                    |          }|                                                    |          }|                    |          }|                                                    |          }	t          j        ||	           |                                                    |          }|                    |                              |          }|                    |          }|                                                    |          }	t          j        ||	           |                    |                              |          }|                                                    |          }|                    |          }|                                                    |          }	t          j        ||	           |                    |                              |          }|                    |                              |          }|                    |          }|                    |                              |          }	t          j        ||	           d S r"   )r5   r   copy	set_namesr$   rD   rk   drop
rx   rF   fnamesnameexpected_namer&   r   r   r$   rc   s
             r   test_corner_unionzTestSetOps.test_corner_unionI  s    # 	%%''EEE 

&&u--''..F##::<<))-88
eX... 

&&u--E"",,U33F##::<<))-88
eX... 

5!!++E22''..F##::<<))-88
eX... 

5!!++E22E"",,U33F##::e$$..}==
eX.....r   c                    |j         s|                                }n|}|                                                    |          }|dd                              |          }|                    |                                          }|                    |                                          }	t          j        ||	           d S Nr^   )r5   r   r   r   r$   r#   rD   rk   r   s
             r   test_union_unequalzTestSetOps.test_union_unequalx  s     # 	%%''EEE 

&&u--qrr$$U++F##//11??=11==??
eX.....r   c                 H   |j         s|                                }n|}|                                                    |          }|                                                    |          }|                    |          }|                                                    |          }	t          j        ||	           |                                                    |          }|                    |                              |          }|                    |          }|                    |                              |          }	t          j        ||	           |                    |                              |          }|                                                    |          }|                    |          }|                    |                              |          }	t          j        ||	           |                    |                              |          }|                    |                              |          }|                    |          }|                    |                              |          }	t          j        ||	           d S r"   )r5   r   r   r   r`   rD   rk   r   
rx   rF   r   r   r   r&   r   r   r   rc   s
             r   test_corner_intersectz TestSetOps.test_corner_intersect  s-    # 	%%''EEE 

&&u--''..&&v..	::<<))-88
i222 

&&u--E"",,U33&&v..	::e$$..}==
i222 

5!!++E22''..&&v..	::e$$..}==
i222 

5!!++E22E"",,U33&&v..	::e$$..}==
i22222r   c                    |j         s|                                }n|}|                                                    |          }|dd                              |          }|                    |                                          }|dd                              |                                          }	t          j        ||	           d S r   )r5   r   r   r   r`   r#   rD   rk   r   s
             r   test_intersect_unequalz!TestSetOps.test_intersect_unequal  s     # 	%%''EEE 

&&u--qrr$$U++&&v..::<<	9&&}55AACC
i22222r   c                    t          |t                    r5|                    t          t	          |j                                      }n|                    d          }t          j        |          }|                    |          }|j	        |j	        k    sJ |                    |d d                   }|j	        |j	        k    sJ |d d                             |          }|j	        |j	        k    sJ d S )NrZ   r   )
r?   r
   renamelistrangenlevelsrB   asarrayr`   r]   )rx   r&   otherre   s       r   .test_intersection_name_retention_with_namelessz9TestSetOps.test_intersection_name_retention_with_nameless  s    eZ(( 	(LLeEM&:&:!;!;<<EELL''E
5!!##E**{ej(((( ##E"1"I..{ej(((( rr''..{ej((((((r   c                     |j         st          j        d           |                    ||          }|d d         }t	          j        ||d           d S )Nz&Not relevant since index is not uniquer   r   Texact)r5   r7   r   rs   rD   rk   )rx   r&   r   re   rc   s        r   $test_difference_preserves_type_emptyz/TestSetOps.test_difference_preserves_type_empty  sc      	BK@AAA!!%d!33!9
fhd;;;;;;r   c                    t          t                    rfd|D             }                    |d                                       |d                   }                    |          sJ                     |          }d d                             |d                   }t          j        ||           d S )Nc                 &    g | ]}|gj         z  S  )r   ).0xr&   s     r   
<listcomp>zDTestSetOps.test_difference_name_retention_equals.<locals>.<listcomp>  s"    888QaS5=(888r   r   r^   r_   )r?   r
   r   equalsrs   rD   rk   )rx   r&   rY   r   re   rc   s    `    r   %test_difference_name_retention_equalsz0TestSetOps.test_difference_name_retention_equals  s    eZ(( 	98888%888EU1X&&U1X&&||E"""""!!%((!9##E!H--
fh/////r   c                     |j         st          j        d           |                    |d d                   }|                    ||          }t          j        ||d           d S )Nz(Not relevant because index is not uniquer   r   Tr   )r5   r7   r   r`   rs   rD   rk   )rx   r&   r   interdiffs        r   (test_intersection_difference_match_emptyz3TestSetOps.test_intersection_difference_match_empty  sq    
  	DKBCCC""5!9--D11
eT666666r   N)r   
__module____qualname__r7   r8   parametrizery   filterwarningsr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rn   rn      s       [Vc5\22[QQQ ) )  32) [ VWW. . XW.2 [ VWW' ' XW'2 [ VWW2 2 XW22 [ VWW6 6 XW6B [%	
 	
 	
	 	#/ #/	 	#/J [%	
 	
 	
	 	/ /	 	/ [%	
 	
 	
	 	"3 "3	 	"3H [%	
 	
 	
	 	3 3	 	3 [ VWW) ) XW)&< < <
0 
0 
0	7 	7 	7 	7 	7r   rn   z7ignore:invalid value encountered in cast:RuntimeWarningrz   rq   rr   c                    | }|                     d          }t          |t                    rdnd} t          ||          ||          } t          ||          ||          }t	          j        |||            t          ||          |d d         |          } t          ||          |d d         |          }t	          j        |||           d S )Nr   equivTr   r   rQ   )astyper?   r   rw   rD   rk   )rF   r   rq   r&   r   r   re   rc   s           r   test_setop_with_categoricalr   
  s     ELL$$E!%44>GG$E#WUF##E555F%wuf%%e$777H&(%8888#WUF##E"1"ID999F%wuf%%eBQBid;;;H&(%888888r   c                    | j         rt          j        d           | }|g d         }|                    |                              |                    |                    sJ |                    |          j        sJ d S )NzNot relevant for empty Indexr   r   r^   r_   )emptyr7   r   r`   r   r5   )r&   idxidx_non_uniques      r   (test_intersection_duplicates_all_indexesr     s    { 42333
C&NN++22>3N3Ns3S3STTTTTN++555555r   c                 t   | }t          g d|          }t          g d|          }t          g d|          }t          |t                    rt          g d          }|                    |          }t	          j        ||           |                    |d          }t	          j        ||           d S )Nrh   rR   )ri   ri   r   )r^   r_   r_   ri   ri   r   Fr   r	   r?   r   r$   rD   rk   r    r%   rd   r,   rc   re   s         r   0test_union_duplicate_index_subsets_of_each_otherr   ,  s     4Elll%(((Aiiiu%%%A'''u555H!%&& -+++,,WWQZZF&(+++WWQUW##F&(+++++r   c                 $   | }t          g d|          }t          ddg|          }t          g d|          }|                    |          }t          j        ||           |                    |          }t          j        ||           d S )N)r^   r   r   rR   r   r^   r   r   r^   r	   r$   rD   rk   r   s         r   1test_union_with_duplicate_index_and_non_monotonicr   =  s     4Eiiiu%%%Aq!fE"""AYYYe,,,HWWQZZF&(+++WWQZZF&(+++++r   c                      t          g d          } t          g d          }t          g d          }|                     |d          }t          j        ||           d S )Nrh   )10r   )r^   r_   r_   ri   r   r   r   Fr   r   )rd   r,   rc   re   s       r   +test_union_duplicate_index_different_dtypesr   M  sf    lllAoooA00011HWWQUW##F&(+++++r   c                      t          g d          } t          g d          }|                     |          }t          g d          }t          j        ||           d S )Nr   r   r   )rd   r,   re   rc   s       r   (test_union_same_value_duplicated_in_bothr   V  s]    iiiAlllAWWQZZF\\\""H&(+++++r   dupr^   c                    t          t          j        dddg          }t          t          j        | ddg          }|                    |d          }t          t          j        | dddg          }t	          j        ||           d S )Nr^   r_   Fr   g      ?       @)r	   rB   nanr$   rD   rk   )r   rd   r,   re   rc   s        r   test_union_nan_in_bothr   _  s|     	rvq!Q  ArvsAq!""AWWQUW##Fbfc3S122H&(+++++r   c                      t          ddd          } t          ddd          }|                     |d          }t          g d          }t          j        ||           d S )	Nr^   d      2   ri   Tr   )r^   r      
                        "   %   (   +   .   1   7   =   C   I   O   U   [   a   )r   r$   r	   rD   rk   )r'   r(   re   rc   s       r   test_union_rangeindex_sort_truer  i  sr    aa  DaQDZZ4Z((F	
 	
 	
 H: &(+++++r   c                 p   | }t          g d|          }t          g d|          }t          g d|          }t          |t                    rt          g d          }|                    |          }t	          j        ||           |                    |          }t	          j        ||           d S )N)r^   r   r_   rR   r   r   r   r   s         r   <test_union_with_duplicate_index_not_subset_and_non_monotonicr    s     4Eiiiu%%%Aiiiu%%%A\\\///H!%&& '&&WWQZZF&(+++WWQZZF&(+++++r   c                     t          ddt          j        g          } | j        j        j        dk    sJ t          ddg          }|                    |           }t          ddt          j        gt          j                  }t          j
        ||           |                     |          }t          j
        ||           d S )Nr^   r_   r+   rR   )r   rB   r   
categoriesr%   r6   r	   r$   rV   rD   rk   )cir   re   rc   s       r   #test_union_int_categorical_with_nanr    s    	1a.	)	)B=#s****
A--CYYr]]FaBF^2:666H&(+++XXc]]F&(+++++r   c                      e Zd Zd Zej                            ddgd          d             Zej                            d eg dd	          df eg dd
	          df eg d          dfg          d             Z	ej                            ddgd          ej                            dg d          d                         Z
d Zej                            ddgd          d             Zej                            dej        eeg          ej                            ddgd          d                         Zej                            ddgd          d             Zej                            ddgd          ej                            dddg          d                         Zd Zd Zej                            ddgd          d             Zej                            ddgd          d             Zej                            dddg          d              Zej                            dddg          d!             Zd" Zej                            d# ed$d%ej        g           eg d&          f ed$d%g           eej        d'd(d)g          fg          d*             Zd+ Zd, Zd- Zd.S )/TestSetOpsUnsortedc                 $   t          ddd          t          ddd          g}t          |t                    }t          dgt                    }|                    |          }t          g t                    }t	          j        ||           d S )Ni  r_   	   r   rR   aa)r   r	   r   r`   rD   rk   )rx   dt_datesindex1index2re   rc   s         r   test_intersect_str_datesz+TestSetOpsUnsorted.test_intersect_str_dates  s    T1a(((4B*?*?@xv...vV,,,$$V,,6***
fh/////r   r&   r   T)indirectc                 <   |d d         }|d d         }|                     ||          }|dv r:t          j        |                                |                                           nt          j        ||           |                     ||          }||u sJ d S )N   r   r   NF)r`   rD   rk   r#   )rx   r&   r   r   r   r   r   s          r   test_intersectionz$TestSetOpsUnsorted.test_intersection  s    crc
ss&&vD&99	=  !)"7"7"9"96;M;M;O;OPPPP!)V444 ""5t"44~~~~~~r   zindex2,keeps_name)ri   r   rQ   r   r   r]   r   Fc                     t          g dd          }t          g d          }|                    ||          }|rd|_        |j        |j        k    sJ t          j        ||           d S )Nr^   r_   ri   r   rQ   r&   r  ri   r   rQ   )r	   r`   r]   rD   rk   )rx   r  
keeps_namer   r  rc   re   s          r   #test_intersection_name_preservationz6TestSetOpsUnsorted.test_intersection_name_preservation  s}     W555##$$VT22 	$#HM{hm++++
fh/////r   z$first_name,second_name,expected_name)r   r   r   c                     |dd         }|d d         }||_         ||_         |                    ||          }|j         |k    sJ d S )NrQ   r  r   r   )r]   r`   )	rx   r&   
first_namesecond_namer   r   r   r   r   s	            r   $test_intersection_name_preservation2z7TestSetOpsUnsorted.test_intersection_name_preservation2  s]     adss
!&&vD&99	~......r   c                    t          ddgd          }t          ddgd          }t          dd	gd
          }|                    |                    ||          |          }|                    ||                              ||          }t          j        ||           t          ddgd          }t          g d          }t          g d          }	|                    |                    |	|          |          }|                    ||                              |	|          }t          j        ||           d S )Nr^   r_   i1r  rQ   r   i2ri   r   i3r   j1j2j3r   )
rx   r   r&  r'  r(  r$   rc   r)  r*  r+  s
             r   test_chained_unionz%TestSetOpsUnsorted.test_chained_union  sD   Aq6%%%Aq6%%%Aq6%%%"400t<<88BT8**00$0??
eX...Aq6%%%2D!!!2D!!!"400t<<88BT8**00$0??
eX.....r   c                    |dd         }|d d         }|d d         }|                     ||          }|dv r;t          j        |                                |                                           d S t          j        ||           d S NrQ   r  r   r   r  )r$   rD   rk   r#   )rx   r&   r   r   r   r   r$   s          r   
test_unionzTestSetOpsUnsorted.test_union  s    adss3B3Z
F..=  !%"3"3"5"5z7M7M7O7OPPPPP!%44444r   klassc                 8   |dd         }|d d         }|d d         } ||j                   }|                    ||          }|dv r;t          j        |                                |                                           d S t          j        ||           d S r.  )rg   r$   rD   rk   r#   )	rx   r&   r0  r   r   r   r   ro   re   s	            r   test_union_from_iterablesz,TestSetOpsUnsorted.test_union_from_iterables  s     adss3B3Z
uV]##T--=  !&"4"4"6"6
8N8N8P8PQQQQQ!&*55555r   c                 *   |dd         }|                     ||          }||u | u sJ |                     t          g |j                  |          }||u | u sJ t          g |j                                       ||          }||u | u sJ d S )NrQ   r  r   rR   )r$   r	   r%   )rx   r&   r   r   r$   s        r   test_union_identityz&TestSetOpsUnsorted.test_union_identity  s    adE--H---- E"EK888tDDH----b,,,225t2DDH------r   zsecond_name,expected)NN)r]   r]   c                 t   |dd         }|d d         }|dd         }d|_         ||_         |                    ||          }|du rt          j        ||           n@||_         t          j        |                                |                                           ||j         J d S |j         |k    sJ d S )NrQ   r  r   r]   r   T)r]   rs   rD   rk   r#   )	rx   r&   r#  rc   r   r   r   r   re   s	            r   !test_difference_name_preservationz4TestSetOpsUnsorted.test_difference_name_preservation&  s     adssr"u
!!!&t!444<<!&&1111%FK!&"4"4"6"68J8J8L8LMMM;&&&&&;(******r   c                     |                                 }|dd         }d|_        |                    g |          }|dd                                         }d|_        t	          j        ||           d S )NrQ   r  r]   )r   r]   rs   r   rD   rk   )rx   r&   r   r   re   rc   s         r   test_difference_empty_argz,TestSetOpsUnsorted.test_difference_empty_arg<  sq    

ad
!!"d++2;%%''
fh/////r   c                     t          ddg          }t          dg          }|                    |          }t          dg          }t          j        ||           d S )Nr^   T)r	   rs   rD   rk   )rx   ra   rb   re   rc   s        r   "test_difference_should_not_comparez5TestSetOpsUnsorted.test_difference_should_not_compareE  sU    aV}}tf''!::
fh/////r   c                     |dd         }d|_         |                    ||          }t          |          dk    sJ |j         |j         k    sJ d S )NrQ   r  r]   r   )r]   rs   r<   )rx   r&   r   r   re   s        r   test_difference_identityz+TestSetOpsUnsorted.test_difference_identityM  s]    ad
!!%..6{{a{ej((((((r   c                     |dd         }|d d         }|                     ||          }|dd         }||                                }t          j        ||           d S )NrQ   r  r   )rs   r#   rD   rk   )rx   r&   r   r   r   re   rc   s          r   test_difference_sortz'TestSetOpsUnsorted.test_difference_sortV  sm    adss!!&$//B<<++--H
fh/////r   opnamers   rt   c                 6   t          dt          d          dg          }t          dt          d          dg          }t          j        ||          }t	          j        t                    5   ||          }d d d            n# 1 swxY w Y   t          dt          d          dt          d          g          }|dk    r
|d d         }t	          j        ||           t          j        ||d          } ||          }t	          j        ||           d S )	Nri   2000r^   r_   1999rs   Fr   )r	   r   operatormethodcallerrD   rE   r>   rk   )rx   r?  rd   r,   opre   rc   s          r   test_difference_incomparablez/TestSetOpsUnsorted.test_difference_incomparablec  sQ   1i''+,,1i''+,,"61--'77 	 	RUUF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 !Yv..9V3D3DEFF\!!|H
fh/// "615999A
fh/////s   -BB	B	c                 2   t          dt          d          dg          }t          dt          d          dg          }t          j        ||d          }d}t	          j        t          |	          5   ||           d d d            d S # 1 swxY w Y   d S )
Nri   rA  r^   r_   rB  Tr   z<'<' not supported between instances of 'Timestamp' and 'int'r2   )r	   r   rC  rD  r7   r.   rv   )rx   r?  rd   r,   rE  rJ   s         r   !test_difference_incomparable_truez4TestSetOpsUnsorted.test_difference_incomparable_truev  s    1i''+,,1i''+,,"614888L]9C000 	 	BqEEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   3BBBc                 .   t          j        t          g dg d                    }t          j        ddg          }|                    ||          }t          j        g d          }||                                }t          j        ||           d S )N)rZ   r[   bazr~   )rZ   r^   r[   ri   r   ))r[   r_   )rJ  ri   rK  )r
   from_tuplesziprt   r#   rD   rk   )rx   r   r  r  re   rc   s         r   test_symmetric_difference_miz/TestSetOpsUnsorted.test_symmetric_difference_mi  s    ',A,A,A999(M(MNN'Z(@AA,,V$,??)*N*N*NOO<++--H
fh/////r   zindex2,expectedr   r^   )r         @        r   rO  rP  c                     t          dt          j        ddg          }|                    ||          }||                                }t          j        ||           d S )Nr^   r_   ri   r   )r	   rB   r   rt   r#   rD   rk   )rx   r  rc   r   r  re   s         r   !test_symmetric_difference_missingz4TestSetOpsUnsorted.test_symmetric_difference_missing  sc     261a()),,V$,??<++--H
fh/////r   c                 "   t          g dd          }t          j        g d          }t          ddgd          }|                    ||          }|dv rt	          j        ||           n't	          j        |                                |           |j        dk    sJ |                    |d	|
          }d	|_        |dv rt	          j        ||           n't	          j        |                                |           |j        d	k    sJ d S )N)r^   r_   ri   r   r  r  )r_   ri   r   rQ   r^   rQ   r   )NTnew_name)result_namer   )r	   rB   arrayrt   rD   rk   r#   r]   )rx   r   r  r  rc   re   s         r   #test_symmetric_difference_non_indexz6TestSetOpsUnsorted.test_symmetric_difference_non_index  s'   |||(333,,,''!Qh///,,V$,??<!&(3333!&"4"4"6"6AAA{h&&&&,,VRV,WW"<!&(3333!&"4"4"6"6AAA{j((((((r   c                     t          g d|          }t          g d|          }|                    |          }t          g d|          }t          j        ||           d S )Nr~   rR   r  r  r   )rx   any_numeric_ea_and_arrow_dtyper   r(   re   rc   s         r   test_union_ea_dtypesz'TestSetOpsUnsorted.test_union_ea_dtypes  so    III%CDDDYYY&DEEE40NOOO
fh/////r   c                     t          dg|          }t          dg|          }|                    |          }t          ddg|          }t          j        ||           d S )Nrd   rR   r,   r   )rx   any_string_dtyper'   r(   re   rc   s         r   test_union_string_arrayz*TestSetOpsUnsorted.test_union_string_array  sm    cU"2333cU"2333D!!#s+;<<<
fh/////r   N) r   r   r   r  r7   r8   r   r  r	   r   r$  r,  r/  rB   rV  r   r   r2  r4  r6  r8  r:  r<  r>  rF  rH  rN  r   rR  rW  rZ  r]  r   r   r   r  r    s*       0 0 0 [Wxj4@@  A@ [U???11148U???11159U???##U+	
 	0 	0 	0 [Wxj4@@[.>>> / /	  A@
// / /  [Wxj4@@	5 	5 A@	5 [Wrx&>??[Wxj4@@6 6 A@ @?6 [Wxj4@@. . A@. [Wxj4@@[3lDT5UVV+ + WV A@+(0 0 00 0 0 [Wxj4@@) ) A@) [Wxj4@@
0 
0 A@
0 [X6L'MNN0 0 ON0$ [X6L'MNN  ON0 0 0 [UAq"&>""EE///$:$:;UAq6]]EE263S"9::;	
 0 0 0) ) )&0 0 00 0 0 0 0r   r  )8__doc__r   rC  numpyrB   r7   pandas._libsr   pandas.core.dtypes.castr   pandasr   r   r   r	   r
   r   r   r   r   pandas._testing_testingrD   pandas.api.typesr   r   boolr   fixtureALL_REAL_NUMPY_DTYPESr    r)   rP   r8   r   arangerU   rV   rC   rT   rf   rl   rn   r   r   r   r   r   r   r   r   r   r  r  r  r  r   r   r   <module>rj     s                      4 4 4 4 4 4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
             .$ . . . . #      0 0 0G* G* G*T 	yry||28	,	,	,jjmm<	yry||2:	.	.	.ibill"(0S0S0ST	yry||2:	.	.	.

1>	yry||2:	.	.	.ibill")0T0T0TU	 2 2 2    ( #8:N"OPP# # QP) *# LLL1a&#9::, , ;:,z7 z7 z7 z7 z7 z7 z7 z7z	 UVVRSSMMM 9 9  TS WV
9 
6 
6 
6, , ,", , , , , ,, , , BF,,, , -,,", ", ",J, , ,$, , ,L0 L0 L0 L0 L0 L0 L0 L0 L0 L0r   