Exemple #1
0
 def test_dijkstra_all_pair_path_lengths_with_node_removal(self):
     self.graph.remove_node(3)
     lengths = retworkx.digraph_all_pairs_dijkstra_path_lengths(
         self.graph, float)
     expected = {
         0: {
             1: 7.0,
             2: 17.0,
             5: 22.0
         },
         1: {
             0: 19.0,
             2: 10.0,
             5: 15.0
         },
         2: {
             0: 9.0,
             1: 16.0,
             5: 11.0
         },
         4: {
             5: 6.0
         },
         5: {},
     }
     self.assertEqual(expected, lengths)
Exemple #2
0
    def test_vs_dijkstra_all_pairs_with_node_removal(self):
        graph = retworkx.PyDiGraph()
        a = graph.add_node("A")
        b = graph.add_node("B")
        c = graph.add_node("C")
        d = graph.add_node("D")
        e = graph.add_node("E")
        f = graph.add_node("F")
        edge_list = [
            (a, b, 7),
            (c, a, 9),
            (a, d, 14),
            (b, c, 10),
            (d, c, 2),
            (d, e, 9),
            (b, f, 15),
            (c, f, 11),
            (e, f, 6),
        ]
        graph.add_edges_from(edge_list)
        graph.remove_node(d)

        dijkstra_lengths = retworkx.digraph_all_pairs_dijkstra_path_lengths(
            graph, float)

        expected = {k: {**v, k: 0.0} for k, v in dijkstra_lengths.items()}

        result = retworkx.digraph_floyd_warshall(
            graph, float, parallel_threshold=self.parallel_threshold)

        self.assertEqual(result, expected)
Exemple #3
0
 def test_dijkstra_all_pair_path_lengths_graph_no_edges(self):
     graph = retworkx.PyDiGraph()
     graph.add_nodes_from(list(range(1000)))
     expected = {x: {} for x in range(1000)}
     self.assertEqual(
         expected,
         retworkx.digraph_all_pairs_dijkstra_path_lengths(graph, float),
     )
Exemple #4
0
 def test_dijkstra_all_pair_path_lengths(self):
     lengths = retworkx.digraph_all_pairs_dijkstra_path_lengths(
         self.graph, float)
     expected = {
         0: {
             1: 7.0,
             2: 16.0,
             3: 14.0,
             4: 23.0,
             5: 22.0
         },
         1: {
             0: 19.0,
             2: 10.0,
             3: 33.0,
             4: 42.0,
             5: 15.0
         },
         2: {
             0: 9.0,
             1: 16.0,
             3: 23.0,
             4: 32.0,
             5: 11.0
         },
         3: {
             0: 11.0,
             1: 18.0,
             2: 2.0,
             4: 9.0,
             5: 13.0
         },
         4: {
             5: 6.0
         },
         5: {},
     }
     self.assertEqual(expected, lengths)
Exemple #5
0
 def test_dijkstra_all_pair_path_lengths_empty_graph(self):
     graph = retworkx.PyDiGraph()
     self.assertEqual({},
                      retworkx.digraph_all_pairs_dijkstra_path_lengths(
                          graph, float))