def test_get_vertices(): g = Graph() vertex_apple = g.add('apple') vertex_banana = g.add('banana') vertex_cake = g.add('cake') expected = g.get_vertices() assert expected == ['apple', 'banana', 'cake']
def test_edge(): g = Graph() vertex_apple = g.add('apple') vertex_banana = g.add('banana') g.add_edge(vertex_apple, vertex_banana, 3) assert g._graph['apple'] == [('banana', 3)] assert g._graph['banana'] == [('apple', 3)]
def test_size(): g = Graph() vertex_apple = g.add('apple') vertex_banana = g.add('banana') vertex_cake = g.add('cake') expected = g.size() assert expected == 3 vertex_banana = g.add('dog') vertex_cake = g.add('egg') expected = g.size() assert expected == 5
def test_edge_two(): g = Graph() vertex_apple = g.add('apple') vertex_banana = g.add('banana') vertex_cake = g.add('cake') vertex_dog = g.add('dog') vertex_egg = g.add('egg') g.add_edge(vertex_apple, vertex_banana) g.add_edge(vertex_cake, vertex_dog, 2) g.add_edge(vertex_dog, vertex_egg, 4) assert g._graph['apple'] == [('banana', 1)] assert g._graph['banana'] == [('apple', 1)] assert g._graph['dog'] == [('cake', 2), ('egg', 4)]
def test_neighbors(): g = Graph() vertex_apple = g.add('apple') vertex_banana = g.add('banana') vertex_cake = g.add('cake') vertex_dog = g.add('dog') vertex_egg = g.add('egg') vertex_foo = g.add('foo') g.add_edge(vertex_apple, vertex_banana) g.add_edge(vertex_cake, vertex_dog, 2) g.add_edge(vertex_dog, vertex_egg, 4) expected_apple = g.get_neighbors(vertex_apple) expected_dog = g.get_neighbors(vertex_dog) expected_foo = g.get_neighbors(vertex_foo) assert expected_apple == [('banana', 1)] assert expected_dog == [('cake', 2), ('egg', 4)] assert expected_foo == []
def test_neighbors(): g = Graph() vertex_a = g.add('a') vertex_b = g.add('b') vertex_c = g.add('c') vertex_d = g.add('d') vertex_e = g.add('e') vertex_f = g.add('f') vertex_g = g.add('g') vertex_h = g.add('h') g.add_edge(vertex_a, vertex_b) g.add_edge(vertex_a, vertex_c) g.add_edge(vertex_a, vertex_d) g.add_edge(vertex_e, vertex_c) g.add_edge(vertex_e, vertex_d) g.add_edge(vertex_e, vertex_f) g.add_edge(vertex_f, vertex_g) g.add_edge(vertex_h, vertex_g) g.add_edge(vertex_b, vertex_g) actual = g.breadth_first('a') assert actual == []
def test_neighbors_three(): g = Graph() vertex_a = g.add('a') vertex_b = g.add('b') vertex_c = g.add('c') vertex_d = g.add('d') vertex_e = g.add('e') vertex_f = g.add('f') vertex_g = g.add('g') vertex_h = g.add('h') g.add_edge(vertex_a, vertex_b) g.add_edge(vertex_c, vertex_g) g.add_edge(vertex_b, vertex_c) g.add_edge(vertex_b, vertex_d) g.add_edge(vertex_e, vertex_d) g.add_edge(vertex_d, vertex_h) g.add_edge(vertex_f, vertex_h) g.add_edge(vertex_d, vertex_f) g.add_edge(vertex_d, vertex_a) actual = g.depth_first('f') assert actual == ['f', 'h', 'd', 'b', 'a', 'c', 'g', 'e']
def test_route_one_one_stop(): g = Graph() pandora_v = g.add('pandora') arendelle_v = g.add('arendelle') metroville_v = g.add('metroville') monstropolus_v = g.add('monstropolus') naboo_v = g.add('naboo') narnia_v = g.add('narnia') g.add_edge(pandora_v, arendelle_v, 150) g.add_edge(pandora_v, metroville_v, 82) g.add_edge(arendelle_v, metroville_v, 99) g.add_edge(arendelle_v, monstropolus_v, 42) g.add_edge(naboo_v, monstropolus_v, 73) g.add_edge(metroville_v, monstropolus_v, 105) g.add_edge(naboo_v, metroville_v, 26) g.add_edge(naboo_v, narnia_v, 250) g.add_edge(narnia_v, metroville_v, 37) actual = get_edges(g, ['naboo', 'metroville', 'arendelle']) expected = (True, 125) assert actual == expected
def test_fail_one(): g = Graph() pandora_v = g.add('pandora') arendelle_v = g.add('arendelle') metroville_v = g.add('metroville') monstropolus_v = g.add('monstropolus') naboo_v = g.add('naboo') narnia_v = g.add('narnia') g.add_edge(pandora_v, arendelle_v, 150) g.add_edge(pandora_v, metroville_v, 82) g.add_edge(arendelle_v, metroville_v, 99) g.add_edge(arendelle_v, monstropolus_v, 42) g.add_edge(naboo_v, monstropolus_v, 73) g.add_edge(metroville_v, monstropolus_v, 105) g.add_edge(naboo_v, metroville_v, 26) g.add_edge(naboo_v, narnia_v, 250) g.add_edge(narnia_v, metroville_v, 37) actual = get_edges(g, ['pandora', 'naboo', 'narnia', 'naboo']) expected = (False, 0) assert actual == expected
def test_one_node_one_edge(): g = Graph() vertex_apple = g.add('apple') g.add_edge(vertex_apple, vertex_apple) assert g._graph['apple'] == [('apple', 1), ('apple', 1)]
def test_add_vertex(): g = Graph() vertex = g.add('apple') assert 'apple' in g._graph assert vertex assert g._graph['apple'] == []