o
    �¨Êhª€  ã                   @   sV  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	d
„Zejejg d¢ d�dd„ ƒZdd„ Zdd„ Z ej! "dee #d¡ej$d�edƒfee #d¡ej%d�ee #d¡ej$d�fee #d¡ej%d�edƒfee #d¡ej%d�ee #d¡ej&d�fg¡dd„ ƒZ'ej! "dg d¢¡ej! "dddg¡dd„ ƒƒZ(ej! "dg d ¢d!d!gg¡d"d#„ ƒZ)G d$d%„ d%ƒZ*ej! +d&¡ej! +d'¡ej! "d(g d)¢¡d*d+„ ƒƒƒZ,d,d-„ Z-d.d/„ Z.d0d1„ Z/d2d3„ Z0d4d5„ Z1ej! "d6d7ej2g¡d8d9„ ƒZ3d:d;„ Z4d<d=„ Z5d>d?„ Z6G d@dA„ dAƒZ7dS )BzX
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                 C   s   t | ƒt |ƒkS )zO
    Checks if the set of unique elements of arr1 and arr2 are equivalent.
    )Ú	frozenset)Úarr1Úarr2© r   úR/var/www/html/env/lib/python3.10/site-packages/pandas/tests/indexes/test_setops.pyÚequal_contents!   s   r   )ÚobjectÚcategoryúdatetime64[ns]ztimedelta64[ns])Úparamsc                 C   s   | 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)Úrequestr   r   r   Ú'any_dtype_for_small_pos_integer_indexes(   s   r   c                 C   s*   |   ¡ }|   ¡ }| |¡j|jksJ ‚d S ©N)Úsort_valuesÚunionÚdtype)ÚindexÚidx1Úidx2r   r   r   Útest_union_same_types;   s   r%   c                 C   sô  | }|}|j s|j s|jjdkr|jjdks(|j s6|j s6|jjdkr6|jjdkr6tjjdtdd�}| |¡ t|j|jgƒ}d }d}t	|ƒrJt	|ƒsKnG|jjdkrXt
 |jd¡re|jjdkrht
 |jd¡sht}n*t|jtƒrtt|jtƒs€t|jtƒr’t|jtƒr’t}d	}tjjd
tdd�}| |¡ tj|j|jfv }	t|jƒ}
t|jƒ}| ¡ }| ¡ }tj||d�� | |¡}| |¡}W d   ƒ n1 sÉw   Y  |	rê|
sÔ|rê|jt d¡ksÞJ ‚|jt d¡ksèJ ‚d S |j|ksñJ ‚|j|ksøJ ‚d S )NÚiÚbzGH#44000 True==1F)ÚreasonÚraisesÚstrictz'<' not supported betweenÚcÚiufczPeriodDtype\[B\] is deprecatedz"Warning not produced on all builds©ÚmatchÚO)Ú	is_uniquer!   ÚkindÚpytestÚmarkÚxfailÚ
ValueErrorÚapplymarkerr   Úlenr   Úis_np_dtypeÚRuntimeWarningÚ
isinstancer
   r   ÚFutureWarningÚAssertionErrorÚnpÚuint64r   r   ÚtmÚassert_produces_warningr    )Ú
index_flatÚindex_flat2r   r#   r$   r3   Úcommon_dtypeÚwarnÚmsgÚ
any_uint64Úidx1_signedÚidx2_signedÚres1Úres2r   r   r   Útest_union_different_typesC   sp   ÿþþýÿ

ÿ
ÿ
ý
ýý



þrK   z	idx1,idx2é   ©r!   c                 C   sD   |   |¡}|  | ¡}|j| j|jfv sJ ‚|j| j|jfv s J ‚d S r   )r    r!   )r#   r$   rI   rJ   r   r   r   Ú"test_compatible_inconsistent_pairs�   s   

rN   zleft, right, expected))Úint64rO   rO   )rO   r>   r   )rO   Úfloat64rP   )r>   rP   rP   )r>   r>   r>   )rP   rP   rP   )r   rO   r   )r   r>   r   )r   rP   r   )údatetime64[ns, CET]rO   r   )rQ   r>   r   )rQ   rP   r   )ú	Period[D]rO   r   )rR   r>   r   )rR   rP   r   Únames)ÚfoorT   rT   )rT   ÚbarNc                 C   s~   t | ƒ} t |ƒ}tg | |d d�}tg ||d d�}| |¡}|j|ks&J ‚|j|d ks/J ‚| |¡}|j|d ks=J ‚d S )Nr   )r!   Únameé   é   )r   r   r    r!   rV   Úintersection)ÚleftÚrightÚexpectedrS   Úar'   Úresultr   r   r   Útest_union_dtypesŸ   s   

