def test_get_size(): """test number of vertexes""" graph = Graph() apples = graph.add_vertex('apples') bananas = graph.add_vertex('bananas') assert len(graph) == 2
def test_get_vertices(): # returns collection of all vertices graph = Graph() apples = graph.add_vertex('apples') bananas = graph.add_vertex('bananas') actual = graph.get_vertex() assert len(actual) == 2
def graph(): graph = Graph() graph.add_vertex("apples") graph.add_vertex("bananas") graph.add_vertex("oranges") graph.add_edge("apples", "bananas") graph.add_edge("oranges", "bananas", 5) return graph
def test_add_edge(): graph = Graph() apples = graph.add_vertex('apples') bananas = graph.add_vertex('bananas') graph.add_edge(apples, bananas) assert True, ('will be fully excersized in get neighbors test')
def test_get_neighbors_none(): g = Graph() node_a = g.add_vertex('a') node_b = g.add_vertex('b') node_c = g.add_vertex('c') node_d = g.add_vertex('d') actual = g.get_neighbors(node_a) expected = [] assert actual == expected
def test_get_size(): graph = Graph() test1 = graph.add_vertex('test1') test2 = graph.add_vertex('test2') assert graph.size() == 2
def test_get_vertices(): graph = Graph() test1 = graph.add_vertex('test1') test2 = graph.add_vertex('test2') assert len(graph.get_vertices()) == 2
def test_get_neighbors_1(): g = Graph() node_a = g.add_vertex('a') node_b = g.add_vertex('b') node_c = g.add_vertex('c') node_d = g.add_vertex('d') g.add_edge(node_a, node_b) actual = len(g.get_neighbors(node_a)) expected = 1 assert actual == expected
def test_add_vertex(): graph = Graph() expected = 'test' vertex = graph.add_vertex('test') actual = vertex.value assert actual == expected
def test_add_edge_outsider(): """edge can only be created between two vertexes inside graph""" graph = Graph() insider = graph.add_vertex('insider') outsider = Vertex('outsider') with pytest.raises(KeyError): graph.add_edge(outsider, insider)
def test_add_edge(): graph = Graph() vertex_1 = graph.add_vertex('test1') vertex_2 = graph.add_vertex('test2') assert len(graph.get_neighbors(vertex_1)) == 0 graph.add_edge(vertex_1, vertex_2) assert len(graph.get_neighbors(vertex_1)) == 1
def test_get_neighbors(): graph = Graph() test1 = graph.add_vertex('test1') test2 = graph.add_vertex('test2') graph.add_edge(test1, test2) neighbors = graph.get_neighbors(test1) assert len(neighbors) == 1 neighbor = neighbors[0] assert neighbor.vertex.value == 'test2' assert neighbor.weight == 1
class Test_Builder: def __init__(self): self.maps = Graph() self.A = self.maps.add_vertex('A') self.B = self.maps.add_vertex('B') self.C = self.maps.add_vertex('C') self.D = self.maps.add_vertex('D') self.E = self.maps.add_vertex('E') self.F = self.maps.add_vertex('F') self.G = self.maps.add_vertex('G') self.H = self.maps.add_vertex('H') def build_edges(self): self.maps.add_edge(self.A, self.B) self.maps.add_edge(self.A, self.D) self.maps.add_edge(self.B, self.C) self.maps.add_edge(self.B, self.D) self.maps.add_edge(self.C, self.G) self.maps.add_edge(self.D, self.E) self.maps.add_edge(self.D, self.H) self.maps.add_edge(self.D, self.F) self.maps.add_edge(self.F, self.H) return self.maps
def test_add_edge_raise_error(): graph = Graph() graph.add_vertex("apples") with pytest.raises(KeyError): graph.add_edge("apples", "bananas")
def test_graph_add_vertex_raise_error(): graph = Graph() graph.add_vertex("apples") with pytest.raises(ValueError): graph.add_vertex("apples")
def test_graph_add_vertex(): graph = Graph() actual = str(graph.add_vertex("apples")) expected = "apples" assert actual == expected
return f"{destination} is not in graph" for edge in graph.get_neighbors(origin): found = False print("this is edge", edge) city, price = edge.split(" ") if city == destination: found = True sum += int(price) print("true sum", sum) break if found: print("sum", sum) origin = destination else: sum = 0 break places = original + places return f"{places} {found} ${sum}" if __name__ == "__main__": graph = Graph() graph.add_vertex("Pandora") graph.add_vertex("Narnia") graph.add_vertex("Arendelle") graph.add_vertex("Naboo") graph.add_edge("Narnia", "Naboo", 100) graph.add_edge("Pandora", "Narnia", 100) graph.add_edge("Pandora", "Arendelle", 100) print(get_direct_route(graph, "Naboo", "Narnia", "Pandora"))
def graph_depth_first(self, vertex): if vertex not in self.get_vertices(): return f"{vertex} is not in graph" vertex_stack = Stack() visited_list = [vertex] vertex_stack.push(vertex) while not vertex_stack.isEmpty(): new_vertex = vertex_stack.peek() new_vertex_neighbors = self.get_neighbors(new_vertex) counter = 0 for edge in new_vertex_neighbors: vert, wt = edge.split(" ") if vert not in visited_list: vertex_stack.push(vert) visited_list.append(vert) counter += 1 if counter == 0: vertex_stack.pop() return visited_list Graph.depth_first = graph_depth_first Graph.breadth_first = graph_breadth_first if __name__ == "__main__": graph = Graph() graph.add_vertex("bananas") print(graph.depth_first("apples"))
def test_add_vertex(): graph = Graph() vertex = graph.add_vertex('spam') actual = vertex.value expected = 'spam' assert actual == expected