a
    é´«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 edœ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)Zarr1Zarr2© r   ú_/var/www/html/laksyashrimp/venv/lib/python3.9/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   sh  | }|}|j s,|j s,|jjdkr,|jjdksP|j sl|j sl|jjdkrl|jjdkrltjjdtd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d
¡�r(|jjd	k�r.t |jd
¡�s.t}n\t
|jtƒ�rJt
|jtƒ�sft
|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ú0    Y  |
�rD|�s|�rD|jt d¡k�s,J ‚|jt d¡k�sdJ ‚n |j|k�sTJ ‚|j|k�sdJ ‚d S )NÚiÚbzGH#44000 True==1F)ÚreasonÚraisesÚstrictr   ÚOz'<' not supported betweenÚcZiufczPeriodDtype\[B\] is deprecatedz"Warning not produced on all builds©Úmatch)Ú	is_uniquer   ÚkindÚpytestÚmarkÚxfailÚ
ValueErrorÚapplymarkerr   ÚlenÚ
isinstancer   r   Zis_np_dtypeÚRuntimeWarningr
   r   ÚFutureWarningÚAssertionErrorÚnpÚuint64r   r   ÚtmÚassert_produces_warningr   )Ú
index_flatZindex_flat2r   Úusing_infer_stringr!   r"   r0   Zcommon_dtypeÚwarnÚmsgZ
any_uint64Zidx1_signedZidx2_signedÚres1Úres2r   r   r   Útest_union_different_typesC   sŽ    ÿþ
ý
üúù
ø	
÷ÿ
"
ÿÿ
ÿÿ
ÿ
ÿ
ý
ýý



*rC   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"   rA   rB   r   r   r   Ú"test_compatible_inconsistent_pairs”   s    

rF   zleft, right, expected))Úint64rG   rG   )rG   r:   r   )rG   Úfloat64rH   )r:   rH   rH   )r:   r:   r:   )rH   rH   rH   )r   rG   r   )r   r:   r   )r   rH   r   )údatetime64[ns, CET]rG   r   )rI   r:   r   )rI   rH   r   )ú	Period[D]rG   r   )rJ   r:   r   )rJ   rH   r   Únames)ÚfoorL   rL   )rL   ÚbarNc                 C   s~   t | ƒ} t |ƒ}tg | |d d�}tg ||d d�}| |¡}|j|ksLJ ‚|j|d ks^J ‚| |¡}|j|d kszJ ‚d S )Nr   )r   Únameé   é   )r   r   r   r   rN   Úintersection)ÚleftÚrightÚexpectedrK   Úar%   Úresultr   r   r   Útest_union_dtypes¦   s    

rW   Úvalues©rO   rP   rP   é   rZ   c                 C   s8   t | ƒ}t ddgƒ}| |¡}t dgƒ}t ||¡ d S )NrZ   )r   rQ   r;   Úassert_index_equal)rX   rU   r%   rV   rT   r   r   r   Útest_intersection_duplicatesÊ   s
    

r\   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      à?ZxxxÚmethod©rQ   r   Ú
differenceÚsymmetric_differencec                 C   sD   d}t jt|d�� t||ƒ|ƒ W d   ƒ n1 s60    Y  d S )Nz!Input must be Index or array-liker+   )r/   r'   Ú	TypeErrorÚgetattr)Úselfr^   r_   r    r@   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ƒrfd S | ¡ | ¡ | ¡ g}|D ]}| |¡}t||ƒs€J ‚q€t |tƒrèd}tjt|d�� | g d¢¡ W d   ƒ n1 sÞ0    Y  d S )NúNot relevant for rD   rZ   ú.other must be a MultiIndex or a list of tuplesr+   ©rO   rP   rZ   )r5   r   r/   ÚskipÚtypeÚ__name__ÚuniquerQ   r;   r[   r   r   Úto_numpyÚ	to_seriesÚto_listr   r	   r'   rc   )	re   r    ÚfirstÚsecondÚ	intersectÚcasesr^   rV   r@   r   r   r   Útest_intersection_baseà   s     



z!TestSetOps.test_intersection_basec           
      C   sØ   |  ¡ }|dd … }|d d… }|}| |¡}t | ¡ | ¡ ¡ t|jtƒrRd S | ¡ | 	¡ | 
