
    hh?	                         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y)    N)assert_array_equal)   r   )dtypec                       e Zd Zd Zd Zy)MCPc                 ^    t         j                  j                  |        i | _        i | _        y)zReset the id map.N)mcpMCP_Connect_reset_conn	_bestconn)selfs    ^/var/www/html/dev/engine/venv/lib/python3.12/site-packages/skimage/graph/tests/test_connect.pyr   z
MCP._reset   s"    t$
    c                 `   t        ||      t        ||      f}t        ||      t        ||      f}t        ||      }	| j                  j                  |g       j	                  |       | j
                  j                  |t        j                  f      d   }
|	|
k  r|	f|z   | j
                  |<   y y )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#sm+$os4.5% 

dB'..s3..$$TBFF95a8'>$(7S=DNN4  r   N)__name__
__module____qualname__r   r#    r   r   r   r      s    
1r   r   c                     t        t              }  | j                  g d      \  }}t        | j                  j                               }d|v sJ d|v sJ d|v sJ | j                  j                         D ](  }t        |      }t        t        |            }||k(  r(J  | 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
       y )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 ciinn&'K[   [   [    99++- !_%&Rxx }}V,D$$<++++3==h}s}}T/B&C!DDDtUV }}V,D$$<++++3==h}s}}T/B&C!DDDtUV }}V,D$$<++++3==h}s}}T/B&C!DDDtUVr   )numpyr   skimage.graph.mcpgraphr	   skimage._shared.testingr   onesfloat32r:   countr
   r   rI   r'   r   r   <module>rQ      sF       7 BGGF"**%	1#// 1('Wr   