
    o[wecz                        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 Zd	 Zej                            d
ej        ej        fej         ej        fej         ej        fej         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  Z+d! Z,ej                            d"d#ej-        g          d$             Z.d% Z/d& Z0d' Z1 G d( d)          Z2dS )*zX
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_dtypec                     |                                  }|                                  }|                    |          j        |j        k    sJ d S )N)sort_valuesuniondtype)indexidx1idx2s      @lib/python3.11/site-packages/pandas/tests/indexes/test_setops.pytest_union_same_typesr   !   sN     DD::d!TZ//////    c                 &   | }|}|j         s'|j         s |j        j        dk    r|j        j        dk    s.|j         sh|j         sa|j        j        dk    rQ|j        j        dk    rAt          j                            dt          d          }|j                            |           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                    rdt          |j        t                     rJt"          }d	}t          j                            d
t$          d          }|j                            |           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node
add_markerr   lenr   is_np_dtypeRuntimeWarning
isinstancer   r   FutureWarningAssertionErrornpuint64r   r   tmassert_produces_warningr   )
index_flatindex_flat2requestr   r   r)   common_dtypewarnmsg
any_uint64idx1_signedidx2_signedres1res2s                 r   test_union_different_typesrC   )   sE    DD N&& JOs""JOs""N #  # JOs""JOs"" {  %j ! 
 
 	%%%#TZ$<==LD
%Ct99 &CII &
*/S
 
 #/$*f*M*M
 
