U
    ?h|$                     @   s  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d d d dd gdddd d gdddd dg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d d d d d d dd d d g
d dddddd d d d g
d dd d ddd d d d g
d dddd dd d d d g
d dddddd d d d g
d d d d d d d dddg
d d d d d d d dd dg
d d d d d d d dddg
ge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S )-    N)remove_small_objectsremove_small_holes)testing)assert_array_equalassert_equal)expected_warnings   c               	   C   sJ   t dddddgdddddgdddddggt} ttdd}t||  d S )Nr   r      min_sizenparrayboolr   
test_imager   expectedobserved r   T/var/www/html/venv/lib/python3.8/site-packages/skimage/morphology/tests/test_misc.pytest_one_connectivity   s    r   c               	   C   sL   t dddddgdddddgdddddg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   s*   t  } t| d| d}t|| kdd d S )Nr	   r   outTz.remove_small_objects in_place argument failed.)r   copyr   r   imager   r   r   r   test_in_place   s
    
r    in_dtype	out_dtypec              	   C   sb   t j| dd}tjt |d}|tkr,dg}ng }t| t|d|d}W 5 Q R X ||ks^td S )NT)r   ZdtypezOnly one label was providedr	   r   )r   astyper   
empty_liker   r   r   AssertionError)r!   r"   r   expected_outZexp_warnr   r   r   r   test_out&   s    
r(   c               	   C   s   t jdddddgdddddgdddddgdddddggtd} t jdddddgdddddgdddddgdddddggtd}t| dd}t|| d S Nr   r   r      r#   r
   )r   r   intr   r   Zlabeled_imager   r   r   r   r   test_labeled_image8   s     r-   c               	   C   s   t jdddddgdddddgdddddgdddddggt jd} t jdddddgdddddgdddddgdddddggt jd}t| dd}t|| d S r)   )r   r   uint8r   r   r,   r   r   r   test_uint_imageE   s     r/   c               	   C   sV   t dddddgdddddgdddddggt} tdg t| dd W 5 Q R X d S )Nr   r   use a boolean array?r	   r
   )r   r   r+   r   r   )r   r   r   r   test_single_label_warningR   s    r1   c               	   C   s0   t jdd} tt t|  W 5 Q R X d S N   )r   randomrandr   raises	TypeErrorr   Z
float_testr   r   r   test_float_inputZ   s    r9   c               	   C   s4   t jjdddd} tt t|  W 5 Q R X d S )N)r3   r3   )size)r   r4   randintr   r6   
ValueErrorr   )Znegative_intr   r   r   test_negative_input`   s    r?   c                  C   s   t ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
gt} ttdd}t||  d S )Nr   r   r*   area_thresholdr   r   r   r   test_holes_imager   r   r   r   r   test_one_connectivity_holesp   s    rD   c                  C   s   t ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
gt} ttddd}t||  d S )Nr   r   r*   r   )rA   r   rB   r   r   r   r   test_two_connectivity_holes}   s    rE   c                  C   s*   t  } t| d| d}t|| kdd d S )Nr*   rA   r   Tz,remove_small_holes in_place argument failed.)rC   r   r   r   r   r   r   r   test_in_place_holes   s
    
rG   c                  C   s0   t  } t| }t| d|d}||ks,td S )Nr*   rF   )rC   r   r   r%   r   r&   )r   r'   r   r   r   r   test_out_remove_small_holes   s    
rH   c               	   C   s>   t  } tj| td}tt t| d|d W 5 Q R X d S )Nr#   r*   rF   )	rC   r   r   r%   r+   r   r6   r7   r   )r   r'   r   r   r   test_non_bool_out   s    rI   c                  C   s  t jddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
gtd} t jddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
gtd}tdg t| dd}W 5 Q R X t|| d S Nr   r   r   r#   zreturned as a boolean arrayr*   r@   )r   r   r+   r   r   r   r   labeled_holes_imager   r   r   r   r   test_labeled_image_holes   s2    	rM   c                  C   s  t jddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
gt jd} t jddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
gtd}tdg t| dd}W 5 Q R X t|| d S rJ   )r   r   r.   r   r   r   r   rK   r   r   r   test_uint_image_holes   s2    	rN   c                  C   s   t jddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
gtd} tdg t| dd W 5 Q R X t| tdd d S )Nr   r   r   r#   r0   r*   r@   )r   r   r+   r   r   r$   r   )rL   r   r   r   test_label_warning_holes   s    	rO   c               	   C   s0   t jdd} tt t|  W 5 Q R X d S r2   )r   r4   r5   r   r6   r7   r   r8   r   r   r   test_float_input_holes   s    rP   )'numpyr   ZpytestZskimage.morphologyr   r   Zskimage._sharedr   Zskimage._shared.testingr   r   Zskimage._shared._warningsr   r   r   r   r   r   r    markZparametrizer+   Zint32r(   r-   r/   r1   r9   r?   rC   rD   rE   rG   rH   rI   rM   rN   rO   rP   r   r   r   r   <module>   sT   
