o
    Û­jØ‚  ã                   @   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   ú]/var/www/html/CropPilot/venv/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   sX  | }|}|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ƒ}|rit	|ƒdkrU|jjdksQt
|tƒrU|j}nt	|ƒdkri|jjdksft
|tƒri|j}d }d}	t	|ƒrut	|ƒsvnG|jjd	krƒt |jd
¡r�|jjd	kr“t |jd
¡s“t}n*t
|jtƒrŸt
|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Ú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$   r3   Úcommon_dtypeÚwarnÚmsgÚ
any_uint64Úidx1_signedÚidx2_signedÚres1Úres2r   r   r   Útest_union_different_typesC   s|   ÿþþýÿ
"
ÿ
ÿ
ý
ýý



þrL   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$   rJ   rK   r   r   r   Ú"test_compatible_inconsistent_pairs”   s   

rO   zleft, right, expected))Úint64rP   rP   )rP   r>   r   )rP   Úfloat64rQ   )r>   rQ   rQ   )r>   r>   r>   )rQ   rQ   rQ   )r   rP   r   )r   r>   r   )r   rQ   r   )údatetime64[ns, CET]rP   r   )rR   r>   r   )rR   rQ   r   )ú	Period[D]rP   r   )rS   r>   r   )rS   rQ   r   Únames)ÚfoorU   rU   )rU   Ú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!   rW   Úintersection)ÚleftÚrightÚexpectedrT   Úar'   Úresultr   r   r   Útest_union_dtypes¦   s   

r`   Úvalues©rX   rY   rY   é   rc   c                 C   s8   t | ƒ}t ddgƒ}| |¡}t dgƒ}t ||¡ d S )Nrc   )r   rZ   r?   Úassert_index_equal)ra   r^   r'   r_   r]   r   r   r   Útest_intersection_duplicatesÊ   s
   

re   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¡dd„ ƒZ	ej d¡dd„ ƒZ
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©rZ   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)Úselfrg   ri   r"   rF   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 rM   rc   ú.other must be a MultiIndex or a list of tuplesr.   ©rX   rY   rc   )r8   r   r2   ÚskipÚtypeÚ__name__ÚuniquerZ   r?   rd   r!   r   Úto_numpyÚ	to_seriesÚto_listr   r	   r)   rm   )	ro   r"   ÚfirstÚsecondÚ	intersectÚcasesrg   r_   rF   r   r   r   Útest_intersection_baseà   s$   



"ÿþz!TestSetOps.test_intersection_basec           
      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 )Nrc   rM   rs   r.   rt   )rx   r    r?   rd   r   r8   r!   r   ry   rz   r{   r   r	   r2   r)   rm   )
ro   r"   r|   r}   Ú
everythingr    r   rg   r_   rF   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 )NrY   é   Úbooleanrs   r.   rt   )Úinferred_typeÚsetrk   r8   r   r   ry   rz   r{   r	   r2   r)   rm   )
ro   Úsortr"   r|   r}   Úanswerr_   r   rg   rF   r   r   r   Útest_difference_base  s&   


"ÿþzTestSetOps.test_difference_basec                 C   sb  |r|j dkr|jdkr| tjjdd�¡ t|tƒr&t dt	|ƒj
› �¡ t|ƒdk r1t d¡ |d |d	d … v sE|d
 |d d
… v rJt d¡ |d	d … }|d d
… }|dd
g }| |¡}t | ¡ | ¡ ¡ | ¡ | ¡ | ¡ g}|D ]}	| |	¡}t||ƒs†J ‚qxt|tƒr¯d}
tjt|
d�� | g d¢¡ W d   ƒ d S 1 s¨w   Y  d S d S )Nr   ÚstringzTODO: infer_string)r(   rr   rY   zToo few values for testr   rX   éÿÿÿÿz+Index values no not satisfy test condition.rs   r.   rt   )r!   r…   r6   r2   r3   r4   r8   r   ru   rv   rw   r7   rl   r?   rd   r   ry   rz   r{   r   r	   r)   rm   )ro   r"   rC   r   r|   r}   rˆ   r_   r   rg   rF   r   r   r   Útest_symmetric_difference.  s4   ÿ



(



"ÿþ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   rx   ÚcopyÚ	set_namesr    r?   rd   Údrop©
ro   rA   ÚfnameÚsnameÚexpected_namer"   r|   r}   r    r]   r   r   r   Útest_corner_unionP  s.   




zTestSetOps.test_corner_unionc           
      C   s`   |j s| ¡ }n|}| ¡  |¡}|dd …  |¡}| |¡ ¡ }| |¡ ¡ }	t ||	¡ d S ©NrX   )r0   rx   r’   r“   r    r   r?   rd   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   rx   r’   r“   rZ   r?   rd   r”   ©
