U
    ?hE%                     @   s   d dl Zd dlZd dlmZmZ 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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 tttddjtks:tttddjdksTtd S )Nr       )   r      )	r   npemptysizeAssertionErrorr   dtypeboolshape)outputr   r   Z/var/www/html/venv/lib/python3.8/site-packages/skimage/morphology/tests/test_flood_fill.pytest_empty_input	   s    r   c               	   C   s@   t jdddgt jd} tjtdd t| dd W 5 Q R X d S )	Ng      "@g?*   r   zdtype of `image` is float16)matchr      )r   arrayZfloat16pytestZraises	TypeErrorr   )imager   r   r   test_float16   s    r   c                  C   sB   t jdt jdd} t | }t| dddd}t j|| d S )N   r   )   r   r   )   r      r   i{  	tolerance)r   arangeuint8ZreshapeZ
zeros_liker   testingassert_equal)r   expectedr   r   r   r   test_overrange_tolerance_int   s    
r&   c                  C   s`   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   r#   r$   )Z	max_valuer   r%   r   r   r   r   test_overrange_tolerance_float$   s    
r1   c                  C   s   t dddddddgdddddddgdddddddgdddddddgdddddddgg} t| dddd	 t dddddddgdddddddgdddddddgdddddddgdddddddgg}t j| | d S 
Nr   r   r   r   r   r   r      TZin_place)r   r   r   r#   assert_array_equalr   r%   r   r   r   test_inplace_int1   s    r8   c                  C   s   t jdddddddgdddddddgdddddddgdddddddgdddddddggt jd} t| ddd	d
 t jdddddddgdddddddgdddddddgdddddddgdddddddggt jd}t j| | d S )Nr   r   r   r   r   r   r3   r4   Tr5         @r)          @      @      @r   r   r-   r   r#   assert_allcloser7   r   r   r   test_inplace_floatC   s$    r?   c                  C   s$  t dddddddgdddddddgdddddddgdddddddgdddddddgg} | d d dd d df }t|dddd	 t ddddgddddgddddgg}t j|| t dddddddgdddddddgdddddddgdddddddgdddddddgg}t j| | d S r2   )r   r   r   r#   r>   )r   Zimage2Z	expected2r%   r   r   r   test_inplace_noncontiguousU   s(    

r@   c                  C   sj   t d} t dddddddddddg}t| dddd	}t| d
ddd	}t j|| t j|| d S )N   r   r   i	   r,   r4   r   r   r4   )r   r!   r   r   r#   r$   )r   r%   r   output2r   r   r   test_1dr   s    
 rE   c                  C   s   t jdt jd} d| d d df< t dddddddgdddddddgdddddddgdddddddgdddddddgg}t jt| dd	| d S )
Nr4   r   r   d   r   r(   g      Y@g        r3   )r   zerosfloat64r   r#   r$   r   )testr%   r   r   r   test_wraparound}   s    rL   c                  C   s   t jdt jd} d| d d df< t dddddddgdddddddgdddddddgdddddddgdddddddgg}t| dd}t j|| d| d< d|d< t| d	d}t j|| d S )
NrF   r   rG   r   r      )r   r   r   r   r   )r   rI   rJ   r   r   r#   r$   )rK   r%   r   rD   r   r   r   test_neighbors   s    rO   c                  C   sH  t dddgdddgdddgg} tt jdt jddd| d}t jddddddgddddddgddddddgddddddgddddddggt jd}t j|| t dddgdddgdddgg} tt jdt jddd| d}t jddddddgddddddgddddddgddddddgddddddggt jd}t j|| d S )	Nr   r   r4      r   )r   r   rM   	footprint)r   r   r   r   r   rI   r"   r#   r$   )rS   r   r%   r   r   r   test_footprint   s@    rU   c               
   C   s   dD ]} d|  }t |}tdd t| D }d||< t|d|  d}| d|  d ks`tt j|t 	t 
d	|  d dd
 qd S )N)r   r   r4   rC   c                 s   s   | ]}t d ddV  qdS )r   rH   N)slice).0dimr   r   r   	<genexpr>   s     z test_basic_nd.<locals>.<genexpr>r   )r   r   r   )r   Zconstant)r   rI   tupleranger   sumr   r#   r$   padZones)	dimensionr   Z	hypercubeZ	slice_midZfilledr   r   r   test_basic_nd   s    
 r_   r    c                 C   s   t jddddgddddgddddggdd}t jddddgddddgddddggtd}t|d| d}t j|| t|d| d}t j|| d S )	Nr   r   F)orderr   )r   r   )Z
seed_pointr    )r   r   )r   r   r   r   r#   r6   )r    r   r%   maskr   r   r   test_f_order   s$    





rc   c                  C   s   t jdddddddgdddddddgdddddddgdddddddgdddddddggt jd} t jdddddddgddddd	d	dgddddd	d	dgddddddd
gddddd
d
dggt jd}t| dd} t j| | d S )Nr   r   r   r   r   r   r9   r)   r:   r;   r<   )r   rH   r4   r=   r7   r   r   r   !test_negative_indexing_seed_point   s$    rd   c                  C   s  t dddddg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t jdt jddd| d}t jddddddgddddddgddddddgddddddgddddddggt jd}t j|| t dddddg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
f< t|dd| 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
gt jd}t j|| d S )Nr   r   rP   r   rN   rM   rR   )r4   r,   rG   )r   r   r   r3   rT   )rS   r   r%   r   r   r   r   test_non_adjacent_footprint   sH    re   )numpyr   r   Zskimage.morphologyr   r   epsr   r   r&   r1   r8   r?   r@   rE   rL   rO   rU   r_   markZparametrizerc   rd   re   r   r   r   r   <module>   s&   	!
