o
    3ήc[                     @   s"   d dl Z d dlZG dd dZdS )    Nc                   @   sX   e Zd Zedd Zdd Zdd Zdd Zd	d
 Zdd Z	dd Z
dd Zdd ZdS )	TestFloydc                 C   s   d S )N )clsr   r   Z/tmp/pip-target-vg8gfxp4/lib/python/networkx/algorithms/shortest_paths/tests/test_dense.pysetup_class   s   zTestFloyd.setup_classc                 C   s  t  }|g d t |\}}|d d dksJ |d d dks&J |dddd	d
ddddddddddddddddddddddddddksPJ | }d|d d d< t |\}}|d d dksmJ t  }|g d t |\}}|d d dksJ t |}|d d dksJ t  }|g d t |\}}td}|ddddddd||ddd|ddd|||d dksJ |dddd!ddid"dd#d$ksJ d S )%N
)su
   )r   x   )r	   v   )r	   r      )r   yr   )r   r	      )r   r   r   )r   r   r   )r   r      )r   r      r   r   	   r	   r      r      r   )r   r   r   r	   r   r   r      r      r         r   weight)
)r   r	   )r   r   )r	   r   )r	   r   )r   r   r   r	   )r   r   )r   r   )r   r   )r   r   ))r   r         @)r   r   r   )r   r         @)r   r	          @infr   r   g      @)r   r   r   r	   r   )r   r	   r   r   )r   r   r   r	   )r	   r   r   r   )r   r   r	   r   r   )r   r   r   )nxDiGraphadd_weighted_edges_from'floyd_warshall_predecessor_and_distanceto_undirectedadd_edges_fromfloyd_warshallfloat)selfXGpathdistGGGr    r   r   r   ,test_floyd_warshall_predecessor_and_distance   sV   

z6TestFloyd.test_floyd_warshall_predecessor_and_distancec                 C   s   t t> t }|g d t|\}}tdd|}|g dks'J tdd|}|g ks4J tdd| W d    d S 1 sFw   Y  d S )Nr   r   r   )r   r   r	   r   12)pytestraisesKeyErrorr!   r"   r#   r$   reconstruct_path)r)   r*   predecessors_r+   r   r   r   test_reconstruct_path\   s   "zTestFloyd.test_reconstruct_pathc                 C   sT   t t d\}}|d d dksJ |d d dksJ |d d dks(J d S )Nr   r   r   r   r   )r!   r$   cycle_graph)r)   r+   r,   r   r   r   
test_cyclex   s   zTestFloyd.test_cyclec              	   C   sp   t  }|g dg dg dg dg dg dg t |\}}|d d d	ks,J |d d d
ks6J d S )Nr   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r
   r   r   r   r   r!   Graphr#   r$   )r)   XG3r+   r,   r   r   r   test_weighted~   s   &zTestFloyd.test_weightedc                 C   s|   t  }|g dg dg dg dg dg dg dg dg t |\}}|d	 d
 dks2J |d	 d
 dks<J d S )Nr;   )r   r   r   r<   )r   r   r   r=   )r   r   r   )r   r   r   )r   r   r   r   r   r   r   r>   r)   XG4r+   r,   r   r   r   test_weighted2   s   zTestFloyd.test_weighted2c                 C   s   t  }|ddddifddddifddddifddddifddddifddddifdd	ddifd	dddifg t j|dd
\}}|d d dksLJ |d d dksVJ d S )Nr   r   heavyr   r   r   r   r   r   )r   )r!   r?   r&   r$   rB   r   r   r   test_weight_parameter   s   zTestFloyd.test_weight_parameterc                 C   s   t  }|g d t |\}}|D ]}|| | dks J q| }d|d d d< t |\}}|D ]}d|| |< q6d S )Nr   r   r   r	   r   r   )r!   r"   r#   r$   r%   )r)   r*   r+   r,   r	   r-   r   r   r   test_zero_distance   s   zTestFloyd.test_zero_distancec                 C   sv   t  }g d}|| t |}|d d dksJ t  }|d || t |}|d d dks9J d S )N))r   r   )r   r   )r   r   r   )r   r   r   )r   r   r   r   ir   r   irK   )r!   r"   r#   r'   MultiDiGraphappend)r)   r.   edgesr,   r   r   r   test_zero_weight   s   




zTestFloyd.test_zero_weightN)__name__
__module____qualname__classmethodr   r/   r8   r:   rA   rD   rF   rG   rO   r   r   r   r   r      s    
Q	r   )r2   networkxr!   r   r   r   r   r   <module>   s    