
    a6d|$                        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 dlmZ  ej        g dg dg dge          Zd	 Zd
 Zd Zej                            deeej        g          ej                            deeej        g          d                         Zd Zd Zd Zd Zd Z ej        g dg dg dg dg dg dg dg dge          Zd Zd Zd Z d Z!d Z"d Z#d  Z$d! Z%d" Z&dS )#    N)remove_small_objectsremove_small_holes)testing)assert_array_equalassert_equal)expected_warningsr   r   r      r   r
   r
   r
   r   r   )r
   r
   r
   r   r
   c                      t          j        g dg dg dgt                    } t          t          d          }t          ||            d S )N)r   r   r   r   r   r      min_sizenparrayboolr   
test_imager   expectedobserveds     Blib/python3.11/site-packages/skimage/morphology/tests/test_misc.pytest_one_connectivityr      sY    x((*+/1 1H $J;;;Hx*****    c                      t          j        g dg dg dgt                    } t          t          dd          }t          ||            d S )Nr	   r         )r   connectivityr   r   s     r   test_two_connectivityr      s[    x((*+/1 1H $JKKKHx*****r   c                      t                                           } t          | d|           }t          || u dd           d S )Nr   r   outTz.remove_small_objects in_place argument failed.)r   copyr   r   imager   s     r   test_in_placer&      sR    OOE#EA5AAAHU"DAC C C C Cr   in_dtype	out_dtypec                    t                               | d          }t          j        t           |          }|t          k    rdg}ng }t          |          5  t          |d|          }d d d            n# 1 swxY w Y   ||u sJ d S )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_outr0   &   s     hT22E=9===LD12	8	$	$ H H"51,GGGH H H H H H H H H H H H H H H ,s   A77A;>A;c                      t          j        g dg dg dg dgt                    } t          j        g dg dg dg dgt                    }t          | d          }t	          ||           d S N)r   r   r   r   r
   )r   r   r   r   r   )r   r      r3   r3   r*   )r   r   r   r   r   r3   r   )r   r   intr   r   labeled_imager   r   s      r   test_labeled_imager7   8   s    Hooo-oo-oo-oo/ 7:; ; ;M x(((* 256 6 6H $MA>>>Hx*****r   c                      t          j        g dg dg dg dgt           j                  } t          j        g dg dg dg dgt           j                  }t          | d          }t	          ||           d S r2   )r   r   uint8r   r   r5   s      r   test_uint_imager:   E   s    Hooo-oo-oo-oo/ 79h@ @ @M x(((* 24; ; ;H $MA>>>Hx*****r   c                      t          j        g dg dg dgt                    } t          dg          5  t	          | d           d d d            d S # 1 swxY w Y   d S )Nr	   r   use a boolean array?r   r   )r   r   r4   r   r   )r%   s    r   test_single_label_warningr=   R   s    Hooo%oo%oo'(+- -E 
23	4	4 0 0UQ////0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s   AAAc                      t           j                            dd          } t          j        t
                    5  t          |            d d d            d S # 1 swxY w Y   d S N   )r   randomrandr   raises	TypeErrorr   
float_tests    r   test_float_inputrG   Z   s    1%%J			"	" ) )Z((() ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )   AAAc                      t           j                            ddd          } t          j        t
                    5  t          |            d d d            d S # 1 swxY w Y   d S )N)r@   r@   )size)r   rA   randintr   rC   
ValueErrorr   )negative_ints    r   test_negative_inputrP   `   s    9$$R&$99L	
	#	# + +\***+ + + + + + + + + + + + + + + + + +s   A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                      t          j        g dg dg dg dg dg dg dg dgt                    } t          t          d          }t          ||            d S )NrQ   rR   rU   r3   area_thresholdr   r   r   r   test_holes_imager   r   s     r   test_one_connectivity_holesr[   p   s    x7777777777777777777777779 ;?@ @H ""21EEEHx*****r   c                      t          j        g dg dg dg dg dg dg dg dgt                    } t          t          dd          }t          ||            d S )	NrQ   rR   rS   rT   rU   r3   r   )rX   r   rY   r   s     r   test_two_connectivity_holesr]   }   s    x7777777777777777777777779 ;?@ @H ""21/02 2 2Hx*****r   c                      t                                           } t          | d|           }t          || u dd           d S )Nr3   rX   r"   Tz,remove_small_holes in_place argument failed.)rZ   r#   r   r   r$   s     r   test_in_place_holesr`      sT    !!##E!%uEEEHU"D?A A A A Ar   c                      t                                           } t          j        |           }t	          | d|          }||u sJ d S )Nr3   r_   )rZ   r#   r   r-   r   )r%   r.   r"   s      r   test_out_remove_small_holesrb      sM    !!##E=''L
