def main(): """main: Example case for finding longest and shortest path """ node_0 = WeightedNode(0, [1, 4], {(0, 1): 1, (0, 4): 11}) node_1 = WeightedNode(1, [2], {(1, 2): 2}) node_2 = WeightedNode(2, [3], {(2, 3): 3}) node_3 = WeightedNode(3, [], {}) node_4 = WeightedNode(4, [5], {(4, 5): 14}) node_5 = WeightedNode(5, [3], {(5, 3): 12}) graph = WeightedGraph([node_0, node_1, node_2, node_3, node_4, node_5]) print('The longest path is {0}'.format(graph.longest_path(0, 3))) print('The shortest path is {0}'.format(graph.shortest_path(0, 3)))
def test_shortest_path(self): """test_shortest_path: Test that the shortest math is correctly generated using the '_dijkstra' function """ node_0 = WeightedNode(0, [1, 4], {(0, 1): 1, (0, 4): 11}) node_1 = WeightedNode(1, [2], {(1, 2): 2}) node_2 = WeightedNode(2, [3], {(2, 3): 3}) node_3 = WeightedNode(3, [], {}) node_4 = WeightedNode(4, [5], {(4, 5): 14}) node_5 = WeightedNode(5, [3], {(5, 3): 12}) graph = WeightedGraph([node_0, node_1, node_2, node_3, node_4, node_5]) self.assertEqual(graph.shortest_path(0, 3), 'Path: [0, 1, 2, 3]\nDistance traveled: 6') node_0 = WeightedNode(5, [11, 9], {(5, 11): 4, (5, 9): 1}) node_1 = WeightedNode(11, [2, 9, 10], {(11, 2): 6, (11, 9): 2, (11, 10): 9}) node_2 = WeightedNode(2, [5], {(2, 5): 2}) node_3 = WeightedNode(7, [8, 11], {(7, 8): 2, (7, 11): 5}) node_4 = WeightedNode(8, [9], {(8, 9): 5}) node_5 = WeightedNode(9, [2], {(9, 2): 4}) node_6 = WeightedNode(3, [8, 10], {(3, 8): 2, (3, 10): 7}) node_7 = WeightedNode(10, [9], {(10, 9): 4}) graph = WeightedGraph([node_0, node_1, node_2, node_3, node_4, node_5, node_6, node_7]) self.assertEqual(graph.shortest_path(5, 9), 'Path: [5, 9]\nDistance traveled: 1')