¡ g}|D ]}| |¡}t||ƒslJ ‚qlt|tƒrÔd}	tjt|	d�� | g d¢¡ W d   ƒ n1 sÊ0    Y  d S )NrZ   rD   ri   r+   rj   )rn   r   r;   r[   r   r5   r   r   ro   rp   rq   r   r	   r/   r'   rc   )
re   r    rr   rs   Ú
everythingr   ru   r^   rV   r@   r   r   r   Útest_union_baseú   s     


zTestSetOps.test_union_basec           
      C   sö   |dd … }|d d… }|j dkr6t|ƒ t|ƒ¡}nt|tƒrFg }n|dd … }| ||¡}t||ƒslJ ‚| ¡ | ¡ | ¡ g}|D ]}| ||¡}t||ƒs†J ‚q†t|t	ƒròd}	t
jt|	d��  | g d¢|¡ W d   ƒ n1 sè0    Y  d S )NrP   é   Úbooleanri   r+   rj   )Úinferred_typeÚsetra   r5   r   r   ro   rp   rq   r	   r/   r'   rc   )
re   Úsortr    rr   rs   ÚanswerrV   ru   r^   r@   r   r   r   Útest_difference_base  s"    


zTestSetOps.test_difference_basec                 C   s`  |r,|j dkr,|jdkr,| tjjdd�¡ t|tƒrLt dt	|ƒj
› �¡ t|ƒdk rbt d¡ |d |d	d … v sŠ|d
 |d d
… v r”t d¡ |d	d … }|d d
… }|dd
g }| |¡}t | ¡ | ¡ ¡ | ¡ | ¡ | ¡ g}|D ]}	| |	¡}t||ƒsðJ ‚qðt|tƒ�r\d}
tjt|
d�� | g d¢¡ W d   ƒ n1 �sR0    Y  d S )Nr   ÚstringzTODO: infer_string)r&   rh   rP   zToo few values for testr   rO   éÿÿÿÿz+Index values no not satisfy test condition.ri   r+   rj   )r   r{   r3   r/   r0   r1   r5   r   rk   rl   rm   r4   rb   r;   r[   r   ro   rp   rq   r   r	   r'   rc   )re   r    r>   r   rr   rs   r~   rV   ru   r^   r@   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   )r-   rn   ÚcopyÚ	set_namesr   r;   r[   Údrop©
re   r=   ÚfnameÚsnameÚexpected_namer    rr   rs   r   rT   r   r   r   Útest_corner_unionP  s.    




zTestSetOps.test_corner_unionc           
      C   s`   |j s| ¡ }n|}| ¡  |¡}|dd …  |¡}| |¡ ¡ }| |¡ ¡ }	t ||	¡ d S ©NrO   )r-   rn   rˆ   r‰   r   r   r;   r[   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   )r-   rn   rˆ   r‰   rQ   r;   r[   rŠ   ©
re   r=   rŒ   r�   rŽ   r    rr   rs   rt   rT   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�   )r-   rn   rˆ   r‰   rQ   r   r;   r[   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sNJ ‚| |d d… ¡}|j	|j	kspJ ‚|d d…  |¡}|j	|j	ks’J ‚d S )NrL   r   )
r5   r	   ÚrenameÚlistÚrangeÚnlevelsr9   ZasarrayrQ   rN   )re   r    ÚotherrV   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)r-   r/   rk   ra   r;   r[   )re   r    r}   rV   rT   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 ¡}ˆ  |¡sFJ ‚ˆ  |¡}ˆ d d…  |d ¡}t ||¡ d S )Nc                    s   g | ]}|gˆ j  ‘qS r   )r˜   )Ú.0Úx©r    r   r   Ú
<listcomp>û  ó    zDTestSetOps.test_difference_name_retention_equals.<locals>.<listcomp>r   rO   rP   )r5   r	   r•   Úequalsra   r;   r[   )re   r    rK   r™   rV   rT   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œ   )r-   r/   rk   rQ   ra   r;   r[   )re   r    r}   ÚinterÚdiffr   r   r   Ú(test_intersection_difference_match_empty  s
    
z3TestSetOps.test_intersection_difference_match_emptyN)rm   Ú
__module__Ú__qualname__r/   r0   Úparametrizerf   Úfilterwarningsrv   rx   r   r‚   r�   r‘   r“   r”   rš   rž   r¥   r¨   r   r   r   r   r]   Ô   sL   ÿ







!þ

%þ

þ

$þ




