o
    ðËhc	  ã                   @   sX   d dl Zd dlm  mZ d dlmZ ejdejdZ	d Z
G dd„ dejƒZdd„ ZdS )	é    N)Úassert_array_equal)é   r   )Údtypec                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚMCPc                 C   s   t j | ¡ i | _i | _dS )z Reset the id map.
        N)ÚmcpÚMCP_ConnectÚ_resetÚ_connÚ	_bestconn)Úself© r   ú[/var/www/html/scripts/venv/lib/python3.10/site-packages/skimage/graph/tests/test_connect.pyr      s   
z
MCP._resetc                 C   s|   t ||ƒt||ƒf}t ||ƒt||ƒf}t ||ƒ}	| j |g ¡ |¡ | j |tjf¡d }
|	|
k r<|	f| | j|< d S d S )Nr   )	ÚminÚmaxr	   Ú
setdefaultÚappendr
   ÚgetÚnpÚinf)r   Úid1Úid2Úpos1Úpos2Úcost1Úcost2ÚhashÚvalÚcostÚcurcostr   r   r   Úcreate_connection   s   
ÿzMCP.create_connectionN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r      s    r   c                  C   s^  t tƒ} |  g d¢¡\}}t| j ¡ ƒ}d|v sJ ‚d|v s J ‚d|v s&J ‚| j ¡ D ]}t|ƒ}tt|ƒƒ}||ks=J ‚q+| jd \}}}	||	fdksNJ ‚|  	|¡t
t|  	|	¡ƒƒ }
t|
g d¢ƒ | jd \}}}	||	fdkssJ ‚|  	|¡t
t|  	|	¡ƒƒ }
t|
g d¢ƒ | jd \}}}	||	fd	ks˜J ‚|  	|¡t
t|  	|	¡ƒƒ }
t|
g 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&   r0   r1   )r.   r&   )r/   r&   r%   )©r$   r+   ©r$   r-   )r#   r(   r2   r3   )r$   r.   )r$   r/   r'   )r   ÚaÚ
find_costsÚsetr	   ÚkeysÚvaluesÚlenr
   Ú	tracebackÚlistÚreversedr   )r   Úcostsr:   ÚconnectionsÚposition_tuplesÚn1Ún2r   r   r   Úpathr   r   r   Útest_connections!   s8   ÿÿÿrC   )Únumpyr   Úskimage.graph.mcpÚgraphr   Úskimage._shared.testingr   ÚonesÚfloat32r4   Úcountr   r   rC   r   r   r   r   Ú<module>   s    