r_   Úvalues©rW   rX   rX   é   rb   c                 C   s8   t | ƒ}t ddgƒ}| |¡}t dgƒ}t ||¡ d S )Nrb   )r   rY   r?   Úassert_index_equal)r`   r]   r'   r^   r\   r   r   r   Útest_intersection_duplicatesÃ   s
   

rd   c                   @   s@  e Zd Zej dddg¡ej dg d¢¡dd„ ƒƒZej d¡d	d
„ ƒZej d¡ej d¡dd„ ƒƒZ	ej d¡ej d¡dd„ ƒƒZ
ej d¡ej d¡dd„ ƒƒZej dg d¢¡dd„ ƒZej dg d¢¡dd„ ƒZej dg d¢¡dd„ ƒZej dg d¢¡dd„ ƒZej d¡dd„ ƒZdd„ Zd d!„ Zd"d#„ Zd$S )%Ú
TestSetOpsÚcaseg      à?ÚxxxÚmethod©rY   r    Ú
differenceÚsymmetric_differencec                 C   sF   d}t jt|d�� t||ƒ|ƒ W d   ƒ d S 1 sw   Y  d S )Nz!Input must be Index or array-liker-   )r2   r)   Ú	TypeErrorÚgetattr)Úselfrf   rh   r"   rE   r   r   r   Útest_set_ops_error_casesÏ   s   "ÿz#TestSetOps.test_set_ops_error_casesú3ignore:PeriodDtype\[B\] is deprecated:FutureWarningc           	      C   sò   t |tƒrt dt|ƒj› �¡ |d d…  ¡ }|d d…  ¡ }| |¡}t 	||¡ t |j
tƒr3d S | ¡ | ¡ | ¡ g}|D ]}| |¡}t||ƒsNJ ‚q@t |tƒrwd}tjt|d�� | g d¢¡ W d   ƒ d S 1 spw   Y  d S d S )NúNot relevant for rL   rb   ú.other must be a MultiIndex or a list of tuplesr-   ©rW   rX   rb   )r:   r   r2   ÚskipÚtypeÚ__name__ÚuniquerY   r?   rc   r!   r   Úto_numpyÚ	to_seriesÚto_listr   r	   r)   rl   )	rn   r"   ÚfirstÚsecondÚ	intersectÚcasesrf   r^   rE   r   r   r   Útest_intersection_baseÙ   s$   



"ÿþz!TestSetOps.test_intersection_baseúEignore:Falling back on a non-pyarrow:pandas.errors.PerformanceWarningc           
      C   sÞ   |  ¡ }|dd … }|d d… }|}| |¡}t | ¡ | ¡ ¡ t|jtƒr)d S | ¡ | 	¡ | 
¡ g}|D ]}| |¡}t||ƒsDJ ‚q6t|tƒrmd}	tjt|	d�� | g d¢¡ W d   ƒ d S 1 sfw   Y  d S d S )Nrb   rL   rr   r-   rs   )rw   r    r?   rc   r   r:   r!   r   rx   ry   rz   r   r	   r2   r)   rl   )
rn   r"   r{   r|   Ú
everythingr    r~   rf   r^   rE   r   r   r   Útest_union_baseó   s$   


"ÿþzTestSetOps.test_union_basec           
      C   sü   |dd … }|d d… }|j dkrt|ƒ t|ƒ¡}nt|tƒr#g }n|dd … }| ||¡}t||ƒs6J ‚| ¡ | ¡ | ¡ g}|D ]}| ||¡}t||ƒsRJ ‚qCt|t	ƒr|d}	t
jt|	d�� | g d¢|¡ W d   ƒ d S 1 suw   Y  d S d S )NrX   é   Úbooleanrr   r-   rs   )Úinferred_typeÚsetrj   r:   r   r   rx   ry   rz   r	   r2   r)   rl   )
rn   Úsortr"   r{   r|   Úanswerr^   r~   rf   rE   r   r   r   Útest_difference_base  s&   


"ÿþzTestSetOps.test_difference_basec           	      C   s6  t |tƒrt dt|ƒj› �¡ t|ƒdk rt d¡ |d |dd … v s/|d |d d… v r4t d¡ |dd … }|d d… }|ddg }| |¡}t 	| 
¡ | 
¡ ¡ | ¡ | ¡ | ¡ g}|D ]}| |¡}t||ƒspJ ‚qbt |tƒr™d}tjt|d	�� | g d
¢¡ W d   ƒ d S 1 s’w   Y  d S d S )Nrq   rX   zToo few values for testr   rW   éÿÿÿÿz+Index values no not satisfy test condition.rr   r-   rs   )r:   r   r2   rt   ru   rv   r7   rk   r?   rc   r   rx   ry   rz   r   r	   r)   rl   )	rn   r"   r{   r|   rˆ   r^   r~   rf   rE   r   r   r   Útest_symmetric_difference-  s*   

(



"ÿþz$TestSetOps.test_symmetric_differencezfname, sname, expected_name)©ÚAr�   r�   ©r�   ÚBN)r�   NN©Nr�   N)NNNc           
      C   s"  |j s| ¡ }n|}| ¡  |¡}| ¡  |¡}| |¡}| ¡  |¡}	t ||	¡ | ¡  |¡}| |¡ |¡}| |¡}| ¡  |¡}	t ||	¡ | |¡ |¡}| ¡  |¡}| |¡}| ¡  |¡}	t ||	¡ | |¡ |¡}| |¡ |¡}| |¡}| |¡ |¡}	t ||	¡ d S r   )r0   rw   ÚcopyÚ	set_namesr    r?   rc   Údrop©
rn   rA   ÚfnameÚsnameÚexpected_namer"   r{   r|   r    r\   r   r   r   Útest_corner_unionL  s.   




zTestSetOps.test_corner_unionc           
      C   s`   |j s| ¡ }n|}| ¡  |¡}|dd …  |¡}| |¡ ¡ }| |¡ ¡ }	t ||	¡ d S ©NrW   )r0   rw   r‘   r’   r    r   r?   rc   r”   r   r   r   Útest_union_unequal{  s   
zTestSetOps.test_union_unequalc           
      C   s&  |j s| ¡ }n|}| ¡  |¡}| ¡  |¡}| |¡}| ¡  |¡}	t ||	¡ | ¡  |¡}| |¡ |¡}| |¡}| |¡ |¡}	t ||	¡ | |¡ |¡}| ¡  |¡}| |¡}| |¡ |¡}	t ||	¡ | |¡ |¡}| |¡ |¡}| |¡}| |¡ |¡}	t ||	¡ d S r   )r0   rw   r‘   r’   rY   r?   rc   r“   ©
