
    Mh                     &   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     R/var/www/html/env/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                 j   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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[,        R.                  " XxS9   UR1                  U5      nUR1                  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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   s    DD NNJJOOs"JJOOs"NNJJOOs"JJOOs" {{  %j ! 
 	D!#TZZ$<=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   2#N$$
N2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(   rN   rO   s       r   "test_compatible_inconsistent_pairsrT      s^     ::dD::dD::$**djj1111::$**djj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                     [        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expectedrY   ar,   results          r   test_union_dtypesrf      s    , DEb8,Ab!H-AWWQZF<<8###;;%(""" ^^AF;;%("""r   valuesr^   r_   r_      ri   c                     [        U 5      n[        SS/5      nUR                  U5      n[        S/5      n[        R                  " X45        g )Nri   )r	   r`   rD   assert_index_equal)rg   rd   r,   re   rc   s        r   test_intersection_duplicatesrl      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      \R
                  R                  S5      S 5       5       r
\R
                  R                  S5      \R
                  R                  S
5      S 5       5       r\R
                  R                  S5      \R
                  R                  S
5      S 5       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r`   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-liker2   )r7   r.   	TypeErrorgetattr)selfrp   rr   r&   rJ   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 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.   rw   )	ry   r&   firstsecond	intersectcasesrp   re   rJ   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&Eignore:Falling back on a non-pyarrow:pandas.errors.PerformanceWarningc                 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)Nri   rQ   r   r2   r   )r   r$   rD   rk   r#   r?   r%   r   r   r   r   r   r
   r7   r.   rw   )
ry   r&   r   r   
everythingr$   r   rp   re   rJ   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   r2   r   )inferred_typesetrt   r?   r   r   r   r   r   r
   r7   r.   rw   )
ry   sortr&   r   r   answerre   r   rp   rJ   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                 H   [        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[        XT5      (       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~   r_   zToo few values for testr   r^   z+Index values no not satisfy test condition.r   r2   r   )r?   r   r7   r   r   r   r<   ru   rD   rk   r#   r   r   r   r   r
   r.   rw   )	ry   r&   r   r   r   re   r   rp   rJ   s	            r   test_symmetric_difference$TestSetOps.test_symmetric_difference-  sd   
 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   5F
F!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   rk   drop
ry   rF   fnamesnameexpected_namer&   r   r   r$   rc   s
             r   test_corner_unionTestSetOps.test_corner_unionL  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   rk   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   r`   rD   rk   r   
ry   rF   r   r   r   r&   r   r   r   rc   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   r`   r#   rD   rk   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 )NrZ   r   )
r?   r
   renamelistrangenlevelsrB   asarrayr`   r]   )ry   r&   otherre   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   rt   rD   rk   )ry   r&   r   re   rc   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   equalsrt   rD   rk   )ry   r&   rY   xr   re   rc   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   r`   rt   rD   rk   )ry   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   parametrizerz   filterwarningsr   r   r   r   r   r   r   r   r   r   r   r   __static_attributes__r   r   r   rn   rn      s   [[Vc5\2[[Q) 3) [[ VW. X.2 [[O [[ VW' X'2 [[ VW[[O2 X22 [[ VW[[O6 X66 [[%	
	#/	#/J [[%	
	/	/ [[%	
	"3	"3H [[%	
	3	3 [[ VW) X)&<
0	7r   rn   r|   r   rr   rs   c                 8   U nUR                  S5      n[        U[        5      (       a  SOSn[        X25      " XAS9n[        X25      " X1S9n[        R
                  " XgUS9  [        X25      " US S US9n[        X25      " US S US9n[        R
                  " XgUS9  g )Nr   equivTr   r   rQ   )astyper?   r   rx   rD   rk   )rF   r   rr   r&   r   r   re   rc   s           r   test_setop_with_categoricalr     s     ELL$E!%44G$EU#E5Fu%e7H&%8U#E"1ID9Fu%eBQid;H&%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_   )emptyr7   r   r`   r   r5   )r&   idxidx_non_uniques      r   (test_intersection_duplicates_all_indexesr   $  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 )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   1  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   rR   r   r^   r   r   r^   r	   r$   rD   rk   r   s         r   1test_union_with_duplicate_index_and_non_monotonicr   B  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 )Nrh   )10r   )r^   r_   r_   ri   r   r   r   Fr   r   )rd   r,   rc   re   s       r   +test_union_duplicate_index_different_dtypesr   R  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   )rd   r,   re   rc   s       r   (test_union_same_value_duplicated_in_bothr   [  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   rk   )r   rd   r,   re   rc   s        r   test_union_nan_in_bothr   d  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   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  n  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_   rR   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+   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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   rR   aa)r   r	   r   r`   rD   rk   )ry   dt_datesindex1index2re   rc   s         r   test_intersect_str_dates+TestSetOpsUnsorted.test_intersect_str_dates  sb    T1a((4B*?@xv.vV,$$V,6*
f/r   r&   stringT)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)r`   rD   rk   r#   )ry   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)ri   r   rQ   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_   ri   r   rQ   r&   r*  ri   r   rQ   )r	   r`   r]   rD   rk   )ry   r   
keeps_namer   r  rc   re   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 )NrQ   r&  r   r   )r]   r`   )	ry   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*  rQ   r   i2ri   r   i3r   j1j2j3r   )
ry   r   r7  r8  r9  r$   rc   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 NrQ   r&  r   r   r'  )r$   rD   rk   r#   )ry   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@  )rg   r$   rD   rk   r#   )	ry   r&   rC  r   r   r   r   rp   re   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 )NrQ   r&  r   rR   )r$   r	   r%   )ry   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 )NrQ   r&  r   r]   r   T)r]   rt   rD   rk   r#   )	ry   r&   r3  rc   r   r   r   r   re   s	            r   !test_difference_name_preservation4TestSetOpsUnsorted.test_difference_name_preservation+  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 )NrQ   r&  r]   )r   r]   rt   r   rD   rk   )ry   r&   r   r   re   rc   s         r   test_difference_empty_arg,TestSetOpsUnsorted.test_difference_empty_argA  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	   rt   rD   rk   )ry   ra   rb   re   rc   s        r   "test_difference_should_not_compare5TestSetOpsUnsorted.test_difference_should_not_compareJ  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 )NrQ   r&  r]   r   )r]   rt   r<   )ry   r&   r   r   re   s        r   test_difference_identity+TestSetOpsUnsorted.test_difference_identityR  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 )NrQ   r&  r   )rt   r#   rD   rk   )ry   r&   r   r   r   re   rc   s          r   test_difference_sort'TestSetOpsUnsorted.test_difference_sort[  sT    as!!&/B<<++-H
f/r   opnamert   ru   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)	Nri   2000r^   r_   1999rt   Fr   )r	   r   operatormethodcallerrD   rE   r>   rk   )ry   rY  rd   r,   opre   rc   s          r   test_difference_incomparable/TestSetOpsUnsorted.test_difference_incomparableh  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)
Nri   r[  r^   r_   r\  Tr   z<'<' not supported between instances of 'Timestamp' and 'int'r2   )r	   r   r]  r^  r7   r.   rw   )ry   rY  rd   r,   r_  rJ   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)rZ   r[   bazr   )rZ   r^   r[   ri   r   ))r[   r_   )rf  ri   rg  )r
   from_tupleszipru   r#   rD   rk   )ry   r   r  r   re   rc   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_   ri   r   )r	   rB   r   ru   r#   rD   rk   )ry   r   rc   r   r  re   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_   ri   r   r  r*  )r_   ri   r   rQ   r^   rQ   r   )NTnew_name)result_namer   )r	   rB   arrayru   rD   rk   r#   r]   )ry   r   r  r   rc   re   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   rR   r-  r,  r   )ry   any_numeric_ea_and_arrow_dtyper   r(   re   rc   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 )Nrd   rR   r,   r   )ry   any_string_dtyper'   r(   re   rc   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)   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>r     s        4
 
 
 .$ . ##0G*T 	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:, ;,}7 }7@
 RSK M9 T9 
6,", ,, BFF,, -,",J,$,L0 L0r   