3
F(K(K 4:{++&0:4:GW0X0X& 	4:{++& 1;4:GW0X0X&
 /{  7! ! 
 

 	%%%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idx_fact1,idx_fact2c                      | d          } |d          }|                     |          }|                     |          }|j        |j        |j        fv sJ |j        |j        |j        fv sJ d S )N
      )r   r   )	idx_fact1	idx_fact2r   r   rA   rB   s         r   "test_compatible_inconsistent_pairsrI   s   s~     9R==D9R==D::dD::dD:$*dj11111:$*dj1111111r   zleft, right, expected))int64rJ   rJ   )rJ   r5   object)rJ   float64rL   )r5   rL   rL   )r5   r5   r5   )rL   rL   rL   )datetime64[ns]rJ   rK   )rM   r5   rK   )rM   rL   rK   )datetime64[ns, CET]rJ   rK   )rN   r5   rK   )rN   rL   rK   )	Period[D]rJ   rK   )rO   r5   rK   )rO   rL   rK   names)foorQ   rQ   )rQ   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   rT   intersection)leftrightexpectedrP   ar   results          r   test_union_dtypesr]      s    , DEb58,,,AbE!H---AWWQZZF<8####;%("""" ^^AF;%(""""""r   valuesrU   rV   rV      r`   c                     t          |           }t          ddg          }|                    |          }t          dg          }t          j        ||           d S )Nr`   )r	   rW   r6   assert_index_equal)r^   r[   r   r\   rZ   s        r   test_intersection_duplicatesrc      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	          ej                            d          d
                         Z	ej                            d          ej                            d	          d                         Z
ej                            d          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rW   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-liker#   )r(   r   	TypeErrorgetattr)selfrf   rh   r   r=   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        ||          sJ t          |j	        t                    rd S |                                |                                |                                g}|D ].}|                    |          }t          j        ||          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    r`   .other must be a MultiIndex or a list of tuplesr#   rU   rV   r`   )r1   r   r(   skiptype__name__rW   r6   equalContentsr   r   to_numpy	to_seriesto_listr
   r   rm   )	ro   r   firstsecond	intersectcasesrf   r\   r=   s	            r   test_intersection_basez!TestSetOps.test_intersection_base   s   e-.. 	DKBDKK,@BBCCCbqb	rr&&v..		622222ek?33 	 F ""F$4$4$6$68H8HI 	4 	4D''--F#FF333333eZ(( 	.BCy444 . .""999---. . . . . . . . . . . . . . . . . .	. 	.s   9EE"%E"Eignore:Falling back on a non-pyarrow:pandas.errors.PerformanceWarningc                 b   |dd          }|d d         }|}|                     |          }t          j        ||          sJ t          |j        t
                    rd S |                                |                                |                                g}|D ].}|                     |          }t          j        ||          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`   rt   ru   r#   rv   )r   r6   rz   r1   r   r   r{   r|   r}   r
   r(   r   rm   )
ro   r   r~   r   
everythingr   r   rf   r\   r=   s
             r   test_union_basezTestSetOps.test_union_base   s   
 abb	rr
F##z22222ek?33 	 F ""F$4$4$6$68H8HI 	8 	8D[[&&F#FJ777777eZ(( 	'BCy444 ' 'III&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '	' 	's   =D""D&)D&c                    |dd          }|d d         }|j         dk    r0t          |                              t          |                    }n"t          |t                    rg }n
|dd          }|                    ||          }t          j        ||          sJ |                                |                                |	                                g}|D ]/}|                    ||          }t          j        ||          sJ 0t          |t                    rPd}	t          j        t          |	          5  |                    g d|           d d d            d S # 1 swxY w Y   d S d S )NrV      booleanru   r#   rv   )inferred_typesetrj   r1   r   r6   rz   r{   r|   r}   r
   r(   r   rm   )
ro   sortr   r~   r   answerr\   r   rf   r=   s
             r   test_difference_basezTestSetOps.test_difference_base   s   
 abb	rr)++ ZZ**3v;;77FF/00 	FF122YF!!&$/////// ""F$4$4$6$68H8HI 	4 	4D%%dD11F#FF333333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   >E$$E(+E(c                 t   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	        ||          sJ |
                                |                                |                                g}|D ].}|                    |          }t          j	        ||          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 )Nrs   rV   zToo few values for testr   rU   z+Index values no not satisfy test condition.ru   r#   rv   )r1   r   r(   rw   rx   ry   r.   rk   r6   rz   r{   r|   r}   r
   r   rm   )	ro   r   r~   r   r   r\   r   rf   r=   s	            r   test_symmetric_differencez$TestSetOps.test_symmetric_difference  s   
 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$4$4$6$68H8HI 	4 	4D//55F#FF333333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   F++F/2F/zfname, sname, expected_name)Ar   r   r   BN)r   NNNr   N)NNNc                 B   |j         st          j        d           |}|                                                    |          }|                                                    |          }|                    |          }|                                                    |          }	t          j        ||	           |                                                    |          }|                    |                              |          }|                    |          }|                                                    |          }	t          j        ||	           |                    |                              |          }|                                                    |          }|                    |          }|                                                    |          }	t          j        ||	           |                    |                              |          }|                    |                              |          }|                    |          }|                    |                              |          }	t          j        ||	           d S N-Randomly generated index_flat was not unique.)	r&   r(   rw   copy	set_namesr   r6   rb   drop
ro   r8   fnamesnameexpected_namer   r~   r   r   rZ   s
             r   test_corner_unionzTestSetOps.test_corner_union4  s    # 	IKGHHH 

&&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t          j        d           |}|                                                    |          }|dd                              |          }|                    |                                          }|                    |                                          }	t          j        ||	           d S Nr   rU   )	r&   r(   rw   r   r   r   r   r6   rb   r   s
             r   test_union_unequalzTestSetOps.test_union_unequalb  s     # 	IKGHHH 

&&u--qrr$$U++F##//11??=11==??
eX.....r   c                 F   |j         st          j        d           |}|                                                    |          }|                                                    |          }|                    |          }|                                                    |          }	t          j        ||	           |                                                    |          }|                    |                              |          }|                    |          }|                    |                              |          }	t          j        ||	           |                    |                              |          }|                                                    |          }|                    |          }|                    |                              |          }	t          j        ||	           |                    |                              |          }|                    |                              |          }|                    |          }|                    |                              |          }	t          j        ||	           d S r   )	r&   r(   rw   r   r   rW   r6   rb   r   
ro   r8   r   r   r   r   r~   r   r   rZ   s
             r   test_corner_intersectz TestSetOps.test_corner_intersectx  s,    # 	IKGHHH 

&&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t          j        d           |}|                                                    |          }|dd                              |          }|                    |                                          }|dd                              |                                          }	t          j        ||	           d S r   )	r&   r(   rw   r   r   rW   r   r6   rb   r   s
             r   test_intersect_unequalz!TestSetOps.test_intersect_unequal  s     # 	IKGHHH 

&&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 )NrQ   r   )
r1   r
   renamelistrangenlevelsr4   asarrayrW   rT   )ro   r   otherr\   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)r&   r(   rw   rj   r6   rb   )ro   r   r   r\   rZ   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   rU   rV   )r1   r
   r   equalsrj   r6   rb   )ro   r   rP   r   r\   rZ   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   )r&   r(   rw   rW   rj   r6   rb   )ro   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)ry   
__module____qualname__r(   r)   parametrizerp   filterwarningsr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   re   re      s       [Vc5\22[QQQ ) )  32) [ VWW. . XW.2 [O  [ VWW' ' XW '0 [ VWW[O 2 2  XW22 [ VWW[O 6 6  XW66 [%	
 	
 	
	 	"/ "/	 	"/H [%	
 	
 	
	 	
/ 
/	 	
/ [%	
 	
 	
	 	!3 !3	 	!3F [%	
 	
 	
	 	
3 
3	 	
3 [ VWW) ) XW)&< < <
0 
0 
0	7 	7 	7 	7 	7r   re   rq   r   rh   ri   c                    | }|                     d          }t          |t                    rdnd} t          ||          ||          } t          ||          ||          }t	          j        |||            t          ||          |d d         |          } t          ||          |d d         |          }t	          j        |||           d S )NcategoryequivTr   r   rt   )astyper1   r   rn   r6   rb   )r8   r   rh   r   r   r   r\   rZ   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   rU   rV   )emptyr(   rw   rW   r   r&   )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 )Nr_   r   )r`   r`   r   )rU   rV   rV   r`   r`   r   Fr   r	   r1   r   r   r6   rb   'any_dtype_for_small_pos_integer_indexesr   r[   r   rZ   r\   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)rU   r   r   r   r   rU   r   r   rU   r	   r   r6   rb   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 )Nr_   )10r   )rU   rV   rV   r`   r   r   r   Fr   r   )r[   r   rZ   r\   s       r   +test_union_duplicate_index_different_dtypesr   6  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   )r[   r   r\   rZ   s       r   (test_union_same_value_duplicated_in_bothr   ?  s]    iiiAlllAWWQZZF\\\""H&(+++++r   duprU   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 )NrU   rV   Fr   g      ?       @)r	   r4   nanr   r6   rb   )r   r[   r   r\   rZ   s        r   test_union_nan_in_bothr   H  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 )	NrU   d      2   r`   Tr   )rU   r      rE                        "   %   (   +   .   1   7   =   C   I   O   U   [   a   )r   r   r	   r6   rb   )r   r   r\   rZ   s       r   test_union_rangeindex_sort_truer  R  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)rU   r   rV   r   r   r   r   r   s         r   <test_union_with_duplicate_index_not_subset_and_non_monotonicr  w  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 )NrU   rV   r   r   )r   r4   r   
categoriesr   r'   r	   r   rL   r6   rb   )cir   r\   rZ   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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  rV   	   r   r   aa)r   r	   rK   rW   r6   rb   )ro   dt_datesindex1index2r\   rZ   s         r   test_intersect_str_datesz+TestSetOpsUnsorted.test_intersect_str_dates  s    T1a(((4B*?*?@xv...vV,,,$$V,,6***
fh/////r   r   stringT)indirectc                    |d d         }|d d         }|                     ||          }|'t          j        ||                                           t          j        ||          sJ |                     ||          }||u sJ d S )NrF   rE   r   )rW   r6   rb   r   rz   )ro   r   r   r~   r   r   r   s          r   test_intersectionz$TestSetOpsUnsorted.test_intersection  s    crc
ss&&vD&99	<!)V-?-?-A-ABBB	622222 ""5t"44~~~~~~r   zindex2,keeps_name)r`   r   rt   r   r   rT   r   Fc                     t          g dd          }t          g d          }|                    ||          }|rd|_        |j        |j        k    sJ t          j        ||           d S )NrU   rV   r`   r   rt   r   r  r`   r   rt   )r	   rW   rT   r6   rb   )ro   r  
keeps_namer   r  rZ   r\   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 Nrt   rF   rE   r   )rT   rW   )	ro   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 )NrU   rV   i1r  rt   r   i2r`   r   i3r   j1j2j3r   )
ro   r   r!  r"  r#  r   rZ   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         }|                     ||          }|'t          j        ||                                           t          j        ||          sJ d S r  )r   r6   rb   r   rz   )ro   r   r   r~   r   r   r   s          r   
test_unionzTestSetOpsUnsorted.test_union  s    adss3B3Z
F..<!%)?)?)A)ABBBz2222222r   klassc                    |dd         }|d d         }|d d         } ||j                   }|                    ||          }|'t          j        ||                                           t          j        ||          sJ d S r  )r^   r   r6   rb   r   rz   )	ro   r   r*  r   r~   r   r   rf   r\   s	            r   test_union_from_iterablesz,TestSetOpsUnsorted.test_union_from_iterables  s     adss3B3Z
uV]##T--<!&**@*@*B*BCCC
3333333r   c                     |dd         }|                     ||          }||u | u sJ |                     g |          }||u | u sJ t          g                                ||          }||u | u sJ d S )Nrt   rF   r   )r   r	   )ro   r   r   r~   r   s        r   test_union_identityz&TestSetOpsUnsorted.test_union_identity  s    adE--H---- BT**H----b		D11H------r   zsecond_name,expected)NN)rT   rT   c                     |dd         }|d d         }|dd         }d|_         ||_         |                    ||          }t          j        ||          sJ ||j         J d S |j         |k    sJ d S )Nrt   rF   rE   rT   r   )rT   rj   r6   rz   )	ro   r   r  rZ   r   r~   r   r   r\   s	            r   !test_difference_name_preservationz4TestSetOpsUnsorted.test_difference_name_preservation  s     adssr"u
!!!&t!44/////;&&&&&;(******r   c                 ~    |dd         }d|_         |                    g |          }t          j        ||           d S )Nrt   rF   rT   )rT   rj   r6   rb   ro   r   r   r~   r\   s        r   test_difference_empty_argz,TestSetOpsUnsorted.test_difference_empty_arg  sD    ad
!!"d++
fe,,,,,r   c                     |dd         }d|_         |                    ||          }t          |          dk    sJ |j         |j         k    sJ d S )Nrt   rF   rT   r   )rT   rj   r.   r2  s        r   test_difference_identityz+TestSetOpsUnsorted.test_difference_identity%  s]    ad
!!%..6{{a{ej((((((r   c                     |dd         }|d d         }|                     ||          }|dd         }||                                }t          j        ||           d S )Nrt   rF   rE   )rj   r   r6   rb   )ro   r   r   r~   r   r\   rZ   s          r   test_difference_sortz'TestSetOpsUnsorted.test_difference_sort.  sm    adss!!&$//B<<++--H
fh/////r   opnamerj   rk   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 )	Nr`   2000rU   rV   1999rj   Fr   )r	   r   operatormethodcallerr6   r7   r0   rb   )ro   r8  r[   r   opr\   rZ   s          r   test_difference_incomparablez/TestSetOpsUnsorted.test_difference_incomparable;  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 )
Nr`   r:  rU   rV   r;  Tr   z<'<' not supported between instances of 'Timestamp' and 'int'r#   )r	   r   r<  r=  r(   r   rm   )ro   r8  r[   r   r>  r=   s         r   !test_difference_incomparable_truez4TestSetOpsUnsorted.test_difference_incomparable_trueN  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        ||           t          j        ||          sJ d S )N)rQ   rR   bazrv   )rQ   rU   rR   r`   r   ))rR   rV   )rC  r`   rD  )r
   from_tuplesziprk   r   r6   rb   rz   )ro   r   r  r  r\   rZ   s         r   test_symmetric_difference_miz/TestSetOpsUnsorted.test_symmetric_difference_miX  s    ',A,A,A999(M(MNN'Z(@AA,,V$,??)*N*N*NOO<++--H
fh///1111111r   zindex2,expectedr   rU   )r         @        r   rH  rI  c                     t          dt          j        ddg          }|                    ||          }||                                }t          j        ||           d S )NrU   rV   r`   r   )r	   r4   r   rk   r   r6   rb   )ro   r  rZ   r   r  r\   s         r   !test_symmetric_difference_missingz4TestSetOpsUnsorted.test_symmetric_difference_missingb  sc     261a()),,V$,??<++--H
fh/////r   c                 h   t          g dd          }t          j        g d          }t          ddg          }|                    ||          }t	          j        ||          sJ |j        dk    sJ |                    |d|	          }t	          j        ||          sJ |j        dk    sJ d S )
N)rU   rV   r`   r   r  r  )rV   r`   r   rt   rU   rt   r   new_name)result_namer   )r	   r4   arrayrk   r6   rz   rT   )ro   r   r  r  rZ   r\   s         r   #test_symmetric_difference_non_indexz6TestSetOpsUnsorted.test_symmetric_difference_non_indexs  s    |||(333,,,''!Q==,,V$,??11111{h&&&&,,VRV,WW11111{j((((((r   c                     t          g d|          }t          g d|          }|                    |          }t          g d|          }t          j        ||           d S )Nrv   r   r  r  r   )ro   any_numeric_ea_and_arrow_dtyper   r   r\   rZ   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 )Nr[   r   r   r   )ro   any_string_dtyper   r   r\   rZ   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)ry   r   r   r  r(   r)   r   r  r	   r  r  r'  r)  r4   rO  r   r   r,  r.  r0  r3  r5  r7  r?  rA  rG  r   rK  rP  rS  rV  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@@3 3 A@3 [Wrx&>??[Wxj4@@
4 
4 A@ @?
4 [Wxj4@@. . A@. [Wxj4@@[3lDT5UVV+ + WV A@+ - - - [Wxj4@@) ) A@) [Wxj4@@
0 
0 A@
0 [X6L'MNN0 0 ON0$ [X6L'MNN  ON2 2 2 [UAq"&>""EE///$:$:;UAq6]]EE263S"9::;	
 0 0 0
) 
) 
)0 0 00 0 0 0 0r   r	  )3__doc__r   r<  numpyr4   r(   pandas._libsr   pandas.core.dtypes.castr   pandasr   r   r   r	   r
   r   r   r   r   pandas._testing_testingr6   pandas.api.typesr   r   r   rC   r)   r   makeIntIndexmakeRangeIndexmakeFloatIndexmakeUIntIndexrI   r]   rc   re   r   r   r   r   r   r   r   r   r   r  r  r  r	  r   r   r   <module>rc     s                      4 4 4 4 4 4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
             0 0 0G* G* G*T 	"+,		BO,		B-.		B,-	 	2 	2 	2    ( #8:N"OPP# # QP) *# LLL1a&#9::, , ;:,x7 x7 x7 x7 x7 x7 x7 x7v	 RSSK  MMM 9 9   TS9 
6 
6 
6, , ,", , , , , ,, , , BF,,, , -,,", ", ",J, , ,$, , ,u0 u0 u0 u0 u0 u0 u0 u0 u0 u0r   