def make_weighted_graph(make_nodes):
    nodes = make_nodes[:6]
    g = Graph(nodes)
    g.add_edges(nodes[0], nodes[1], 7)
    g.add_edges(nodes[0], nodes[2], 9)
    g.add_edges(nodes[0], nodes[5], 14)
    g.add_edges(nodes[1], nodes[2], 10)
    g.add_edges(nodes[1], nodes[3], 15)
    g.add_edges(nodes[2], nodes[3], 11)
    g.add_edges(nodes[2], nodes[5], 2)
    g.add_edges(nodes[3], nodes[4], 6)
    g.add_edges(nodes[4], nodes[5], 9)
    return g
def test_adjacent():
    _graph = Graph()
    _node1 = Node(4)
    _node2 = Node(5)
    _node3 = Node(6)
    _node4 = Node(7)
    _graph.add_edges(_node1, _node2, 1)
    _graph.add_edges(_node3, _node4, 1)
    _graph.add_edges(_node2, _node4, 1)
    assert _graph.adjacent(_node1, _node2) == True
    assert _graph.adjacent(_node3, _node4) == True
    assert _graph.adjacent(_node2, _node4) == True
    assert _graph.adjacent(_node1, _node4) == False
def make_graph(make_nodes):
    nodes = make_nodes
    g = Graph(nodes)
    g.add_edges(nodes[0], nodes[1], 1)
    g.add_edges(nodes[0], nodes[6], 1)
    g.add_edges(nodes[0], nodes[7], 1)
    g.add_edges(nodes[1], nodes[2], 1)
    g.add_edges(nodes[1], nodes[5], 1)
    g.add_edges(nodes[2], nodes[3], 1)
    g.add_edges(nodes[2], nodes[4], 1)
    g.add_edges(nodes[7], nodes[8], 1)
    g.add_edges(nodes[8], nodes[9], 1)
    return g
def test_del_edge():
    _graph = Graph()
    _node1 = Node(4)
    _node2 = Node(5)
    _node3 = Node(6)
    _node4 = Node(7)
    _graph.add_edges(_node1, _node2, 1)
    _graph.add_edges(_node3, _node4, 1)
    _graph.add_edges(_node2, _node4, 1)
    _graph.del_edge(_node2, _node4)
    assert _graph.graph == {
        'n0': {
            'n1': 1
        },
        'n1': {
            'n0': 1
        },
        'n2': {
            'n3': 1
        },
        'n3': {
            'n2': 1
        }
    }
    assert _graph.graph == {
        'n0': {
            'n1': 1
        },
        'n1': {
            'n0': 1
        },
        'n2': {
            'n3': 1
        },
        'n3': {
            'n2': 1
        }
    }
def test_neighbours():
    _graph = Graph()
    _node1 = Node(4)
    _node2 = Node(5)
    _node3 = Node(6)
    _node4 = Node(7)
    _graph.add_edges(_node1, _node2, 1)
    _graph.add_edges(_node3, _node4, 1)
    _graph.add_edges(_node2, _node4, 1)
    _graph.add_edges(_node1, _node2, 2)
    _graph.add_edges(_node3, _node4, 2)
    _graph.add_edges(_node2, _node4, 2)
    assert _graph.neighbours(_node2) == ['n0', 'n3']
def test_add_edge():
    graph = Graph()
    graph.add_edges(Node(4), Node(5), 1)
    assert graph.graph == {'n0': {'n1': 1}, 'n1': {'n0': 1}}