
    9i)                     n   S SK rS SKrS SKJr  S SKJr  S SKJr  \R                  R                  S\R                  \R                  /5      S 5       rS rS r\R                  R                  S\R                   \R"                  \R                  \R                  /5      S	 5       rS
 rS rS rS rS rg)    N)assert_array_equal)_supported_float_type)	chan_vesedtypec                 n   [         R                  " SU S9nSUSS2SS24'   [         R                  " SSU S9n[        USSUS	9n[	        UR                  [        5      [         R                  " S5      5        [        USSU* S	9n[	        UR                  [        5      [         R                  " S5      5        g )
N
   r	   r                      MbP?mutolinit_level_set)npzerosfullr   r   astypefloatones)r   imglsresults       i/var/www/html/land-doc-ocr/venv/lib/python3.13/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+RWWX->?ssbSAFv}}U+RXXh-?@    c                      [         R                  " S5      n SU SS2SS24'   [        U SSSS9n[        UR	                  [
        5      U 5        g )	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#      sH    
((8
CC!QqSMss\JFv}}U+S1r    c                      [         R                  " S5      n SU SS2SS24'   [        U SSS9R                  [        5      n[        X5        g )Nr   r   r   r   r   :0yE>)r   r   )r   r   r   r   r   r   r"   s     r   test_chan_vese_simple_shaper&   !   sF    
((8
CC!QqSMss-44U;Fv#r    c                   ^ [         R                  " SU S9nSUSS2SS24'   [        USSSS	9n[        U 5      mUS   R                  T:X  d   e[        U4S
 jUS    5       5      (       d   e[        [        U5      S5        g )Nr   r
   r   r   r   r   r%   T)r   r   extended_outputc              3   @   >#    U  H  oR                   T:H  v   M     g 7f)Nr
   ).0arrfloat_dtypes     r   	<genexpr>1test_chan_vese_extended_output.<locals>.<genexpr>/   s     =9CyyK'9s      )r   r   r   r   r   allr   len)r   r   r   r,   s      @r   test_chan_vese_extended_outputr2   (   s    
((85
)CC!QqSMssdCF'.K!9??k)))=6!9=====s6{A&r    c            	         [         R                  " S5      n [         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/5      U SS2SS24'   U R                  5       nSUS'   [	        USSS	S
SS9R                  [        5      n[        X 5        g )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HH	
C!QqSM ((*CCICBvfUm  v#r    c                      [         R                  " S5      n [         R                  " S5      n[        R                  " [        5         [        U SUS9  S S S 5        g ! , (       d  f       g = f)N)r	   r	   r   r	   	   r   r   r   r   r   pytestraises
ValueErrorr   r   r   s     r   #test_chan_vese_incorrect_image_typerH   F   sB    
((;
C	'	B	z	"##b1 
#	"	"s   A
A*c            	          [         R                  " S5      n [         R                  " S5      U SS2S S 24'   U R                  5       n[         R                  " S5      US S 2S4'   [	        USSS	S	S
S9R                  [        5      n[        X 5        g )N)   rJ   )   rJ   r4      rJ   r   gffffff?r   r   r6   r7   )r   r   r   r;   r   r   r   r   r<   s      r   test_chan_vese_gap_closingrM   M   sw    
((8
C777#C"aL
((*CC1IDT&fUm  v#r    c                  X   [         R                  " S5      n [         R                  " S5      n[        R                  " [        5         [        U SUS9  S S S 5        [        R                  " [        5         [        U SSS9  S S S 5        g ! , (       d  f       N== f! , (       d  f       g = f)Nr   r@   r   rB   arC   rG   s     r   "test_chan_vese_incorrect_level_setrP   X   sk    
((8
C	'	B	z	"##b1 
#	z	"##c2 
#	" 
#	"	"	"s   B
5B

B
B)c                      [         R                  " S5      n [         R                  R                  SS5      nUS:  n[	        U SSUS9n[        X25        g )Nr   r	   r   r   r   )r   r   randomrandr   r   )r   	level_setr=   r   s       r   test_chan_vese_blank_imagerU   a   sE    
((8
C		r2&I
a-CssIFFv#r    )numpyr   rD   numpy.testingr   skimage._shared.utilsr   skimage.segmentationr   markparametrizefloat32float64r   r#   r&   uint8float16r2   r>   rH   rM   rP   rU    r    r   <module>ra      s      , 7 * 2::rzz":;A <A 2$ 288RZZRZZ"PQ' R'$&2$3$r    