def two_vertex_should_fail_test(self): v1 = Vertex(23, 1, 1) v2 = Vertex(24, 2, 1) e = SimpleEdge(21, 24, 123) g = gf.build_graph_from_vertices_edges([v1, v2], [e]) self.assertTrue(len(g.vertices) == 2) self.assertTrue(len(g.edges) == 0)
def one_vertex_should_be_no_edge_test(self): v = Vertex(23, 1, 2) g = gf.build_graph_from_vertices_edges([v], []) self.assertTrue(len(g.vertices) == 1) self.assertEqual(g.vertices[0].lat, v.lat) self.assertEqual(g.vertices[0].lon, v.lon) self.assertTrue(len(g.edges) == 0)
def contract(graph): all_new_edges = find_new_edges(graph) filtered_edges = remove_duplicates(all_new_edges) node_ids = gather_node_ids(filtered_edges) nodes = get_nodes(graph, node_ids) return graphfactory.build_graph_from_vertices_edges(nodes, filtered_edges)
def test_two_vertex_should_fail_test(self): v1 = Vertex(23, VertexData(1, 1)) v2 = Vertex(24, VertexData(2, 1)) e = Edge(21, 24, True, True, EdgeData(123, "", 50, "")) g = gf.build_graph_from_vertices_edges([v1, v2], [e]) self.assertTrue(len(g.vertices) == 2) self.assertTrue(len(g.edges) == 0)
def two_vertex_should_be_one_edge_test(self): v1 = Vertex(23, 1, 1) v2 = Vertex(24, 2, 1) e = SimpleEdge(23, 24, 123) g = gf.build_graph_from_vertices_edges([v1, v2], [e]) self.assertTrue(len(g.vertices) == 2) self.assertTrue(len(g.edges) == 1) self.assertEquals(g.edges[0].length, 123)
def test_two_vertex_should_be_one_edge_test(self): v1 = Vertex(23, VertexData(1, 1)) v2 = Vertex(24, VertexData(2, 1)) e = Edge(23, 24, True, True, EdgeData(123, "", 50, "")) g = gf.build_graph_from_vertices_edges([v1, v2], [e]) self.assertTrue(len(g.vertices) == 2) self.assertTrue(len(g.edges) == 1) self.assertEqual(g.edges[0].data.length, 123)
def three_vertex_should_three_edges_test(self): v1 = Vertex(23, 1, 2) v2 = Vertex(24, 3, 4) v3 = Vertex(1, 5, 6) e1 = SimpleEdge(v1.id, v2.id, 123) e2 = SimpleEdge(v2.id, v3.id, 1234) e3 = SimpleEdge(v1.id, v3.id, 12345) g = gf.build_graph_from_vertices_edges([v1, v2, v3], [e1, e2, e3]) self.assertTrue(len(g.vertices) == 3) self.assertTrue(len(g.edges) == 3)
def test_three_vertex_should_three_edges_test(self): v1 = Vertex(23, VertexData(1, 1)) v2 = Vertex(24, VertexData(2, 1)) v3 = Vertex(1, VertexData(5, 6)) e1 = Edge(v1.id, v2.id, True, True, EdgeData(123, "", 50, "")) e2 = Edge(v2.id, v3.id, True, True, EdgeData(123, "", 50, "")) e3 = Edge(v1.id, v3.id, True, True, EdgeData(123, "", 50, "")) g = gf.build_graph_from_vertices_edges([v1, v2, v3], [e1, e2, e3]) self.assertTrue(len(g.vertices) == 3) self.assertTrue(len(g.edges) == 3)
def contract(self): self.out_edges_per_node = self._get_out_edges() all_new_edges = self._find_new_edges() node_ids = self._gather_node_ids(all_new_edges) nodes = self._get_nodes(node_ids) print( f"finished contracting: {len(all_new_edges)}/{len(self.graph.edges)} edges and {len(nodes)}/{len(self.graph.vertices)} vertices." ) return graphfactory.build_graph_from_vertices_edges(nodes, all_new_edges)
def empty_input_test(self): g = gf.build_graph_from_vertices_edges([], []) self.assertTrue(len(g.vertices) == 0) self.assertTrue(len(g.edges) == 0)
def test_one_vertex_should_be_no_edge_test(self): v = Vertex(23, VertexData(1, 2)) g = gf.build_graph_from_vertices_edges([v], []) self.assertTrue(len(g.vertices) == 1) self.assertEqual(g.vertices[0].data, v.data) self.assertTrue(len(g.edges) == 0)
def computeLCCGraph(graph): lcc = computeLCC(graph) new_nodes = [graph.vertices[id] for id in lcc] return graphfactory.build_graph_from_vertices_edges(new_nodes, graph.edges)