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

    This means that for any dtype `x` in the params list, `Index([1, 2, 3], dtype=x)` is
    valid and gives the correct Index (sub-)class.
    )param)requests    r   'any_dtype_for_small_pos_integer_indexesr    (   s      =r   c                     |                                  }|                                  }|                    |          j        |j        k    sJ d S N)sort_valuesuniondtype)indexidx1idx2s      r   test_union_same_typesr)   ;   sN     DD::d!TZ//////r   c                    | }|}|j         s'|j         s |j        j        dk    r|j        j        dk    s.|j         sc|j         s\|j        j        dk    rL|j        j        dk    r<t          j                            dt          d          }|                    |           t          |j        |j        g          }|rt          |          dk    r-|j        j        dk    st          |t                    r|j        }n?t          |          dk    r,|j        j        dk    st          |t                    r|j        }d }d}	t          |          rt          |          sn	|j        j        d	k    rt          j        |j        d
          r*|j        j        d	k    r"t          j        |j        d
          st          }nt          |j        t                    rt          |j        t                     s4t          |j        t                    r_t          |j        t                     rEt"          }d}	t          j                            dt$          d          }|                    |           t&          j        |j        |j        fv }
t+          |j                  }t+          |j                  }|                                }|                                }t/          j        ||	          5  |                    |          }|                    |          }d d d            n# 1 swxY w Y   |
rD|s|r@|j        t'          j        d          k    sJ |j        t'          j        d          k    sJ d S |j        |k    sJ |j        |k    sJ d S )NibzGH#44000 True==1F)reasonraises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 N"" JOs""JOs""N #  # JOs""JOs"" {  %j ! 
 
 	D!!!#TZ$<==L &t99>>tz#55D*9U9U5:LLYY!^^JOs""jz&B&B":LD
%Ct99 "CII "
*/S
 
 #/$*f*M*M
 
3
F(K(K 4:{++"0:4:GW0X0X" 	4:{++" 1;4:GW0X0X"
 /{  7! ! 
 

 	D!!!tz4:66J)$*55K)$*55K DD		#D	4	4	4    zz$zz$                               *{ *k *zRXc]]****zRXc]]******z\))))z\))))))s   &+LL!$L!z	idx1,idx2   r%   c                     |                      |          }|                     |           }|j        | j        |j        fv sJ |j        | j        |j        fv sJ d S r"   )r$   r%   )r'   r(   rO   rP   s       r   "test_compatible_inconsistent_pairsrU      sd     ::dD::dD:$*dj11111:$*dj111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                 \   t          |           } t          |          }t          g | |d                   }t          g ||d                   }|                    |          }|j        |k    sJ |j        |d         k    sJ |                    |          }|j        |d         k    sJ d S )Nr   )r%   name      )r   r	   r$   r%   r^   intersection)leftrightexpectedrZ   ar,   results          r   test_union_dtypesrg      s    , DEb58,,,AbE!H---AWWQZZF<8####;%("""" ^^AF;%(""""""r   valuesr_   r`   r`      rj   c                     t          |           }t          ddg          }|                    |          }t          dg          }t          j        ||           d S )Nrj   )r	   ra   rD   assert_index_equal)rh   re   r,   rf   rd   s        r   test_intersection_duplicatesrm      sU     	fAq!fA^^AFaSzzH&(+++++r   c                   @   e Zd Zej                            dddg          ej                            dg d          d                         Zej                            d          d             Zej                            d          d	             Z	ej                            d          d
             Z
ej                            d          d             Zej                            dg d          d             Zej                            dg d          d             Zej                            dg d          d             Zej                            dg d          d             Zej                            d          d             Zd Zd Zd ZdS )
TestSetOpscaseg      ?xxxmethodra   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-liker3   )r7   r.   	TypeErrorgetattr)selfrp   rr   r&   rK   s        r   test_set_ops_error_casesz#TestSetOps.test_set_ops_error_cases   s     2]9C000 	) 	)"GE6""4(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)s   AA	A	3ignore:PeriodDtype\[B\] is deprecated:FutureWarningc                    t          |t                    r)t          j        dt	          |          j                    |d d                                         }|d d                                         }|                    |          }t          j	        ||           t          |j
        t                    rd S |                                |                                |                                g}|D ])}|                    |          }t          ||          sJ *t          |t                     rOd}t          j        t$          |          5  |                    g d           d d d            d S # 1 swxY w Y   d S d S )NNot relevant for 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.   rw   )	ry   r&   firstsecond	intersectcasesrp   rf   rK   s	            r   test_intersection_basez!TestSetOps.test_intersection_base   s   e-.. 	DKBDKK,@BBCCCbqb	  ""rr!!##&&v..	
