o
    :ήc%                     @   sb  d dl Zd dlZd dlmZmZ d dlmZ d dlm	Z	m
Z
 d dlmZ eg dg dg dgeZd	d
 Zdd Zdd Zejdeeejgejdeeejgdd Zdd Zdd Zdd Zdd Zdd Zeg dg dg dg d g dg d!g d"g d!geZd#d$ Zd%d& Zd'd( Z d)d* Z!d+d, Z"d-d. Z#d/d0 Z$d1d2 Z%d3d4 Z&dS )5    N)remove_small_objectsremove_small_holes)testing)assert_array_equalassert_equal)expected_warningsr   r   r      r   r	   r	   r	   r   r   )r	   r	   r	   r   r	   c                  C   s8   t g dg dg dgt} ttdd}t||  d S )N)r   r   r   r   r   r
      min_sizenparrayboolr   
test_imager   expectedobserved r   I/tmp/pip-target-vg8gfxp4/lib/python/skimage/morphology/tests/test_misc.pytest_one_connectivity   s   
r   c                  C   s:   t g dg dg dgt} ttddd}t||  d S )Nr   r
         )r   connectivityr   r   r   r   r   test_two_connectivity   s   
r   c                  C   T   t  } tdg t| ddd}W d    n1 sw   Y  t|| u dd d S )Nin_place argument is deprecatedr   T)r   in_placez.remove_small_objects in_place argument failed.)r   copyr   r   r   imager   r   r   r   test_in_place      
r#   in_dtype	out_dtypec                 C   sv   t j| dd}tjt |d}|tkrdg}ng }t| t|d|d}W d    n1 s.w   Y  ||u s9J d S )NT)r    dtypezOnly one label was providedr   )r   out)r   astyper   
empty_liker   r   r   )r%   r&   r"   expected_outexp_warnr)   r   r   r   test_out'   s   
r.   c                  C   sf   t jg dg dg dg dgtd} t jg dg dg dg dgtd}t| dd}t|| d S N)r   r   r   r   r	   )r   r   r   r   r   )r   r      r0   r0   r'   )r   r   r   r   r   r0   r   )r   r   intr   r   labeled_imager   r   r   r   r   test_labeled_image9   s    

r4   c                  C   sj   t jg dg dg dg dgt jd} t jg dg dg dg dgt jd}t| dd}t|| d S r/   )r   r   uint8r   r   r2   r   r   r   test_uint_imageF   s    

r6   c                  C   sZ   t g dg dg dgt} tdg t| dd W d    d S 1 s&w   Y  d S )Nr   r
   use a boolean array?r   r   )r   r   r1   r   r   )r"   r   r   r   test_single_label_warningS   s   
"r8   c                  C   F   t jdd} tt t|  W d    d S 1 sw   Y  d S N   )r   randomrandr   raises	TypeErrorr   
float_testr   r   r   test_float_input[      
"rB   c                  C   sJ   t jjdddd} tt t|  W d    d S 1 sw   Y  d S )N)r;   r;   )size)r   r<   randintr   r>   
ValueErrorr   )negative_intr   r   r   test_negative_inputa   s   
"rJ   
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   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	   c                  C   sV   t g dg dg dg dg dg dg dg dgt} ttdd}t||  d S )NrK   rL   rO   r0   area_thresholdr   r   r   r   test_holes_imager   r   r   r   r   test_one_connectivity_holesq   s   
rT   c                  C   sX   t g dg dg dg dg dg dg dg dgt} ttddd}t||  d S )	NrK   rL   rM   rN   rO   r0   r   )rQ   r   rR   r   r   r   r   test_two_connectivity_holes~   s   
rU   c                  C   r   )Nr   r0   T)rQ   r   z,remove_small_holes in_place argument failed.)rS   r    r   r   r   r!   r   r   r   test_in_place_holes   r$   rV   c                  C   s0   t  } t| }t| d|d}||u sJ d S )Nr0   rQ   r)   )rS   r    r   r+   r   )r"   r,   r)   r   r   r   test_out_remove_small_holes   s   
rX   c                  C   sT   t  } tj| td}tt t| d|d W d    d S 1 s#w   Y  d S )Nr'   r0   rW   )	rS   r    r   r+   r1   r   r>   r?   r   )r"   r,   r   r   r   test_non_bool_out   s
   "rY   c               
   C   s   t jg dg dg dg dg dg dg dg dgtd} t jg dg dg dg dg dg dg dg dgtd}td	g t| d
d}W d    n1 sTw   Y  t|| d S NrK   rL   rM   rN   
r   r   r   r   r   r   r   r   r   r   
r   r   r   r   r   r   r   r   r   r   r'   rO   zreturned as a boolean arrayr0   rP   )r   r   r1   r   r   r   r   labeled_holes_imager   r   r   r   r   test_labeled_image_holes   s4   

	r_   c               
   C   s   t jg dg dg dg dg dg dg dg dgt jd} t jg dg dg dg dg dg dg dg dgtd}td	g t| d
d}W d    n1 sUw   Y  t|| d S rZ   )r   r   r5   r   r   r   r   r]   r   r   r   test_uint_image_holes   s4   

	r`   c               
   C   s   t jg dg dg dg dg dg dg dg dgtd} tdg t| d	d
 W d    n1 s5w   Y  t| td	d
 d S )NrK   rL   rM   rN   r[   r\   r'   r7   r0   rP   )r   r   r1   r   r   r*   r   )r^   r   r   r   test_label_warning_holes   s   
	ra   c                  C   r9   r:   )r   r<   r=   r   r>   r?   r   r@   r   r   r   test_float_input_holes   rC   rb   )'numpyr   pytestskimage.morphologyr   r   skimage._sharedr   skimage._shared.testingr   r   skimage._shared._warningsr   r   r   r   r   r   r#   markparametrizer1   int32r.   r4   r6   r8   rB   rJ   rS   rT   rU   rV   rX   rY   r_   r`   ra   rb   r   r   r   r   <module>   sV    


