o
    _~#gzc                     @   sp  d dl Zd dlZd dlZd dl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jdddgejdg dd	d
 Zejde	eje
egdd Zejjejde	eje
egdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Z d d! Z!d"d# Z"d$d% Z#d&d' Z$ejdg dd(d) Z%d*d+ Z&d,d- Z'd.d/ Z(ejd0e)de)d gd1d2 Z*d3d4 Z+d5d6 Z,d7d8 Z-d9d: Z.d;d< Z/d=d> Z0ejdg d?d@dA Z1ejdBej2dCgdDdE Z3ejdBej2dFgdGdH Z4ejdIdJgdJgfdJdJgdJgfdKdJgdKdJgfgdLdM Z5ejdNdOdddgfdOdPgddgfdOdQgddgfdRdSdTgddgfdRdQdPgddgfdUg dVddgfdRdPdSgdPdgfdRdSdQgddQgfdRdPdQgdPdQgfdRddQgddQgfg
dWdX Z6dYdZ Z7d[d\ Z8d]d^ Z9d_d` Z:ejdadbdcgejddddegdfdg Z;ejdBdhdigdjdk Z<ejdldmej2gdndo Z=ej>dpdqdr Z?dsdt Z@dudv ZAejdwg dVd dxggg dydxggg dzg d{gg dzg d|gd}d~gfgdd ZBejdPejCdPdQgdPdQgddPdQggejdQejCdPdQgdQdPgddejCdPdQgdQdPgdgdd ZDejdBej2dCgdd ZEdd ZFdS )    N)CategoricalIndex	DataFrameIndexIntervalIndex
MultiIndexSeries)is_float_dtypeis_unsigned_integer_dtypecaseg      ?xxxmethod)intersectionunion
differencesymmetric_differencec                 C   sJ   d}t jt|d t| |||d W d    d S 1 sw   Y  d S )Nz!Input must be Index or array-likematchsort)pytestraises	TypeErrorgetattr)idxr
   r   r   msg r   /var/www/static.ux5.de/https/Moving-Object-Detection-with-OpenCV/env/lib/python3.10/site-packages/pandas/tests/indexes/multi/test_setops.pytest_set_ops_error_cases   s   "r   klassc                 C   s   | dd d }| d d }|t ur||j}|j||d}|d u r&| }n|}t|| d}tjt|d |jg d|d W d    d S 1 sLw   Y  d S )N      r   .other must be a MultiIndex or a list of tuplesr      r      )	r   valuesr   sort_valuestmassert_index_equalr   r   r   )r   r   r   firstsecond	intersectexpectedr   r   r   r   test_intersection_base   s   

"r.   c                 C   s   | d d d }| d d }|t ur||j}|j||d}|d u r&| }n|}t|| d}tjt|d |jg d|d W d    d S 1 sLw   Y  d S )Nr    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   test_union_base3   s   

"r/   c                    s   | dd   | d d }| j  |d}|d u r| }||s"J t||  fddtjttfD }|D ]}| j ||d}t|| q7d}t	j
t|d | j g d|d W d    d S 1 sew   Y  d S )N   r   c                       g | ]}| j qS r   r&   .0r   r+   r   r   
<listcomp>T       z(test_difference_base.<locals>.<listcomp>r"   r   r#   )r   r'   equalsr(   r)   nparrayr   listr   r   r   )r   r   answerresultcasesr
   r   r   r5   r   test_difference_baseH   s   "r?   c                    s   | dd  }| d d  | ddg }|j  |d}|d u r!| }t||  fddtjttfD }|D ]}|j ||d}t|| q6d}tj	t
|d |j g d	|d W d    d S 1 sdw   Y  d S )
Nr$   r    r   r   c                    r1   r   r2   r3   r5   r   r   r6   j   r7   z-test_symmetric_difference.<locals>.<listcomp>r"   r   r#   )r   r'   r(   r)   r9   r:   r   r;   r   r   r   )r   r   r*   r<   r=   r>   r
   r   r   r5   r   test_symmetric_difference^   s   "r@   c                  C   sj   t jddgddggddgd} | | }|j| jksJ |  ddg}| |}|jd d gks3J d S )NabABnames)r   from_productr   rF   copyrename)r   r=   idx2r   r   r   $test_multiindex_symmetric_differencet   s   

rK   c                 C   s    | j rJ | d d j sJ d S )Nr   )emptyr   r   r   r   
test_empty   s   
rN   c                 C   sj  | }|j | dd  |d}| d d j}|d u rt|}tj|d| jd}t|ts,J ||s3J |j| jks;J t	|| | j | |d}| d d }||sUJ |j| jks]J | dd  j | |d}| d d }||suJ |j| jks}J | d d j | |d}| d d }||sJ |j| jksJ | dd  }ddg|_|j ||d}|jdksJ | j | 
dd |d}t|dksJ |j |j|d}||d d sJ |j g |d}||sJ |j|jksJ |j d	g|d}tg d
}|j|_|j|jksJ d}tjt|d |j g d|d W d    d S 1 s.w   Y  d S )Nr   r   )	sortorderrF   foobazNNr$   rQ   one))barrU   )rR   two)rQ   rW   )quxrU   )rX   rW   r"   r   )r$   r   r%   r0   r!   )r   r&   sortedr   from_tuplesrF   
isinstancer8   r(   r)   	sortlevellenr   r   r   )r   r   r*   r=   valsr-   chunkletr   r   r   r   test_difference   sV   
$r`   c                  C   s0   t ddgddgg} | g }t||  d S )Nr$   r   rA   rB   r   rG   r   r(   r)   r   r=   r   r   r   test_difference_sort_special   s   
rc   c                  C   sJ   t ddgddgg} | jg dd}t ddgddgg}t|| d S Nr$   r   rA   rB   Tr   ra   )r   r=   r-   r   r   r   !test_difference_sort_special_true   s   re   c                  C   s   t dtddgddgg} t dtddgdd	gg}d
}tjt|d | |}W d    n1 s7w   Y  t||  | j|dd}t||  d S )Nr$   2000r   rA   rB   r%   r0   cdz0sort order is undefined for incomparable objectsr   Fr   )	r   rG   pd	Timestampr(   assert_produces_warningRuntimeWarningr   r)   )r   otherr   r=   r   r   r   !test_difference_sort_incomparable   s   rn   c                  C   s   t dtddgddgg} t dtddgdd	gg}d
}tjt|d | j|dd W d    d S 1 s:w   Y  d S )Nr$   rf   r   rA   rB   r%   r0   rg   rh   zH'values' is not ordered, please explicitly specify the categories order r   Tr   )r   rG   ri   rj   r   r   r   r   )r   rm   r   r   r   r   &test_difference_sort_incomparable_true   s   "ro   c                 C   s   | d d d d d }| dd  }|j ||d}|dv r't| |   nt||  | j | |d}t||  | j | d d |d}t||  | j}| d d j |dd  |d}|d u rmt| |   d S || stJ d S )Nr!   r    r%   r   )NFr   r0   )r   r(   r)   r'   r&   r8   )r   r   piece1piece2	the_uniontuplesr=   r   r   r   
test_union   s   rt   c                 C   s   t g d}|| }d|v sJ d|v sJ |r8tjtdd | | W d    d S 1 s1w   Y  d S d}tjt|d | |}W d    n1 sQw   Y  ||r]J d S )N)rC   rD   CrT   rD   zCan only unionr   z'The values in the array are unorderable)	r   r   r   r   NotImplementedErrorr(   rk   rl   r8   )r   using_infer_stringrm   r=   r   result2r   r   r   test_union_with_regular_index
  s   
