def test_add_edge_exception_2(): with pytest.raises(KeyError): g1 = Graph() g2 = Graph() node1 = g1.add_node(1) node2 = g2.add_node(2) g2.add_edge(node1, node2)
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() 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_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() 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_1(): g = Graph() node_a = g.add_node('a') node_b = g.add_node('b') node_c = g.add_node('c') node_d = g.add_node('d') g.add_edge(node_a, node_b) actual = len(g.get_neighbors(node_a)) expected = 1 assert actual == expected
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")
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"))