
    m*i؂                     &   S r SSKJr  SSKrSSKrSSKrSSKJr  SSKJ	r	  SSK
JrJrJrJrJrJrJrJrJr  SSKJr  SSKJrJr  S\4S	 jr\R8                  " \R:                  / S
Q-   S9S 5       rS rS r \RB                  RE                  S\" \RF                  " S5      \RH                  S9\" S5      4\" \RF                  " S5      \RJ                  S9\" \RF                  " S5      \RH                  S94\" \RF                  " S5      \RJ                  S9\" S5      4\" \RF                  " S5      \RJ                  S9\" \RF                  " S5      \RL                  S94/5      S 5       r'\RB                  RE                  S/ SQ5      \RB                  RE                  SSS/5      S 5       5       r(\RB                  RE                  S/ SQSS//5      S 5       r) " S S5      r*\RB                  RW                  S5      \RB                  RW                  S 5      \RB                  RE                  S!/ S"Q5      S# 5       5       5       r,S$ r-S% r.S& r/S' r0S( r1\RB                  RE                  S)S*\Rd                  /5      S+ 5       r3S, r4S- r5S. r6 " S/ S05      r7g)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                 0    [        U 5      [        U5      :H  $ )zG
Checks if the set of unique elements of arr1 and arr2 are equivalent.
)	frozenset)arr1arr2s     `/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/pandas/tests/indexes/test_setops.pyequal_contentsr   !   s     T?io--    )objectcategorydatetime64[ns]ztimedelta64[ns])paramsc                     U R                   $ )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                     U R                  5       nU R                  5       nUR                  U5      R                  UR                  :X  d   eg N)sort_valuesuniondtype)indexidx1idx2s      r   test_union_same_typesr)   ;   sA     DD::d!!TZZ///r   c                    U nUnUR                   (       dE  UR                   (       d4  UR                  R                  S:X  a  UR                  R                  S:X  dV  UR                   (       dy  UR                   (       dh  UR                  R                  S:X  aN  UR                  R                  S:X  a4  [        R                  R                  S[        SS9nUR                  U5        [        UR                  UR                  /5      nU(       a  [        U5      S:X  a<  UR                  R                  S:X  d  [        U[        5      (       a  UR                  nOJ[        U5      S:X  a;  UR                  R                  S:X  d  [        U[        5      (       a  UR                  nS nSn	[        U5      (       a  [        U5      (       d  GO?UR                  R                  S	:X  a&  [        R                  " UR                  S
5      (       a@  UR                  R                  S	:X  a-  [        R                  " UR                  S
5      (       d  [        nO[        UR                  [        5      (       a  [        UR                  [         5      (       d>  [        UR                  [        5      (       a[  [        UR                  [         5      (       a<  ["        nSn	[        R                  R                  S[$        SS9nUR                  U5        [&        R(                  UR                  UR                  4;   n
[+        UR                  5      n[+        UR                  5      nUR-                  5       nUR-                  5       n[.        R0                  " XS9   UR3                  U5      nUR3                  U5      nS S S 5        U
(       a[  U(       d  U(       aM  WR                  [&        R                  " S5      :X  d   eWR                  [&        R                  " S5      :X  d   eg WR                  U:X  d   eWR                  U:X  d   eg ! , (       d  f       N= f)NibzGH#44000 True==1F)reasonraisesstrictr   Oz'<' not supported betweenciufczPeriodDtype\[B\] is deprecatedz"Warning not produced on all buildsmatch)	is_uniquer%   kindpytestmarkxfail
ValueErrorapplymarkerr   len
isinstancer   r   is_np_dtypeRuntimeWarningr   r   FutureWarningAssertionErrornpuint64r   r#   tmassert_produces_warningr$   )
index_flatindex_flat2r   using_infer_stringr'   r(   r8   common_dtypewarnmsg
any_uint64idx1_signedidx2_signedres1res2s                  r   test_union_different_typesrQ   C   s    DD NNJJOOs"JJOOs"NNJJOOs"JJOOs" {{  %j ! 
 	D!#TZZ$<=Lt9>tzz#5D*9U9U::LY!^JJOOs"jz&B&B::LD
%Ct99CII
**//S
 #//$**f*M*M

3

F(K(K 4::{++
4::GW0X0X4::{++
4::GW0X0X/{{  7! ! 

 	D!tzz4::66J)$**5K)$**5K DD		#	#D	4zz$zz$ 
5 {kzzRXXc]***zzRXXc]***zz\)))zz\))) 
5	4s   #Q  
Qz	idx1,idx2   r%   c                     U R                  U5      nUR                  U 5      nUR                  U R                  UR                  4;   d   eUR                  U R                  UR                  4;   d   eg r"   )r$   r%   )r'   r(   rO   rP   s       r   "test_compatible_inconsistent_pairsrU      s^     ::dD::dD::$**djj1111::$**djj1111r   zleft, right, expected))int64rV   rV   )rV   rC   r   )rV   float64rW   )rC   rW   rW   )rC   rC   rC   )rW   rW   rW   )r   rV   r   )r   rC   r   )r   rW   r   )datetime64[ns, CET]rV   r   )rX   rC   r   )rX   rW   r   )	Period[D]rV   r   )rY   rC   r   )rY   rW   r   names)foor[   r[   )r[   barNc                     [        U 5      n [        U5      n[        / XS   S9n[        / XS   S9nUR                  U5      nUR                  U:X  d   eUR                  US   :X  d   eUR                  U5      nUR                  US   :X  d   eg )Nr   )r%   name      )r   r	   r$   r%   r^   intersection)leftrightexpectedrZ   ar,   results          r   test_union_dtypesrg      s    , DEb8,Ab!H-AWWQZF<<8###;;%(""" ^^AF;;%("""r   valuesr_   r`   r`      rj   c                     [        U 5      n[        SS/5      nUR                  U5      n[        S/5      n[        R                  " X45        g )Nrj   )r	   ra   rD   assert_index_equal)rh   re   r,   rf   rd   s        r   test_intersection_duplicatesrm      sA     	fAq!fA^^AFaSzH&+r   c                      \ rS rSr\R
                  R                  SSS/5      \R
                  R                  S/ SQ5      S 5       5       r\R
                  R                  S5      S	 5       r	\R
                  R                  S5      S
 5       r
\R
                  R                  S5      S 5       r\R
                  R                  S5      S 5       r\R
                  R                  S/ SQ5      S 5       r\R
                  R                  S/ SQ5      S 5       r\R
                  R                  S/ SQ5      S 5       r\R
                  R                  S/ SQ5      S 5       r\R
                  R                  S5      S 5       rS rS rS rSrg)
TestSetOps   caseg      ?xxxmethodra   r$   
differencesymmetric_differencec                     Sn[         R                  " [        US9   [        X25      " U5        S S S 5        g ! , (       d  f       g = f)Nz!Input must be Index or array-liker3   )r7   r.   	TypeErrorgetattr)selfrq   rs   r&   rK   s        r   test_set_ops_error_cases#TestSetOps.test_set_ops_error_cases   s0     2]]9C0E"4( 100s	   7
A3ignore:PeriodDtype\[B\] is deprecated:FutureWarningc                    [        U[        5      (       a,  [        R                  " S[	        U5      R
                   35        US S R                  5       nUS S R                  5       nUR                  U5      n[        R                  " XC5        [        UR                  [        5      (       a  g UR                  5       UR                  5       UR                  5       /nU H&  nUR                  U5      n[        Xs5      (       a  M&   e   [        U[         5      (       a8  Sn[        R"                  " [$        US9   UR                  / SQ5        S S S 5        g g ! , (       d  f       g = f)NNot relevant for rR   rj   .other must be a MultiIndex or a list of tuplesr3   r_   r`   rj   )r=   r   r7   skiptype__name__uniquera   rD   rl   r%   r   to_numpy	to_seriesto_listr   r
   r.   rx   )	rz   r&   firstsecond	intersectcasesrq   rf   rK   s	            r   test_intersection_base!TestSetOps.test_intersection_base   s   e-..KK+DK,@,@+ABCbq	  "r!!#&&v.	
