a
    Ø
þdj%  ã                   @   sp   d dl Zd dlmZ d dlm  mZ d dlm	Z	 d dl
mZ d ZG dd„ dƒZG dd„ dƒZG d	d
„ d
ƒZdS )é    N)Úlabel)Útesting)Úassert_array_equalc                   @   sT   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ ZdS )ÚTestConnectedComponentsc                 C   s–   t  g d¢g d¢g d¢g d¢g¡| _t  g d¢g d¢g d¢g d¢g¡| _| jd	 | _d
| jd< | j ¡ | _d| j| jdk< | j| jdk  d	8  < 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©Úself© r   úi/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/skimage/measure/tests/test_ccomp.pyÚsetup_method   s"    üü
z$TestConnectedComponents.setup_methodc                 C   sT   t t| jƒ| jƒ | jd dks$J ‚t t| jdd| jƒ t t| jdd| jƒ d S )N)r   r   r   éc   ©Ú
backgroundr	   )r   r   r   r   r   r   r   r   r   r   Ú
test_basic'   s    z"TestConnectedComponents.test_basicc                 C   s\   t j dd¡d  t¡}t|ƒ}| ¡ }t|ƒD ]&}|||k }t  ||d k¡s0J ‚q0d S ©Né   é   r
   r   ©	r   ÚrandomZrandZastypeÚintr   ÚmaxÚrangeÚall©r   r   r   ÚnÚiÚvaluesr   r   r   Útest_random2   s    z#TestConnectedComponents.test_randomc                 C   s.   t  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   r   r   r   Ú	test_diag;   s
    
þz!TestConnectedComponents.test_diagc                 C   sZ   t jddgddggtd}tt|ddddgddggƒ tt|ddddgddggƒ d S )Nr   r   )Zdtype©Úconnectivityr   )r   r   r&   r   r   r3   r   r   r   Útest_4_vs_8A   s    
ÿÿÿÿÿÿz#TestConnectedComponents.test_4_vs_8c                 C   sd   t  g d¢g d¢g d¢g¡}tt|ƒg d¢g d¢g d¢gƒ tt|ddg d¢g d¢g d¢gƒ d S )Nr1   )r   r   r
   ©r   r   r   )r   r   r   r   r   r2   r3   r   r   r   Útest_backgroundL   s    
þþþÿz'TestConnectedComponents.test_backgroundc                 C   sH   t  g d¢g d¢g d¢g¡}t|dd}t|g d¢g d¢g d¢gƒ d S )N©r   r   r   ©r
   r
   r
   r   r   r/   ©r   r   r   )r   r   r   r   )r   r   Úresr   r   r   Útest_background_two_regionsZ   s    
þþÿz3TestConnectedComponents.test_background_two_regionsc                 C   sF   t  g d¢g d¢g d¢g¡}tt|dddg d¢g d¢g d¢gƒ d S )Nr8   r0   r   r   ©r6   r   r2   r3   r   r   r   Ú!test_background_one_region_centere   s    
þþÿz9TestConnectedComponents.test_background_one_region_centerc                 C   sN   t  g d¢g d¢g d¢g¡}tt|ddd dƒ tt|ddd	d d
ƒ d S ©N)r   r   r   r:   r;   T)Ú
return_numr   r   r   )r   rB   r   r2   r3   r   r   r   Útest_return_nump   s    
þz'TestConnectedComponents.test_return_numN)Ú__name__Ú
__module__Ú__qualname__r   r    r.   r4   r7   r9   r>   r@   rC   r   r   r   r   r      s   	r   c                   @   sl   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ ZdS )ÚTestConnectedComponents3dc                 C   s  t  dt¡| _t  g d¢g d¢g d¢g d¢g¡| jd< t  g d¢g d¢g d	¢g d
¢g¡| jd< t  g d¢g d¢g d¢g d¢g¡| jd< t  dt¡| _t  g d¢g d¢g d¢g d¢g¡| jd< t  g d¢g d¢g d¢g d¢g¡| jd< t  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   r   r   r   r   {   s@    
ý
ý
ý
ý
ý
ýz&TestConnectedComponents3d.setup_methodc                 C   s0   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   r   r   r   r       s
    
ÿz$TestConnectedComponents3d.test_basicc                 C   s\   t j dd¡d  t¡}t|ƒ}| ¡ }t|ƒD ]&}|||k }t  ||d k¡s0J ‚q0d S r!   r$   r*   r   r   r   r.   ¤   s    z%TestConnectedComponents3d.test_randomc                 C   s6   t  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   rH   r&   r   r   r3   r   r   r   r4   ­   s
    z#TestConnectedComponents3d.test_diagc                 C   sT   t  dt¡}d|d< d|d< | ¡ }d|d< tt|dd|ƒ tt|dd|ƒ d S ©Nr<   r   )r   r   r   r1   r   r5   r   ©r   rH   r&   r   r   r   )r   r   Zlabel4r   r   r   r7   ´   s    z%TestConnectedComponents3d.test_4_vs_8c                 C   sT   t  dt¡}d|d< d|d< | ¡ }d|d< tt|dd|ƒ tt|dd|ƒ d S rK   rL   )r   r   Úlabel1r   r   r   Útest_connectivity_1_vs_2½   s    z2TestConnectedComponents3d.test_connectivity_1_vs_2c                 C   s  t  dt¡}t  g d¢g d¢g d¢g¡|d< t  g d¢g d¢g d¢g¡|d< | ¡ }t  g d¢g d¢g d¢g¡|d< t  g d¢g d	¢g d¢g¡|d< | ¡ }t  dttgdttgtttgg¡|d< t  tttgtdd
