def make_graph_three():
    my_graph = WeightedGraph()
    my_graph.add_node('a')
    my_graph.add_node('b')
    my_graph.add_node('c')
    my_graph.add_edge('a', 'c')
    my_graph.add_edge('b', 'a')
    return my_graph
Exemple #2
0
    def test_add_node(self):
        """test_add_node: Test adding a new node
        """
        node_1 = WeightedNode(1, [2], {(1, 2): 2})
        node_2 = WeightedNode(2, [1], {(2, 1): 2})
        node_3 = WeightedNode(3, [1, 2], {(3, 1): 2, (3, 2): 4})
        graph = WeightedGraph([node_1, node_2])
        graph.add_node(node_3)

        self.assertEqual(graph.vertices, set({1, 2, 3}))
        self.assertEqual(graph.edges, {1: set({2}), 2: set({1}), 3: set({1, 2})})
        self.assertEqual(graph.weights, {(1, 2): 2, (2, 1): 2, (3, 1): 2, (3, 2): 4})
def make_graph_no_edges():
    my_graph = WeightedGraph()
    my_graph.add_node('a')
    my_graph.add_node('b')
    my_graph.add_node('c')
    return my_graph

def lowest_cost_node(costs, visited):
    lowest_cost = math.inf
    lowest_cost_node = None
    for node in costs:
        cost = costs[node]
        if node not in visited and cost < lowest_cost:
            lowest_cost = cost
            lowest_cost_node = node
    return lowest_cost_node


g = WeightedGraph()

g.add_node('A')
g.add_node('B')
g.add_node('C')
g.add_node('D')
g.add_node('E')
g.add_node('F')

g.add_edge('A', 'B', 5)
g.add_edge('A', 'C', 2)
g.add_edge('B', 'C', 8)
g.add_edge('B', 'D', 4)
g.add_edge('B', 'E', 2)
g.add_edge('C', 'E', 7)
g.add_edge('D', 'E', 6)
g.add_edge('D', 'F', 3)
g.add_edge('E', 'F', 1)