a
    Pªfª€  ã                   @   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   úY/var/www/ai-form-bot/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   s  | }|}|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ƒ}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}nZt|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š0    Y  |	rä|
s¶|rä|jt d¡ksÌJ ‚|jt d¡ksJ ‚n |j|ksôJ ‚|j|ksJ ‚d S )NÚiÚbzGH#44000 True==1F)ÚreasonÚraisesÚstrictz'<' not supported betweenÚcZiufczPeriodDtype\[B\] is deprecatedz"Warning not produced on all builds©ÚmatchÚO)Ú	is_uniquer   ÚkindÚpytestÚmarkZxfailÚ
ValueErrorZapplymarkerr   Úlenr   Zis_np_dtypeÚRuntimeWarningÚ
isinstancer
   r   ÚFutureWarningÚAssertionErrorÚnpÚuint64r   r   ÚtmÚassert_produces_warningr   )Ú
index_flatZindex_flat2r   r!   r"   r0   Zcommon_dtypeÚwarnÚmsgZ
any_uint64Zidx1_signedZidx2_signedÚres1Úres2r   r   r   Útest_union_different_typesC   s|    ÿþ
ý
üúù
ø	
÷ÿ

ÿÿ
ÿ
ÿ
ý
ýý



*r@   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"   r>   r?   r   r   r   Ú"test_compatible_inconsistent_pairs   s    

rC   zleft, right, expected))Úint64rD   rD   )rD   r8   r   )rD   Úfloat64rE   )r8   rE   rE   )r8   r8   r8   )rE   rE   rE   )r   rD   r   )r   r8   r   )r   rE   r   )údatetime64[ns, CET]rD   r   )rF   r8   r   )rF   rE   r   )ú	Period[D]rD   r   )rG   r8   r   )rG   rE   r   Únames)ÚfoorI   rI   )rI   Ú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   rK   Úintersection)ÚleftÚrightÚexpectedrH   Úar%   Úresultr   r   r   Útest_union_dtypesŸ   s    

rT   Úvalues©rL   rM   rM   é   rW   c                 C   s8   t | ƒ}t ddgƒ}| |¡}t dgƒ}t ||¡ d S )NrW   )r   rN   r9   Úassert_index_equal)rU   rR   r%   rS   rQ   r   r   r   Útest_intersection_duplicatesÃ   s
    

rY   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      à?ZxxxÚmethod©rN   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 rA   rW   ú.other must be a MultiIndex or a list of tuplesr*   ©rL   rM   rW   )r4   r   r/   ÚskipÚtypeÚ__name__ÚuniquerN   r9   rX   r   r   Úto_numpyÚ	to_seriesÚto_listr   r	   r'   r`   )	rb   r    ÚfirstÚsecondÚ	intersectÚcasesr[   rS   r=   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ƒ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 )NrW   rA   rf   r*   rg   )rk   r   r9   rX   r   r4   r   r   rl   rm   rn   r   r	   r/   r'   r`   )
rb   r    ro   rp   Ú
everythingr   rr   r[   rS   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 )NrM   é   Úbooleanrf   r*   rg   )Zinferred_typeÚsetr^   r4   r   r   rl   rm   rn   r	   r/   r'   r`   )
rb   Úsortr    ro   rp   ÚanswerrS   rr   r[   r=   r   r   r   Útest_difference_base  s"    


zTestSetOps.test_difference_basec           	      C   s4  t |tƒr t dt|ƒj› ¡ t|ƒdk r6t d¡ |d |dd … v s^|d |d d… v rht d¡ |dd … }|d d… }|ddg }| |¡}t 	| 
¡ | 
¡ ¡ | ¡ | ¡ | ¡ g}|D ]}| |¡}t||ƒsÄJ ‚qÄt |tƒr0d}tjt|d	 | g d
¢¡ W d   ƒ n1 s&0    Y  d S )Nre   rM   zToo few values for testr   rL   éÿÿÿÿz+Index values no not satisfy test condition.rf   r*   rg   )r4   r   r/   rh   ri   rj   r2   r_   r9   rX   r   rl   rm   rn   r   r	   r'   r`   )	rb   r    ro   rp   r{   rS   rr   r[   r=   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   )r-   rk   ÚcopyÚ	set_namesr   r9   rX   Údrop©
rb   r;   ÚfnameÚsnameÚexpected_namer    ro   rp   r   rQ   r   r   r   Útest_corner_unionL  s.    