rn   rA   r•   r–   r—   r"   r{   r|   r}   r\   r   r   r   Útest_corner_intersect’  s.   




z TestSetOps.test_corner_intersectc           
      C   sh   |j s| ¡ }n|}| ¡  |¡}|dd …  |¡}| |¡ ¡ }|dd …  |¡ ¡ }	t ||	¡ d S r™   )r0   rw   r‘   r’   rY   r   r?   rc   r›   r   r   r   Útest_intersect_unequalÀ  s   
z!TestSetOps.test_intersect_unequalc                 C   s–   t |tƒr| tt|jƒƒ¡}n| d¡}t |¡}| |¡}|j	|j	ks'J ‚| |d d… ¡}|j	|j	ks8J ‚|d d…  |¡}|j	|j	ksIJ ‚d S )NrT   r   )
r:   r	   ÚrenameÚlistÚrangeÚnlevelsr=   ÚasarrayrY   rV   )rn   r"   Úotherr^   r   r   r   Ú.test_intersection_name_retention_with_nameless×  s   



z9TestSetOps.test_intersection_name_retention_with_namelessc                 C   s>   |j st d¡ |j||d�}|d d… }tj||dd� d S )Nz&Not relevant since index is not unique©r‡   r   T©Úexact)r0   r2   rt   rj   r?   rc   )rn   r"   r‡   r^   r\   r   r   r   Ú$test_difference_preserves_type_emptyë  s
   
