o
    h                     @   s   d dl Zd dlm  mZ d dlmZmZmZ d dl	m
Z
 ejd  ejdejdZd edddf< d edddf< dZd	d
 Zdd Zdd Zdd Zdd Zedddgd dd Zdd ZdS )    N)assert_array_equalassert_almost_equalparametrize)expected_warnings)   r   )dtype   z|\A\Zc                  C      t dt g tjtdd} W d    n1 sw   Y  | dg\}}| d}t|g dg dg dg d	g d
g dg dg dg t|g d d S )NUpgrading NumPyTfully_connected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   warning_optionalmcpMCPa
find_costs	tracebackr   mcostsr.   return_path r3   W/var/www/html/scripts/venv/lib/python3.10/site-packages/skimage/graph/tests/test_mcp.py
test_basic   s&   

r5   c                  C   s  t tdkt jd} g d}t tdkdd}t tdkt jd}tdt g tj|dd}W d    n1 s:w   Y  |dg\}}|	d	}t
||  t
|| tdt g tj|dd}W d    n1 sow   Y  |dg\}}|	d	}t
||  t
|| d S )
Nr   r   )
r   r   r   r    r"   r#   r$   r%   r&   r'   r	   r   Tr   r   r'   )npwherer,   infr   r)   r*   r+   r-   r.   r   )expected_costsexpected_pathtest_negtest_infr0   r1   r.   r2   r3   r3   r4   test_neg_inf.   s$   





r=   c                  C   sj   t dt g tjtdddd\} }W d    n1 sw   Y  t|tdd  t| g d d S )Nr   r   r   T)	geometricr   r   )	r   r)   r*   route_through_arrayr,   r   r6   sqrtr   )r2   costr3   r3   r4   
test_routeJ   s   
rB   c                  C   r
   )Nr   Fr   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   g      @)r   r   r   r    r"   )r   r   r#   r$   r%   r&   r'   )r   r   r   r(   r/   r3   r3   r4   test_no_diagonal]   s&   
	rC   c                  C   s   dd t dD dd t ddD  } tdt g tjt| d}W d    n1 s,w   Y  |dg\}}t|g d	g d
g dg dg dg dg dg dg t|ds]J t| |j	 d S )Nc                 S   s   g | ]}d |fqS r   r3   .0ir3   r3   r4   
<listcomp>|   s    z test_offsets.<locals>.<listcomp>
   c                 S   s   g | ]}d | fqS rD   r3   rE   r3   r3   r4   rH   |   s    r   r   )offsetsr   )rK   rK   rK   rK   rK   rK   rK   )rK   rK   rK   rK   rK   rK   r	   rK   )               rI   r   r   )rI   r   r   r   r!   r   r   r   rJ   )
ranger   r)   r*   r+   r,   r-   r   hasattrrJ   )rJ   r0   r1   r.   r3   r3   r4   test_offsets{   s$   &	rS   shape)d   rU   )r   r   rN      r   c                 C   s   t |  d S )N)_test_randomrT   r3   r3   r4   test_crashing   s   rY   c           	         s   t jj  t j}dgt  dgt  t jt   tg} fddtdD }tdt	 g t
j|dd}W d    n1 sHw   Y  ||\}} fd	dtdD D ]}|| q_|  ||| |D ]}|| qs|||fS )
Nr   r	   c                    &   g | ]}t jt   tqS r3   r6   randomrandlenastypeintrE   rX   r3   r4   rH          z _test_random.<locals>.<listcomp>r   r   Tr   c                    rZ   r3   r[   rE   rX   r3   r4   rH      ra   )r6   r\   r]   r_   float32r^   r`   rQ   r   r)   r*   r+   r-   r.   _reset)	rT   r,   startsendsr0   r1   rJ   pointendr3   rX   r4   rW      s(   



rW   )numpyr6   skimage.graph.mcpgraphr*   skimage._shared.testingr   r   r   skimage._shared._warningsr   r\   seedonesrb   r,   r)   r5   r=   rB   rC   rS   rY   rW   r3   r3   r3   r4   <module>   s"    
