o
    j$                     @   s   d dl Zd dlZd dlmZmZ dZdd Zdd Zej	
dg d	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d Zej	
ddd gdd Zd d! Zd"d# ZdS )$    N)flood
flood_fillg-q=c                  C   sX   t tddd} | jdksJ ttddjtksJ ttddjdks*J d S )Nr       )   r      )r   npemptysizer   dtypeboolshape)outputr   r   i/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/skimage/morphology/tests/test_flood_fill.pytest_empty_input	   s   r   c                  C   sT   t jg dt jd} tjtdd t| dd W d    d S 1 s#w   Y  d S )N)g      "@g?*   r   zdtype of `image` is float16)matchr      )r   arrayZfloat16pytestZraises	TypeErrorr   )imager   r   r   test_float16   s   "r   	tolerance)ij   ii{  c                 C   sF   t jdt jdd}d}t |}t||d| d}t j|| d S )N   r   )   r   r   )   r   r   r   r   )r   arangeuint8ZreshapeZ
zeros_liker   testingassert_equal)r   r   seedexpectedr   r   r   r   test_overrange_tolerance_int   s
   
r&   c                  C   sd   t t jj} t jjddddt j}|| 9 }t |}t|dd| 	 d d}t j
|| d S )N)@   r'               ?)r
   lowhigh)r   r   
   r   )r   Zfinfofloat32maxrandomuniformZastypeZ	ones_liker   itemr"   r#   )Z	max_valuer   r%   r   r   r   r   test_overrange_tolerance_float$   s   
r2   c                  C   sr   t g dg dg dg dg dg} t| dddd t g d	g d
g d
g dg dg}t j| | 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   r   r   r   r   r   r      TZin_place)r8   r8   r8   r8   r8   r8   r8   )r8   r   r   r8   r   r   r8   )r   r8   r8   r8   r8   r8   r   r8   r   r   r   r   r   r   )r   r   r   r"   assert_array_equalr   r%   r   r   r   test_inplace_int0   s$   

r=   c                  C   s~   t jg dg dg dg dg dgt jd} t| dddd	 t jg d
g dg dg dg dgt jd}t j| | d S )Nr3   r4   r5   r6   r   r7   r8   Tr9         @r?   r?   r?   r?   r?   r?   r?   r)   r)   r?          @rA   r?   r)   r?   r?   r?   r?   r?         @r?   r)   r)   r)   rC   rC   g      @r   r   r-   r   r"   assert_allcloser<   r   r   r   test_inplace_floatJ   s(   rG   c                  C   s   t g dg dg dg dg dg} | d d dd d df }t|dddd	 t g d
g dg dg}t j|| t g dg dg dg dg dg}t j| | d S )Nr3   r4   r5   r6   r   r7   r8   Tr9   )r8   r8   r8   r8   )r8   r   r   r8   )r8   r   r   r   )r8   r   r8   r   r8   r   r8   )r8   r   r   r   r   r   r8   r:   )r   r   r   r"   rF   )r   Zimage2Z	expected2r%   r   r   r   test_inplace_noncontiguousf   s*   
rH   c                  C   sX   t d} t g d}t| dddd}t| dddd}t j|| t j|| d S )N   )r   r   rJ   rJ   rJ   rJ   rJ   rJ   	   r,   r8   rJ   r   r   r8   )r   r    r   r   r"   r#   )r   r%   r   output2r   r   r   test_1d   s   
rN   c                  C   sb   t jdt jd} d| d d df< t g dg dg dg dg dg}t jt| dd| d S )Nr8      r   d   r   )r(   r(   r(   g      Y@        rR   rR   r7   )r   zerosfloat64r   r"   r#   r   )testr%   r   r   r   test_wraparound   s   
rW   c                  C   s   t jdt jd} d| d d df< t g dg dg dg dg dg}t| dd}t j|| d| d< d|d< t| d	d}t j|| d S )
NrO   r   rQ   r   )r   r   r      r   r   r   )r   r   rX   r   r   r   )r   rT   rU   r   r   r"   r#   )rV   r%   r   rM   r   r   r   test_neighbors   s    	rZ   c                  C   s   t g dg dg dg} tt jdt jddd| d}t jg dg dg dg dg d	gt jd}t j|| t g dg d
g d
g} tt jdt jddd| d}t jg d	g dg dg dg dgt jd}t j|| d S )N)r   r   r   )r   r   r   r8      r   )r   r   rX   	footprint)r   rX   rX   rX   rX   rX   r   r   r   r   r   r   )r   r   r   )r   r   )rX   rX   rX   rX   rX   r   r   r   r   rT   r!   r"   r#   )r^   r   r%   r   r   r   test_footprint   s8   ra   c               
   C   s   dD ]A} d|  }t |}tdd t| D }d||< t|d|  d}| d|  d ks0J t j|t t 	d	|  d dd
 qd S )N)r   r   r8   rL   c                 s   s    | ]	}t d ddV  qdS )r   rS   N)slice).0dimr   r   r   	<genexpr>   s    z test_basic_nd.<locals>.<genexpr>r   )r   r   r   )r   Zconstant)
r   rT   tupleranger   sumr"   r#   padZones)	dimensionr   Z	hypercubeZ	slice_midZfilledr   r   r   test_basic_nd   s   
rk   c                 C   s|   t jg dg dg dgdd}t jg dg dg dgtd}t|d| d}t j|| t|d	| d}t j|| d S )
N)r   r   r   r   )r   r   r   r   )r   r   r   r   F)orderr   )r   r   )Z
seed_pointr   )r   r   )r   r   r   r   r"   r;   )r   r   r%   maskr   r   r   test_f_order   s$   	ro   c                  C   sz   t j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t jd}t| d
d} t j| | d S )Nr3   r4   r5   r6   r   r>   r@   rB   rD   )r   rS   r8   rE   r<   r   r   r   !test_negative_indexing_seed_point  s(   rp   c                  C   s  t g dg dg dg dg dg} tt jdt jddd| d}t jg d	g d
g dg d
g d	gt jd}t j|| t g dg dg dg dg dg} t jdt jd}d|d d df< t|dd| d}t jg dg dg dg dg dgt jd}t j|| d S )N)r   r   r   r   r   )r   r   r   r   r   )r   r   r   r   r   r[   r   rY   rX   r]   )r   rX   r   r   r   rX   r_   )r   r   r   rX   r   r   )r   r   r   r   r   )r8   r,   rQ   )r   rP   r   r7   )
rX   rX   rX   rQ   rX   rX   rX   rQ   rQ   r   r`   )r^   r   r%   r   r   r   r   test_non_adjacent_footprint1  sT   

rq   )numpyr   r   Zskimage.morphologyr   r   epsr   r   markZparametrizer&   r2   r=   rG   rH   rN   rW   rZ   ra   rk   ro   rp   rq   r   r   r   r   <module>   s*    
#)