z/TestSetOps.test_difference_preserves_type_emptyc                    sv   t ˆ tƒr‡ fdd„|D ƒ}ˆ  |d ¡‰ ˆ  |d ¡}ˆ  |¡s#J ‚ˆ  |¡}ˆ d d…  |d ¡}t ||¡ d S )Nc                    s   g | ]}|gˆ j  ‘qS r   )r¡   )Ú.0Úx©r"   r   r   Ú
<listcomp>÷  s    zDTestSetOps.test_difference_name_retention_equals.<locals>.<listcomp>r   rW   rX   )r:   r	   rž   Úequalsrj   r?   rc   )rn   r"   rS   r£   r^   r\   r   r«   r   Ú%test_difference_name_retention_equalsõ  s   

z0TestSetOps.test_difference_name_retention_equalsc                 C   sD   |j st d¡ | |d d… ¡}|j||d�}tj||dd� d S )Nz(Not relevant because index is not uniquer   r¥   Tr¦   )r0   r2   rt   rY   rj   r?   rc   )rn   r"   r‡   ÚinterÚdiffr   r   r   Ú(test_intersection_difference_match_empty  s
   
z3TestSetOps.test_intersection_difference_match_emptyN)rv   Ú
__module__Ú__qualname__r2   r3   Úparametrizero   Úfilterwarningsr   r‚   r‰   r‹   r˜   rš   rœ   r�   r¤   r¨   r®   r±   r   r   r   r   re   Í   s`    ÿ

ÿ

ÿ
ÿþ

%þ

þ

$þ




re   rp   r€   rh   ri   c                 C   sœ   | }|  d¡}t|tƒrdnd}t||ƒ||d�}t||ƒ||d�}tj|||d� t||ƒ|d d… |d�}t||ƒ|d d… |d�}tj|||d� d S )Nr   ÚequivTr¥   r¦   rL   )Úastyper:   r   rm   r?   rc   )rA   r‡   rh   r"   r£   r§   r^   r\   r   r   r   Útest_setop_with_categorical  s   	
r¸   c                 C   sN   | j rt d¡ | }|g d¢ }| |¡ | |¡¡sJ ‚| |¡js%J ‚d S )NzNot relevant for empty Index©r   r   rW   rX   )Úemptyr2   rt   rY   r­   r0   )r"   ÚidxÚidx_non_uniquer   r   r   Ú(test_intersection_duplicates_all_indexes$  s   
r½   c                 C   s~   | }t g d¢|d�}t g d¢|d�}t g d¢|d�}t|tƒr%t g d¢ƒ}| |¡}t ||¡ |j|dd�}t ||¡ d S )Nra   rM   )rb   rb   rƒ   )rW   rX   rX   rb   rb   rƒ   Fr¥   ©r   r:   r   r    r?   rc   ©r   r!   r]   r'   r\   r^   r   r   r   Ú0test_union_duplicate_index_subsets_of_each_other1  s   

rÀ   c                 C   sd   | }t g d¢|d�}t ddg|d�}t g d¢|d�}| |¡}t ||¡ | |¡}t ||¡ d S )N)rW   r   r   rM   r   rW   ©r   r   rW   ©r   r    r?   rc   r¿   r   r   r   Ú1test_union_with_duplicate_index_and_non_monotonicB  s   

rÃ   c                  C   sB   t g d¢ƒ} t g d¢ƒ}t g d¢ƒ}| j|dd�}t ||¡ d S )Nra   )Ú1Ú0rÅ   )rW   rX   rX   rb   rÄ   rÅ   rÅ   Fr¥   rÂ   )r]   r'   r\   r^   r   r   r   Ú+test_union_duplicate_index_different_dtypesR  s
   rÆ   c                  C   s>   t g d¢ƒ} t g d¢ƒ}|  |¡}t g d¢ƒ}t ||¡ d S )NrÁ   r¹   rÂ   )r]   r'   r^   r\   r   r   r   Ú(test_union_same_value_duplicated_in_both[  s
   
rÇ   ÚduprW   c                 C   sV   t tjdddgƒ}t tj| ddgƒ}|j|dd�}t tj| dddgƒ}t ||¡ d S )NrW   rX   Fr¥   g      ð?ç       @)r   r=   Únanr    r?   rc   )rÈ   r]   r'   r^   r\   r   r   r   Útest_union_nan_in_bothd  s
   rË   c                  C   sB   t dddƒ} t dddƒ}| j|dd�}tg d¢ƒ}t ||¡ d S )	NrW   éd   é   é2   rb   Tr¥   )rW   rƒ   é   é
   é   é   é   é   é   é   é   é"   é%   é(   é+   é.   é1   é7   é=   éC   éI   éO   éU   é[   éa   )r   r    r   r?   rc   )r#   r$   r^   r\   r   r   r   Útest_union_rangeindex_sort_truen  s   ÿræ   c                 C   sz   | }t g d¢|d�}t g d¢|d�}t g d¢|d�}t|tƒr%t g d¢ƒ}| |¡}t ||¡ | |¡}t ||¡ d S )N)rW   r   rX   rM   rÁ   r¹   r¾   r¿   r   r   r   Ú<test_union_with_duplicate_index_not_subset_and_non_monotonic“  s   


rç   c                  C   st   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d�}t	 
||¡ |  |¡}t	 
||¡ d S )NrW   rX   r&   rM   )r   r=   rÊ   Ú
categoriesr!   r1   r   r    rP   r?   rc   )Úcir»   r^   r\   r   r   r   Ú#test_union_int_categorical_with_nan¥  s   

rê   c                
   @   s.  e Zd Zdd„ Zejjddgdd�dd„ ƒZej d	eg d
¢dd�dfeg d
¢dd�dfeg d
¢ƒdfg¡dd„ ƒZ	ejjddgdd�ej dg d¢¡dd„ ƒƒZ
dd„ Zejjddgdd�dd„ ƒZej dejeeg¡ejjddgdd�dd„ ƒƒZejjddgdd�dd„ ƒZejjddgdd�ej dddg¡d d!„ ƒƒZd"d#„ Zd$d%„ Zejjddgdd�d&d'„ ƒZejjddgdd�d(d)„ ƒZej d*d+d,g¡d-d.„ ƒZej d*d+d,g¡d/d0„ ƒZd1d2„ Zej d3ed4d5ejgƒeg d6¢ƒfed4d5gƒeejd7d8d9gƒfg¡d:d;„ ƒZd<d=„ Zd>d?„ Zd@dA„ ZdBS )CÚTestSetOpsUnsortedc                 C   sX   t dddƒt dddƒg}t|td�}tdgtd�}| |¡}tg td�}t ||¡ d S )NiÜ  rX   é	   rÔ   rM   Úaa)r   r   r   rY   r?   rc   )rn   Údt_datesÚindex1Úindex2r^   r\   r   r   r   Útest_intersect_str_dates¶  s   
z+TestSetOpsUnsorted.test_intersect_str_datesr"   ÚstringT)Úindirectc                 C   sn   |d d… }|d d… }|j ||d�}|dv r"t | ¡ | ¡ ¡ nt ||¡ |j ||d�}||u s5J ‚d S )Né   rÐ   r¥   ©NF)rY   r?   rc   r   )rn   r"   r‡   r{   r|   r}   r¯   r   r   r   Útest_intersectionÀ  s   z$TestSetOpsUnsorted.test_intersectionzindex2,keeps_name)rb   rƒ   rL   rÍ   rÏ   ©rV   r£   Fc                 C   sR   t g d¢dd�}t g d¢ƒ}| ||¡}|rd|_|j|jks!J ‚t ||¡ d S )N©rW   rX   rb   rƒ   rL   r"   r÷   ©rb   rƒ   rL   )r   rY   rV   r?   rc   )rn   rð   Ú
keeps_namer‡   rï   r\   r^   r   r   r   Ú#test_intersection_name_preservationÎ  s   	z6TestSetOpsUnsorted.test_intersection_name_preservationz$first_name,second_name,expected_name)rŒ   rŽ   r�   c           	      C   sD   |dd… }|d d… }||_ ||_ |j||d�}|j |ks J ‚d S )NrL   rô   rÐ   r¥   )rV   rY   )	rn   r"   Ú
first_nameÚsecond_namer—   r‡   r{   r|   r}   r   r   r   Ú$test_intersection_name_preservation2á  s   z7TestSetOpsUnsorted.test_intersection_name_preservation2c           
      C   sÔ   t ddgdd�}t ddgdd�}t dd	gd
d�}|j|j||d�|d�}|j||d�j||d�}t ||¡ t ddgdd�}t g dd�}t g dd�}	|j|j|	|d�|d�}|j||d�j|	|d�}t ||¡ d S )NrW   rX   Úi1r÷   rL   rÍ   Úi2rb   rƒ   Úi3r¥   Új1Új2Új3rÂ   )
rn   r‡   rÿ   r   r  r    r\   r  r  r  r   r   r   Útest_chained_unionð  s   z%TestSetOpsUnsorted.test_chained_unionc                 C   sb   |dd… }|d d… }|d d… }|j ||d�}|dv r)t | ¡ | ¡ ¡ d S t ||¡ d S ©NrL   rô   rÐ   r¥   rõ   )r    r?   rc   r   )rn   r"   r‡   r{   r|   r�   r    r   r   r   Ú
test_union   s   zTestSetOpsUnsorted.test_unionÚklassc           	      C   sl   |dd… }|d d… }|d d… }||j ƒ}|j||d�}|dv r.t | ¡ | ¡ ¡ d S t ||¡ d S r  )r`   r    r?   rc   r   )	rn   r"   r  r‡   r{   r|   r�   rf   r^   r   r   r   Útest_union_from_iterables  s   
z,TestSetOpsUnsorted.test_union_from_iterablesc                 C   s„   |dd… }|j ||d�}||u | u sJ ‚|j tg |jd�|d�}||u | u s+J ‚tg |jd�j ||d�}||u | u s@J ‚d S )NrL   rô   r¥   rM   )r    r   r!   )rn   r"   r‡   r{   r    r   r   r   Útest_union_identity  s   z&TestSetOpsUnsorted.test_union_identityzsecond_name,expected)NN)rV   rV   c           	      C   sš   |dd… }|d d… }|dd… }d|_ ||_ |j||d�}|du r*t ||¡ n||_ t | ¡ | ¡ ¡ |d u rD|j d u sBJ ‚d S |j |ksKJ ‚d S )NrL   rô   rÐ   rV   r¥   T)rV   rj   r?   rc   r   )	rn   r"   rý   r\   r‡   r{   r|   rˆ   r^   r   r   r   Ú!test_difference_name_preservation+  s   z4TestSetOpsUnsorted.test_difference_name_preservationc                 C   sL   |  ¡ }|dd… }d|_| g |¡}|dd…  ¡ }d|_t ||¡ d S )NrL   rô   rV   )r‘   rV   rj   rw   r?   rc   )rn   r"   r‡   r{   r^   r\   r   r   r   Útest_difference_empty_argA  s   z,TestSetOpsUnsorted.test_difference_empty_argc                 C   s:   t ddgƒ}t dgƒ}| |¡}t dgƒ}t ||¡ d S )NrW   T)r   rj   r?   rc   )rn   rZ   r[   r^   r\   r   r   r   Ú"test_difference_should_not_compareJ  s
   


