
    9iXF                        S SK rS SKrS SKrS SKJrJrJrJ	r	J
r
  S SKJr  S SKJrJr  S SKJr  \R$                  " / SQ/ SQ/ SQ/\5      r\R*                  \R,                  \R.                  \R0                  \R2                  \R4                  \R6                  /rS	 rS
 rS r\R@                  RC                  S\\"\R4                  /5      \R@                  RC                  S\\"\R4                  /5      S 5       5       r#S r$S r%S r&S r'S r(\R$                  " / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/\5      r)S r*S r+S r,S r-S r.S r/S  r0S! r1S" r2 " S# S$5      r3g)%    N)remove_small_objectsremove_small_holesremove_objects_by_distancelocal_maximalabel)testing)assert_array_equalassert_equal)expected_warningsr   r   r      r   r   r   r   r   r   )r   r   r   r   r   c                  ~    [         R                  " / SQ/ SQ/ SQ/[        5      n [        [        SS9n[        X5        g )N)r   r   r   r   r   r      min_sizenparrayboolr   
test_imager	   expectedobserveds     b/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/skimage/morphology/tests/test_misc.pytest_one_connectivityr       s-    xx/?KTRH#J;Hx*    c                      [         R                  " / SQ/ SQ/ SQ/[        5      n [        [        SSS9n[        X5        g )Nr   r         )r   connectivityr   r   s     r   test_two_connectivityr"   &   s/    xx/?KTRH#JKHx*r   c                  ^    [         R                  5       n [        U SU S9n[        XL SS5        g )Nr   r   outTz.remove_small_objects in_place argument failed.)r   copyr   r
   imager   s     r   test_in_placer)   ,   s/    OOE#EA5AH4!Qr   in_dtype	out_dtypec                     [         R                  U SS9n[        R                  " [         US9nU[        :w  a  S/nO/ n[        U5         [        USUS9nS S S 5        WUL d   eg ! , (       d  f       N= f)NT)r&   dtypezOnly one label was providedr   r$   )r   astyper   