gtttgg¡|d< tt|ƒ|ƒ tt|dd|ƒ d S )N©r   r   r   r1   r8   r   )r   r   r
   r   )r   r   r   r<   )r   r   r   r   r   r   )r   rH   r&   r   r   ÚBGr   r   )r   r   ZlnbÚlbr   r   r   r9   Æ   s:    
þ

þ

þ

þ
þ
þ
z)TestConnectedComponents3d.test_backgroundc                 C   s¸   t  dt¡}t  g d¢g d¢g d¢g¡|d< t  g d¢g d¢g d¢g¡|d< | ¡ }t  ttdgttdgg d	¢g¡|d< t  ddtgd
ttgtttgg¡|d< t|dd}t||ƒ d S )NrO   r:   r;   r   )r   r   r   )r
   r   r   r8   r   r<   r   r   )r   rH   r&   r   r   rP   r   r   )r   r   rQ   r=   r   r   r   r>   á   s(    
þ

þ
þ
þ
z5TestConnectedComponents3d.test_background_two_regionsc                 C   sB   t  dt¡}d|d< t  |¡t }d|d< tt|ddd|ƒ d S )NrI   r   rJ   r   r?   )r   rH   r&   Z	ones_likerP   r   r   )r   r   rQ   r   r   r   r@   ô   s
    z;TestConnectedComponents3d.test_background_one_region_centerc                 C   sN   t  g d¢g d¢g d¢g¡}tt|ddd dƒ tt|ddd	d d
ƒ d S rA   r2   r3   r   r   r   rC   ý   s    
þz)TestConnectedComponents3d.test_return_numc                 C   sv   t  d¡}t|ƒ}t  d¡}|fd|f|dfd|df|ddfdd|ff}|D ]$}| |¡}t|ƒ}t|| ¡ ƒ qLd 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ÚyZreshapesrS   Zx2Zlabelledr   r   r   Útest_1D  s    

þ
z!TestConnectedComponents3d.test_1Dc                 C   s@   t  d¡}t t¡ t|ƒ W d   ƒ n1 s20    Y  d S )N)r   r   r   r   )r   Zonesr   ZraisesÚNotImplementedErrorr   r3   r   r   r   Útest_nd  s    
z!TestConnectedComponents3d.test_ndN)rD   rE   rF   r   r    r.   r4   r7   rN   r9   r>   r@   rC   rW   rY   r   r   r   r   rG   z   s   "				rG   c                   @   s   e Zd Zdd„ ZdS )ÚTestSupportc           
      C   s|   d}|D ]n}t  |¡}t|dkƒ}t j |¡}t |¡\}}|j}t|ƒD ]}|| dksJJ ‚qJt ||¡}	t	||	ƒ qd S )N))r   r   r   )r   r   r
   )r   r   r   )r   r   )r   r   )
r   r   Úsumr%   ÚccompZreshape_arrayÚshaper(   Zundo_reshape_arrayr   )
r   Z	shapes_inr]   ZnumonesÚinpÚfixedZswapsZshape2r,   Úbackr   r   r   Útest_reshape  s    
zTestSupport.test_reshapeN)rD   rE   rF   ra   r   r   r   r   rZ     s   rZ   )Únumpyr   Zskimage.measurer   Zskimage.measure._ccompZmeasureZ_ccompr\   Zskimage._sharedr   Zskimage._shared.testingr   rP   r   rG   rZ   r   r   r   r   Ú<module>   s   n 