o
    e                     @   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      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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 r1   LD:\Projects\ConvertPro\env\Lib\site-packages\skimage/graph/tests/test_mcp.py
test_basic   s&   

r3   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   )Zexpected_costsZexpected_pathZtest_negZtest_infr.   r/   r,   r0   r1   r1   r2   test_neg_inf.   s$   





r7   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)Z	geometricr   r   )	r   r'   r(   Zroute_through_arrayr*   r   r4   sqrtr   )r0   Zcostr1   r1   r2   
test_routeJ   s   
r9   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-   r1   r1   r2   test_no_diagonal]   s&   
	r:   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   r1   .0ir1   r1   r2   
<listcomp>|   s    z test_offsets.<locals>.<listcomp>
   c                 S   s   g | ]}d | fqS r;   r1   r<   r1   r1   r2   r?   |   s    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,   r1   r1   r2   test_offsets{   s$   &	rJ   shape)d   rL   )r   r   rE      r   c                 C   s   t |  d S )N)_test_randomrK   r1   r1   r2   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 sHw   Y  ||\}} fd	dtdD D ]}|| q_|  ||| |D ]}|| qs|||fS )
Nr   r   c                    &   g | ]}t jt   tqS r1   r4   randomrandlenastypeintr<   rO   r1   r2   r?          z _test_random.<locals>.<listcomp>r   r
   Tr   c                    rQ   r1   rR   r<   rO   r1   r2   r?      rX   )r4   rS   rT   rV   float32rU   rW   rH   r   r'   r(   r)   r+   r,   _reset)	rK   r*   ZstartsZendsr.   r/   rA   pointendr1   rO   r2   rN      s(   



rN   )numpyr4   Zskimage.graph.mcpgraphr(   Zskimage._shared.testingr   r   r   Zskimage._shared._warningsr   rS   seedZonesrY   r*   r'   r3   r7   r9   r:   rJ   rP   rN   r1   r1   r1   r2   <module>   s"    