z5TestSetOpsUnsorted.test_difference_should_not_comparec                 C   sB   |dd… }d|_ | ||¡}t|ƒdksJ ‚|j |j ksJ ‚d S )NrL   rô   rV   r   )rV   rj   r7   )rn   r"   r‡   r{   r^   r   r   r   Útest_difference_identityR  s
   z+TestSetOpsUnsorted.test_difference_identityc                 C   sP   |dd… }|d d… }|  ||¡}|dd… }|d u r | ¡ }t ||¡ d S )NrL   rô   rÐ   )rj   r   r?   rc   )rn   r"   r‡   r{   r|   r^   r\   r   r   r   Útest_difference_sort[  s   z'TestSetOpsUnsorted.test_difference_sortÚopnamerj   rk   c                 C   sÂ   t dtdƒdgƒ}t dtdƒdgƒ}t ||¡}t t¡� ||ƒ}W d   ƒ n1 s,w   Y  t dtdƒdtdƒgƒ}|dkrG|d d… }t ||¡ tj||dd�}||ƒ}t ||¡ d S )	Nrb   Ú2000rW   rX   Ú1999rj   Fr¥   )r   r   ÚoperatorÚmethodcallerr?   r@   r9   rc   )rn   r  r]   r'   Úopr^   r\   r   r   r   Útest_difference_incomparableh  s   