r]   z7ignore:invalid value encountered in cast:RuntimeWarningrg   r_   r`   c           	      C   sÔ   | }|  d¡}t|tƒrdnd}t||ƒ||d�}t||ƒ||d�}|r`|jr`|dv r`|  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   rb   rœ   rD   )Zastyper5   r   rd   Úemptyr;   r[   )	r=   r}   r_   r>   r    r™   r�   rV   rT   r   r   r   Útest_setop_with_categorical  s.    
ÿþý
ÿþý
r¯   c                 C   sN   | j rt d¡ | }|g d¢ }| |¡ | |¡¡s:J ‚| |¡jsJJ ‚d S )NzNot relevant for empty Index©r   r   rO   rP   )r®   r/   rk   rQ   r¤   r-   )r    ÚidxZ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ƒrJt g d¢ƒ}| |¡}t ||¡ |j|dd�}t ||¡ d S )NrY   rE   )rZ   rZ   ry   )rO   rP   rP   rZ   rZ   ry   Fr›   ©r   r5   r   r   r;   r[   ©r   r   rU   r%   rT   rV   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)rO   r   r   rE   r   rO   ©r   r   rO   ©r   r   r;   r[   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 )NrY   )Ú1Ú0rº   )rO   rP   rP   rZ   r¹   rº   rº   Fr›   r·   )rU   r%   rT   rV   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·   )rU   r%   rV   rT   r   r   r   Ú(test_union_same_value_duplicated_in_bothi  s
    
r¼   ÚduprO   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 )NrO   rP   Fr›   g      ð?ç       @)r   r9   Únanr   r;   r[   )r½   rU   r%   rV   rT   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 )	NrO   éd   é   é2   rZ   Tr›   )rO   ry   é   é
   é   é   é   é   é   é   é   é"   é%   é(   é+   é.   é1   é7   é=   éC   éI   éO   éU   é[   éa   )r   r   r   r;   r[   )r!   r"   rV   rT   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ƒrJt g d¢ƒ}| |¡}t ||¡ | |¡}t ||¡ d S )N)rO   r   rP   rE   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 )NrO   rP   r$   rE   )r   r9   r¿   Ú