ro   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   rx   r’   r“   rZ   r   r?   rd   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 )NrU   r   )
r8   r	   ÚrenameÚlistÚrangeÚnlevelsr=   ÚasarrayrZ   rW   )ro   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   ru   rk   r?   rd   )ro   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   rX   rY   )r8   r	   rŸ   Úequalsrk   r?   rd   )ro   r"   rT   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   ru   rZ   rk   r?   rd   )ro   r"   r‡   ÚinterÚdiffr   r   r   Ú(test_intersection_difference_match_empty  s
   
z3TestSetOps.test_intersection_difference_match_emptyN)rw   Ú
__module__Ú__qualname__r2   r3   Úparametrizerp   Úfilterwarningsr€   r‚   r‰   rŒ   r™   r›   r�   rž   r¥   r©   r¯   r²   r   r   r   r   rf   Ô   sN    ÿ







!þ

%þ

þ

$þ




rf   z7ignore:invalid value encountered in cast:RuntimeWarningrq   ri   rj   c           	      C   sÔ   | }|  d¡}t|tƒrdnd}t||ƒ||d�}t||ƒ||d�}|r0|jr0|dv r0|  d¡}tj|||d� t||ƒ|d d… |d�}t||ƒ|d d… |d�}|r`|jr`|dv r`|  d¡}tj|||d� d S )Nr   ÚequivTr¦   )r    rl   r§   rM   )Úastyper8   r   rn   Úemptyr?   rd   )	rA   r‡   ri   rC   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   rX   rY   )r¹   r2   ru   rZ   r®   r0   )r"   ÚidxÚidx_non_uniquer   r   r   Ú(test_intersection_duplicates_all_indexes2  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 )Nrb   rN   )rc   rc   rƒ   )rX   rY   rY   rc   rc   rƒ   Fr¦   ©r   r8   r   r    r?   rd   ©r   r!   r^   r'   r]   r_   r   r   r   Ú0test_union_duplicate_index_subsets_of_each_other?  s   

rÁ   c                 C   sd   | }t g d¢|d�}t ddg|d�}t g d¢|d�}| |¡}t ||¡ | |¡}t ||¡ d S )N)rX   r   r   rN   r   rX   ©r   r   rX   ©r   r    r?   rd   rÀ   r   r   r   Ú1test_union_with_duplicate_index_and_non_monotonicP  s   

rÄ   c                  C   sB   t g d¢ƒ} t g d¢ƒ}t g d¢ƒ}| j|dd�}t ||¡ d S )Nrb   )Ú1Ú0rÆ   )rX   rY   rY   rc   rÅ   rÆ   rÆ   Fr¦   rÃ   )r^   r'   r]   r_   r   r   r   Ú+test_union_duplicate_index_different_dtypes`  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_bothi  s
   
rÈ   ÚduprX   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 )NrX   rY   Fr¦   g      ð?ç       @)r   r=   Únanr    r?   rd   )rÉ   r^   r'   r_   r]   r   r   r   Útest_union_nan_in_bothr  s
   rÌ   c                  C   sB   t dddƒ} t dddƒ}| j|dd�}tg d¢ƒ}t ||¡ d S )	NrX   éd   é   é2   rc   Tr¦   )rX   rƒ   é   é
   é   é   é   é   é   é   é   é"   é%   é(   é+   é.   é1   é7   é=   éC   éI   éO   éU   é[   éa   )r   r    r   r?   rd   )r#   r$   r_   r]   r   r   r   Útest_union_rangeindex_sort_true|  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)rX   r   rY   rN   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 )NrX   rY   r&   rN   )r   r=   rË   Ú
