a
    
d                     @   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   )Zdtype   z|\A\Zc                  C   s   t dt g tjtdd} W d    n1 s20    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Z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 r0   e/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/skimage/graph/tests/test_mcp.py
test_basic   s$    ,

r2   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 st0    Y  |dg\}}|	d	}t
||  t
|| tdt g tj|dd}W d    n1 s0    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   )Zexpected_costsZexpected_pathZtest_negZtest_infr-   r.   r+   r/   r0   r0   r1   test_neg_inf.   s     
,


,

r6   c                  C   sj   t dt g& tjtdddd\} }W d    n1 s:0    Y  t|tdd  t| g d d S )Nr	   r   r   T)Z	geometricr   r   )	r   r&   r'   Zroute_through_arrayr)   r   r3   sqrtr   )r/   Zcostr0   r0   r1   
test_routeJ   s    
(r8   c                  C   s   t dt g tjtdd} W d    n1 s20    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 )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,   r0   r0   r1   test_no_diagonal]   s$    ,
	r9   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 sX0    Y  |dg\}}t|g d	g d
g dg dg dg dg dg dg t|dsJ t| |j	 d S )Nc                 S   s   g | ]}d |fqS r   r0   .0ir0   r0   r1   
<listcomp>|       z test_offsets.<locals>.<listcomp>
   c                 S   s   g | ]}d | fqS r:   r0   r;   r0   r0   r1   r>   |   r?   r   r	   )offsetsr   )rB   rB   rB   rB   rB   rB   rB   )rB   rB   rB   rB   rB   rB   r   rB   )               r@   r   r   )r@   r   r   r   r   r   r   r   rA   )
ranger   r&   r'   r(   r)   r*   r   hasattrrA   )rA   r-   r.   r+   r0   r0   r1   test_offsets{   s"    &,	rJ   shape)d   rL   )r   r   rE      r   c                 C   s   t |  d S )N)_test_randomrK   r0   r0   r1   test_crashing   s    rP   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 s0    Y  ||\}} fd	dtdD D ]}|| q|  ||| |D ]}|| q|||fS )
Nr   r   c                    s&   g | ]}t jt   tqS r0   r3   randomrandlenastypeintr;   rO   r0   r1   r>      s   z _test_random.<locals>.<listcomp>r   r	   Tr
   c                    s&   g | ]}t jt   tqS r0   rQ   r;   rO   r0   r1   r>      s   )r3   rR   rS   rU   float32rT   rV   rH   r   r&   r'   r(   r*   r+   Z_reset)	rK   r)   ZstartsZendsr-   r.   rA   Zpointendr0   rO   r1   rN      s&    
,

rN   )numpyr3   Zskimage.graph.mcpgraphr'   Zskimage._shared.testingr   r   r   Zskimage._shared._warningsr   rR   seedZonesrW   r)   r&   r2   r6   r8   r9   rJ   rP   rN   r0   r0   r0   r1   <module>   s    
