
    0-Pha                         d dl Zd dlmZ d dlmc mZ d dlm	Z	 d dl
mZ d Z G d d          Z G d d          Z G d	 d
          ZdS )    N)label)testing)assert_array_equalc                   D    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
S )TestConnectedComponentsc                 j   t          j        g dg dg dg dg          | _        t          j        g dg dg dg dg          | _        | j        d	z   | _        d
| j        d<   | j                                        | _        d| j        | j        dk    <   | j        | j        dk    xx         d	z  cc<   d S )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   )nparrayxlabelslabels_nobgcopylabels_bg_9selfs    `/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/skimage/measure/tests/test_ccomp.pysetup_methodz$TestConnectedComponents.setup_method   s    """"""""""""	
 
 h""""""""""""	
 
  ;?#%   +0022()1% 	)A-...!3.....    c                    t          t          | j                  | j                   | j        d         dk    sJ t          t          | j        d          | j                   t          t          | j        d          | j                   d S )N)r   r
   r	   c   
backgroundr   )r   r   r   r   r   r   r   s    r   
test_basicz"TestConnectedComponents.test_basic-   s    5==$+666 vd|q     	5B7779IJJJ5A6668HIIIIIr   c                 >   t           j                            dd          dz                      t                    }t          |          }|                                }t          |          D ].}|||k             }t          j        ||d         k              sJ /d S N      r   r   	r   randomrandastypeintr   maxrangeallr   r   r   nivaluess         r   test_randomz#TestConnectedComponents.test_random8       Y^^B##a'//44qJJLLq 	/ 	/Av{^F6&F1I-......	/ 	/r   c                 z    t          j        g dg dg dg          }t          t          |          |           d S )Nr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   s     r   	test_diagz!TestConnectedComponents.test_diagA   s@    HiiiIII677588Q'''''r   c                     t          j        ddgddggt                    }t          t	          |d          ddgddgg           t          t	          |d          ddgddgg           d S )Nr   r   )dtypeconnectivityr
   )r   r   r-   r   r   r<   s     r   test_4_vs_8z#TestConnectedComponents.test_4_vs_8E   s}    Hq!fq!f%S1115333q!fq!f5EFFF5333q!fq!f5EFFFFFr   c                     t          j        g dg dg dg          }t          t          |          g dg dg dg           t          t          |d          g dg dg dg           d S )Nr:   )r   r   r   r   r   r   )r   r   r
   r   r"   r;   r<   s     r   test_backgroundz'TestConnectedComponents.test_backgroundK   s    HiiiIII677588iiiIII%FGGG5q111IIIyyy)))3TUUUUUr   c                     t          j        g dg dg dg          }t          |d          }t          |g dg dg dg           d S )Nr   r   r   r   r   r   r   r"   r8   r
   r
   r
   )r   r   r   r   )r   r   ress      r   test_background_two_regionsz3TestConnectedComponents.test_background_two_regionsR   s_    HiiiIII677A!$$$3IIIyyy ABBBBBr   c                     t          j        g dg dg dg          }t          t          |dd          g dg dg dg           d S )NrD   r9   r   r   rA   r#   r;   r<   s     r   !test_background_one_region_centerz9TestConnectedComponents.test_background_one_region_centerX   sg    HiiiIII677!!222YYY			9994U	
 	
 	
 	
 	
r   c                     t          j        g dg dg dg          }t          t          |d          d         d           t          t          |dd	          d         d
           d S N)r   r   r   rG   rH   T)
return_numr   r	   r   )r#   rQ   r   r;   r<   s     r   test_return_numz'TestConnectedComponents.test_return_num_   sp    HiiiIII6775t444Q7;;;5rdCCCAFJJJJJr   N)__name__
__module____qualname__r   r$   r5   r=   rB   rE   rK   rN   rR    r   r   r   r      s        4 4 4@	J 	J 	J/ / /( ( (G G GV V VC C C
 
 
K K K K Kr   r   c                   V    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd ZdS )TestConnectedComponents3dc                 b   t          j        dt                    | _        t          j        g dg dg dg dg          | j        d<   t          j        g dg dg d	g d
g          | j        d<   t          j        g dg dg dg dg          | j        d<   t          j        dt                    | _        t          j        g dg dg dg dg          | j        d<   t          j        g dg dg dg dg          | j        d<   t          j        g dg dg dg dg          | j        d<   d S )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   )r	   r	   r   r   r   )r
   r	   r   r   r   )r
   r	   r   r   r   )r
   r   r   r   r   r
   )r   r   r
   r	   r   )r   r   r   r
   r   )r   r   r   r   r   )r   r   r   r   r   )r   r   r
   r	   r   )r   r   r   r
   r	   )r   r   r   r	   r	   )r   r   r   r   r   )r   r   r   r   r   )r   r   r   r   r   )r   r   r   r   r   )r   r   r   r   r   )r   zerosr-   r   r   r   r   s    r   r   z&TestConnectedComponents3d.setup_methodh   sh   )S))H__oooP
 
q	 H__oooP
 
q	 H__oooP
 
q	 hy#..__oooP
 
A __oooP
 
A __oooP
 
Ar   c                     t          | j                  }t          || j                   | j        d         dk    s
J d            d S )N)r   r   r
   r
   zData was modified!)r   r   r   r   )r   r   s     r   r$   z$TestConnectedComponents3d.test_basic   sG    tv64;///vg!###%9#####r   c                 >   t           j                            dd          dz                      t                    }t          |          }|                                }t          |          D ].}|||k             }t          j        ||d         k              sJ /d S r&   r)   r1   s         r   r5   z%TestConnectedComponents3d.test_random   r6   r   c                     t          j        dt                    }d|d<   d|d<   d|d<   t          t	          |          |           d S )Nr	   r	   r	   r   )r   r
   r
   r   r   r   )r
   r   r   )r   rZ   r-   r   r   r<   s     r   r=   z#TestConnectedComponents3d.test_diag   sJ    HY$$'
'
'
588Q'''''r   c                     t          j        dt                    }d|d<   d|d<   |                                }d|d<   t	          t          |d          |           t	          t          |d          |           d S NrI   r   )r   r   r   r:   r
   r@   r	   r   rZ   r-   r   r   r   )r   r   label4s      r   rB   z%TestConnectedComponents3d.test_4_vs_8   {    HY$$'
'
w5333V<<<5333Q77777r   c                     t          j        dt                    }d|d<   d|d<   |                                }d|d<   t	          t          |d          |           t	          t          |d          |           d S ra   rb   )r   r   label1s      r   test_connectivity_1_vs_2z2TestConnectedComponents3d.test_connectivity_1_vs_2   rd   r   c                    t          j        dt                    }t          j        g dg dg dg          |d<   t          j        g dg dg dg          |d<   |                                }t          j        g dg dg dg          |d<   t          j        g dg d	g dg          |d<   |                                }t          j        dt
          t
          gdt
          t
          gt
          t
          t
          gg          |d<   t          j        t
          t
          t
          gt
          dd
gt
          t
          t
          gg          |d<   t          t          |          |           t          t          |d          |           d S )Nr
   r	   r	   r:   rD   r   )r   r   r   r   )r   r
   r
   rI   )r
   r   r	   r
   r   r"   )r   rZ   r-   r   r   BGr   r   )r   r   lnblbs       r   rE   z)TestConnectedComponents3d.test_background   sV   HY$$xIIIyyy9::!xIIIyyy9::!ffhh999iii;<<A999iii;<<AVVXX1b"+2r{RRLABB12r2,Q
RRLABB1588R(((5r222C88888r   c                    t          j        dt                    }t          j        g dg dg dg          |d<   t          j        g dg dg dg          |d<   |                                }t          j        t
          t
          dgt
          t
          dgg d	g          |d<   t          j        ddt
          gd
t
          t
          gt
          t
          t
          gg          |d<   t          |d          }t          ||           d S )Nri   rG   rH   r   )r   r   r   )r   r   r   rD   r   rI   r
   r"   )r   rZ   r-   r   r   rj   r   r   )r   r   rl   rJ   s       r   rK   z5TestConnectedComponents3d.test_background_two_regions   s    HY$$xIIIyyy9::!xIIIyyy9::!VVXX2r1+B{III>??11a*q"bkBB<@AA1A!$$$3#####r   c                     t          j        dt                    }d|d<   t          j        |          t          z  }d|d<   t          t          |dd          |           d S )Nr^   r   r_   r   rM   )r   rZ   r-   	ones_likerj   r   r   )r   r   rl   s      r   rN   z;TestConnectedComponents3d.test_background_one_region_center   s\    HY$$'
\!__r!75qAAA2FFFFFr   c                     t          j        g dg dg dg          }t          t          |d          d         d           t          t          |dd	          d         d
           d S rP   r;   r<   s     r   rR   z)TestConnectedComponents3d.test_return_num   sp    HiiiIII6775t444Q7;;;5rdCCCAFJJJJJr   c                 6   t          j        d          }t          |          }t          j        d          }|fd|f|dfd|df|ddfdd|ff}|D ]H}|                    |          }t	          |          }t          ||                                           Id S )N)r   r   r
   r
   r   r   r   r   )r   r   r
   r
   r	   r	   r   r   r   )r   r   lenreshaper   r   flatten)r   r   xlenyreshapesrs   x2labelleds           r   test_1Dz!TestConnectedComponents3d.test_1D   s    H-..1vvH-..GI1IaL1aL4L
   	6 	6G7##BRyyHq("2"2"4"45555	6 	6r   c                     t          j        d          }t          j        t                    5  t          |           d d d            d S # 1 swxY w Y   d S )N)r   r
   r	   r   )r   onesr   raisesNotImplementedErrorr   r<   s     r   test_ndz!TestConnectedComponents3d.test_nd   s    GL!!^/00 	 	!HHH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AAAN)rS   rT   rU   r   r$   r5   r=   rB   rg   rE   rK   rN   rR   rz   r   rV   r   r   rX   rX   g   s        
 
 
8: : :/ / /( ( (8 8 88 8 89 9 9	$ 	$ 	$G G GK K K6 6 6"    r   rX   c                       e Zd Zd ZdS )TestSupportc                 f   d}|D ]}t          j        |          }t          |dk              }t           j                            |          }t	          j        |          \  }}|j        }t          |          D ]}||         dk    sJ t	          j        ||          }	t          ||	           d S )N))r	   r   r
   )r   r   r   )r	   r   r   )r
   r   )r   r   )
r   r   sumr*   ccompreshape_arrayshaper/   undo_reshape_arrayr   )
r   	shapes_inr   numonesinpfixedswapsshape2r3   backs
             r   test_reshapezTestSupport.test_reshape   s    C	 	* 	*EHUOOE%1*ooG)""5))C .s33LE5[F7^^ & &ayA~~~~~+E599DsD))))	* 	*r   N)rS   rT   rU   r   rV   r   r   r   r      s#        * * * * *r   r   )numpyr   skimage.measurer   skimage.measure._ccompmeasure_ccompr   skimage._sharedr   skimage._shared.testingr   rj   r   rX   r   rV   r   r   <module>r      s       ! ! ! ! ! ! & & & & & & & & & # # # # # # 6 6 6 6 6 6XK XK XK XK XK XK XK XKvB B B B B B B BJ* * * * * * * * * *r   