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']
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
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
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
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')
def test_neighbors(): from simple_graph import SimpleGraph new_graph = SimpleGraph() new_graph.graph = {'A': {'B': 15}} assert new_graph.neighbors('A') == ['B']
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
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')
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')
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}}
def test_nodes(): from simple_graph import SimpleGraph new_graph = SimpleGraph() new_graph.graph = {'A': ['A', 'B', 'C']} assert new_graph.nodes() == ['A']
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')