
    h"                         S SK rS SKJrJr  S SKJr  S SKJr  S SK	J
r
  S SKJr  S rS rS	 rS
 rS rS rS rS r\R*                  S 5       rS rS rg)    N)convex_hull_imageconvex_hull_object)possible_hull)testing)assert_array_equal)expected_warningsc            	          [         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/[        S9n [         R                  " / SQ/ SQ/ SQ/ SQ/ S	Q/ SQ/[        S9n[        [	        U 5      U5        g )
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   r   r   r   r   r   )	r   r   r   r   r   r   r   r   r   dtype)	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arrayboolr   r   imageexpecteds     c/var/www/fran/franai/venv/lib/python3.13/site-packages/skimage/morphology/tests/test_convex_hull.py
test_basicr   
   sj    HH''''''	
 
E xx''''''	
 
H (/:    c                      [         R                  " S[        S9n [        S/5         [	        [        U 5      U 5        S S S 5        g ! , (       d  f       g = f)N)   r   r   zentirely zero)r   zerosr   r   r   r   r   s    r   test_empty_imager    &   s9    HHV4(E	O,	-,U3U; 
.	-	-s   A
Ac                      / SQ/ SQ4n [         R                  " S[        S9nSX'   UR                  5       n[	        [        U5      U5        g )N)<iW  X  r"   r"   Y  r#   r#   r#   r#   Z  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*   ia  r&   )<      r+         r,   r+   r-         r.   r,   r+   r-   r/         r0   r.   r,   r+   r-   r/   r1         r2   r0   r.   r,   r+   r-   r/   r1   r4   r2   r0   r.   r,   r+   r-   r/   r1   r2   r0   r.   r,   r+   r-   r/   r0   r.   r,   r+   r-   r.   r,   r+   r,   r3   )ip  i  r   T)r   r   r   copyr   r   )nonzerosr   r   s      r   test_qhull_offset_exampler7   ,   sK    =@=EAHD HH\.EEOzz|H(/:r   c                      [         R                  " / SQ/ SQ/ SQ/[        S9n [         R                  " / SQ/ SQ/ SQ/[        S9n[        [	        U 5      U5        g )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   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   s     r   test_pathological_qhull_exampler<      sP    HH	 57LME xx	 57LMH (/:r   c                      [         R                  " / SQ/ SQ/ SQ/[        S9n [         R                  " / SQ/ SQ/ SQ/[        S9n[        U SS9n[	        X!5        g )Nr9   r:   r;   r   )r   r   r   r   r   r   r   F)include_borders)r   r   r   r   r   )r   r   actuals      r   test_pathological_qhull_labelsr@      sT    HH	 57LME
 xx	 57LMH
 ue<Fv(r   c                  8   [         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/[         R                  S9n [         R                  " SS/S	S
/S
S	/SS/SS/S
S	/S	S
/SS/S	S/S
S/SS/S	S/S
S/SS/SS	/SS
/SS/SS/SS//5      n[        U 5      n[	        X!5        g )Nr
   r   r   r   r   r   r               r      )r   r   uint8r   r   )r   r   phs      r   test_possible_hullrI      s    HH''''''	
 hh
E xxFFFFFFFFFFFFFFFFFFF'	
H0 
u	Br$r   c                  2   [         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/	[        S9n [         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/ S	Q/ S
Q/ SQ/ SQ/	[        S9n[        [	        U SS9U5        [         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/	[        S9n[        [	        U SS9U5        [
        R                  " [        5         [	        U SS9  S S S 5        [	        U SS9n[        X15        g ! , (       d  f       N$= f)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   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   )connectivity)	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   rC   rD   )r   r   r   r   r   r   raises
ValueError)r   expected_conn_1expected_conn_2outs       r   test_objectrQ      s    HH'''''''''
	
 E hh'''''''''
	
 O )%a@/Rhh'''''''''
	
 O )%a@/R	
	#5q1 
$ U
3Cs,	 
$	#s   D
Dc                  J   [         R                  " SS[        S9n [        [	        U 5      U 5        [         R                  " SS[        S9n [        [	        U 5      U 5        [         R
                  " [         R                  " S[        S9/ SQ5      n [        [	        U 5      U 5        g )N)rC   rC   F)orderr   )rC   rC   rC   r   )r   rC   r   )r   onesr   r   r   	transposer   s    r   test_non_c_contiguousrW   2  sq    GGF#T2E(/7GGIS5E(/7LL$7CE(/7r   c                  D    SSK Jn   [        R                  " X U 45      nX4$ )NrD   )SAMPLE)measure.tests.test_regionpropsrY   r   stack)r   image3ds     r   
images2d3dr]   >  s     Ahhe,-G>r   c                 `    U u  p[        U5      nSUS'   [        U5      n[        US   U5        g )NT)   r   r   )r   r   )r]   r   r\   chimage	chimage3ds        r   test_consistent_2d_3d_hullsrb   F  s4    NE&GGDM!'*Iy|W-r   c            	      v   [         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/[         R                  S9n [         R                  " X U /5      n[        R
                  " [        5         [        U5      n[        U[         R                  " UR                  [        S95        S S S 5        g ! , (       d  f       g = f)Nr
   )	r   r   r   r   r   r   r   r   r   )	r   r   r   r   r   r   r   r   r   r   )r   r   rG   r[   r   assert_warnsUserWarningr   r   r   shaper   )r   r\   ra   s      r   test_few_pointsrg   N  s    HH''''''	
 hh
E hhe,-G			k	*%g.	9bhhw}}D&IJ 
+	*	*s   (9B**
B8)numpyr   skimage.morphologyr   r   skimage.morphology._convex_hullr   skimage._sharedr   skimage._shared.testingr   skimage._shared._warningsr   r   r    r7   r<   r@   rI   rQ   rW   fixturer]   rb   rg    r   r   <module>rp      sf     D 9 # 6 7;8<F;R	;)&%R6-r	8 	 .Kr   