o
    Õjì  ã                   @   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g d¢¡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   ó    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
   úm/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/skimage/morphology/tests/test_reconstruction.pyÚ
test_zeros
   ó    r   c                   C   r   )z9Test reconstruction where the image and mask are the same)r   r   é   N)r   r   r   Úonesr
   r
   r
   r   Útest_image_equals_mask   r   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)NéÈ   i N  i@œ  i€8 Údtypec                 C   s$  t jg d¢g d¢g d¢g d¢g d¢g d¢g|d}t jg d¢g d¢g d¢g d¢g d¢g d¢g|d}t jg d¢g d¢g d¢g d¢g d¢g d¢g|d}| d	ur|t t | |j ¡¡}t | |j|  ¡}t  |||f¡}t  |||f¡}t  |||f¡}t||ƒ}|jt	|jƒks‹J ‚t
||ƒ d	S )
z=Test reconstruction with two peak pixels isolated by the mask)	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   r   r   r   N)r   ÚarrayÚmathÚceilÚsqrtÚsizeZtiler   r   r   r   )r   r   r   r   ÚexpectedZnrowZncolÚoutr
   r
   r   Útest_two_image_peaks%   sN   ú÷ú÷ú÷
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_maskX   s   r)   c                 C   sf   t jg d¢| d}t jg d¢| d}t||dd}|jt|jƒks#J ‚t jg d¢| d}t||ƒ dS )z@Test reconstruction by erosion, which should fill holes in mask.©
r   é   r+   r+   r+   r+   r+   r+   r+   r   r   ©
r   r   é   r   r   r   r   r   r   r   Úerosion©Úmethod)
r   r   r-   r   r   r   r   r   r   r   N)r   r   r   r   r   r   )r   Úseedr   r(   r$   r
   r
   r   Útest_fill_hole^   s   r2   c                  C   s’   t  d¡} t  d¡}t t¡ t| d |dd W d   ƒ n1 s#w   Y  t t¡ t| d |dd W d   ƒ d S 1 sBw   Y  d S )Nr   r   Údilationr/   g      à?r.   ©r   r   ÚpytestÚraisesÚ
ValueErrorr   ©r1   r   r
   r
   r   Útest_invalid_seedx   s   

ÿ"ÿr9   c                  C   s¨   t  d¡} t  d¡}t t¡ t| |t  d¡d W d   ƒ n1 s$w   Y  t t¡ t| |t  d¡d W d   ƒ n1 sCw   Y  t| |t  d¡d d S )Nr   )r   r   )Ú	footprint)r   r   ©r   r   r4   r8   r
   r
   r   Útest_invalid_footprint   s   

ÿÿr<   c                  C   sZ   t  g d¢¡} t  g d¢¡}t t¡ t| |dd W d   ƒ d S 1 s&w   Y  d S )Nr*   r,   Zfoor/   )r   r   r5   r6   r7   r   r8   r
   r
   r   Útest_invalid_method‹   s
   "ÿr=   c               
   C   s®   t  g d¢g d¢g d¢g d¢g d¢g d¢g¡} t  g d¢g d¢g d¢g d¢g d¢g d¢g¡}t t¡ t| |dt  d¡t  dd	g¡d
 W d  ƒ dS 1 sPw   Y  dS )z:Test reconstruction with invalid not None offset parameter)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   r3   r;   r   r   ©r0   r:   ÚoffsetN)r   r   r5   r6   r7   r   r   r   r
   r
   r   Útest_invalid_offset_not_none’   s6   úÿúÿ
û"ÿr@   c               	   C   sT   t  g d¢¡} t  g d¢¡}t  g d¢¡}tt| |dt  d¡t  dg¡d|ƒ dS )	z/Test reconstruction with valid offset parameterr,   )
r   r+   r-   r+   r+   r+   r+   r   r   r   )
r   r   r-   r-   r-   r-   r-   r   r   r   r3   r   r   r>   N)r   r   r   r   r   )r1   r   r$   r
   r
   r   Útest_offset_not_none³   s   ÿürA   )#r    Únumpyr   r5   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float64r2   r9   r<   r=   r@   rA   r
   r
   r
   r   Ú<module>   sF    
1õþ

	
!