U
    ?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   )Zdtype   z|\A\Zc                  C   s   t dt g tjtdd} W 5 Q R X | dg\}}| d}t|ddddddddgddddddddgddddddddgddddddddgddddd	d	d	d	gddddd	d
d
d
gddddd	d
ddgddddd	d
ddgg t|dddddddddddg 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   warning_optionalmcpMCPa
find_costs	tracebackr   mcostsr)   return_path r.   N/var/www/html/venv/lib/python3.8/site-packages/skimage/graph/tests/test_mcp.py
test_basic   s:    

r0   c               
   C   s  t tdkt jd} ddddddd	d
ddg
}t tdkdd}t tdkt jd}tdt g tj|dd}W 5 Q R X |dg\}}|	d}t
||  t
|| tdt g tj|dd}W 5 Q R X |dg\}}|	d}t
||  t
|| d S )Nr   r   r   r   r   r   r   r   r   r    r!   r"   r   r	   Tr
   )npwherer'   infr   r$   r%   r&   r(   r)   r   )Zexpected_costsZexpected_pathZtest_negZtest_infr+   r,   r)   r-   r.   r.   r/   test_neg_inf.   s4    





r4   c                  C   sh   t dt g tjtdddd\} }W 5 Q R X t|tdd  t| dddd	d
ddddddg d S )Nr	   r   r   T)Z	geometricr   r   r   r   r   r   r   r    r!   r"   )	r   r$   r%   Zroute_through_arrayr'   r   r1   sqrtr   )r-   Zcostr.   r.   r/   
test_routeJ   s&    
r6   c                  C   s  t dt g tjtdd} W 5 Q R X | dg\}}| d}t|ddddddddgddddddddgddddddddgdddddddd	gddddd	d	d	d
gddddd	d
d
dgddddd	d
ddgdddd	d
dddgg t|dddddddddddddg d S )Nr	   Fr
   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.   r/   test_no_diagonal]   s>    
	r7   c                  C   s  dd t dD dd t ddD  } tdt g tjt| d}W 5 Q R X |dg\}}t|d	d	d	d	d	d	d	d	gd	d	d	d	d	d	d
d	gddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgg t|dst	t| |j
 d S )Nc                 S   s   g | ]}d |fqS r   r.   .0ir.   r.   r/   
<listcomp>|   s     z test_offsets.<locals>.<listcomp>
   c                 S   s   g | ]}d | fqS r8   r.   r9   r.   r.   r/   r<   |   s     r   r	   )offsetsr   r                  r   r   r   r   r   r   r>   )ranger   r$   r%   r&   r'   r(   r   hasattrAssertionErrorr>   )r>   r+   r,   r)   r.   r.   r/   test_offsets{   s"    &	rH   shape)d   rJ   )r   r   rB      r   c                 C   s   t |  d S )N)_test_randomrI   r.   r.   r/   test_crashing   s    rN   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 5 Q R X ||\}} fd	dtdD D ]}|| q|  ||| |D ]}|| q|||fS )
Nr   r   c                    s&   g | ]}t jt   tqS r.   r1   randomrandlenastypeintr9   rM   r.   r/   r<      s   z _test_random.<locals>.<listcomp>r   r	   Tr
   c                    s&   g | ]}t jt   tqS r.   rO   r9   rM   r.   r/   r<      s   )r1   rP   rQ   rS   float32rR   rT   rE   r   r$   r%   r&   r(   r)   _reset)	rI   r'   ZstartsZendsr+   r,   r>   pointendr.   rM   r/   rL      s&    


rL   )numpyr1   Zskimage.graph.mcpgraphr%   Zskimage._shared.testingr   r   r   Zskimage._shared._warningsr   rP   seedZonesrU   r'   r$   r0   r4   r6   r7   rH   rN   rL   r.   r.   r.   r/   <module>   s    
