o
    j                     @   sd  d dl Zd dlmZmZ d dlmZ d dlmZ d dl	Z	e	j
deejej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e	j
dejejejeejejejejejejf
e	j
dddd Zdd Z dd Z!e	j
dde	j
ddd d! Z"e	j
dd"e	j
d#de	j
d$dd%d& Z#d'd( Z$d)d* Z%d+d, Z&d-d. Z'dS )/    N)join_segmentationsrelabel_sequential)testingassert_array_equaldtypec                 C   s   t jg dg dg dg| d}t jg dg dg dg| d}t||}t g dg dg d	g}t|| t||d
d\}}}t|| | t|| | t g dg dg}tt t|| W d    d S 1 sqw   Y  d S )N)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   T)Zreturn_mapping)r   r	   r	   r   )nparrayr   r   r   raises
ValueError)r   s1s2jZj_refm1m2Zs3 r   e/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/skimage/segmentation/tests/test_join.pytest_join_segmentations	   s     

"r   c                 C   s    t ||  | t || |  d S Nr   )arar_relabfwinvr   r   r   _check_maps!   s   r   c                  C   s   t g d} t| \}}}t| ||| t g d}t|| t dt}d|d< d|d< d|d< d	|d
< d|d< t|| t g d}t|| d S )Nr   r   r   r      c   *   )r   r   r	   r	   r   r   r   d   r   r	   r   r   r!   r   r#   r"   )r   r   r   r!   r#   r"   r   r   r   r   r   zerosintr   r   r   r   ar_relab_refZfw_refZinv_refr   r   r   test_relabel_sequential_offset1&   s   

r*   c                  C      t g d} t| dd\}}}t| ||| t g d}t|| t dt}d|d< d|d< d|d	< d	|d
< d|d< t|| t g d}t|| d S )Nr    r   offset)r   r      r.      	   r!   r$   r   r.   r/   r!   r#   r0   r"   
r   r   r   r   r   r   r   r!   r#   r"   r%   r(   r   r   r   test_relabel_sequential_offset57      

r2   c                  C   r+   )Nr   r   r   r   r!   r"   r#   r   r   r,   r   r   r.   r.   r/   r0   r!   r   r$   r   r.   r/   r!   r#   r0   r"   r1   r%   r(   r   r   r   %test_relabel_sequential_offset5_with0H   r3   r6   c                  C   s   t jg dt jd} t| dd\}}}t| t||| t g d}t|| t dt}d|d< d|d< d	|d
< d
|d< d|d< t|| t g d}t|| d S )Nr4   r
   r   r,   r5   r$   r   r.   r/   r!   r#   r0   r"   r1   )	r   r   uint8r   r   astyper'   r   r&   r(   r   r   r   test_relabel_sequential_dtypeY   s   

r9   c                  C   sx   t t jj} t jg dt jd}t|| d\}}}t jd| | d | d | d gt jd}t|| |j|jks:J d S )N)r   r   r"   r#   r#   r
   r,   r   r	   r   )	r   iinfoZint32maxr   r   Zuint32r   r   )imaxlabelsoutputr   r   	referencer   r   r   'test_relabel_sequential_signed_overflowj   s   &
r@   c                  C   sT   t t jj} t jdd| ddgt jd}t|| d\}}}t || d ks(J d S )Nr   r   r#   r
   r,   r	   )r   r:   Zint64r;   r   r   )r<   r=   r>   r   r   r   r   r   test_very_large_labelss   s   rA   data_already_sequential)FTc                    sL   | rt jg d d}n	t jg d d}t fddt|D s$J d S )Nr   r   r   r	   r   r   r
   r4   c                 3   s    | ]}|j  kV  qd S r   r
   .0ar
   r   r   	<genexpr>   s    z>test_relabel_sequential_int_dtype_stability.<locals>.<genexpr>)r   r   allr   )rB   r   r   r   r
   r   +test_relabel_sequential_int_dtype_stabilityz   s   "rI   c                  C   s   t jg dt jd} d}t| |d\}}}t| ||| tdd ||fD s)J |j| jks1J t | dk| t	| d d}t
|| d S )	NrC   r
      r,   c                 s   s    | ]	}|j tjkV  qd S r   )r   r   uint16rD   r   r   r   rG      s    z=test_relabel_sequential_int_dtype_overflow.<locals>.<genexpr>r   r   )r   r   r7   r   r   rH   r   wherer8   r'   r   )r   r-   r   r   r   r)   r   r   r   *test_relabel_sequential_int_dtype_overflow   s    rM   c                  C   sF   t g d} tt t|  W d    d S 1 sw   Y  d S )N)r   r   r   r!   r"   r#   r   r   r   pytestr   r   r   )r   r   r   r   'test_relabel_sequential_negative_values   s   
"rQ   r-   )r   c                 C   s^   | r
t g d}nt g d}tt t||d W d    d S 1 s(w   Y  d S )NrC   r4   r,   rO   )rB   r-   r   r   r   r   *test_relabel_sequential_nonpositive_offset   s   "rS   )r   r   with0input_starts_at_offsetc                 C   s   |r
t g d}nt g d}|r||dk  | d 7  < t|| d\}}}t|||| |r4|}nt |dk||  d d}t|| d S )NrC   )r   r   r	   r   r   r   r   r,   )r   r   r   r   rL   r   )r-   rT   rU   r   r   r   r   r)   r   r   r   *test_relabel_sequential_already_sequential   s   rV   c                  C   sJ   t jg dtd} tt t| }W d    d S 1 sw   Y  d S )N)r   r	   r	   r   r   r!   r
   )r   r   floatr   r   	TypeErrorr   )r=   _r   r   r   test_incorrect_input_dtype   s   
"rZ   c                  C   sF   t jg dt jd} t| \}}}t|||  t| || d S )Nr4   r
   )r   r   intpr   r   r   r   Z	relabeledr   r   r   r   r   test_arraymap_call   s   r]   c                  C   sz   t jg dt jd} t| \}}}t|dksJ t|tt |ks&J t|dks.J t|tt |ks;J d S )Nr4   r
   r$   r.   )r   r   r[   r   lenr\   r   r   r   test_arraymap_len   s   r_   c                  C   s>   t jg dt jd} t| \}}}d|d< |d dksJ d S )Nr4   r
   r.   H   )r   r   r[   r   r\   r   r   r   test_arraymap_set   s   ra   )(numpyr   Zskimage.segmentationr   r   Zskimage._sharedr   Zskimage._shared.testingr   rP   markZparametrizer'   rK   Zuintr   r   r*   r2   r6   r9   r@   rA   byteZshortZintcZlonglongZubyteZushortZuintcZ	ulonglongrI   rM   rQ   rS   rV   rZ   r]   r_   ra   r   r   r   r   <module>   sV    
			