i0ekk?33  "F$4$4$68HID''-F!&1111  eZ((BCy4""9- 54 )44s   :E
E&c                 v   UR                  5       nUSS  nUS S nUnUR                  U5      n[        R                  " UR	                  5       UR	                  5       5        [        UR                  [        5      (       a  g UR                  5       UR                  5       UR                  5       /nU H&  nUR                  U5      n[        X5      (       a  M&   e   [        U[        5      (       a8  Sn	[        R                  " [        U	S9   UR                  / SQ5        S S S 5        g g ! , (       d  f       g = f)Nrj   rR   r   r3   r   )r   r$   rD   rl   r#   r=   r%   r   r   r   r   r   r
   r7   r.   rx   )
rz   r&   r   r   
everythingr$   r   rq   rf   rK   s
             r   test_union_baseTestSetOps.test_union_base   s    ab	r
F#
e//1:3I3I3KLekk?33  "F$4$4$68HID[[&F!&5555  eZ((BCy4I& 54 )44s   D**
D8c                 t   USS  nUS S nUR                   S:X  a$  [        U5      R                  [        U5      5      nO[        U[        5      (       a  / nOUSS  nUR                  XA5      n[        Xe5      (       d   eUR                  5       UR                  5       UR                  5       /nU H&  nUR                  X5      n[        Xe5      (       a  M&   e   [        U[        5      (       a9  Sn	[        R                  " [        U	S9   UR                  / SQU5        S S S 5        g g ! , (       d  f       g = f)Nr`      booleanr   r3   r   )inferred_typesetru   r=   r   r   r   r   r   r
   r7   r.   rx   )
rz   sortr&   r   r   answerrf   r   rq   rK   s
             r   test_difference_baseTestSetOps.test_difference_base  s   ab	r)+ Z**3v;7F/00F12YF!!&/f---- "F$4$4$68HID%%d1F!&1111  eZ((BCy4  D1 54 )44s   
D))
D7c                    U(       aL  UR                   S:X  a<  UR                  S:X  a,  UR                  [        R                  R                  SS95        [        U[        5      (       a,  [        R                  " S[        U5      R                   35        [        U5      S:  a  [        R                  " S5        US   US	S  ;   d  US
   US S
 ;   a  [        R                  " S5        US	S  nUS S
 nUSS
/   nUR                  U5      n[        R                  " UR                  5       UR                  5       5        UR!                  5       UR#                  5       UR%                  5       /nU H&  n	UR                  U	5      n['        Xv5      (       a  M&   e   [        U[(        5      (       a8  Sn
[        R*                  " [,        U
S9   UR                  / SQ5        S S S 5        g g ! , (       d  f       g = f)Nr   stringzTODO: infer_string)r-   r   r`   zToo few values for testr   r_   z+Index values no not satisfy test condition.r   r3   r   )r%   r   r;   r7   r8   r9   r=   r   r   r   r   r<   rv   rD   rl   r#   r   r   r   r   r
   r.   rx   )rz   r&   rH   r   r   r   r   rf   r   rq   rK   s              r   test_symmetric_difference$TestSetOps.test_symmetric_difference.  s    x'##x/ 1 19M 1 NOe-..KK+DK,@,@+ABCu:>KK128uQRy E"Is$; KKEFab	s2w++F3
f002F4F4F4HI "F$4$4$68HID//5F!&1111  eZ((BCy4**95 54 )44s   G&&
G4zfname, sname, expected_name)Ar   r   r   BN)r   NNNr   N)NNNc                 v   UR                   (       d  UR                  5       nOUnUR                  5       R                  U5      nUR                  5       R                  U5      nUR	                  U5      nUR                  5       R                  U5      n	[
        R                  " X5        UR                  5       R                  U5      nUR                  U5      R                  U5      nUR	                  U5      nUR                  5       R                  U5      n	[
        R                  " X5        UR                  U5      R                  U5      nUR                  5       R                  U5      nUR	                  U5      nUR                  5       R                  U5      n	[
        R                  " X5        UR                  U5      R                  U5      nUR                  U5      R                  U5      nUR	                  U5      nUR                  U5      R                  U5      n	[
        R                  " X5        g r"   )r5   r   copy	set_namesr$   rD   rl   drop
rz   rF   fnamesnameexpected_namer&   r   r   r$   rd   s
             r   test_corner_unionTestSetOps.test_corner_unionP  s    ##%%'EE 

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

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

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

5!++E2E",,U3F#::e$..}=
e.r   c                 Z   UR                   (       d  UR                  5       nOUnUR                  5       R                  U5      nUSS  R                  U5      nUR	                  U5      R                  5       nUR                  U5      R                  5       n	[        R                  " X5        g Nr_   )r5   r   r   r   r$   r#   rD   rl   r   s
             r   test_union_unequalTestSetOps.test_union_unequal  s     ##%%'EE 

&&u-qr$$U+F#//1??=1==?
e.r   c                 z   UR                   (       d  UR                  5       nOUnUR                  5       R                  U5      nUR                  5       R                  U5      nUR	                  U5      nUR                  5       R                  U5      n	[
        R                  " X5        UR                  5       R                  U5      nUR                  U5      R                  U5      nUR	                  U5      nUR                  U5      R                  U5      n	[
        R                  " X5        UR                  U5      R                  U5      nUR                  5       R                  U5      nUR	                  U5      nUR                  U5      R                  U5      n	[
        R                  " X5        UR                  U5      R                  U5      nUR                  U5      R                  U5      nUR	                  U5      nUR                  U5      R                  U5      n	[
        R                  " X5        g r"   )r5   r   r   r   ra   rD   rl   r   
rz   rF   r   r   r   r&   r   r   r   rd   s
             r   test_corner_intersect TestSetOps.test_corner_intersect  s    ##%%'EE 

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

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

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

5!++E2E",,U3&&v.	::e$..}=
i2r   c                 `   UR                   (       d  UR                  5       nOUnUR                  5       R                  U5      nUSS  R                  U5      nUR	                  U5      R                  5       nUSS  R                  U5      R                  5       n	[        R                  " X5        g r   )r5   r   r   r   ra   r#   rD   rl   r   s
             r   test_intersect_unequal!TestSetOps.test_intersect_unequal  s     ##%%'EE 

&&u-qr$$U+&&v.::<	9&&}5AAC
i2r   c                    [        U[        5      (       a.  UR                  [        [	        UR
                  5      5      5      nOUR                  S5      n[        R                  " U5      nUR                  U5      nUR                  UR                  :X  d   eUR                  US S 5      nUR                  UR                  :X  d   eUS S R                  U5      nUR                  UR                  :X  d   eg )Nr[   r   )
r=   r
   renamelistrangenlevelsrB   asarrayra   r^   )rz   r&   otherrf   s       r   .test_intersection_name_retention_with_nameless9TestSetOps.test_intersection_name_retention_with_nameless  s    eZ((LLeEMM&:!;<ELL'E

5!##E*{{ejj((( ##E"1I.{{ejj((( r''.{{ejj(((r   c                     UR                   (       d  [        R                  " S5        UR                  XS9nUS S n[        R
                  " X4SS9  g )Nz&Not relevant since index is not uniquer   r   Texact)r5   r7   r   ru   rD   rl   )rz   r&   r   rf   rd   s        r   $test_difference_preserves_type_empty/TestSetOps.test_difference_preserves_type_empty  sF     KK@A!!%!3!9
fd;r   c                 r   [        U[        5      (       a  U Vs/ s H  o3/UR                  -  PM     nnUR                  US   5      nUR                  US   5      nUR	                  U5      (       d   eUR                  U5      nUS S R                  US   5      n[        R                  " XV5        g s  snf )Nr   r_   r`   )r=   r
   r   r   equalsru   rD   rl   )rz   r&   rZ   xr   rf   rd   s          r   %test_difference_name_retention_equals0TestSetOps.test_difference_name_retention_equals  s    eZ((278%QS5==(%E8U1X&U1X&||E""""!!%(!9##E!H-
f/ 9s   B4c                     UR                   (       d  [        R                  " S5        UR                  US S 5      nUR	                  XS9n[
        R                  " X4SS9  g )Nz(Not relevant because index is not uniquer   r   Tr   )r5   r7   r   ra   ru   rD   rl   )rz   r&   r   interdiffs        r   (test_intersection_difference_match_empty3TestSetOps.test_intersection_difference_match_empty  sQ    
 KKBC""5!9-1
e6r    N)r   
__module____qualname____firstlineno__r7   r8   parametrizer{   filterwarningsr   r   r   r   r   r   r   r   r   r   r   r   __static_attributes__r   r   r   ro   ro      s   [[Vc5\2[[Q) 3) [[ VW. X.2 [[ VW' X'2 [[ VW2 X22 [[ VW6 X6B [[%	
	#/	#/J [[%	
	/	/ [[%	
	"3	"3H [[%	
	3	3 [[ VW) X)&<
0	7r   ro   z7ignore:invalid value encountered in cast:RuntimeWarningr}   rs   rt   c                    U nUR                  S5      n[        U[        5      (       a  SOSn[        XB5      " XQS9n[        XB5      " XAS9nU(       a(  UR                  (       a  US;   a  UR                  S5      n[
        R                  " XxUS9  [        XB5      " US S US9n[        XB5      " US S US9nU(       a(  UR                  (       a  US;   a  UR                  S5      n[
        R                  " XxUS9  g )Nr   equivTr   )r$   rv   r   rR   )astyper=   r   ry   emptyrD   rl   )	rF   r   rs   rH   r&   r   r   rf   rd   s	            r   test_setop_with_categoricalr     s     ELL$E!%44G$EU#E5Fu%e7HKK77??:.&%8U#E"1ID9Fu%eBQid;HKK77??:.&%8r   c                    U R                   (       a  [        R                  " S5        U nU/ SQ   nUR                  U5      R	                  UR                  U5      5      (       d   eUR                  U5      R
                  (       d   eg )NzNot relevant for empty Indexr   r   r_   r`   )r   r7   r   ra   r   r5   )r&   idxidx_non_uniques      r   (test_intersection_duplicates_all_indexesr   2  sl    {{23
C&NN+22>3N3Ns3STTTTN+5555r   c                 .   U n[        / SQUS9n[        / SQUS9n[        / SQUS9n[        U[        5      (       a  [        / SQ5      nUR                  U5      n[        R
                  " XT5        UR                  USS9n[        R
                  " XT5        g )Nri   rS   )rj   rj   r   )r_   r`   r`   rj   rj   r   Fr   r	   r=   r   r$   rD   rl   r    r%   re   r,   rd   rf   s         r   0test_union_duplicate_index_subsets_of_each_otherr   ?  s     4El%(Aiu%A'u5H!%&&+,WWQZF&+WWQUW#F&+r   c                     U n[        / SQUS9n[        SS/US9n[        / SQUS9nUR                  U5      n[        R                  " XT5        UR                  U5      n[        R                  " XT5        g )N)r_   r   r   rS   r   r_   r   r   r_   r	   r$   rD   rl   r   s         r   1test_union_with_duplicate_index_and_non_monotonicr   P  sg     4Eiu%Aq!fE"AYe,HWWQZF&+WWQZF&+r   c                      [        / SQ5      n [        / SQ5      n[        / SQ5      nU R                  USS9n[        R                  " X25        g )Nri   )10r   )r_   r`   r`   rj   r   r   r   Fr   r   )re   r,   rd   rf   s       r   +test_union_duplicate_index_different_dtypesr   `  sA    lAoA01HWWQUW#F&+r   c                      [        / SQ5      n [        / SQ5      nU R                  U5      n[        / SQ5      n[        R                  " X#5        g )Nr   r   r   )re   r,   rf   rd   s       r   (test_union_same_value_duplicated_in_bothr   i  s;    iAlAWWQZF\"H&+r   dupr_   c                     [        [        R                  SSS/5      n[        [        R                  U SS/5      nUR                  USS9n[        [        R                  U SSS/5      n[        R
                  " X45        g )Nr_   r`   Fr   g      ?       @)r	   rB   nanr$   rD   rl   )r   re   r,   rf   rd   s        r   test_union_nan_in_bothr   r  sk     	rvvq!Q ArvvsAq!"AWWQUW#Fbffc3S12H&+r   c                      [        SSS5      n [        SSS5      nU R                  USS9n[        / SQ5      n[        R                  " X#5        g )	Nr_   d      2   rj   Tr   )r_   r      
                        "   %   (   +   .   1   7   =   C   I   O   U   [   a   )r   r$   r	   rD   rl   )r'   r(   rf   rd   s       r   test_union_rangeindex_sort_truer  |  sO    aa DaQDZZ4Z(F	
H: &+r   c                 0   U n[        / SQUS9n[        / SQUS9n[        / SQUS9n[        U[        5      (       a  [        / SQ5      nUR                  U5      n[        R
                  " XT5        UR                  U5      n[        R
                  " XT5        g )N)r_   r   r`   rS   r   r   r   r   s         r   <test_union_with_duplicate_index_not_subset_and_non_monotonicr    s{     4Eiu%Aiu%A\/H!%&&&WWQZF&+WWQZF&+r   c                     [        SS[        R                  /5      n U R                  R                  R
                  S:X  d   e[        SS/5      nUR                  U 5      n[        SS[        R                  /[        R                  S9n[        R                  " X#5        U R                  U5      n[        R                  " X#5        g )Nr_   r`   r+   rS   )r   rB   r   
categoriesr%   r6   r	   r$   rW   rD   rl   )cir   rf   rd   s       r   #test_union_int_categorical_with_nanr    s    	1a.	)B==##s***
A-CYYr]FaBFF^2::6H&+XXc]F&+r   c                      \ rS rSrS r\R                  R                  SS/SS9S 5       r\R                  R                  S\	" / S	QSS
9S4\	" / S	QSS
9S4\	" / S	Q5      S4/5      S 5       r
\R                  R                  SS/SS9\R                  R                  S/ SQ5      S 5       5       rS r\R                  R                  SS/SS9S 5       r\R                  R                  S\R                  \\/5      \R                  R                  SS/SS9S 5       5       r\R                  R                  SS/SS9S 5       r\R                  R                  SS/SS9\R                  R                  SSS/5      S 5       5       rS rS r\R                  R                  SS/SS9S 5       r\R                  R                  SS/SS9S 5       r\R                  R                  SSS /5      S! 5       r\R                  R                  SSS /5      S" 5       rS# r\R                  R                  S$\	" S%S&\R8                  /5      \	" / S'Q5      4\	" S%S&/5      \	" \R8                  S(S)S*/5      4/5      S+ 5       rS, rS- rS. r S/r!g0)1TestSetOpsUnsortedi  c                     [        SSS5      [        SSS5      /n[        U[        S9n[        S/[        S9nUR                  U5      n[        / [        S9n[        R
                  " XE5        g )Ni  r`   	   r  rS   aa)r   r	   r   ra   rD   rl   )rz   dt_datesindex1index2rf   rd   s         r   test_intersect_str_dates+TestSetOpsUnsorted.test_intersect_str_dates  sb    T1a((4B*?@xv.vV,$$V,6*
f/r   r&   r   T)indirectc                     US S nUS S nUR                  XBS9nUS;   a4  [        R                  " UR                  5       UR                  5       5        O[        R                  " XT5        UR                  X2S9nXcL d   eg )N   r   r   NF)ra   rD   rl   r#   )rz   r&   r   r   r   r   r   s          r   test_intersection$TestSetOpsUnsorted.test_intersection  s    cr
s&&v&9	= !!)"7"7"96;M;M;OP!!)4 ""5"4~~r   zindex2,keeps_name)rj   r   rR   r   r   r^   r   Fc                     [        / SQSS9n[        / SQ5      nUR                  X5      nU(       a  SUl        UR                  UR                  :X  d   e[        R                  " Xe5        g )Nr_   r`   rj   r   rR   r&   r*  rj   r   rR   )r	   ra   r^   rD   rl   )rz   r!  
keeps_namer   r   rd   rf   s          r   #test_intersection_name_preservation6TestSetOpsUnsorted.test_intersection_name_preservation  sX     W5#$$V2#HM{{hmm+++
f/r   z$first_name,second_name,expected_name)r   r   r   c                 r    USS nUS S nX&l         X7l         UR                  XuS9nUR                   U:X  d   eg )NrR   r&  r   r   )r^   ra   )	rz   r&   
first_namesecond_namer   r   r   r   r   s	            r   $test_intersection_name_preservation27TestSetOpsUnsorted.test_intersection_name_preservation2  sI     as
!&&v&9	~~...r   c                    [        SS/SS9n[        SS/SS9n[        SS	/S
S9nUR                  UR                  XAS9US9nUR                  X1S9R                  XAS9n[        R                  " XV5        [        SS/SS9n[        / SS9n[        / SS9n	UR                  UR                  XS9US9nUR                  XS9R                  XS9n[        R                  " XV5        g )Nr_   r`   i1r*  rR   r   i2rj   r   i3r   j1j2j3r   )
rz   r   r7  r8  r9  r$   rd   r:  r;  r<  s
             r   test_chained_union%TestSetOpsUnsorted.test_chained_union  s    Aq6%Aq6%Aq6%"0t<88B8*000?
e.Aq6%2D!2D!"0t<88B8*000?
e.r   c                     USS nUS S nUS S nUR                  XBS9nUS;   a4  [        R                  " UR                  5       UR                  5       5        g [        R                  " Xe5        g NrR   r&  r   r   r'  )r$   rD   rl   r#   )rz   r&   r   r   r   r   r$   s          r   
test_unionTestSetOpsUnsorted.test_union  sk    as3BZ
F.= !!%"3"3"5z7M7M7OP!!%4r   klassc                    USS nUS S nUS S nU" UR                   5      nUR                  XsS9nUS;   a4  [        R                  " UR	                  5       UR	                  5       5        g [        R                  " X5        g r@  )rh   r$   rD   rl   r#   )	rz   r&   rC  r   r   r   r   rq   rf   s	            r   test_union_from_iterables,TestSetOpsUnsorted.test_union_from_iterables  s{     as3BZ
V]]#T-= !!&"4"4"6
8N8N8PQ!!&5r   c                     USS nUR                  X2S9nXCL U(       + L d   eUR                  [        / UR                  S9US9nXCL U(       + L d   e[        / UR                  S9R                  X2S9nXCL U(       + L d   eg )NrR   r&  r   rS   )r$   r	   r%   )rz   r&   r   r   r$   s        r   test_union_identity&TestSetOpsUnsorted.test_union_identity)  s    aE-H--- E"EKK8tDH---b,2252DH---r   zsecond_name,expected)NN)r^   r^   c                 N   USS nUS S nUSS nSUl         X&l         UR                  XdS9nUSL a  [        R                  " X5        O9X'l         [        R                  " UR	                  5       UR	                  5       5        Uc  UR                   b   eg UR                   U:X  d   eg )NrR   r&  r   r^   r   T)r^   ru   rD   rl   r#   )	rz   r&   r3  rd   r   r   r   r   rf   s	            r   !test_difference_name_preservation4TestSetOpsUnsorted.test_difference_name_preservation9  s     asr"
!!!&!44<!!&1%K!!&"4"4"68J8J8LM;;&&&;;(***r   c                     UR                  5       nUSS nSUl        UR                  / U5      nUSS R                  5       nSUl        [        R
                  " XE5        g )NrR   r&  r^   )r   r^   ru   r   rD   rl   )rz   r&   r   r   rf   rd   s         r   test_difference_empty_arg,TestSetOpsUnsorted.test_difference_empty_argO  sZ    

a
!!"d+2;%%'
f/r   c                     [        SS/5      n[        S/5      nUR                  U5      n[        S/5      n[        R                  " X45        g )Nr_   T)r	   ru   rD   rl   )rz   rb   rc   rf   rd   s        r   "test_difference_should_not_compare5TestSetOpsUnsorted.test_difference_should_not_compareX  sA    aV}tf'!:
f/r   c                     USS nSUl         UR                  X25      n[        U5      S:X  d   eUR                   UR                   :X  d   eg )NrR   r&  r^   r   )r^   ru   r<   )rz   r&   r   r   rf   s        r   test_difference_identity+TestSetOpsUnsorted.test_difference_identity`  sL    a
!!%.6{a{{ejj(((r   c                     USS nUS S nUR                  XB5      nUSS nUc  UR                  5       n[        R                  " XV5        g )NrR   r&  r   )ru   r#   rD   rl   )rz   r&   r   r   r   rf   rd   s          r   test_difference_sort'TestSetOpsUnsorted.test_difference_sorti  sT    as!!&/B<<++-H
f/r   opnameru   rv   c                    [        S[        S5      S/5      n[        S[        S5      S/5      n[        R                  " X5      n[        R
                  " [        5         U" U5      nS S S 5        [        S[        S5      S[        S5      /5      nUS:X  a  US S n[        R                  " WU5        [        R                  " XSS9nU" U5      n[        R                  " XV5        g ! , (       d  f       N= f)	Nrj   2000r_   r`   1999ru   Fr   )r	   r   operatormethodcallerrD   rE   r?   rl   )rz   rY  re   r,   oprf   rd   s          r   test_difference_incomparable/TestSetOpsUnsorted.test_difference_incomparablev  s    1i'+,1i'+,""6-''7UF 8 !Yv.9V3DEF\!|H
fh/ ""659A
f/ 87s   	C''
C5c                    [        S[        S5      S/5      n[        S[        S5      S/5      n[        R                  " XSS9nSn[        R
                  " [        US	9   U" U5        S S S 5        g ! , (       d  f       g = f)
Nrj   r[  r_   r`   r\  Tr   z<'<' not supported between instances of 'Timestamp' and 'int'r3   )r	   r   r]  r^  r7   r.   rx   )rz   rY  re   r,   r_  rK   s         r   !test_difference_incomparable_true4TestSetOpsUnsorted.test_difference_incomparable_true  sf    1i'+,1i'+,""648L]]9C0qE 100s   	A11
A?c                    [         R                  " [        / SQ/ SQ5      5      n[         R                  " SS/5      nUR                  X1S9n[         R                  " / SQ5      nUc  UR	                  5       n[
        R                  " XE5        g )N)r[   r\   bazr   )r[   r_   r\   rj   r   ))r\   r`   )rf  rj   rg  )r
   from_tuplesziprv   r#   rD   rl   )rz   r   r   r!  rf   rd   s         r   test_symmetric_difference_mi/TestSetOpsUnsorted.test_symmetric_difference_mi  st    '',A9(MN''Z(@A,,V,?))*NO<++-H
f/r   zindex2,expectedr   r_   )r         @        r   rl  rm  c                     [        S[        R                  SS/5      nUR                  XS9nUc  UR	                  5       n[
        R                  " XR5        g )Nr_   r`   rj   r   )r	   rB   r   rv   r#   rD   rl   )rz   r!  rd   r   r   rf   s         r   !test_symmetric_difference_missing4TestSetOpsUnsorted.test_symmetric_difference_missing  sO     2661a(),,V,?<++-H
f/r   c                    [        / SQSS9n[        R                  " / SQ5      n[        SS/SS9nUR                  X1S9nUS;   a  [        R
                  " XT5        O%[        R
                  " UR                  5       U5        UR                  S:X  d   eUR                  US	US
9nS	Ul        US;   a  [        R
                  " XT5        O%[        R
                  " UR                  5       U5        UR                  S	:X  d   eg )N)r_   r`   rj   r   r   r*  )r`   rj   r   rR   r_   rR   r   )NTnew_name)result_namer   )r	   rB   arrayrv   rD   rl   r#   r^   )rz   r   r   r!  rd   rf   s         r   #test_symmetric_difference_non_index6TestSetOpsUnsorted.test_symmetric_difference_non_index  s    |(3,'!Qh/,,V,?<!!&3!!&"4"4"6A{{h&&&,,VRV,W"<!!&3!!&"4"4"6A{{j(((r   c                     [        / SQUS9n[        / SQUS9nUR                  U5      n[        / SQUS9n[        R                  " XE5        g )Nr   rS   r-  r,  r   )rz   any_numeric_ea_and_arrow_dtyper   r(   rf   rd   s         r   test_union_ea_dtypes'TestSetOpsUnsorted.test_union_ea_dtypes  sD    I%CDY&DE40NO
f/r   c                     [        S/US9n[        S/US9nUR                  U5      n[        SS/US9n[        R                  " XE5        g )Nre   rS   r,   r   )rz   any_string_dtyper'   r(   rf   rd   s         r   test_union_string_array*TestSetOpsUnsorted.test_union_string_array  sM    cU"23cU"23D!#s+;<
f/r   r   N)"r   r   r   r   r"  r7   r8   r   r(  r	   r/  r4  r=  rA  rB   rt  r   r   rE  rH  rK  rN  rQ  rT  rW  r`  rc  rj  r   ro  ru  ry  r}  r   r   r   r   r  r    s   0 [[Wxj4@ A [[?148?159?#U+	
	0	0 [[Wxj4@[[.>/	 A
//  [[Wxj4@	5 A	5 [[Wrxx&>?[[Wxj4@6 A @6 [[Wxj4@. A. [[Wxj4@[[3lDT5UV+ W A+(00 [[Wxj4@) A) [[Wxj4@
0 A
0 [[X6L'MN0 O0$ [[X6L'MN O0 [[Aq"&&>"E/$:;Aq6]E2663S"9:;	
00)&00r   r  )8__doc__r   r]  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)   rQ   r8   r   arangerV   rW   rC   rU   rg   rm   ro   r   r   r   r   r   r   r   r   r   r  r  r  r  r   r   r   <module>r     s        4
 
 
 .$ . ##0N*b 	ryy|288	,jm<	ryy|2::	.biil"((0ST	ryy|2::	.
1>	ryy|2::	.biil"))0TU	22 ( #8:N"OP# Q)*# L1a&#9:, ;,z7 z7z	 UVRSM9 T W
98
6,", ,, BFF,, -,",J,$,L0 L0r   