"ry   c           	      C   s   | d d d d d }| dd  }|j ||d}|dv r't|| dd  nt| | dd  | j | |d}t||  | d d j | dd  |d}| d d }||s\J | j}|  |}|| skJ d S )Nr!   r    r%   r   )NTr   r   )r   r(   r)   r'   r8   r&   )	r   r   rp   rq   the_intrL   r-   rs   r=   r   r   r   test_intersection  s   
r{   c                 C   s   |   d}d g| j }t| |||d}t| || |d|}t|| t| ||d d |d}t| || d d |d|}t|| d S )Ncategoryr   r!   )to_flat_indexastypenlevelsr   rI   r(   r)   )r   r   r   rm   	res_namesr=   r-   r   r   r   test_setop_with_categorical6  s    r   c                 C   s   t tddd}| j||d}t| jg g| j d d}tj||dd | jt	|d d |d}t| jg g| j | j
d}tj||dd d	}tjt|d
 | jt	||d W d    d S 1 sew   Y  d S )Nr%   rQ   )namer   levelscodesrF   T)exactr   r"   r   )r   ranger   r   r   r   r(   r)   r9   asarrayrF   r   r   r   )r   r   rm   r=   r-   r   r   r   r   test_intersection_non_objectF  s   "r   c                  C   sF   t ddgddgg} t| j| dd|  t| j| d d|  d S Nr$   r   rA   rB   Fr   )r   rG   r(   r)   r   rM   r   r   r   test_intersect_equal_sortX  s   r   c                  C   sJ   t ddgddgg} t ddgddgg}| j| dd}t|| d S rd   )r   rG   r   r(   r)   )r   r-   r=   r   r   r   test_intersect_equal_sort_true_  s   r   slice_c                 C   s\   t ddgddgg}||  }t||| t||| t|j|dd| d S r   )r   rG   r(   r)   r   )r   r   rm   r   r   r   test_union_sort_other_emptyf  s
   r   c                  C   sV   t ddgddgg} | d d }| j|dd}t ddgddgg}t|| d S rd   )r   rG   r   r(   r)   )r   rm   r=   r-   r   r   r    test_union_sort_other_empty_sortt  s
   r   c                  C   s   t dtdgddgg} tt | | d d }W d    n1 s'w   Y  t||  | j| d d dd}t||  d S )Nr$   rf   rA   rB   Fr   )	r   rG   ri   rj   r(   rk   rl   r   r)   rb   r   r   r   "test_union_sort_other_incomparable|  s   r   c                  C   sj   t dtdgddgg} d}tjt|d | j| d d dd W d    d S 1 s.w   Y  d S )	Nr$   rf   rA   rB   z<'<' not supported between instances of 'Timestamp' and 'int'r   Tr   )r   rG   ri   rj   r   r   r   r   )r   r   r   r   r   'test_union_sort_other_incomparable_sort  s
   "r   c                  C   sb   t ddgddgg} | jd }d}tjt|d | | W d    d S 1 s*w   Y  d S )NrA   rB   r$   r   z<Can only union MultiIndex with MultiIndex or Index of tuplesr   )r   rG   r   r   r   rv   r   )mir   r   r   r   r   "test_union_non_object_dtype_raises  s   
