
    1-Ph?	                         d dl Zd dlmc mZ d dlmZ  ej        dej                  Z	d Z
 G d dej                  Zd ZdS )    N)assert_array_equal)   r   )dtypec                       e Zd Zd Zd ZdS )MCPc                 `    t           j                            |            i | _        i | _        dS )zReset the id map.N)mcpMCP_Connect_reset_conn	_bestconn)selfs    `/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/skimage/graph/tests/test_connect.pyr   z
MCP._reset   s*    t$$$
    c                    t          ||          t          ||          f}t          ||          t          ||          f}t          ||          }	| j                            |g                               |           | j                            |t          j        f          d         }
|	|
k     r|	f|z   | j        |<   d S d S )Nr   )	minmaxr   
setdefaultappendr   getnpinf)r   id1id2pos1pos2cost1cost2hashvalcostcurcosts              r   create_connectionzMCP.create_connection   s    3}}c#smm+$oos4.5%  
dB''..s333.$$TBF955a8'>>$(7S=DN4    >r   N)__name__
__module____qualname__r   r#    r   r   r   r      s2          
1 
1 
1 
1 
1r   r   c                     t          t                    }  | j        g d          \  }}t          | j                                                  }d|v sJ d|v sJ d|v sJ | j                                        D ]5}t          |          }t          t          |                    }||k    sJ 6| j        d         \  }}}	||	fdk    sJ  | j	        |          t          t           | j	        |	                              z   }
t          |
g d           | j        d         \  }}}	||	fdk    sJ  | j	        |          t          t           | j	        |	                              z   }
t          |
g d           | j        d         \  }}}	||	fd	k    sJ  | j	        |          t          t           | j	        |	                              z   }
t          |
g d
           d S )N)   r*      r,   r*   r,   )r   r*   r*      )r   r/   )   r1      r3   )r)   )r/   r/   r0   r2   )   r4   )   r5   r+   )r1   r,   r3   r,   )r-   )r/   r,   r6   r7   )r4   r,   )r5   r,   r+   )r*   r1   r*   r3   )r)   r.   r8   r9   )r*   r4   )r*   r5   r-   )r   a
find_costssetr   keysvalueslenr   	tracebacklistreversedr   )r	   costsr@   connectionsposition_tuplesn1n2r!   r   r   paths              r   test_connectionsrI   !   s*   
a&&C%s~&>&>&>??E9 cinn&&''K[    [    [     9++--  !!_%%&&Rxxxxx }V,D$$<+++++3=h}s}T/B/B&C&C!D!DDDtUUUVVV }V,D$$<+++++3=h}s}T/B/B&C&C!D!DDDtUUUVVV }V,D$$<+++++3=h}s}T/B/B&C&C!D!DDDtUUUVVVVVr   )numpyr   skimage.graph.mcpgraphr	   skimage._shared.testingr   onesfloat32r:   countr
   r   rI   r'   r   r   <module>rQ      s                 7 6 6 6 6 6 BGF"*%%%	1 1 1 1 1#/ 1 1 1('W 'W 'W 'W 'Wr   