zTestSetOps.test_corner_unionc           
      C   s`   |j s| ¡ }n|}| ¡  |¡}|dd …  |¡}| |¡ ¡ }| |¡ ¡ }	t ||	¡ d S ©NrL   )r-   rk   r„   r…   r   r   r9   rX   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-   rk   r„   r…   rN   r9   rX   r†   ©
rb   r;   rˆ   r‰   rŠ   r    ro   rp   rq   rQ   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-   rk   r„   r…   rN   r   r9   rX   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 )NrI   r   )
r4   r	   ÚrenameÚlistÚrangeÚnlevelsr7   ZasarrayrN   rK   )rb   r    ÚotherrS   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©rz   r   T©Úexact)r-   r/   rh   r^   r9   rX   )rb   r    rz   rS   rQ   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   rL   rM   )r4   r	   r‘   Úequalsr^   r9   rX   )rb   r    rH   r•   rS   rQ   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/   rh   rN   r^   r9   rX   )rb   r    rz   ÚinterÚdiffr   r   r   Ú(test_intersection_difference_match_empty  s
    
z3TestSetOps.test_intersection_difference_match_emptyN)rj   Ú
__module__Ú__qualname__r/   r0   Úparametrizerc   Úfilterwarningsrs   rv   r|   r~   r‹   r   r   r   r–   rš   r¡   r¤   r   r   r   r   rZ   Í   s^   ÿ

ÿ

ÿ
ÿþ

%þ

þ

$þ




rZ   rd   rt   r\   r]   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˜   rA   )Zastyper4   r   ra   r9   rX   )r;   rz   r\   r    r•   r™   rS   rQ   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   rL   rM   )Úemptyr/   rh   rN   r    r-   )r    ÚidxZ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ƒrJt g d¢ƒ}| |¡}t ||¡ |j|dd}t ||¡ d S )NrV   rB   )rW   rW   rw   )rL   rM   rM   rW   rW   rw   Fr—   ©r   r4   r   r   r9   rX   ©r   r   rR   r%   rQ   rS   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)rL   r   r   rB   r   rL   ©r   r   rL   ©r   r   r9   rX   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 )NrV   )Ú1Ú0r¶   )rL   rM   rM   rW   rµ   r¶   r¶   Fr—   r³   )rR   r%   rQ   rS   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³   )rR   r%   rS   rQ   r   r   r   Ú(test_union_same_value_duplicated_in_both[  s
    
r¸   ÚduprL   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 )NrL   rM   Fr—   g      ð?ç       @)r   r7   Únanr   r9   rX   )r¹   rR   r%   rS   rQ   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 )	NrL   éd   é   é2   rW   Tr—   )rL   rw   é   é
   é   é   é   é   é   é   é   é"   é%   é(   é+   é.   é1   é7   é=   éC   éI   éO   éU   é[   éa   )r   r   r   r9   rX   )r!   r"   rS   rQ   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ƒrJt g d¢ƒ}| |¡}t ||¡ | |¡}t ||¡ d S )N)rL   r   rM   rB   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 )NrL   rM   r$   rB   )r   r7   r»   Ú
categoriesr   r.   r   r   rE   r9   rX   )Úcir­   rS   rQ   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Ü  rM   é	   rÅ   rB   Zaa)r   r   r   rN   r9   rX   )rb   Zdt_datesÚindex1Úindex2rS   rQ   r   r   r   Útest_intersect_str_dates¶  s    
z+TestSetOpsUnsorted.test_intersect_str_datesr    ÚstringT)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)rN   r9   rX   r   )rb   r    rz   ro   rp   rq   r¢   r   r   r   Útest_intersectionÀ  s    z$TestSetOpsUnsorted.test_intersectionzindex2,keeps_name)rW   rw   rA   r¾   rÀ   ©rK   r•   Fc                 C   sR   t g d¢dd}t g d¢ƒ}| ||¡}|r2d|_|j|jksBJ ‚t ||¡ d S )N©rL   rM   rW   rw   rA   r    rå   ©rW   rw   rA   )r   rN   rK   r9   rX   )rb   rß   Z
keeps_namerz   rÞ   rQ   rS   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 )NrA   râ   rÁ   r—   )rK   rN   )	rb   r    Z
first_nameÚsecond_namerŠ   rz   ro   rp   rq   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 )NrL   rM   Úi1rå   rA   r¾   Úi2rW   rw   Úi3r—   Új1Új2Új3r³   )
rb   rz   rë   rì   rí   r   rQ   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 ©NrA   râ   rÁ   r—   rã   )r   r9   rX   r   )rb   r    rz   ro   rp   ru   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ò   )rU   r   r9   rX   r   )	rb   r    rô   rz   ro   rp   ru   r[   rS   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 )NrA   râ   r—   rB   )r   r   r   )rb   r    rz   ro   r   r   r   r   Útest_union_identity  s    z&TestSetOpsUnsorted.test_union_identityzsecond_name,expected)NN)rK   rK   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 )NrA   râ   rÁ   rK   r—   T)rK   r^   r9   rX   r   )	rb   r    ré   rQ   rz   ro   rp   r{   rS   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 )NrA   râ   rK   )r„   rK   r^   rk   r9   rX   )rb   r    rz   ro   rS   rQ   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 )NrL   T)r   r^   r9   rX   )rb   rO   rP   rS   rQ   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 )NrA   râ   rK   r   )rK   r^   r2   )rb   r    rz   ro   rS   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 )NrA   râ   rÁ   )r^   r   r9   rX   )rb   r    rz   ro   rp   rS   rQ   r   r   r   Útest_difference_sort[  s    z'TestSetOpsUnsorted.test_difference_sortÚopnamer^   r_   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 )	NrW   Ú2000rL   rM   Ú1999r^   Fr—   )r   r   ÚoperatorÚmethodcallerr9   r:   r3   rX   )rb   rü   rR   r%   ÚoprS   rQ   r   r   r   Útest_difference_incomparableh  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 )
NrW   rý   rL   rM   rþ   Tr—   z<'<' not supported between instances of 'Timestamp' and 'int'r*   )r   r   rÿ   r   r/   r'   r`   )rb   rü   rR   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)rI   rJ   Úbazrg   )rI   rL   ©rJ   rW   r—   ))rJ   rM   )r  rW   r  )r	   Úfrom_tuplesÚzipr_   r   r9   rX   )rb   rz   rÞ   rß   rS   rQ   r   r   r   Útest_symmetric_difference_mi…  s    z/TestSetOpsUnsorted.test_symmetric_difference_mizindex2,expectedr   rL   )rº   ç      @ç        rº   r	  r
  c                 C   s@   t dtjddgƒ}|j||d}|d u r0| ¡ }t ||¡ d S )NrL   rM   rW   r—   )r   r7   r»   r_   r   r9   rX   )rb   rß   rQ   rz   rÞ   rS   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)rL   rM   rW   rw   rÞ   rå   )rM   rW   rw   rA   rL   rA   r—   )NTÚnew_name)Zresult_namerz   )r   r7   Úarrayr_   r9   rX   r   rK   )rb   rz   rÞ   rß   rQ   rS   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 )Nrg   rB   rç   ræ   r³   )rb   Zany_numeric_ea_and_arrow_dtyper­   r"   rS   rQ   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 )NrR   rB   r%   r³   )rb   Zany_string_dtyper!   r"   rS   rQ   r   r   r   Útest_union_string_arrayº  s
    
z*TestSetOpsUnsorted.test_union_string_arrayN) rj   r¥   r¦   rà   r/   r0   r§   rä   r   rè   rê   rñ   ró   r7   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ÿ   Únumpyr7   r/   Zpandas._libsr   Zpandas.core.dtypes.castr   Zpandasr   r   r   r   r	   r
   r   r   r   Zpandas._testingZ_testingr9   Zpandas.api.typesr   r   Úboolr   ZfixtureZALL_REAL_NUMPY_DTYPESr   r#   r@   r0   r§   ZarangerD   rE   r8   rC   rT   rY   rZ   r¨   rª   r®   r±   r´   r·   r¸   r»   r¼   r×   rØ   rÛ   rÜ   r   r   r   r   Ú<module>   sr   ,ÿÿ	

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