Ejemplo n.º 1
0
def test_dijkstra():
    from simple_graph import SimpleGraph
    new_graph = SimpleGraph()
    new_graph.graph = {'A': {'B': 5, 'C': 20},
                       'B': {'D': 5, 'E': 3},
                       'D': {},
                       'E': {'F': 13},
                       'C': {'F': 16},
                       'F': {'A': 100},
                       }
    distance, path = new_graph.dijkstra('A', 'F')
    assert distance == 21
    assert path == ['A', 'B', 'E', 'F']
Ejemplo n.º 2
0
def test_bft_cyclic():
    from simple_graph import SimpleGraph
    new_graph = SimpleGraph()
    new_graph.graph = {'A': {'B': 10, 'C': 20},
                       'B': {'D': 5, 'E': 3},
                       'D': {},
                       'E': {'F': 13},
                       'C': {'F': 16},
                       'F': {'A': 100},
                       }
    visited = new_graph.bft('A')
    keys = list(new_graph.graph.keys())
    for val in visited:
        assert val in keys
Ejemplo n.º 3
0
def test_depth_first_traversal():
    from simple_graph import SimpleGraph
    new_graph = SimpleGraph()
    new_graph.graph = {'A': {'B': 10, 'C': 20},
                       'B': {'D': 5, 'E': 3},
                       'D': {},
                       'E': {'F': 13},
                       'C': {'F': 16},
                       'F': {},
                       }
    visited = new_graph.dft('A')
    keys = list(new_graph.graph.keys())
    for val in visited:
        assert val in keys
Ejemplo n.º 4
0
def test_adjacent():
    from simple_graph import SimpleGraph
    new_graph = SimpleGraph()
    new_graph.graph = {'A': {'A': 10, 'B': 25}, 'B': {}, 'C': {}}
    assert new_graph.adjacent('A', 'B') is True
    assert new_graph.adjacent('A', 'C') is False
Ejemplo n.º 5
0
def test_neighbors_error():
    from simple_graph import SimpleGraph
    new_graph = SimpleGraph()
    new_graph.graph = {'A': {'B': 15}}
    with pytest.raises(KeyError):
        new_graph.neighbors('E')
Ejemplo n.º 6
0
def test_neighbors():
    from simple_graph import SimpleGraph
    new_graph = SimpleGraph()
    new_graph.graph = {'A': {'B': 15}}
    assert new_graph.neighbors('A') == ['B']
Ejemplo n.º 7
0
def test_has_node():
    from simple_graph import SimpleGraph
    new_graph = SimpleGraph()
    new_graph.graph = {'A': {'A': 15}}
    assert new_graph.has_node('A') is True
    assert new_graph.has_node('B') is False
Ejemplo n.º 8
0
def test_del_edge_key_error():
    from simple_graph import SimpleGraph
    new_graph = SimpleGraph()
    new_graph.graph = {'A': {'A': 10, 'B': 25}}
    with pytest.raises(KeyError):
        new_graph.del_edge('G', 'C')
Ejemplo n.º 9
0
def test_del_edge_val_error():
    from simple_graph import SimpleGraph
    new_graph = SimpleGraph()
    new_graph.graph = {'A': {'A': 10, 'B': 25}}
    with pytest.raises(ValueError):
        new_graph.del_edge('A', 'E')
Ejemplo n.º 10
0
def test_del_edge():
    from simple_graph import SimpleGraph
    new_graph = SimpleGraph()
    new_graph.graph = {'A': {'A': 10, 'B': 25}}
    new_graph.del_edge('A', 'B')
    assert new_graph.graph == {'A': {'A': 10}}
Ejemplo n.º 11
0
def test_nodes():
    from simple_graph import SimpleGraph
    new_graph = SimpleGraph()
    new_graph.graph = {'A': ['A', 'B', 'C']}
    assert new_graph.nodes() == ['A']
Ejemplo n.º 12
0
def test_adjacent_error():
    from simple_graph import SimpleGraph
    new_graph = SimpleGraph()
    new_graph.graph = {'A': {'A': 10, 'B': 25}, 'B': {}}
    with pytest.raises(KeyError):
        new_graph.adjacent('A', 'E')