U1,
G
G
GC,r   c                      t                                           } t          j        | t                    }t          j        t                    5  t          | d|           d d d            d S # 1 swxY w Y   d S )Nr*   r3   r_   )	rZ   r#   r   r-   r4   r   rC   rD   r   )r%   r.   s     r   test_non_bool_outrd      s    !!##E=c222L			"	" F F5EEEEF F F F F F F F F F F F F F F F F Fs   A..A25A2c                  d   t          j        g dg dg dg dg dg dg dg dgt                    } t          j        g dg dg dg dg dg dg dg dgt                    }t	          d	g          5  t          | d
          }d d d            n# 1 swxY w Y   t          ||           d S NrQ   rR   rS   rT   
r   r   r   r   r   r   r   r   r   r   
r   r   r   r   r   r   r   r   r   r   r*   rU   zreturned as a boolean arrayr3   rW   )r   r   r4   r   r   r   r   labeled_holes_imager   r   s      r   test_labeled_image_holesrk      s~   ($B$B$B$B$B$B$B$B$B$B$B$B$B$B$B$B$B$B$B$B$B$B$B$B$D *-. . . x7777777777777777777777779 AEF F FH 
9:	;	; M M%&9!LLLM M M M M M M M M M M M M M Mx*****s   7BBBc                  n   t          j        g dg dg dg dg dg dg dg dgt           j                  } t          j        g dg dg dg dg dg dg dg dgt                    }t	          d	g          5  t          | d
          }d d d            n# 1 swxY w Y   t          ||           d S rf   )r   r   r9   r   r   r   r   ri   s      r   test_uint_image_holesrm      s   ($B$B$B$B$B$B$B$B$B$B$B$B$B$B$B$B$B$B$B$B$B$B$B$B$D *,3 3 3 x7777777777777777777777779 AEF F FH 
9:	;	; M M%&9!LLLM M M M M M M M M M M M M M Mx*****s   <BB!Bc                  0   t          j        g dg dg dg dg dg dg dg dgt                    } t          dg          5  t	          | d	
           d d d            n# 1 swxY w Y   t	          |                     t                    d	
           d S )NrQ   rR   rS   rT   rg   rh   r*   r<   r3   rW   )r   r   r4   r   r   r,   r   )rj   s    r   test_label_warning_holesro      s"   ($B$B$B$B$B$B$B$B$B$B$B$B$B$B$B$B$B$B$B$B$B$B$B$B$D *-. . . 
23	4	4 B B.qAAAAB B B B B B B B B B B B B B B*11$77JJJJJJs   A""A&)A&c                      t           j                            dd          } t          j        t
                    5  t          |            d d d            d S # 1 swxY w Y   d S r?   )r   rA   rB   r   rC   rD   r   rE   s    r   test_float_input_holesrq      s    1%%J			"	" ' ':&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 'rH   )'numpyr   pytestskimage.morphologyr   r   skimage._sharedr   skimage._shared.testingr   r   skimage._shared._warningsr   r   r   r   r   r   r&   markparametrizer4   int32r0   r7   r:   r=   rG   rP   rZ   r[   r]   r`   rb   rd   rk   rm   ro   rq    r   r   <module>r|      s|        G G G G G G G G # # # # # # D D D D D D D D 7 7 7 7 7 7 RX&&()-/ /

+ + ++ + +C C C dC%:;;tS"(&;<<  =< <; 
+ 
+ 
+
+ 
+ 
+0 0 0) ) )+ + + 28;;;;;;;;;;;;;;;;;;;;;;;;= ?CD D 
+ 
+ 
++ + +A A A  F F F+ + +.+ + +.K K K' ' ' ' 'r   