categoriesr!   r1   r   r    rQ   r?   rd   )Ú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Ü  rY   é	   rÕ   rN   Úaa)r   r   r   rZ   r?   rd   )ro   Údt_datesÚindex1Úindex2r_   r]   r   r   r   Útest_intersect_str_datesÄ  s   
z+TestSetOpsUnsorted.test_intersect_str_datesr"   rŠ   T)Ú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)rZ   r?   rd   r   )ro   r"   r‡   r|   r}   r~   r°   r   r   r   Útest_intersectionÎ  s   z$TestSetOpsUnsorted.test_intersectionzindex2,keeps_name)rc   rƒ   rM   rÎ   rÐ   ©rW   r¤   Fc                 C   sR   t g d¢dd�}t g d¢ƒ}| ||¡}|rd|_|j|jks!J ‚t ||¡ d S )N©rX   rY   rc   rƒ   rM   r"   r÷   ©rc   rƒ   rM   )r   rZ   rW   r?   rd   )ro   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 )NrM   rô   rÑ   r¦   )rW   rZ   )	ro   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 )NrX   rY   Úi1r÷   rM   rÎ   Úi2rc   rƒ   Úi3r¦   Új1Új2Új3rÃ   )
ro   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 ©NrM   rô   rÑ   r¦   rõ   )r    r?   rd   r   )ro   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  )ra   r    r?   rd   r   )	ro   r"   r  r‡   r|   r}   r�   rg   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 )NrM   rô   r¦   rN   )r    r   r!   )ro   r"   r‡   r|   r    r   r   r   Útest_union_identity)  s   z&TestSetOpsUnsorted.test_union_identityzsecond_name,expected)NN)rW   rW   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 )NrM   rô   rÑ   rW   r¦   T)rW   rk   r?   rd   r   )	ro   r"   rý   r]   r‡   r|   r}   rˆ   r_   r   r   r   Ú!test_difference_name_preservation9  s   z4TestSetOpsUnsorted.test_difference_name_preservationc                 C   sL   |  ¡ }|dd… }d|_| g |¡}|dd…  ¡ }d|_t ||¡ d S )NrM   rô   rW   )r’   rW   rk   rx   r?   rd   )ro   r"   r‡   r|   r_   r]   r   r   r   Útest_difference_empty_argO  s   z,TestSetOpsUnsorted.test_difference_empty_argc                 C   s:   t ddgƒ}t dgƒ}| |¡}t dgƒ}t ||¡ d S )NrX   T)r   rk   r?   rd   )ro   r[   r\   r_   r]   r   r   r   Ú"test_difference_should_not_compareX  s
   


z5TestSetOpsUnsorted.test_difference_should_not_comparec                 C   sB   |dd… }d|_ | ||¡}t|ƒdksJ ‚|j |j ksJ ‚d S )NrM   rô   rW   r   )rW   rk   r7   )ro   r"   r‡   r|   r_   r   r   r   Útest_difference_identity`  s
   z+TestSetOpsUnsorted.test_difference_identityc                 C   sP   |dd… }|d d… }|  ||¡}|dd… }|d u r | ¡ }t ||¡ d S )NrM   rô   rÑ   )rk   r   r?   rd   )ro   r"   r‡   r|   r}   r_   r]   r   r   r   Útest_difference_sorti  s   z'TestSetOpsUnsorted.test_difference_sortÚopnamerk   rl   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 )	Nrc   Ú2000rX   rY   Ú1999rk   Fr¦   )r   r   ÚoperatorÚmethodcallerr?   r@   r:   rd   )ro   r  r^   r'   Úopr_   r]   r   r   r   Útest_difference_incomparablev  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 )
Nrc   r  rX   rY   r  Tr¦   z<'<' not supported between instances of 'Timestamp' and 'int'r.   )r   r   r  r  r2   r)   rm   )ro   r  r^   r'   r  rF   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)rU   rV   Úbazrt   )rU   rX   ©rV   rc   r¦   ))rV   rY   )r  rc   r  )r	   Úfrom_tuplesÚziprl   r   r?   rd   )ro   r‡   rð   rñ   r_   r]   r   r   r   Útest_symmetric_difference_mi“  s   z/TestSetOpsUnsorted.test_symmetric_difference_mizindex2,expectedr   rX   )rÊ   ç      @ç        rÊ   r  r  c                 C   s@   t dtjddgƒ}|j||d�}|d u r| ¡ }t ||¡ d S )NrX   rY   rc   r¦   )r   r=   rË   rl   r   r?   rd   )ro   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)rX   rY   rc   rƒ   rð   r÷   )rY   rc   rƒ   rM   rX   rM   r¦   )NTÚnew_name)Úresult_namer‡   )r   r=   Úarrayrl   r?   rd   r   rW   )ro   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 )Nrt   rN   rù   rø   rÃ   )ro   Ú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^   rN   r'   rÃ   )ro   Úany_string_dtyper#   r$   r_   r]   r   r   r   Útest_union_string_arrayÈ  s
   
z*TestSetOpsUnsorted.test_union_string_arrayN) rw   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%   rL   r3   rµ   ÚarangerP   rQ   r>   rO   r`   re   rf   r¶   rº   r¾   rÁ   rÄ   rÇ   rÈ   rË   rÌ   rç   rè   rë   rì   r   r   r   r   Ú<module>   sp    ,ÿÿ
	
Q&&üþ
		þ
	  
?
ÿ		
	%