Esempio n. 1
0
def test_nodes():
    node1 = Node(1, adjacency_dict={2: {'weight': 3, 'status': True}})
    node2 = Node(2, adjacency_dict={1: {'weight': 3, 'status': True}})
    test_net = Network({1: node1, 2: node2})

    # test graph with 2 active nodes
    assert len(test_net.nodes()) is 2
    assert len(test_net.nodes()) is len(test_net.network_dict)
    assert node1.node_id in test_net.nodes()
    assert node2.node_id in test_net.nodes()

    # test edge deactivation
    test_net.mark_edge_inactive(node1.node_id, node2.node_id)
    assert len(test_net.nodes()) is 2
    assert len(test_net.nodes()) is len(test_net.network_dict)
    assert node1.node_id in test_net.nodes()
    assert node2.node_id in test_net.nodes()

    # deactivate 1 node and test
    test_net.mark_node_inactive(node1.node_id)
    assert len(test_net.nodes()) is 1
    assert len(test_net.nodes()) is not len(test_net.network_dict)
    assert len(test_net.network_dict) is 2
    assert node1.node_id not in test_net.nodes()
    assert node2.node_id in test_net.nodes()

    # deactivate last node
    test_net.mark_node_inactive(node2.node_id)
    assert not test_net.nodes()
    assert len(test_net.nodes()) is not len(test_net.network_dict)
    assert len(test_net.network_dict) is 2
    assert node1.node_id not in test_net.nodes()
    assert node2.node_id not in test_net.nodes()
Esempio n. 2
0
def test_mark_edge_inactive():
    node1 = Node(1, adjacency_dict={2: {'weight': 3, 'status': True}})
    node2 = Node(2, adjacency_dict={1: {'weight': 3, 'status': True}})
    test_net = Network({1: node1, 2: node2})

    # test existing nodes with shared, active edge
    test_net.mark_edge_inactive(node1.node_id, node2.node_id)
    assert not node1.adjacency_dict[node2.node_id]['status']
    assert not node2.adjacency_dict[node1.node_id]['status']
    assert not node1.get_adjacents()
    assert not node2.get_adjacents()
    assert len(test_net.network_dict) is 2
    assert len(test_net.network_dict) is len(test_net.nodes())

    # test existing nodes with shared, inactive edge
    test_net.mark_edge_inactive(node1.node_id, node2.node_id)
    assert not node1.adjacency_dict[node2.node_id]['status']
    assert not node2.adjacency_dict[node1.node_id]['status']
    assert not node1.get_adjacents()
    assert not node2.get_adjacents()
    assert len(test_net.network_dict) is 2
    assert len(test_net.network_dict) is len(test_net.nodes())

    # test existing nodes with shared, inactive edge
    test_net.add_node(Node(3))
    test_net.mark_edge_inactive(node1.node_id, 3)
    assert not node1.adjacency_dict[node2.node_id]['status']
    assert not node2.adjacency_dict[node1.node_id]['status']
    assert not node1.get_adjacents()
    assert not node2.get_adjacents()
    assert len(test_net.network_dict) is 3
    assert len(test_net.network_dict) is len(test_net.nodes())

    # test with nonexistent node
    test_net.add_node(Node(3))
    test_net.mark_edge_inactive(node1.node_id, 4)
    assert not node1.adjacency_dict[node2.node_id]['status']
    assert not node2.adjacency_dict[node1.node_id]['status']
    assert not node1.get_adjacents()
    assert not node2.get_adjacents()
    assert len(test_net.network_dict) is 3
    assert len(test_net.network_dict) is len(test_net.nodes())
init_tester.mark_node_inactive(1)
init_tester.mark_node_inactive(1)
init_tester.mark_node_inactive(6)

init_tester.mark_node_inactive(6)

print(init_tester)

print('\t---MARK NODE ACTIVE TESTS---')
init_tester.mark_node_active(1)
init_tester.mark_node_active(1)
init_tester.mark_node_active(6)
print(init_tester)

print('\t---MARK EDGE INACTIVE TESTS---')
init_tester.mark_edge_inactive(1, 5)
init_tester.mark_edge_inactive(1, 5)
init_tester.mark_edge_inactive(3, 5)
init_tester.mark_edge_inactive(1, 6)
print(init_tester)

print('\t---MARK EDGE ACTIVE TESTS---')
init_tester.mark_edge_active(1, 5)
init_tester.mark_edge_active(1, 5)
init_tester.mark_node_inactive(3)
init_tester.mark_edge_active(1, 3)
init_tester.mark_edge_active(3, 5)
print(init_tester)

print('\t---BREAK CONNECTIVITY VIA STATUS---')
init_tester.mark_edge_inactive(1, 2)