U
    ?h$                     @   s  d dl Z d dlZd dlZd dlmZ d dlmZ d dlm	Z	 dd Z
dd Zd	d
 Zdd Zejddddddgejdejejgdd Zdd Zejdejejejejejejejejejejejgdd Zdd Zdd Zdd Z dd  Z!d!d" Z"dS )#    N)assert_array_almost_equal)_supported_float_type)reconstructionc                   C   s    t ttdtdd dS )z0Test reconstruction with image and mask of zeros)      r   N)r   r   npzeros r	   r	   ^/var/www/html/venv/lib/python3.8/site-packages/skimage/morphology/tests/test_reconstruction.py
test_zeros
   s     r   c                   C   s    t ttdtdd dS )z9Test reconstruction where the image and mask are the same)r   r      N)r   r   r   onesr	   r	   r	   r
   test_image_equals_mask   s     r   c                  C   s,   t d} t dd }tt| |d dS )zATest reconstruction where the image is uniform and less than maskr   r      r   Nr   r   r   r   imagemaskr	   r	   r
   test_image_less_than_mask   s    
r   c                  C   s4   t d} d| d< t dd }tt| |d dS )z'Test reconstruction with one peak pixelr   r   )r   r      Nr   r   r	   r	   r
   test_one_image_peak   s    
r   minsize   i N  i@  i8 dtypec                 C   s$  t jdddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	g|d}t jdddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	g|d}t jdddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	g|d}| dk	rtt| |j }t| |j|  }t |||f}t |||f}t |||f}t||}|jt	|jkst
t|| dS )z=Test reconstruction with two peak pixels isolated by the maskr   r   r   r      N)r   arraymathceilsqrtsizeZtiler   r   r   AssertionErrorr   )r   r   r   r   expectedZnrowZncoloutr	   r	   r
   test_two_image_peaks'   sH    

r%   c                  C   s$   t tdtd} t| d dS )zDTest reconstruction with an image of all zeros and a mask that's not)
   r&   r   N)r   r   r   r   r   )resultr	   r	   r
   test_zero_image_one_maskK   s    r(   c                 C   s   t jddddddddddg
| d}t jddddddddddg
| d}t||d	d
}|jt|jksftt jddddddddddg
| d}t|| dS )z@Test reconstruction by erosion, which should fill holes in mask.r      r   r      r   r   r   erosionmethodN)r   r   r   r   r   r"   r   )r   seedr   r'   r#   r	   r	   r
   test_fill_holeQ   s    """r/   c               	   C   sh   t d} t d}tt t| d |dd W 5 Q R X tt t| d |dd W 5 Q R X d S )Nr   r   dilationr,   g      ?r+   r   r   pytestraises
ValueErrorr   r.   r   r	   r	   r
   test_invalid_seed^   s    



r6   c               	   C   s   t d} t d}tt t| |t dd W 5 Q R X tt t| |t dd W 5 Q R X t| |t dd d S )Nr   )r   r   )	footprint)r   r   r   r   r1   r5   r	   r	   r
   test_invalid_footprinti   s    

r9   c                  C   sd   t ddddddddddg
} t ddddddddddg
}tt t| |dd	 W 5 Q R X d S )
Nr   r)   r   r*   r   r   r   Zfoor,   )r   r   r2   r3   r4   r   r5   r	   r	   r
   test_invalid_methodu   s    r:   c                  C   s(  t ddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgg} t ddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgg}tt( t| |dt dt ddgd W 5 Q R X d	S )
z:Test reconstruction with invalid not None offset parameterr   r   r   r   r0   r8   r   r-   r7   offsetN)r   r   r2   r3   r4   r   r   r   r	   r	   r
   test_invalid_offset_not_none|   s&     r=   c                  C   s   t ddddddddddg
} t ddddddddddg
}t ddddddddddg
}tt| |dt dt dgd	| d
S )z/Test reconstruction with valid offset parameterr   r   r*   r   r   r   r)   r0   r;   N)r   r   r   r   r   )r.   r   r#   r	   r	   r
   test_offset_not_none   s     
r>   )#r   numpyr   r2   Znumpy.testingr   Zskimage._shared.utilsr   Z"skimage.morphology.grayreconstructr   r   r   r   r   markZparametrizeZuint8Zfloat32r%   r(   Zint8Zint16Zuint16Zint32Zuint32Zint64Zuint64Zfloat16Zfloat64r/   r6   r9   r:   r=   r>   r	   r	   r	   r
   <module>   s8   
"     

