o
    h|$                     @   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   ]/var/www/html/scripts/venv/lib/python3.10/site-packages/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| d| d}t|| u dd d S )Nr   r   outTz.remove_small_objects in_place argument failed.)r   copyr   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   )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      r/   r/   r'   )r   r   r   r   r   r/   r   )r   r   intr   r   labeled_imager   r   r   r   r   test_labeled_image8   s    

r3   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   r1   r   r   r   test_uint_imageE   s    

r5   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   r0   r   r   )r"   r   r   r   test_single_label_warningR   s   
"r7   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_inputZ      
"rA   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_input`   s   
"rI   
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 )NrJ   rK   rN   r/   area_thresholdr   r   r   r   test_holes_imager   r   r   r   r   test_one_connectivity_holesp   s   
rS   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 )	NrJ   rK   rL   rM   rN   r/   r   )rP   r   rQ   r   r   r   r   test_two_connectivity_holes}   s   
rT   c                  C   r   )Nr/   rP   r   Tz,remove_small_holes in_place argument failed.)rR   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 )Nr/   rU   )rR   r    r   r*   r   )r"   r+   r   r   r   r   test_out_remove_small_holes   s   
rW   c                  C   sT   t  } tj| td}tt t| d|d W d    d S 1 s#w   Y  d S )Nr'   r/   rU   )	rR   r    r   r*   r0   r   r=   r>   r   )r"   r+   r   r   r   test_non_bool_out   s
   "rX   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 NrJ   rK   rL   rM   
r   r   r   r   r   r   r   r   r   r   
r   r   r   r   r   r   r   r   r   r   r'   rN   zreturned as a boolean arrayr/   rO   )r   r   r0   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 rY   )r   r   r4   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 )NrJ   rK   rL   rM   rZ   r[   r'   r6   r/   rO   )r   r   r0   r   r   r)   r   )r]   r   r   r   test_label_warning_holes   s   
	r`   c                  C   r8   r9   )r   r;   r<   r   r=   r>   r   r?   r   r   r   test_float_input_holes   rB   ra   )'numpyr   pytestskimage.morphologyr   r   skimage._sharedr   skimage._shared.testingr   r   skimage._shared._warningsr   r   r   r   r   r   r#   markparametrizer0   int32r-   r3   r5   r7   rA   rI   rR   rS   rT   rV   rW   rX   r^   r_   r`   ra   r   r   r   r   <module>   sV    


