def test_graph_add_vertex_fail(): grappy = Graph() with pytest.raises(TypeError) as excinfo: grappy.add_vertex() actual = str(excinfo.value) expected = "add_vertex() missing 1 required positional argument: 'value'" assert actual == expected
def test_add_node_returns_vertex(): graph = Graph() vertex = graph.add_node("spam") assert isinstance(vertex, Vertex)
def test_size_two(): g = Graph() g.add_node("spam") g.add_node("eggs") actual = g.size() expected = 2 assert actual == expected
def test_graph_get_nodes(): grappy = Graph() vert_1 = grappy.add_vertex('A') vert_2 = grappy.add_vertex('B') actual = str(grappy.get_nodes()) expected = f'dict_keys({[vert_1, vert_2]})' assert actual == expected
def test_add_edge_no_weight(): g = Graph() sv = g.add_node("spam") ev = g.add_node("eggs") ret_val = g.add_edge(sv, ev) assert ret_val is None
def test_add_node(): graph = Graph() expected_value = 'noodle' actual = graph.add_node('noodle') assert actual.value == expected_value
def test_not_connected(): g = Graph() pandora = g.add_node("Pandora") arendelle = g.add_node("Arendelle") assert g.connected(pandora, arendelle) is False assert g.connected(arendelle, pandora) is False
def test_add_node2(): graph = Graph() graph.add_node("spam") actual = graph.get_nodes() expected = 1 assert len(actual) == expected assert isinstance(actual[0], Vertex) assert actual[0].value == "spam"
def test_size_empty(): graph = Graph() expected = 0 actual = graph.size() assert actual == expected
def test_add_node_return_has_correct_value(): graph = Graph() expected = "spam" # a vertex's value that comes back actual = graph.add_node("spam").value assert actual == expected
def test_get_neighbors_none(): graph = Graph() banana = graph.add_node("banana") neighbors = graph.get_neighbors(banana) assert len(neighbors) == 0
def test_add_edge_interloper_end(): graph = Graph() end = Vertex("end") start = graph.add_node("start") with pytest.raises(KeyError): graph.add_edge(start, end)
def test_size_one(): graph = Graph() graph.add_node("spam") expected = 1 actual = graph.size() assert actual == expected
def test_depth_traversal_two(): graph = Graph() city = graph.add_node('Boston') town = graph.add_node('Seattle') place = graph.add_node('LA') graph.add_edge(city, town, 82) graph.add_edge(town, place, 90) graph.add_edge(city, place, 42) actual = depth_traversal(city, graph) expected = [city, place, town] assert actual == expected
def test_get_nodes(): g = Graph() g.add_node("spam") g.add_node("eggs") actual = g.get_nodes() expected = 2 assert len(actual) == expected assert isinstance(actual[0], Vertex) assert isinstance(actual[1], Vertex) assert actual[0].value == "spam" assert actual[1].value == "eggs"
def test_get_neighbors(): graph = Graph() eggs = graph.add_node('eggs') chicken = graph.add_node('chicken') graph.add_edge(eggs, chicken, 10) neighbors = graph.get_neighbors(eggs) assert chicken in neighbors
def test_size_graph(): graph = Graph() graph.add_node("horse") graph.add_node("lamb") actual = graph.size() expected = 2 assert actual == expected
def test_one_way_connected(): g = Graph() pandora = g.add_node("Pandora") arendelle = g.add_node("Arendelle") g.add_edge(pandora, arendelle) assert g.connected(pandora, arendelle) is True assert g.connected(arendelle, pandora) is False
def test_graph_get_neighbors(): grappy = Graph() vert_1 = grappy.add_vertex('A') vert_2 = grappy.add_vertex('B') grappy.add_edge(vert_1, vert_2) actual = grappy.get_neighbors(vert_1) expected = [(vert_2, 1)] assert actual == expected
def test_size_two(): graph = Graph() graph.add_node("spam") graph.add_node("bacon") expected = 2 actual = graph.size() assert actual == expected
def test_get_nodes(): graph = Graph() graph.add_node("banana") graph.add_node("apple") expected = 2 actual = len(graph.get_nodes()) assert actual == expected
def test_add_edge_sunny(): graph = Graph() start = graph.add_node("start") end = graph.add_node("end") graph.add_edge(start, end) # no fail means a pass # can be more explicit if you like try: graph.add_edge(start, end) except KeyError: pytest.fail("KeyError should not be thrown")
def test_add_edge_with_weight(): graph = Graph() start = graph.add_node("start") end = graph.add_node("end") weight = 10 graph.add_edge(start, end, weight)
def test_get_neighbors_returns_edges_with_custom_weight(): graph = Graph() banana = graph.add_node("banana") apple = graph.add_node("apple") graph.add_edge(apple, banana, 44) neighbors = graph.get_neighbors(apple) neighbor_edge = neighbors[0] assert neighbor_edge.weight == 44
def test_get_n_solo(): g = Graph() sv = g.add_node("spam") g.add_edge(sv, sv) neighbors = g.get_neighbors(sv) assert len(neighbors) == 1 se = neighbors[0] assert se.vertex.value == "spam" assert se.weight == 0
def test_get_neighbors(): g = Graph() sv = g.add_node("spam") ev = g.add_node("eggs") g.add_edge(sv, ev, 5) neighbors = g.get_neighbors(sv) assert len(neighbors) == 1 se = neighbors[0] assert se.vertex.value == "eggs" assert se.weight == 5
def test_get_neighbors_returns_edges_with_default_weight(): graph = Graph() banana = graph.add_node("banana") apple = graph.add_node("apple") graph.add_edge(apple, banana) neighbors = graph.get_neighbors(apple) actual = neighbors[0].weight expected = 0 assert actual == expected
def test_get_neighbors_returns_edges(): graph = Graph() banana = graph.add_node("banana") apple = graph.add_node("apple") graph.add_edge(apple, banana) neighbors = graph.get_neighbors(apple) assert len(neighbors) == 1 neighbor = neighbors[0] assert isinstance(neighbor, Edge) assert neighbor.vertex.value == 'banana'
def test_empty_grapgh(): g = Graph() actual = g.get_vertices() expected = None assert actual == expected
def test_one_vertex(): g = Graph() g.add_vertex('20') actual = g.get_vertices() expected = ['20'] assert actual == expected