
    hh                         d dl Zd dlmc mZ d dlmZ  ej                  dej                        Z	e	dddxx   dz  cc<    G d d	ej                        Zd
 Zy)    N)assert_array_equal   r   dtype      g       @c                   .    e Zd ZdZd Zd Zd Zd Zd Zy)FlexibleMCPzSimple MCP subclass that allows the front to travel
    a certain distance from the seed point, and uses a constant
    cost factor that is independent of the cost array.
    c                     t         j                  j                  |        t        j                  dt        j
                        j                         | _        y )Nr   r   )mcpMCP_Flexible_resetnpzerosfloat32ravel	_distance)selfs    _/var/www/html/dev/engine/venv/lib/python3.12/site-packages/skimage/graph/tests/test_flexible.pyr   zFlexibleMCP._reset   s5    %&

;AAC    c                 *    | j                   |   dkD  ryy)N   r	   r   r   )r   indexcumcosts      r   goal_reachedzFlexibleMCP.goal_reached   s    >>% 1$r   c                      y)Ng      ? r   r   	new_indexoffset_lengths       r   travel_costzFlexibleMCP.travel_cost   s    r   c                      y )Nr   r    s       r   examine_neighborzFlexibleMCP.examine_neighbor   s    r   c                 B    | j                   |   dz   | j                   |<   y )Nr   r   r    s       r   update_nodezFlexibleMCP.update_node!   s    $(NN5$9A$=y!r   N)	__name__
__module____qualname____doc__r   r   r#   r%   r'   r   r   r   r   r      s!    
D>r   r   c                  T   t        t              }  | j                  dg      \  }}t        |d dd df   g dg dg dg dg       t	        j
                  |dd d d f   t        j                  k(        sJ t	        j
                  |d d dd f   t        j                  k(        sJ y )N)r   r   r   )r   r	      r   )r	   r	   r-   r   )r-   r-   r-   r   )r   r   r   r   )r   a
find_costsr   r   allinf)r   costs	tracebacks      r   test_flexibler5   %   s    
a.C%s~~vh/E9 bqb"1"flL,O 66%Q-266)***66%23-266)***r   )numpyr   skimage.graph.mcpgraphr   skimage._shared.testingr   onesr   r/   r   r   r5   r   r   r   <module>r;      sS       6 BGGF"**% !$Q$3>#"" >4+r   