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'
示例#29
0
def test_empty_grapgh():
    g = Graph()
    actual = g.get_vertices()
    expected = None
    assert actual == expected
示例#30
0
def test_one_vertex():
    g = Graph()
    g.add_vertex('20')
    actual = g.get_vertices()
    expected = ['20']
    assert actual == expected