i000ek?33 	 F ""F$4$4$6$68H8HI 	2 	2D''--F!&&111111eZ(( 	.BCy444 . .""999---. . . . . . . . . . . . . . . . . .	. 	.s   E;;E?E?c                    |                                 }|dd          }|d d         }|}|                    |          }t          j        |                                |                                           t          |j        t                    rd S |                                |	                                |
                                g}|D ])}|                    |          }t          ||          sJ *t          |t                    rOd}	t          j        t          |	          5  |                    g d           d d d            d S # 1 swxY w Y   d S d S )Nrj   rR   r~   r3   r   )r   r$   rD   rl   r#   r=   r%   r   r   r   r   r   r
   r7   r.   rw   )
ry   r&   r   r   
everythingr$   r   rp   rf   rK   s
             r   test_union_basezTestSetOps.test_union_base   s   abb	rr
F##
e//11:3I3I3K3KLLLek?33 	 F ""F$4$4$6$68H8HI 	6 	6D[[&&F!&*555555eZ(( 	'BCy444 ' 'III&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '	' 	's   .EEEc                    |dd          }|d d         }|j         dk    r0t          |                              t          |                    }n"t          |t                    rg }n
|dd          }|                    ||          }t          ||          sJ |                                |                                |                                g}|D ]*}|                    ||          }t          ||          sJ +t          |t                    rPd}	t          j        t          |	          5  |                    g d|           d d d            d S # 1 swxY w Y   d S d S )Nr`      booleanr~   r3   r   )inferred_typesetrt   r=   r   r   r   r   r   r
   r7   r.   rw   )
ry   sortr&   r   r   answerrf   r   rp   rK   s
             r   test_difference_basezTestSetOps.test_difference_base  s   abb	rr)++ ZZ**3v;;77FF/00 	FF122YF!!&$//ff----- ""F$4$4$6$68H8HI 	2 	2D%%dD11F!&&111111eZ(( 	2BCy444 2 2  D1112 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2	2 	2s   4EE!Ec                 D   |rI|j         dk    r>|j        dk    r3|                    t          j                            d                     t          |t                    r)t          j        dt          |          j
                    t          |          dk     rt          j        d           |d         |d	d          v s|d
         |d d
         v rt          j        d           |d	d          }|d d
         }|dd
g         }|                    |          }t          j        |                                |                                           |                                |                                |                                g}|D ])}	|                    |	          }t'          ||          sJ *t          |t(                    rOd}
t          j        t,          |
          5  |                    g d           d d d            d S # 1 swxY w Y   d S d S )Nr   stringzTODO: infer_string)r-   r}   r`   zToo few values for testr   r_   z+Index values no not satisfy test condition.r~   r3   r   )r%   r   r;   r7   r8   r9   r=   r   r   r   r   r<   ru   rD   rl   r#   r   r   r   r   r
   r.   rw   )ry   r&   rH   r   r   r   r   rf   r   rp   rK   s              r   test_symmetric_differencez$TestSetOps.test_symmetric_difference.  sf    	Px''#x// 1 19M 1 N NOOOe-.. 	DKBDKK,@BBCCCu::>>K12228uQRRy  E"Iss$;$; KEFFFabb	ss2w++F33
f0022F4F4F4H4HIII ""F$4$4$6$68H8HI 	2 	2D//55F!&&111111eZ(( 	6BCy444 6 6**9995556 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6	6 	6s   .HHHzfname, sname, expected_name)Ar   r   r   BN)r   NNNr   N)NNNc                 D   |j         s|                                }n|}|                                                    |          }|                                                    |          }|                    |          }|                                                    |          }	t          j        ||	           |                                                    |          }|                    |                              |          }|                    |          }|                                                    |          }	t          j        ||	           |                    |                              |          }|                                                    |          }|                    |          }|                                                    |          }	t          j        ||	           |                    |                              |          }|                    |                              |          }|                    |          }|                    |                              |          }	t          j        ||	           d S r"   )r5   r   copy	set_namesr$   rD   rl   drop
ry   rF   fnamesnameexpected_namer&   r   r   r$   rd   s
             r   test_corner_unionzTestSetOps.test_corner_unionP  s    # 	%%''EEE 

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

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

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

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

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

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

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

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

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

