def test_create_directed_graph(self): """Create a graph.""" graph = Graph(is_directed=True) graph.add_vertex('A') graph.add_vertex('B') graph.add_vertex('C') graph.add_edge('A', 'B') graph.add_edge('A', 'C') graph.add_edge('B', 'C') self.assertEqual(len(graph.get_vertices()), 3) self.assertEqual(len(graph.get_neighbors('A')), 2) self.assertEqual(len(graph.get_neighbors('B')), 1) self.assertEqual(len(graph.get_neighbors('C')), 0)
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_get_neighbors(): graph = Graph() banana = graph.add_node('banana') apple = graph.add_node('apple') graph.add_edge(apple, banana, 44) neighbors = graph.get_neighbors(apple) assert len(neighbors) == 1 neighbor_edge = neighbors[0] assert neighbor_edge.vertex.value == 'banana' assert neighbor_edge.weight == 44