empty_liker   r   r   )r*   r+   r(   expected_outexp_warnr%   s         r   test_outr3   4   sr     hT2E==9=LD12	8	$"51,G 
% , 
%	$s   	A%%
A3c                      [         R                  " / SQ/ SQ/ SQ/ SQ/[        S9n [         R                  " / SQ/ SQ/ SQ/ SQ/[        S9n[        U SS9n[	        X!5        g N)r    r    r    r   r   )r    r   r   r   r   )r   r      r6   r6   r-   )r    r    r    r   r   r6   r   )r   r   intr   r	   labeled_imager   r   s      r   test_labeled_imager:   F   sT    HH	/?OLTWM xx	/?OLTWH $MA>Hx*r   c                      [         R                  " / SQ/ SQ/ SQ/ SQ/[         R                  S9n [         R                  " / SQ/ SQ/ SQ/ SQ/[         R                  S9n[        U SS9n[	        X!5        g r5   )r   r   uint8r   r	   r8   s      r   test_uint_imager=   Q   s\    HH	/?OLhhM xx	/?OLhhH $MA>Hx*r   c                      [         R                  " / SQ/ SQ/ SQ/[        5      n [        S/5         [	        U SS9  S S S 5        g ! , (       d  f       g = f)Nr   r   use a boolean array?r   r   )r   r   r7   r   r   )r(   s    r   test_single_label_warningr@   ^   s;    HHoH#NE	23	4UQ/ 
5	4	4s   A
Ac                      [         R                  R                  SS5      n [        R                  " [
        5         [        U 5        S S S 5        g ! , (       d  f       g = fN   )r   randomrandr   raises	TypeErrorr   
float_tests    r   test_float_inputrJ   d   s6    1%J			"Z( 
#	"	"   A
Ac                      [         R                  R                  SSSS9n [        R                  " [
        5         [        U 5        S S S 5        g ! , (       d  f       g = f)N)rC   rC   size)r   rD   randintr   rF   
ValueErrorr   )negative_ints    r   test_negative_inputrT   j   s=    99$$R&$9L	
	#\* 
$	#	#s   A
A
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   c                      [         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/[        5      n [        [        SS9n[        X5        g )NrU   rV   rY   r6   area_thresholdr   r   r   r   test_holes_imager	   r   s     r   test_one_connectivity_holesr_      sI    xx********		
 	H ""21EHx*r   c                      [         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/[        5      n [        [        SSS9n[        X5        g )	NrU   rV   rW   rX   rY   r6   r    )r\   r!   r]   r   s     r   test_two_connectivity_holesra      sL    xx********		
 	H ""21STUHx*r   c                  ^    [         R                  5       n [        U SU S9n[        XL SS5        g )Nr6   r\   r%   Tz,remove_small_holes in_place argument failed.)r^   r&   r   r
   r'   s     r   test_in_place_holesrd      s1    !!#E!%uEH4!Or   c                  z    [         R                  5       n [        R                  " U 5      n[	        U SUS9nX!L d   eg )Nr6   rc   )r^   r&   r   r0   r   )r(   r1   r%   s      r   test_out_remove_small_holesrf      s8    !!#E=='L
U1,
GCr   c                      [         R                  5       n [        R                  " U [        S9n[
        R                  " [        5         [        U SUS9  S S S 5        g ! , (       d  f       g = f)Nr-   r6   rc   )	r^   r&   r   r0   r7   r   rF   rG   r   )r(   r1   s     r   test_non_bool_outrh      sD    !!#E==c2L			"5E 
#	"	"s   A
A+c                  @   [         R                  " / 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9n[	        S	/5         [        U S
S9nS S S 5        [        WU5        g ! , (       d  f       N= fNrU   rV   rW   rX   
r   r   r   r   r   r   r   r    r    r    
r   r   r   r   r   r   r   r    r   r    r-   rY   zreturned as a boolean arrayr6   r[   )r   r   r7   r   r   r   r	   labeled_holes_imager   r   s      r   test_labeled_image_holesro      s    ((********		
  xx********		
 H 
9:	;%&9!L 
<x* 
<	;s   /B
Bc                  T   [         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/[         R                  S9n [         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/[        S9n[	        S	/5         [        U S
S9nS S S 5        [        WU5        g ! , (       d  f       N= frj   )r   r   r<   r   r   r   r	   rm   s      r   test_uint_image_holesrq      s    ((********		
 hh xx********		
 H 
9:	;%&9!L 
<x* 
<	;s   9B
B'c                      [         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/[        S9n [        S/5         [	        U S	S
9  S S S 5        [	        U R                  [        5      S	S
9  g ! , (       d  f       N,= f)NrU   rV   rW   rX   rk   rl   r-   r?   r6   r[   )r   r   r7   r   r   r/   r   )rn   s    r   test_label_warning_holesrs      sp    ((********		
  
23	4.qA 
5*11$7J 
5	4s   A//
A=c                      [         R                  R                  SS5      n [        R                  " [
        5         [        U 5        S S S 5        g ! , (       d  f       g = frB   )r   rD   rE   r   rF   rG   r   rH   s    r   test_float_input_holesru     s6    1%J			":& 
#	"	"rK   c                      \ rS rSr\R
                  R                  S/ SQ5      \R
                  R                  S\5      S 5       5       r\R
                  R                  S\5      \R
                  R                  SSS/5      S	 5       5       r	\R
                  R                  S
/ SQ5      S 5       r
\R
                  R                  S/ SQ5      \R
                  R                  SSS\R                  /5      S 5       5       r\R
                  R                  SSS/5      \R
                  R                  S\5      S 5       5       rS rS r\R
                  R                  SSS/5      S 5       r\R
                  R                  SSS/5      S 5       rS r\R
                  R                  SS/5      S 5       rS  rS! rS" r\R
                  R                  S#S$S%S&SS//S/5      S' 5       rS(rg))*Test_remove_near_objectsi  min_distance)g @rC   g=
ףp>@1   r.   c                 f   [        [        R                  " U5      5      n[        R                  " US-  S-   US9nSUSUSU-  SU-  S-   /'   [        R
                  R                  XBS9u  pEUR                  5       nSXc'   [        XA5      nUR                  UR                  :X  d   e[        Xv5        g )Nr6   r    r-   r   r   )output)r7   r   floorzerosspndimager   r&   r   r.   r	   )selfrx   r.   dlabels_desiredresults           r   test_min_distance_1d-Test_remove_near_objects.test_min_distance_1d  s     &'!a%!)51+,1a!eQUQY'(JJ$$V$:	++-
+FA||w}},,,6+r   orderCFc                 >   [         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/UUS	9n[         R                  " S
5      n[         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/US9n[        USUS9nUR                  S   (       d   e[        Xe5        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   r6   r   r   r   rC   r   r   r   r   )r    r   r   r   r   rC   r   r   r   r   r   )r   r   r   r   r   rC   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-   r6   priorityC_CONTIGUOUS)r   r   aranger   flagsr	   )r   r.   r   r   r   r   r   s          r   test_handcrafted_2d,Test_remove_near_objects.test_handcrafted_2d#  s     11111111	 
 99R=((11111111	 
 ,E1xH||N+++6+r   ndim)r   r    r6      rC   c                     SU-  n[         R                  " U[         R                  S9nSUS'   [        R                  R                  U5      u  pEUR                  5       nSUSS 2S4'   [        US5      n[        Xv5        g )N)rC   r-   r   ).r   .r    )	r   onesr<   r~   r   r   r&   r   r	   )r   r   shapear   r   r   r   s           r   test_large_objects_nd.Test_remove_near_objects.test_large_objects_ndF  sm    tGGE*'
JJ$$Q'	++-S+FA66+r   distance)rC   2   d   p_normr   r    c                    [         R                  R                  S5      nUR                  SS9n[        U5      n[	        U5      n[        XaUS9n[        R                  R                  [         R                  " [         R                  " U5      [         R                  S9R                  5       5      nUR                  XUS9n	U	R                  5       S:X  d   eUR                  XS-   US9n	U	R                  5       S:  d   eg )	Ni3$f)  r   rO   r   r-   )max_distancepr   r   )r   rD   default_rngr   r   r   r~   spatialcKDTreer   nonzerofloat64	transposesparse_distance_matrixcount_nonzero)
r   r   r   rngr(   maximaobjectsspaced_objectskdtree	distancess
             r   test_random$Test_remove_near_objects.test_randomR  s     ii##J/



+e$-3GfU##HHRZZ/rzzBLLN

 11V 2 
	 &&(A--- 11A 2 
	 &&(1,,,r   valuer   c                 ~    [         R                  " SUS9nUR                  U5        [        US5      n[	        X45        g )N)r   r   r-   r6   )r   emptyfillr   r	   )r   r   r.   r   r   s        r   test_constant&Test_remove_near_objects.test_constantl  s4     (%0E+FA66*r   c                 d    [         R                  " S[        S9n[        US5      n[	        X5        g )N)r6   r6   r   r-   r6   )r   r   r7   r   r
   )r   r   r   s      r   
test_empty#Test_remove_near_objects.test_emptyu  s&    )3/+FA6V$r   c                    [         R                  " / SQ5      n[        US5      n[         R                  " / SQ5      n[        X#5        [         R                  " / SQ5      n[        USUS9n[         R                  " / SQ5      n[        X#5        [         R                  " / SQ5      n[        USUS9n[         R                  " / SQ5      n[        X#5        g )N)r   r   r   r   r6   )r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   )r   r   r   r   rN   )r   r   r   r	   )r   r   r   r   r   s        r   test_priority&Test_remove_near_objects.test_priorityz  s    ,' ,FA6((<(6+ 88O,+FAI((<(6+ 88,-+FAI((<(6+r   c                    [         R                  " / SQ/ SQ/US9n[         R                  " / SQ/ SQ/US9nUR                  US9n[        US5        [	        XB5        [        USUS9  UR
                  U S3   (       d   e[	        XC5        g )Nr   r   r    )r   )r   r   r    r    )r%   _CONTIGUOUS)r   r   r&   r   r	   r   )r   r   labels_originalr   r   s        r   r3   !Test_remove_near_objects.test_out  s    ((Iy#9G((Iy1? !%%E%2"61-63 	#61&9||ug[12226+r   igc                     [         R                  " / SQ5      n[        R                  " [        SS9   [        X!5        S S S 5        g ! , (       d  f       g = f)Nr   zmust be >= 0match)r   r   pytestrF   rR   r   )r   rx   r   s      r   test_negative_min_distance3Test_remove_near_objects.test_negative_min_distance  s2    )$]]:^<&v< =<<s   A
Ac                    [         R                  " SS/SS//5      n[         R                  " SS/SS//5      n[        US5      n[        X15        [        U[         R                  " S5      5      n[        X25        [        USSS9n[        X15        [        USSS9n[        X25        [        US[         R
                  S9n[        X15        [        US[         R
                  S9n[        X25        g )	Nr    r   r   gffffff?gffffff?)rx   r   r   g?)r   r   r   r	   sqrtinf)r   r   removedr   s       r   test_p_norm$Test_remove_near_objects.test_p_norm  s    Aq6Aq6*+((QFQF+, ,FC86*+FBGGAJ?6+ ,

 	6*+FAa@6+ ,FCG6*+FAbffE6+r   r   r   c                 L   [        [        R                  " / SQ5      S[        R                  " S5      S9  [        [        R                  " / SQ5      S[        R                  " S5      S9  Sn[        R
                  " [        US9   [        [        R                  " / SQ5      S[        R                  " S5      S9  S S S 5        [        R
                  " [        US9   [        [        R                  " / SQ5      S[        R                  " S5      S9  S S S 5        [        R
                  " [        US9   [        [        R                  " / SQ5      S[        R                  " S5      S9  S S S 5        g ! , (       d  f       N= f! , (       d  f       Nw= f! , (       d  f       g = f)	N)r   r   r   r6   r   r   r   z=shape of `priority` must be \(np\.amax\(label_image\) \+ 1,\)r   )r   r   r   )r   r   r   r   r   rF   rR   )r   r   	error_msgs      r   test_priority_shape,Test_remove_near_objects.test_priority_shape  s     	#288I#6BGGDMR"288I#6BGGDMRT	]]:Y7&rxx	':APTV 8]]:Y7&rxx	':APTV 8]]:Y7&rxx	':APTV 87	 877777s$   6E36F46F3
F
F
F#c                     [         R                  " / SQ/ SQ/ SQ/ SQ/5      n[        R                  " [        SS9   [        US[         R                  " S5      S	9  S S S 5        g ! , (       d  f       g = f)
N)r   r   rN   r    r    r    )r   r   r6   r    r    r    r   r   r   r    r    r    r6   r6   r6   r6   r6   r6   z.*object with negative IDr   r   r   r   )r   r   r   rF   rR   r   r   )r   r   s     r   test_negative_label_ids0Test_remove_near_objects.test_negative_label_ids  sS    #"""	
 ]]:-HI&vq2771:F JIIs    A%%
A3c                     [         R                  " / SQ/ SQ/ SQ/ SQ/5      n[         R                  " / SQ/ SQ/ SQ/ SQ/5      n[        US[         R                  " S5      S9n[	        X25        g )Nr   r   )r   r   r   r   r   r   r   r   r   )r   r   r   r   r	   )r   r   r   r   s       r   test_objects_with_inside1Test_remove_near_objects.test_objects_with_inside  sb    """"	
 ((""""	
 ,FA		!M6+r   c                    [         R                  " / SQ/ SQ/ SQ/ SQ/[        S9n[        USSS9n[         R                  " / SQ/ SQ/ SQ/ SQ/[        S9n[         R                  R                  X#5        [        USS	S9n[         R                  " / S
Q/ SQ/ SQ/ SQ/[        S9n[         R                  R                  X#5        g )Nr   r   r   r    r   r   r   r   r6   r   r   r   r-   r6   )r   r6   spacingr   )r   gUUUUUU?)r   r   r   r    )r   r   r   r   )r   r   r7   r   r   r	   )r   r   r   r   s       r   test_spacing%Test_remove_near_objects.test_spacing  s    <|DC

 ,FAvF88<|DC
 	

%%f7 ,FAzJ88<|DC
 	

%%f7r   r   )rN   rN   r   )r   r   r   c                     [         R                  " / SQ/ SQ/ SQ/ SQ/[        S9nSn[        R                  " [
        US9   [        USUS9  S S S 5        g ! , (       d  f       g = f)	Nr   r   r   r-   z=.*must contain exactly one positive factor for each dimensionr   r6   r   )r   r   r7   r   rF   rR   r   )r   r   r   regexs       r   test_spacing_raises,Test_remove_near_objects.test_spacing_raises  sL    <|DC
 P]]:U3&vq'B 433s   A
A$ N)__name__
__module____qualname____firstlineno__r   markparametrizesupported_dtypesr   r   r   r   r   r   r   r   r   r3   r   r   r   r   r   r   r   __static_attributes__r   r   r   rw   rw     s   [[^-@A[[W&67, 8 B, [[W&67[[WsCj1, 2 8,B [[V_5	, 6	, [[Z6[[X1bff~6- 7 7-0 [[Wq!f-[[W&67+ 8 .+%
,( [[WsCj1, 2, [[^c4[9= :=
,4 [[	

W
W
G,(8& [[Y4aVHa(PQC RCr   rw   )4numpyr   r   scipyr~   skimage.morphologyr   r   r   r   r   skimage._sharedr   skimage._shared.testingr	   r
   skimage._shared._warningsr   r   r   r   r<   uint16uint32int8int16int32int64r   r   r"   r)   r   r   r7   r3   r:   r=   r@   rJ   rT   r^   r_   ra   rd   rf   rh   ro   rq   rs   ru   rw   r   r   r   <module>r     se       $ D 7 XXI4P
 HHIIIIGGHHHHHH ++ dC%:;tS"((&;< = < +
+0)+ 88&&&&&&&&	 	 +$+$F+@+@K&'vC vCr   