Python/graphs/tests/test_graphs_floyd_warshall.py
Ajmera, Mahita SI/HZR-IDSA e4cb102d50 cleaning up
2024-10-17 10:00:24 +02:00

58 lines
1.3 KiB
Python

import pytest
from graphs.graphs_floyd_warshall import floyd_warshall
def test_no_edges():
graph = [
[0, float("inf"), float("inf")],
[float("inf"), 0, float("inf")],
[float("inf"), float("inf"), 0],
]
expected = [
[0, float("inf"), float("inf")],
[float("inf"), 0, float("inf")],
[float("inf"), float("inf"), 0],
]
dist, _ = floyd_warshall(graph, 3)
assert dist == expected
def test_example_input():
num_vertices = 3
graph = [
[float("inf"), float("inf"), float("inf")],
[float("inf"), float("inf"), float("inf")],
[float("inf"), float("inf"), float("inf")],
]
for i in range(num_vertices):
graph[i][i] = 0.0
graph[0][1] = 2
graph[1][0] = 1
expected = [
[0, 2, float("inf")],
[1, 0, float("inf")],
[float("inf"), float("inf"), 0],
]
dist, _ = floyd_warshall(graph, num_vertices)
assert dist == expected
if __name__ == "__main__":
pytest.main()
def test_unreachable_vertices():
graph = [
[0, 1, float("inf")],
[float("inf"), 0, 2],
[float("inf"), float("inf"), 0],
]
expected = [[0, 1, 3], [float("inf"), 0, 2], [float("inf"), float("inf"), 0]]
dist, _ = floyd_warshall(graph, 3)
assert dist == expected
if __name__ == "__main__":
pytest.main()