o
    :ήc                      @   s   d dl Zd dlZd dlm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dd Zejddd gd d! Zd"d# ZdS )$    N)expected_warnings)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   O/tmp/pip-target-vg8gfxp4/lib/python/skimage/morphology/tests/test_flood_fill.pytest_empty_input
   s   r   c                  C   sR   t dg ttdddd d} W d    n1 sw   Y  | jdks'J d S )Nz%`selem` is a deprecated argument namer   r   r   )selem)r   r   r	   r
   r   r   r   r   r   test_selem_kwarg_deprecation   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	   arrayfloat16pytest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uint8reshape
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	   finfofloat32maxrandomuniformastype	ones_liker   r*   r+   )	max_valuer   r,   r   r   r   r   test_overrange_tolerance_float+   s   
r<   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in_place)rB   rB   rB   rB   rB   rB   rB   )rB   r   r   rB   r   r   rB   )r   rB   rB   rB   rB   rB   r#   rB   r   r   r   r#   r#   r   )r	   r   r   r*   assert_array_equalr   r,   r   r   r   test_inplace_int8   s   

rH   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 )Nr=   r>   r?   r@   r   rA   rB   TrC         @rJ   rJ   rJ   rJ   rJ   rJ   rJ   r0   r0   rJ          @rL   rJ   r0   rJ   rJ   rJ   rJ   rJ         @rJ   r0   r0   r0   rN   rN   g      @r	   r   r5   r   r*   assert_allcloserG   r   r   r   test_inplace_floatJ   s$   

rR   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 )Nr=   r>   r?   r@   r   rA   rB   TrC   )rB   rB   rB   rB   )rB   r   r   rB   )rB   r   r#   r   )rB   r   rB   r   rB   r   rB   )rB   r   r   r   r   r   rB   rE   )r	   r   r   r*   rQ   )r   image2	expected2r,   r   r   r   test_inplace_noncontiguous\   s(   


rU   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   rW   rW   rW   rW   rW   rW   	   r3   rB   rW   r#   r$   rB   )r	   r&   r   r   r*   r+   )r   r,   r   output2r   r   r   test_1dy   s   
r[   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rB   r"   r   d   r#   )r/   r/   r/   g      Y@        r^   r^   rA   )r	   zerosfloat64r   r*   r+   r   )testr,   r   r   r   test_wraparound   s   
rc   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 )
Nr\   r   r]   r#   )r   r   r      r   r   r   )r   r#   rd   r   )r   r#   )r	   r`   ra   r   r   r*   r+   )rb   r,   r   rZ   r   r   r   test_neighbors   s   
re   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   )rB      r   )r#   r   rd   )	footprint)r   rd   rd   rd   rd   rd   )r   r   r   r   r   r   )r   r   r   )r   r   )rd   rd   rd   rd   rd   r   )r	   r   r   r`   r'   r*   r+   )rg   r   r,   r   r   r   test_footprint   s@   



rh   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   rB   rY   c                 s   s    | ]	}t d ddV  qdS )r   r_   N)slice).0dimr   r   r   	<genexpr>   s    z test_basic_nd.<locals>.<genexpr>r   )r   r   r#   )r#   constant)
r	   r`   tupleranger   sumr*   r+   padones)	dimensionr   	hypercube	slice_midfilledr   r   r   test_basic_nd   s   
rw   r%   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   )
seed_pointr%   )r   r   )r	   r   r   r   r*   rF   )r%   r   r,   maskr   r   r   test_f_order   s$   r|   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 )Nr=   r>   r?   r@   r   rI   rK   rM   rO   )r   r_   rB   rP   rG   r   r   r   !test_negative_indexing_seed_point   s$   

r}   )numpyr	   r   skimage._shared.testingr   skimage.morphologyr   r   epsr   r   r   r-   r<   rH   rR   rU   r[   rc   re   rh   rw   markparametrizer|   r}   r   r   r   r   <module>   s*    	!