&&u--qrr$$U++&&v..::<<	9&&}55AACC
i22222r   c                    t          |t                    r5|                    t          t	          |j                                      }n|                    d          }t          j        |          }|                    |          }|j	        |j	        k    sJ |                    |d d                   }|j	        |j	        k    sJ |d d                             |          }|j	        |j	        k    sJ d S )Nr[   r   )
r=   r
   renamelistrangenlevelsrB   asarrayra   r^   )ry   r&   otherrf   s       r   .test_intersection_name_retention_with_namelessz9TestSetOps.test_intersection_name_retention_with_nameless  s    eZ(( 	(LLeEM&:&:!;!;<<EELL''E
5!!##E**{ej(((( ##E"1"I..{ej(((( rr''..{ej((((((r   c                     |j         st          j        d           |                    ||          }|d d         }t	          j        ||d           d S )Nz&Not relevant since index is not uniquer   r   Texact)r5   r7   r   rt   rD   rl   )ry   r&   r   rf   rd   s        r   $test_difference_preserves_type_emptyz/TestSetOps.test_difference_preserves_type_empty  sc      	BK@AAA!!%d!33!9
fhd;;;;;;r   c                    t          t                    rfd|D             }                    |d                                       |d                   }                    |          sJ                     |          }d d                             |d                   }t          j        ||           d S )Nc                 &    g | ]}|gj         z  S  )r   ).0xr&   s     r   
<listcomp>zDTestSetOps.test_difference_name_retention_equals.<locals>.<listcomp>  s"    888QaS5=(888r   r   r_   r`   )r=   r
   r   equalsrt   rD   rl   )ry   r&   rZ   r   rf   rd   s    `    r   %test_difference_name_retention_equalsz0TestSetOps.test_difference_name_retention_equals  s    eZ(( 	98888%888EU1X&&U1X&&||E"""""!!%((!9##E!H--
fh/////r   c                     |j         st          j        d           |                    |d d                   }|                    ||          }t          j        ||d           d S )Nz(Not relevant because index is not uniquer   r   Tr   )r5   r7   r   ra   rt   rD   rl   )ry   r&   r   interdiffs        r   (test_intersection_difference_match_emptyz3TestSetOps.test_intersection_difference_match_empty  sq    
  	DKBCCC""5!9--D11
eT666666r   N)r   
__module____qualname__r7   r8   parametrizerz   filterwarningsr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   ro   ro      s       [Vc5\22[QQQ ) )  32) [ VWW. . XW.2 [ VWW' ' XW'2 [ VWW2 2 XW22 [ VWW6 6 XW6B [%	
 	
 	
	 	#/ #/	 	#/J [%	
 	
 	
	 	/ /	 	/ [%	
 	
 	
	 	"3 "3	 	"3H [%	
 	
 	
	 	3 3	 	3 [ VWW) ) XW)&< < <
0 
0 
0	7 	7 	7 	7 	7r   ro   z7ignore:invalid value encountered in cast:RuntimeWarningr{   rr   rs   c                 B   | }|                     d          }t          |t                    rdnd} t          ||          ||          } t          ||          ||          }|r |j        r|dv r|                     d          }t          j        |||            t          ||          |d d         |          } t          ||          |d d         |          }|r |j        r|dv r|                     d          }t          j        |||           d S )Nr   equivTr   )r$   ru   r   rR   )astyper=   r   rx   emptyrD   rl   )	rF   r   rr   rH   r&   r   r   rf   rd   s	            r   test_setop_with_categoricalr     sR    ELL$$E!%44>GG$E#WUF##E555F%wuf%%e$777H/K/ 777??:..&(%8888#WUF##E"1"ID999F%wuf%%eBQBid;;;H/K/ 777??:..&(%888888r   c                    | j         rt          j        d           | }|g d         }|                    |                              |                    |                    sJ |                    |          j        sJ d S )NzNot relevant for empty Indexr   r   r_   r`   )r   r7   r   ra   r   r5   )r&   idxidx_non_uniques      r   (test_intersection_duplicates_all_indexesr   2  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 )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lll%(((Aiiiu%%%A'''u555H!%&& -+++,,WWQZZF&(+++WWQUW##F&(+++++r   c                 $   | }t          g d|          }t          ddg|          }t          g d|          }|                    |          }t          j        ||           |                    |          }t          j        ||           d S )N)r_   r   r   rS   r   r_   r   r   r_   r	   r$   rD   rl   r   s         r   1test_union_with_duplicate_index_and_non_monotonicr   P  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 )Nri   )10r   )r_   r`   r`   rj   r   r   r   Fr   r   )re   r,   rd   rf   s       r   +test_union_duplicate_index_different_dtypesr   `  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   )re   r,   rf   rd   s       r   (test_union_same_value_duplicated_in_bothr   i  s]    iiiAlllAWWQZZF\\\""H&(+++++r   dupr_   c                    t          t          j        dddg          }t          t          j        | ddg          }|                    |d          }t          t          j        | dddg          }t	          j        ||           d S )Nr_   r`   Fr   g      ?       @)r	   rB   nanr$   rD   rl   )r   re   r,   rf   rd   s        r   test_union_nan_in_bothr   r  s|     	rvq!Q  ArvsAq!""AWWQUW##Fbfc3S122H&(+++++r   c                      t          ddd          } t          ddd          }|                     |d          }t          g d          }t          j        ||           d S )	Nr_   d      2   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  |  sr    aa  DaQDZZ4Z((F	
 	
 	
 H: &(+++++r   c                 p   | }t          g d|          }t          g d|          }t          g d|          }t          |t                    rt          g d          }|                    |          }t	          j        ||           |                    |          }t	          j        ||           d S )N)r_   r   r`   rS   r   r   r   r   s         r   <test_union_with_duplicate_index_not_subset_and_non_monotonicr    s     4Eiiiu%%%Aiiiu%%%A\\\///H!%&& '&&WWQZZF&(+++WWQZZF&(+++++r   c                     t          ddt          j        g          } | j        j        j        dk    sJ t          ddg          }|                    |           }t          ddt          j        gt          j                  }t          j
        ||           |                     |          }t          j
        ||           d S )Nr_   r`   r+   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BF^2:666H&(+++XXc]]F&(+++++r   c                      e Zd Zd Zej                            ddgd          d             Zej                            d eg dd	          df eg dd
	          df eg d          dfg          d             Z	ej                            ddgd          ej                            dg d          d                         Z
d Zej                            ddgd          d             Zej                            dej        eeg          ej                            ddgd          d                         Zej                            ddgd          d             Zej                            ddgd          ej                            dddg          d                         Zd Zd Zej                            ddgd          d             Zej                            ddgd          d             Zej                            dddg          d              Zej                            dddg          d!             Zd" Zej                            d# ed$d%ej        g           eg d&          f ed$d%g           eej        d'd(d)g          fg          d*             Zd+ Zd, Zd- Zd.S )/TestSetOpsUnsortedc                 $   t          ddd          t          ddd          g}t          |t                    }t          dgt                    }|                    |          }t          g t                    }t	          j        ||           d S )Ni  r`   	   r   rS   aa)r   r	   r   ra   rD   rl   )ry   dt_datesindex1index2rf   rd   s         r   test_intersect_str_datesz+TestSetOpsUnsorted.test_intersect_str_dates  s    T1a(((4B*?*?@xv...vV,,,$$V,,6***
fh/////r   r&   r   T)indirectc                 <   |d d         }|d d         }|                     ||          }|dv r:t          j        |                                |                                           nt          j        ||           |                     ||          }||u sJ d S )N   r   r   NF)ra   rD   rl   r#   )ry   r&   r   r   r   r   r   s          r   test_intersectionz$TestSetOpsUnsorted.test_intersection  s    crc
ss&&vD&99	=  !)"7"7"9"96;M;M;O;OPPPP!)V444 ""5t"44~~~~~~r   zindex2,keeps_name)rj   r   rR   r   r   r^   r   Fc                     t          g dd          }t          g d          }|                    ||          }|rd|_        |j        |j        k    sJ t          j        ||           d S )Nr_   r`   rj   r   rR   r&   r  rj   r   rR   )r	   ra   r^   rD   rl   )ry   r  
keeps_namer   r  rd   rf   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 )NrR   r  r   r   )r^   ra   )	ry   r&   
first_namesecond_namer   r   r   r   r   s	            r   $test_intersection_name_preservation2z7TestSetOpsUnsorted.test_intersection_name_preservation2  s]     adss
!&&vD&99	~......r   c                    t          ddgd          }t          ddgd          }t          dd	gd
          }|                    |                    ||          |          }|                    ||                              ||          }t          j        ||           t          ddgd          }t          g d          }t          g d          }	|                    |                    |	|          |          }|                    ||                              |	|          }t          j        ||           d S )Nr_   r`   i1r  rR   r   i2rj   r   i3r   j1j2j3r   )
ry   r   r&  r'  r(  r$   rd   r)  r*  r+  s
             r   test_chained_unionz%TestSetOpsUnsorted.test_chained_union  sD   Aq6%%%Aq6%%%Aq6%%%"400t<<88BT8**00$0??
eX...Aq6%%%2D!!!2D!!!"400t<<88BT8**00$0??
eX.....r   c                    |dd         }|d d         }|d d         }|                     ||          }|dv r;t          j        |                                |                                           d S t          j        ||           d S NrR   r  r   r   r  )r$   rD   rl   r#   )ry   r&   r   r   r   r   r$   s          r   
test_unionzTestSetOpsUnsorted.test_union  s    adss3B3Z
F..=  !%"3"3"5"5z7M7M7O7OPPPPP!%44444r   klassc                 8   |dd         }|d d         }|d d         } ||j                   }|                    ||          }|dv r;t          j        |                                |                                           d S t          j        ||           d S r.  )rh   r$   rD   rl   r#   )	ry   r&   r0  r   r   r   r   rp   rf   s	            r   test_union_from_iterablesz,TestSetOpsUnsorted.test_union_from_iterables  s     adss3B3Z
uV]##T--=  !&"4"4"6"6
8N8N8P8PQQQQQ!&*55555r   c                 *   |dd         }|                     ||          }||u | u sJ |                     t          g |j                  |          }||u | u sJ t          g |j                                       ||          }||u | u sJ d S )NrR   r  r   rS   )r$   r	   r%   )ry   r&   r   r   r$   s        r   test_union_identityz&TestSetOpsUnsorted.test_union_identity)  s    adE--H---- E"EK888tDDH----b,,,225t2DDH------r   zsecond_name,expected)NN)r^   r^   c                 t   |dd         }|d d         }|dd         }d|_         ||_         |                    ||          }|du rt          j        ||           n@||_         t          j        |                                |                                           ||j         J d S |j         |k    sJ d S )NrR   r  r   r^   r   T)r^   rt   rD   rl   r#   )	ry   r&   r#  rd   r   r   r   r   rf   s	            r   !test_difference_name_preservationz4TestSetOpsUnsorted.test_difference_name_preservation9  s     adssr"u
!!!&t!444<<!&&1111%FK!&"4"4"6"68J8J8L8LMMM;&&&&&;(******r   c                     |                                 }|dd         }d|_        |                    g |          }|dd                                         }d|_        t	          j        ||           d S )NrR   r  r^   )r   r^   rt   r   rD   rl   )ry   r&   r   r   rf   rd   s         r   test_difference_empty_argz,TestSetOpsUnsorted.test_difference_empty_argO  sq    

ad
!!"d++2;%%''
fh/////r   c                     t          ddg          }t          dg          }|                    |          }t          dg          }t          j        ||           d S )Nr_   T)r	   rt   rD   rl   )ry   rb   rc   rf   rd   s        r   "test_difference_should_not_comparez5TestSetOpsUnsorted.test_difference_should_not_compareX  sU    aV}}tf''!::
fh/////r   c                     |dd         }d|_         |                    ||          }t          |          dk    sJ |j         |j         k    sJ d S )NrR   r  r^   r   )r^   rt   r<   )ry   r&   r   r   rf   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 )NrR   r  r   )rt   r#   rD   rl   )ry   r&   r   r   r   rf   rd   s          r   test_difference_sortz'TestSetOpsUnsorted.test_difference_sorti  sm    adss!!&$//B<<++--H
fh/////r   opnamert   ru   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 )	Nrj   2000r_   r`   1999rt   Fr   )r	   r   operatormethodcallerrD   rE   r?   rl   )ry   r?  re   r,   oprf   rd   s          r   test_difference_incomparablez/TestSetOpsUnsorted.test_difference_incomparablev  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 )
Nrj   rA  r_   r`   rB  Tr   z<'<' not supported between instances of 'Timestamp' and 'int'r3   )r	   r   rC  rD  r7   r.   rw   )ry   r?  re   r,   rE  rK   s         r   !test_difference_incomparable_truez4TestSetOpsUnsorted.test_difference_incomparable_true  s    1i''+,,1i''+,,"614888L]9C000 	 	BqEEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   3BBBc                 .   t          j        t          g dg d                    }t          j        ddg          }|                    ||          }t          j        g d          }||                                }t          j        ||           d S )N)r[   r\   bazr   )r[   r_   r\   rj   r   ))r\   r`   )rJ  rj   rK  )r
   from_tupleszipru   r#   rD   rl   )ry   r   r  r  rf   rd   s         r   test_symmetric_difference_miz/TestSetOpsUnsorted.test_symmetric_difference_mi  s    ',A,A,A999(M(MNN'Z(@AA,,V$,??)*N*N*NOO<++--H
fh/////r   zindex2,expectedr   r_   )r         @        r   rO  rP  c                     t          dt          j        ddg          }|                    ||          }||                                }t          j        ||           d S )Nr_   r`   rj   r   )r	   rB   r   ru   r#   rD   rl   )ry   r  rd   r   r  rf   s         r   !test_symmetric_difference_missingz4TestSetOpsUnsorted.test_symmetric_difference_missing  sc     261a()),,V$,??<++--H
fh/////r   c                 "   t          g dd          }t          j        g d          }t          ddgd          }|                    ||          }|dv rt	          j        ||           n't	          j        |                                |           |j        dk    sJ |                    |d	|
          }d	|_        |dv rt	          j        ||           n't	          j        |                                |           |j        d	k    sJ d S )N)r_   r`   rj   r   r  r  )r`   rj   r   rR   r_   rR   r   )NTnew_name)result_namer   )r	   rB   arrayru   rD   rl   r#   r^   )ry   r   r  r  rd   rf   s         r   #test_symmetric_difference_non_indexz6TestSetOpsUnsorted.test_symmetric_difference_non_index  s'   |||(333,,,''!Qh///,,V$,??<!&(3333!&"4"4"6"6AAA{h&&&&,,VRV,WW"<!&(3333!&"4"4"6"6AAA{j((((((r   c                     t          g d|          }t          g d|          }|                    |          }t          g d|          }t          j        ||           d S )Nr   rS   r  r  r   )ry   any_numeric_ea_and_arrow_dtyper   r(   rf   rd   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 )Nre   rS   r,   r   )ry   any_string_dtyper'   r(   rf   rd   s         r   test_union_string_arrayz*TestSetOpsUnsorted.test_union_string_array  sm    cU"2333cU"2333D!!#s+;<<<
fh/////r   N) r   r   r   r  r7   r8   r   r  r	   r   r$  r,  r/  rB   rV  r   r   r2  r4  r6  r8  r:  r<  r>  rF  rH  rN  r   rR  rW  rZ  r]  r   r   r   r  r    s*       0 0 0 [Wxj4@@  A@ [U???11148U???11159U???##U+	
 	0 	0 	0 [Wxj4@@[.>>> / /	  A@
// / /  [Wxj4@@	5 	5 A@	5 [Wrx&>??[Wxj4@@6 6 A@ @?6 [Wxj4@@. . A@. [Wxj4@@[3lDT5UVV+ + WV A@+(0 0 00 0 0 [Wxj4@@) ) A@) [Wxj4@@
0 
0 A@
0 [X6L'MNN0 0 ON0$ [X6L'MNN  ON0 0 0 [UAq"&>""EE///$:$:;UAq6]]EE263S"9::;	
 0 0 0) ) )&0 0 00 0 0 0 0r   r  )8__doc__r   rC  numpyrB   r7   pandas._libsr   pandas.core.dtypes.castr   pandasr   r   r   r	   r
   r   r   r   r   pandas._testing_testingrD   pandas.api.typesr   r   boolr   fixtureALL_REAL_NUMPY_DTYPESr    r)   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>rj     s                      4 4 4 4 4 4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
             .$ . . . . #      0 0 0N* N* N*b 	yry||28	,	,	,jjmm<	yry||2:	.	.	.ibill"(0S0S0ST	yry||2:	.	.	.

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