categoriesr   r.   r   r   rH   r;   r[   )Úcir±   rV   rT   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Ü  rP   é	   rÉ   rE   Zaa)r   r   r   rQ   r;   r[   )re   Zdt_datesÚindex1Úindex2rV   rT   r   r   r   Útest_intersect_str_datesÄ  s    
z+TestSetOpsUnsorted.test_intersect_str_datesr    r€   T)Zindirectc                 C   sn   |d d… }|d d… }|j ||d�}|dv rDt | ¡ | ¡ ¡ nt ||¡ |j ||d�}||u sjJ ‚d S )Né   rÅ   r›   ©NF)rQ   r;   r[   r   )re   r    r}   rr   rs   rt   r¦   r   r   r   Útest_intersectionÎ  s    z$TestSetOpsUnsorted.test_intersectionzindex2,keeps_name)rZ   ry   rD   rÂ   rÄ   ©rN   r™   Fc                 C   sR   t g d¢dd�}t g d¢ƒ}| ||¡}|r2d|_|j|jksBJ ‚t ||¡ d S )N©rO   rP   rZ   ry   rD   r    rè   ©rZ   ry   rD   )r   rQ   rN   r;   r[   )re   rã   Z
keeps_namer}   râ   rT   rV   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 )NrD   rå   rÅ   r›   )rN   rQ   )	re   r    Z
first_nameÚsecond_namerŽ   r}   rr   rs   rt   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 )NrO   rP   Úi1rè   rD   rÂ   Úi2rZ   ry   Úi3r›   Új1Új2Új3r·   )
re   r}   rî   rï   rð   r   rT   rñ   rò   ró   r   r   r   Útest_chained_unionþ  s    z%TestSetOpsUnsorted.test_chained_unionc                 C   s`   |dd… }|d d… }|d d… }|j ||d�}|dv rPt | ¡ | ¡ ¡ nt ||¡ d S ©NrD   rå   rÅ   r›   ræ   )r   r;   r[   r   )re   r    r}   rr   rs   rw   r   r   r   r   Ú
test_union  s    zTestSetOpsUnsorted.test_unionÚklassc           	      C   sj   |dd… }|d d… }|d d… }||j ƒ}|j||d�}|dv rZt | ¡ | ¡ ¡ nt ||¡ d S rõ   )rX   r   r;   r[   r   )	re   r    r÷   r}   rr   rs   rw   r^   rV   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 sVJ ‚tg |jd�j ||d�}||u | u s€J ‚d S )NrD   rå   r›   rE   )r   r   r   )re   r    r}   rr   r   r   r   r   Útest_union_identity)  s    z&TestSetOpsUnsorted.test_union_identityzsecond_name,expected)NN)rN   rN   c           	      C   s˜   |dd… }|d d… }|dd… }d|_ ||_ |j||d�}|du rTt ||¡ n||_ t | ¡ | ¡ ¡ |d u r†|j d u s”J ‚n|j |ks”J ‚d S )NrD   rå   rÅ   rN   r›   T)rN   ra   r;   r[   r   )	re   r    rì   rT   r}   rr   rs   r~   rV   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 )NrD   rå   rN   )rˆ   rN   ra   rn   r;   r[   )re   r    r}   rr   rV   rT   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 )NrO   T)r   ra   r;   r[   )re   rR   rS   rV   rT   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 )NrD   rå   rN   r   )rN   ra   r4   )re   r    r}   rr   rV   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 )NrD   rå   rÅ   )ra   r   r;   r[   )re   r    r}   rr   rs   rV   rT   r   r   r   Útest_difference_sorti  s    z'TestSetOpsUnsorted.test_difference_sortÚopnamera   rb   c                 C   sÂ   t dtdƒdgƒ}t dtdƒdgƒ}t ||¡}t t¡� ||ƒ}W d   ƒ n1 sX0    Y  t dtdƒdtdƒgƒ}|dkrŽ|d d… }t ||¡ tj||dd�}||ƒ}t ||¡ d S )	NrZ   Ú2000rO   rP   Ú1999ra   Fr›   )r   r   ÚoperatorÚmethodcallerr;   r<   r6   r[   )re   rÿ   rU   r%   ÚoprV   rT   r   r   r   Útest_difference_incomparablev  s    &z/TestSetOpsUnsorted.test_difference_incomparablec                 C   sr   t dtdƒdgƒ}t dtdƒdgƒ}tj||dd�}d}tjt|d	�� ||ƒ W d   ƒ n1 sd0    Y  d S )
NrZ   r   rO   rP   r  Tr›   z<'<' not supported between instances of 'Timestamp' and 'int'r+   )r   r   r  r  r/   r'   rc   )re   rÿ   rU   r%   r  r@   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 rR| ¡ }t ||¡ d S )N)rL   rM   Úbazrj   )rL   rO   ©rM   rZ   r›   ))rM   rP   )r  rZ   r  )r	   Úfrom_tuplesÚziprb   r   r;   r[   )re   r}   râ   rã   rV   rT   r   r   r   Útest_symmetric_difference_mi“  s    z/TestSetOpsUnsorted.test_symmetric_difference_mizindex2,expectedr   rO   )r¾   ç      @ç        r¾   r  r  c                 C   s@   t dtjddgƒ}|j||d�}|d u r0| ¡ }t ||¡ d S )NrO   rP   rZ   r›   )r   r9   r¿   rb   r   r;   r[   )re   rã   rT   r}   râ   rV   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 rRt ||¡ nt | ¡ |¡ |jdkspJ ‚|j|d	|d
�}d	|_|dv rœt ||¡ nt | ¡ |¡ |jd	ksºJ ‚d S )N)rO   rP   rZ   ry   râ   rè   )rP   rZ   ry   rD   rO   rD   r›   )NTÚnew_name)Zresult_namer}   )r   r9   Úarrayrb   r;   r[   r   rN   )re   r}   râ   rã   rT   rV   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 )Nrj   rE   rê   ré   r·   )re   Zany_numeric_ea_and_arrow_dtyper±   r"   rV   rT   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 )NrU   rE   r%   r·   )re   Zany_string_dtyper!   r"   rV   rT   r   r   r   Útest_union_string_arrayÈ  s
    
z*TestSetOpsUnsorted.test_union_string_arrayN) rm   r©   rª   rä   r/   r0   r«   rç   r   rë   rí   rô   rö   r9   r  r   r–   rø   rù   rú   rû   rü   rý   rþ   r  r  r  r¿   r  r  r  r  r   r   r   r   rà   Á  sb   

ýþ
þ


	



		þþ

rà   )8Ú__doc__r   r  Únumpyr9   r/   Zpandas._libsr   Zpandas.core.dtypes.castr   Zpandasr   r   r   r   r	   r
   r   r   r   Zpandas._testingZ_testingr;   Zpandas.api.typesr   r   Úboolr   ZfixtureZALL_REAL_NUMPY_DTYPESr   r#   rC   r0   r«   ZarangerG   rH   r:   rF   rW   r\   r]   r¬   r¯   r²   rµ   r¸   r»   r¼   r¿   rÀ   rÛ   rÜ   rß   rà   r   r   r   r   Ú<module>   sn   ,ÿÿ	

Q&&üþ	
	þ
	  ?

ÿ		
	%