þz/TestSetOpsUnsorted.test_difference_incomparablec                 C   st   t dtdƒdgƒ}t dtdƒdgƒ}tj||dd�}d}tjt|d	�� ||ƒ W d   ƒ d S 1 s3w   Y  d S )
Nrb   r  rW   rX   r  Tr¥   z<'<' not supported between instances of 'Timestamp' and 'int'r-   )r   r   r  r  r2   r)   rl   )rn   r  r]   r'   r  rE   r   r   r   Ú!test_difference_incomparable_true{  s   
"ÿz4TestSetOpsUnsorted.test_difference_incomparable_truec                 C   sb   t  tg d¢g d¢ƒ¡}t  ddg¡}|j||d�}t  g d¢¡}|d u r)| ¡ }t ||¡ d S )N)rT   rU   Úbazrs   )rT   rW   ©rU   rb   r¥   ))rU   rX   )r  rb   r  )r	   Úfrom_tuplesÚziprk   r   r?   rc   )rn   r‡   rï   rð   r^   r\   r   r   r   Útest_symmetric_difference_mi…  s   z/TestSetOpsUnsorted.test_symmetric_difference_mizindex2,expectedr   rW   )rÉ   ç      @ç        rÉ   r  r  c                 C   s@   t dtjddgƒ}|j||d�}|d u r| ¡ }t ||¡ d S )NrW   rX   rb   r¥   )r   r=   rÊ   rk   r   r?   rc   )rn   rð   r\   r‡   rï   r^   r   r   r   Ú!test_symmetric_difference_missingŽ  s
   
