def test_remove_node(): node1 = Node(1) node2 = Node(2) test_net = Network({1: node1, 2: node2}) # remove an existing node assert len(test_net.nodes()) is 2 test_net.remove_node(1) assert len(test_net.nodes()) is 1 assert node2.node_id in test_net.network_dict # remove a node that doesn't exist test_net.remove_node(3) assert len(test_net.nodes()) is 1 assert node2.node_id in test_net.network_dict
def test_shortest_path(): test_node1 = Node(node_id=1, adjacency_dict={2: {'weight': 10, 'status': True}}) test_node2 = Node(node_id=2, adjacency_dict={3: {'weight': 5, 'status': True}}) test_node3 = Node(node_id=3, adjacency_dict={4: {'weight': 3, 'status': True}}) test_node4 = Node(node_id=4, adjacency_dict={1: {'weight': 6, 'status': True}}) test_node5 = Node(node_id=5, adjacency_dict={1: {'weight': 1, 'status': True}, 3: {'weight': 2, 'status': True}}) test_net = Network({test_node1.node_id: test_node1, test_node2.node_id: test_node2, test_node3.node_id: test_node3, test_node4.node_id: test_node4, test_node5.node_id: test_node5}) dijkstra = Dijkstra(graph=test_net, source=test_node1.node_id) path, weight = dijkstra.shortest_path(destination=test_node3.node_id) assert path == [1, 5, 3] assert weight is 3 test_net.remove_node(test_node5.node_id) dijkstra = Dijkstra(graph=test_net, source=test_node1.node_id) path, weight = dijkstra.shortest_path(destination=test_node3.node_id) assert path == [1, 4, 3] assert weight is 9 test_net.remove_node(test_node4.node_id) dijkstra = Dijkstra(graph=test_net, source=test_node1.node_id) path, weight = dijkstra.shortest_path(destination=test_node3.node_id) assert path == [1, 2, 3] assert weight is 15 test_net.remove_node(test_node2.node_id) dijkstra = Dijkstra(graph=test_net, source=test_node1.node_id) path, weight = dijkstra.shortest_path(destination=test_node3.node_id) assert path is None assert weight == float('inf')
node_8.node_id: node_8, node_9.node_id: node_9, node_10.node_id: node_10 }) # demonstrates __str__() function works print(network_1) # demonstrates remove_edge function works print('\t---REMOVE EDGE---') network_1.remove_edge(1, 2) print(network_1) # demonstrates remove_node function works print('\t---REMOVE NODE---') network_1.remove_node(3) print(network_1) # demonstrates add edge function works print('\t---ADD EDGE---') network_1.add_edge(1, 2, 15) print(network_1) # demonstrates the add node function works print('\t---ADD NODE---') network_1.add_node( Node( 11, 'K', { 1: { 'weight': 3, 'status': True