o
    ðËhj%  ã                   @   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   ú[/var/www/html/scripts/venv/lib/python3.10/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   ó\   t j dd¡d  t¡}t|ƒ}| ¡ }t|ƒD ]}|||k }t  ||d k¡s+J ‚qd S ©Né   é   r
   r   ©	r   ÚrandomÚrandÚastypeÚintr   ÚmaxÚrangeÚall©r   r   r   ÚnÚiÚvaluesr   r   r   Útest_random2   ó   þ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   )Údtype©Úconnectivityr   )r   r   r)   r   r   r7   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 )Nr5   )r   r   r
   ©r   r   r   )r   r   r   r   r   r6   r7   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   r3   ©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 )Nr=   r4   r   r   ©r;   r   r6   r7   r   r   r   Ú!test_background_one_region_centere   s   
þþÿz9TestConnectedComponents.test_background_one_region_centerc                 C   óN   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   rH   r   r6   r7   r   r   r   Útest_return_nump   s   
þz'TestConnectedComponents.test_return_numN)Ú__name__Ú
__module__Ú__qualname__r   r    r1   r8   r<   r>   rC   rE   rI   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   r!   r"   r%   r-   r   r   r   r1   ¤   r2   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   rN   r)   r   r   r7   r   r   r   r8   ­   s
   z#TestConnectedComponents3d.test_diagc                 C   óT   t  dt¡}d|d< d|d< | ¡ }d|d< tt|dd|ƒ tt|dd|ƒ d S ©NrA   r   )r   r   r   r5   r   r:   r   ©r   rN   r)   r   r   r   )r   r   Úlabel4r   r   r   r<   ´   ó   z%TestConnectedComponents3d.test_4_vs_8c                 C   rQ   rR   rS   )r   r   Úlabel1r   r   r   Útest_connectivity_1_vs_2½   rU   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   r5   r=   r   )r   r   r
   r   )r   r   r   rA   )r   r   r   r   r   r   )r   rN   r)   r   r   ÚBGr   r   )r   r   ÚlnbÚlbr   r   r   r>   Æ   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 )NrX   r?   r@   r   )r   r   r   )r
   r   r   r=   r   rA   r   r   )r   rN   r)   r   r   rY   r   r   )r   r   r[   rB   r   r   r   rC   á   s(   

þ

þ
þ
þz5TestConnectedComponents3d.test_background_two_regionsc                 C   sB   t  dt¡}d|d< t  |¡t }d|d< tt|ddd|ƒ d S )NrO   r   rP   r   rD   )r   rN   r)   Ú	ones_likerY   r   r   )r   r   r[   r   r   r   rE   ô   s
   z;TestConnectedComponents3d.test_background_one_region_centerc                 C   rF   rG   r6   r7   r   r   r   rI   ý   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|| ¡ ƒ q&d 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Úreshapesr^   Úx2Úlabelledr   r   r   Útest_1D  s   

þ
ýz!TestConnectedComponents3d.test_1Dc                 C   sB   t  d¡}t t¡ t|ƒ W d   ƒ d S 1 sw   Y  d S )N)r   r   r   r   )r   Úonesr   ÚraisesÚNotImplementedErrorr   r7   r   r   r   Útest_nd  s   

"ÿz!TestConnectedComponents3d.test_ndN)rJ   rK   rL   r   r    r1   r8   r<   rW   r>   rC   rE   rI   re   ri   r   r   r   r   rM   z   s    "				rM   c                   @   s   e Zd Zdd„ ZdS )ÚTestSupportc           
      C   s|   d}|D ]7}t  |¡}t|dkƒ}t j |¡}t |¡\}}|j}t|ƒD ]
}|| dks/J ‚q%t ||¡}	t	||	ƒ q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_inrn   ÚnumonesÚinpÚfixedÚswapsÚshape2r/   Úbackr   r   r   Útest_reshape  s   
ózTestSupport.test_reshapeN)rJ   rK   rL   rw   r   r   r   r   rj     s    rj   )Únumpyr   Úskimage.measurer   Úskimage.measure._ccompÚmeasureÚ_ccomprl   Úskimage._sharedr   Úskimage._shared.testingr   rY   r   rM   rj   r   r   r   r   Ú<module>   s    n 