"r   c                  C   sZ   t g g} t jddgddggddgd}| |}t ddgddgg}t|| d S )Nr$   r   r%   r0   rA   rB   rE   r   from_arraysr   r(   r)   )r   mi2r=   r-   r   r   r   %test_union_empty_self_different_names  s
   
r   c                  C   s`   t jddgddggddgd} td}| |}tj| |d	d
 || }tj| |d	d
 d S )Nr$   r   r%   r0   rA   rB   rE   r   F)check_names)r   r   ri   
RangeIndexr   r(   r)   )r   riresult_leftresult_rightr   r   r   &test_union_multiindex_empty_rangeindex  s   


r   )r   r   r   r   c                 C   s   t ddgddgg}t ddgddgg}tjtdd t|| |dd W d    n1 s1w   Y  t|| |d	d d S )
NrA   rB   r$   r   rg   zThe 'sort' keyword only takesr   r   T)r   rG   r   r   
ValueErrorr   )r   idx1rJ   r   r   r   test_setops_sort_validation  s   r   vald   c                 C   s   t jtddg| dddggdd gd}t tdd|g| dg dg}||}t tdg| ddgg}t|| ||jdd}t jtg | dtg tjdgdd gd}t|| d S )	Nr$   r   dtyperA   rE   r$   r$   r%   F)	ascending)	r   r   r   r   r(   r)   r'   r9   int64any_numeric_ea_dtyper   midxmidx2r=   r-   r   r   r   test_difference_keep_ea_dtypes  s   
r   r!   c                 C   s   t jtddg| dddggdd gd}t tdd|g| dg dg}||}t tdd|g| dg dg}t|| d S )Nr$   r   r   rA   rE   r   r#   )r   r   r   r   r(   r)   r   r   r   r   *test_symmetric_difference_keeping_ea_dtype  s   
r   )rs   
exp_tuplesval1test1val2test2c                 C   sT   t j| ddgd}t jg dddgd}||}t j|ddgd}t|| d S )Nr*   r+   rE   )r   r   r   )r   rZ   r   r(   r)   )rs   r   leftrightr=   r-   r   r   r   test_intersect_with_duplicates  s   
r   zdata, names, expectedr$   rA   rB   )r$   r   rg   rh   r#   )rA   rB   rg   c                 C   s<   t jg ddgd}t j| g|d}||}||ksJ d S )NrA   rB   rE   )r   rZ   _maybe_match_names)datarF   r-   r   r   r=   r   r   r   test_maybe_match_names  s   
r   c                  C   st   t jddgddggddgd} t jddgddggddgd}| |}t jddgddggd dgd}t|| d S )	Nr$   r   r%   r0   rg   rB   rE   rA   r   r   r   r(   r)   )mi1r   r=   r-   r   r   r   'test_intersection_equal_different_names  s
   
r   c                  C   sF   t jdgdggddgd} t dgdgg}| |}t|| d S )Nr$   r%   rg   rB   rE   r   )r   r   r=   r   r   r   !test_intersection_different_names  s   
r   c                 C   sb   t d| d| gg dg}t d| dgg dg}||}t d| gddgg}t|| d S )Nr%   r0   )r$   r   r0   r   r$   r   r0   r$   r   r   nulls_fixturer   r   r=   r-   r   r   r   3test_intersection_with_missing_values_on_both_sides$  s
   
r   c                 C   sN   t d| gg}t d| dgg}||}t dd| gg}t|| d S )Nr$   r%   r   r   r   r   r   ,test_union_with_missing_values_on_both_sides-  s
   
r   r   float64Float64r   Fc                 C   s   t tjdtjg| dddgg}t tjdtjdg| dg dg}|j||d}|d u rAt tjddtjg| dg dg}n|}t|| d S )	N      ?r   r   r%   g      @)r   r%   r0   r   )r   r0   r%   )	r   r   ri   r:   r9   nanr   r(   r)   )r   r   r   r   r=   r-   r   r   r   test_union_nan_got_duplicated6  s   "$r   r0   r$   c                 C   s   t |dg| d}t ddg| d}tj|ddggdd gd}t|ddgg}||}|dkr?tt g d| dg dg}ntt ddg| dddgg}t|| d S )	Nr   r   r$   rA   rE   r0   r   )r$   r   r$   r   r   r   r   r(   r)   )r   r   arr1arr2r   r   r=   r-   r   r   r   test_union_keep_ea_dtypeF  s   
r   dupe_valr%   c                 C   s   t td| dg|dtd| dg|dg}t td| | g|dtd| | g|dg}||}t tdd| | g|dtdd| | g|dg}t|| d S )Nr$   r   r   )r   r   r   r   r(   r)   )r   r   r   r   r=   r-   r   r   r   (test_union_with_duplicates_keep_ea_dtypeZ  s"   
r   z3ignore:PeriodDtype\[B\] is deprecated:FutureWarningc                 C   s   | j s
t| ttfrtdt| j  |  j	
 }t|dgt| g}t|d g| dgt|d  g}||}| }t|| t|jd rl|ddk  rl||jd tj|jd g}nt|jd r||jd t|jd g}||}t|| d S )NzNo duplicates in an empty r$   r   l            )rL   r[   r   r   r   skiptype__name__uniquer&   tolistr   r   r]   r   r'   r(   r)   r	   r   get_level_valuesall
set_levelsr~   r9   r   r   float)indexrequestr&   r   r   r=   r-   r   r   r   test_union_duplicatess  s*   &

r   c                 C   s   t g d| d}t ddg| d}tj|g dgdd gd}tj|ddggdd gd}||}tjt g d	| dg d
gdd gd}t|| d S )N)r0   r$   r$   r   r$   r0   )r   r$   r$   rA   rE   r   )r$   r$   r0   )r$   r$   r   r   )any_real_numeric_dtyper   r   r   r   r=   r-   r   r   r   test_union_keep_dtype_precision  s   
r   c                 C   s   t dtjg| d}t dtjg| d}tj|ddggdd gd}t|ddgg}||}tt ddtjtjg| dg dg}t|| d S )Nr0   r   r$   r   rA   rE   )r$   r   r$   r   )r   ri   NAr   r   r   r(   r)   )r   r   r   r   r   r=   r-   r   r   r    test_union_keep_ea_dtype_with_na  s   
r   z'levels1, levels2, codes1, codes2, names )rg   rh   rB   )r   r$   r   )r$   r$   r$   )r   r   r   name1name2c                 C   s8   t | ||d}t |||d}||}|jdksJ d S )Nr   r   )r   r   _lexsort_depth)levels1levels2codes1codes2rF   r   r   mi_intr   r   r   test_intersection_lexsort_depth  s   
r   )
categoriesT)r   orderedc           
      C   s   ddg}t | |d}t ||d}tj| |gddgd}t|t|ddg}t|t|}t|ddgt|}t|ddgt|ddg}	t|| t|| t|| t|	| d S )N12)xyr   r   rE   )r   r   r   
from_framer   r'   r(   r)   )
rA   rB   rm   df1df2r-   res1res2res3res4r   r   r   0test_intersection_with_non_lex_sorted_categories  s$   
r   c                 C   sz   t jtddg|dddggdd gd}t tdd| g|dg dg}||}t tdg|ddgg}t|| d S )Nr$   r   r   rA   rE   r   )r   r   r   r   r(   r)   )r   r   r   r   r=   r-   r   r   r    test_intersection_keep_ea_dtypes  s   
r   c               	   C   sz   t dtt d gddt d gddgd} t dtdd}t| |g}ttjtjfddgd	tjd
gi}t|| d S )Nr   stringr   )r   )
      )rS   rA   rB   r   g      $@r   g      4@)	r   r   r   rZ   r   r9   r   r(   assert_frame_equal)series1series2r=   r-   r   r   r   .test_union_with_na_when_constructing_dataframe  s   "r   )Gnumpyr9   r   pandasri   r   r   r   r   r   r   pandas._testing_testingr(   pandas.api.typesr   r	   markparametrizer   r:   r;   r.   arm_slowr/   r?   r@   rK   rN   r`   rc   re   rn   ro   rt   ry   r{   r   r   r   r   slicer   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   filterwarningsr   r   r   r   Categoricalr   r   r   r   r   r   r   <module>   s     
A

	






		



"

