From 079ffec6847f274d3f18046d67ac7bca638c2a00 Mon Sep 17 00:00:00 2001 From: Brandon Rodriguez <brodriguez8774@gmail.com> Date: Tue, 3 Dec 2019 19:58:00 -0500 Subject: [PATCH] Update main to include a Directed, Weighted graph example --- main.py | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 55 insertions(+), 4 deletions(-) diff --git a/main.py b/main.py index 9cc4075..4750333 100644 --- a/main.py +++ b/main.py @@ -40,12 +40,22 @@ def test_graph(): node_2 = graph.nodes.create('B') node_3 = graph.nodes.create('C') node_4 = graph.nodes.create('D') + node_5 = graph.nodes.create('E') + node_6 = graph.nodes.create('F') # Connect nodes. - graph.nodes.connect(node_1, node_2, 'a') - graph.nodes.connect(node_2, node_3, 'b') - graph.nodes.connect(node_4, node_3, 'c') - graph.nodes.connect(node_4, node_1, 'd') + edge_1 = graph.nodes.connect(node_1, node_2) + edge_2 = graph.nodes.connect(node_2, node_3) + edge_3 = graph.nodes.connect(node_3, node_5) + edge_4 = graph.nodes.connect(node_1, node_4) + edge_5 = graph.nodes.connect(node_4, node_6) + edge_6 = graph.nodes.connect(node_5, node_6) + + # Set unique weights. + edge_2.set_weight(5) + edge_3.set_weight(15) + edge_5.set_weight(7) + edge_6.set_weight(2) # Display graph mapping. graph_title = 'Custom Graph Library - Graph Visual Mapping<br>Test Graph' @@ -131,6 +141,7 @@ def graph_visual_mapping_examples(): draw_random_nodes_large() draw_directed_graph() draw_state_machine() + draw_directed_weighted_graph() def draw_10_chained_nodes(): @@ -382,6 +393,46 @@ def draw_state_machine(): logger.info('') +def draw_directed_weighted_graph(): + """ + Draws a state machine graph with 4 nodes. + """ + logger.info('') + logger.info('Creating and displaying Directed, Weighted Graph...') + + # Create graph. + graph = DirectedWeightedGraph() + + # Create some nodes. + node_1 = graph.nodes.create('A') + node_2 = graph.nodes.create('B') + node_3 = graph.nodes.create('C') + node_4 = graph.nodes.create('D') + node_5 = graph.nodes.create('E') + node_6 = graph.nodes.create('F') + + # Connect nodes. + edge_1 = graph.nodes.connect(node_1, node_2) + edge_2 = graph.nodes.connect(node_2, node_3) + edge_3 = graph.nodes.connect(node_3, node_5) + edge_4 = graph.nodes.connect(node_1, node_4) + edge_5 = graph.nodes.connect(node_4, node_6) + edge_6 = graph.nodes.connect(node_5, node_6) + + # Set unique weights. + edge_2.set_weight(5) + edge_3.set_weight(15) + edge_5.set_weight(7) + edge_6.set_weight(2) + + # Display graph mapping. + graph_title = 'Custom Graph Library - Graph Visual Mapping<br>Directed, Weighted Graph' + graph.display.draw_graph_map(graph_title) + + logger.info('Finished displaying "Directed, Weighted Graph".') + logger.info('') + + def await_user_input(): """ Function pause output so user can read text. -- GitLab