a
    =b                      @   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sTJ d S )Nr       )   r      )r   npemptysizer   dtypeboolshapeoutputr   r   Glib/python3.9/site-packages/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 s60    Y  | jdksNJ d S )Nz%`selem` is a deprecated argument namer   r   r   )Zselem)r   r   r	   r
   r   r   r   r   r   test_selem_kwarg_deprecation   s    4r   c                  C   sR   t jg dt jd} tjtdd t| dd W d    n1 sD0    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   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   ZlowZhigh)r   r   
   r!   )r	   Zfinfofloat32maxZrandomZuniformZastypeZ	ones_liker   r%   r&   )Z	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Zin_place)r5   r5   r5   r5   r5   r5   r5   )r5   r   r   r5   r   r   r5   )r   r5   r5   r5   r5   r5   r    r5   r   r   r   r    r    r   )r	   r   r   r%   assert_array_equalr   r'   r   r   r   test_inplace_int8   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 )Nr0   r1   r2   r3   r   r4   r5   Tr6         @r<   r<   r<   r<   r<   r<   r<   r+   r+   r<          @r>   r<   r+   r<   r<   r<   r<   r<         @r<   r+   r+   r+   r@   r@   g      @r	   r   r-   r   r%   assert_allcloser9   r   r   r   test_inplace_floatJ   s$    

rD   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 )Nr0   r1   r2   r3   r   r4   r5   Tr6   )r5   r5   r5   r5   )r5   r   r   r5   )r5   r   r    r   )r5   r   r5   r   r5   r   r5   )r5   r   r   r   r   r   r5   r7   )r	   r   r   r%   rC   )r   Zimage2Z	expected2r'   r   r   r   test_inplace_noncontiguous\   s(    


rE   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   rG   rG   rG   rG   rG   rG   	   r,   r5   rG   r    r!   r5   )r	   r#   r   r   r%   r&   )r   r'   r   output2r   r   r   test_1dy   s    
rK   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r5   r   r   d   r    )r*   r*   r*   g      Y@        rN   rN   r4   )r	   zerosfloat64r   r%   r&   r   )testr'   r   r   r   test_wraparound   s    
rS   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 )
NrL   r   rM   r    )r   r   r      r   r   r   )r   r    rT   r   )r   r    )r	   rP   rQ   r   r   r%   r&   )rR   r'   r   rJ   r   r   r   test_neighbors   s    
rU   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   )r5      r   )r    r   rT   )	footprint)r   rT   rT   rT   rT   rT   )r   r   r   r   r   r   )r   r   r   )r   r   )rT   rT   rT   rT   rT   r   )r	   r   r   rP   r$   r%   r&   )rW   r   r'   r   r   r   test_footprint   s@    



rX   c               
   C   s   dD ]} d|  }t |}tdd t| D }d||< t|d|  d}| d|  d ks`J t j|t t 	d	|  d dd
 qd S )N)r    r   r5   rI   c                 s   s   | ]}t d ddV  qdS )r   rO   N)slice).0Zdimr   r   r   	<genexpr>       z test_basic_nd.<locals>.<genexpr>r   )r   r   r    )r    Zconstant)
r	   rP   tupleranger   sumr%   r&   ZpadZones)Z	dimensionr   Z	hypercubeZ	slice_midZfilledr   r   r   test_basic_nd   s    
r`   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   )Z
seed_pointr"   )r   r   )r	   r   r   r   r%   r8   )r"   r   r'   maskr   r   r   test_f_order   s$    rd   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 )Nr0   r1   r2   r3   r   r;   r=   r?   rA   )r   rO   r5   rB   r9   r   r   r   !test_negative_indexing_seed_point   s$    

re   )Znumpyr	   r   Zskimage._shared.testingr   Zskimage.morphologyr   r   Zepsr   r   r   r(   r/   r:   rD   rE   rK   rS   rU   rX   r`   ZmarkZparametrizerd   re   r   r   r   r   <module>   s(   	!
