
    1-Ph)                     <   d dl Zd dlZd dlmZ d dlmZ d dlmZ ej	        
                    dej        ej        g          d             Zd Zd Zej	        
                    dej        ej        ej        ej        g          d	             Zd
 Zd Zd Zd Zd ZdS )    N)assert_array_equal)_supported_float_type)	chan_vesedtypec                    t          j        d|           }d|ddddf<   t          j        dd|           }t          |dd|	          }t	          |                    t                    t          j        d                     t          |dd| 	          }t	          |                    t                    t          j        d                     d S )
N
   r	   r                      MbP?mutolinit_level_set)npzerosfullr   r   astypefloatones)r   imglsresults       i/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/skimage/segmentation/tests/test_chan_vese.pytest_chan_vese_flat_level_setr   	   s     (85
)
)
)CC!QqSM	4u	-	-	-BssR@@@Fv}}U++RWX->->???ssbSAAAFv}}U++RXh-?-?@@@@@    c                      t          j        d          } d| ddddf<   t          | ddd          }t          |                    t
                    |            d S )	Nr   r   r   r   r   r   z
small diskr   )r   r   r   r   r   r   r   r   s     r   #test_chan_vese_small_disk_level_setr#      s^    
(8

CC!QqSMss\JJJFv}}U++S11111r    c                      t          j        d          } d| ddddf<   t          | dd                              t                    }t          ||            d S )Nr   r   r   r   r   :0yE>)r   r   )r   r   r   r   r   r   r"   s     r   test_chan_vese_simple_shaper&   !   s^    
(8

CC!QqSMss---44U;;Fvs#####r    c                 4   t          j        d|           }d|ddddf<   t          |ddd	          }t          |           |d         j        k    sJ t          fd
|d         D                       sJ t          t          |          d           d S )Nr   r
   r   r   r   r   r%   T)r   r   extended_outputc              3   .   K   | ]}|j         k    V  d S )Nr
   ).0arrfloat_dtypes     r   	<genexpr>z1test_chan_vese_extended_output.<locals>.<genexpr>/   s*      ==CsyK'======r       )r   r   r   r   r   allr   len)r   r   r   r,   s      @r   test_chan_vese_extended_outputr1   (   s    
(85
)
)
)CC!QqSMssdCCCF'..K!9?k))))====6!9========s6{{A&&&&&r    c                  2   t          j        d          } t          j        g dg dg dg dg dg          | ddddf<   |                                 }d|d<   t	          |ddd	d
d                              t                    }t          ||            d S )Nr   )r   r   r   r   r   )r   r   r   r   r   r   r   )   r   g333333?r   d   r	   diskr   r   max_num_iterdtr   )r   r   arraycopyr   r   r   r   refr   r   s      r   test_chan_vese_remove_noiser=   3   s    
(8

CHOOOOOOOOOO	
 C!QqSM ((**CCICBv  fUmm  vs#####r    c                      t          j        d          } t          j        d          }t          j        t                    5  t          | d|           d d d            d S # 1 swxY w Y   d S )N)r	   r	   r   r	   	   r   r   r   r   r   pytestraises
ValueErrorr   r   r   s     r   #test_chan_vese_incorrect_image_typerG   F   s    
(;

C	'		B	z	"	" 2 2##b11112 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2s   A""A&)A&c                  @   t          j        d          } t          j        d          | ddd d f<   |                                 }t          j        d          |d d df<   t	          |ddd	d	d
                              t                    }t          ||            d S )N)   rI   )   rI   r3      rI   r   gffffff?r   r   r5   r6   )r   r   r   r:   r   r   r   r   r;   s      r   test_chan_vese_gap_closingrL   M   s    
(8

C77##C"aaaL
((**CC1IDT&  fUmm  vs#####r    c                  d   t          j        d          } t          j        d          }t          j        t                    5  t          | d|           d d d            n# 1 swxY w Y   t          j        t                    5  t          | dd           d d d            d S # 1 swxY w Y   d S )Nr   r?   r   rA   arB   rF   s     r   "test_chan_vese_incorrect_level_setrO   X   s#   
(8

C	'		B	z	"	" 2 2##b11112 2 2 2 2 2 2 2 2 2 2 2 2 2 2	z	"	" 3 3##c22223 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3s$   A!!A%(A%B%%B),B)c                      t          j        d          } t           j                            dd          }|dk    }t	          | dd|          }t          ||           d S )Nr   r	   r   r   r   )r   r   randomrandr   r   )r   	level_setr<   r   s       r   test_chan_vese_blank_imagerT   a   s[    
(8

C	r2&&I
a-CssIFFFFvs#####r    )numpyr   rC   numpy.testingr   skimage._shared.utilsr   skimage.segmentationr   markparametrizefloat32float64r   r#   r&   uint8float16r1   r=   rG   rL   rO   rT    r    r   <module>r`      s=        , , , , , , 7 7 7 7 7 7 * * * * * * 2:rz":;;A A <;A 2 2 2$ $ $ 28RZRZ"PQQ' ' RQ'$ $ $&2 2 2$ $ $3 3 3$ $ $ $ $r    