z4TestSetOpsUnsorted.test_symmetric_difference_missingc                 C   s¾   t g d¢dd�}t g d¢¡}t ddgdd�}|j||d�}|dv r)t ||¡ nt | ¡ |¡ |jdks8J ‚|j|d	|d
�}d	|_|dv rNt ||¡ nt | ¡ |¡ |jd	ks]J ‚d S )N)rW   rX   rb   rƒ   rï   r÷   )rX   rb   rƒ   rL   rW   rL   r¥   )NTÚnew_name)Úresult_namer‡   )r   r=   Úarrayrk   r?   rc   r   rV   )rn   r‡   rï   rð   r\   r^   r   r   r   Ú#test_symmetric_difference_non_indexŸ  s   z6TestSetOpsUnsorted.test_symmetric_difference_non_indexc                 C   sJ   t g d¢|d�}t g d¢|d�}| |¡}t g d¢|d�}t ||¡ d S )Nrs   rM   rù   rø   rÂ   )rn   Úany_numeric_ea_and_arrow_dtyper»   r$   r^   r\   r   r   r   Útest_union_ea_dtypes²  s
   
z'TestSetOpsUnsorted.test_union_ea_dtypesc                 C   sF   t dg|d�}t dg|d�}| |¡}t ddg|d�}t ||¡ d S )Nr]   rM   r'   rÂ   )rn   Úany_string_dtyper#   r$   r^   r\   r   r   r   Útest_union_string_arrayº  s
   
z*TestSetOpsUnsorted.test_union_string_arrayN) rv   r²   r³   rñ   r2   r3   r´   rö   r   rû   rþ   r  r  r=   r"  r   rŸ   r	  r
  r  r  r  r  r  r  r  r  rÊ   r  r#  r%  r'  r   r   r   r   rë   ³  sd    

ýþ
þ


	



		þþ

rë   )8Ú__doc__r   r  Únumpyr=   r2   Úpandas._libsr   Úpandas.core.dtypes.castr   Úpandasr   r   r   r   r	   r
   r   r   r   Úpandas._testingÚ_testingr?   Úpandas.api.typesr   r   Úboolr   ÚfixtureÚALL_REAL_NUMPY_DTYPESr   r%   rK   r3   r´   ÚarangerO   rP   r>   rN   r_   rd   re   rµ   r¸   r½   rÀ   rÃ   rÆ   rÇ   rÊ   rË   ræ   rç   rê   rë   r   r   r   r   Ú<module>   st    ,ÿÿ
	
J&&üþ
		þ
	  
Bÿÿ		
	%