
    |h\                        d dl Zd dlZd dlmZmZ d dlmZ d dlm	Z	m
Z
 dZd Zd Zej                  j                  dej                   ej"                  ej$                  ej&                  g      d	        Zd
 Zej                  j                  dej"                  ej$                  ej&                  g      d        Zej                  j                  dg d      d        Zy)    N)assert_array_equalassert_allclose)_supported_float_type)find_boundariesmark_boundaries)   r   r   c                      t        j                  dt         j                        } d| ddddf<   t        j                  g dg dg dg d	g d	g d	g dg dg dg dg
      }t	        |       }t        ||       y )
N
   r   dtyper         
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   
r   r   r   r   r   r   r   r   r   r   )npzerosuint8arrayr   r   imagerefresults      i/var/www/html/test/engine/venv/lib/python3.12/site-packages/skimage/segmentation/tests/test_boundaries.pytest_find_boundariesr      sr    HHXRXX.EE!A#qs(O
((**********	
C U#Fvs#    c                      t        j                  dt              } d| ddddf<   t        j                  g dg dg dg d	g d	gt              }t	        |       }t        ||       y )
N)   r    r   Tr   r    )FFFFF)FFTTT)FTTTT)FTTFF)r   r   boolr   r   r   r   s      r   test_find_boundaries_boolr"   #   sd    HHV4(EE!A#qs(O
((/,+--	
 	C U#Fvs#r   r   c                 l   t        j                  d|       }t        j                  dt         j                        }d|ddddf<   t        j                  g dg dg dg d	g d	g d	g dg dg dg dg
      }t	        ||t
        d
      }|j                  t        |       k(  sJ t        j                  |d      }t        ||       t        j                  g dg dg dg dg dg dg dg dg dg dg
      }t	        ||t
        dd
      }t        j                  |d      }t        ||       y )Nr
   r   r   r   r   r   r   r   r   thickcolormodeaxis)
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   )
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   )r   r   r   )r&   outline_colorr'   )
r   r   r   r   r   whiter   r   meanr   )r   r   label_imager   markedr   s         r   test_mark_boundariesr0   5   s   HHXU+E((82884KK!QqS
((**********	
C UKu7KF<<07777WWV"%Fvs#
((**********	
C {%ywF WWV"%Fvs#r   c                  l   t        j                  dt              } t        j                  dt         j                        }d|ddddf<   t        j                  g dg dg dg d	g d	g d	g dg dg dg dg
      }t        | |t        d
      }t        j                  |d      }t        ||       y )Nr
   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   s        r   test_mark_boundaries_boolr2   d   s    HHXT*E((82884KK!QqS
((**********	
C UKu7KFWWV"%Fvs#r   c                 p   t        j                  g dg dg dg dg dgt         j                        }t         j                  j	                  d       t        j
                  t        j                  j                  |j                   d      }|j                  | d      }t        ||t        d	
      }|j                  t        |       k(  sJ t        j
                  t        j                  |d      d      }t        j                  g dg dg dg dg dg dg dg dg dg	      }t        ||d       y )N)r   r   r   r   )r   r   r    r   )r   r   r    r   r   r   r   F)copysubpixelr%   r(   r)   )皙?g)\(?
ףp=
?Gz?g333333?r6   HzG?)g?g(\?r7         ?r:   r:   r8   )gzG?r9   g?r:   g)\(?r:   {Gz?)r8   r:   r:   r:   r8   r:   (\?)gQ?r:   RQ?r:   gHzG?r:   g(\?)r;   r:   r:   r:   r=   r:   g{Gz?)g=
ףp=?(\?g(\?r:   gQ?r:   g
ףp=
?)g?gp=
ף?gq=
ףp?r:   r:   r:   r9   )g{Gz?gffffff?r<   g?r>   gQ?gףp=
?g{Gz?)atol)r   r   r   randomseedroundrandshapeastyper   r,   r   r   r-   r   )r   labelsr   r/   marked_proj
ref_results         r   test_mark_boundaries_subpixelrI   }   s    XX	|\<NhhF IINN1HHRYY^^V\\2A6ELLUL+EUF%jIF<<07777((27763Q7K534232425
	
J K$7r   r'   )r$   innerouterr5   c                     t        j                  dt              }t        ||       }t        j                  |dk(        sJ y)z+A constant-valued image has not boundaries.)   rM   r   )r'   r   N)r   onesintr   all)r'   rN   bs      r   test_boundaries_constant_imagerR      s4     776%D4(A66!q&>>r   )numpyr   pytestnumpy.testingr   r   skimage._shared.utilsr   skimage.segmentationr   r   r,   r   r"   markparametrizer   float16float32float64r0   r2   rI   rR    r   r   <module>r^      s      = 7 A 	$.$$ 288RZZRZZ"PQ+$ R+$\$2 2::rzz2::"FG8 H88 !HI Jr   