def test_4(self): graph = self.create_graph_from_edges(edges=[ undirected_graph.Edge(vertex1=1, vertex2=2), undirected_graph.Edge(vertex1=2, vertex2=3), undirected_graph.Edge(vertex1=2, vertex2=4), undirected_graph.Edge(vertex1=3, vertex2=4), ], ) res = list( undirected_graph.preorder_depth_first_iteration(vertex=1, graph=graph)) self.assertTrue((res == [1, 2, 3, 4]) or (res == [1, 2, 4, 3])) res = list( undirected_graph.preorder_depth_first_iteration(vertex=2, graph=graph)) self.assertTrue((res == [2, 1, 3, 4]) or (res == [2, 1, 4, 3]) or (res == [2, 3, 4, 1]) or (res == [2, 4, 3, 1])) res = list( undirected_graph.preorder_depth_first_iteration(vertex=3, graph=graph)) self.assertTrue((res == [3, 2, 1, 4]) or (res == [3, 2, 4, 1]) or (res == [3, 4, 2, 1])) res = list( undirected_graph.preorder_depth_first_iteration(vertex=4, graph=graph)) self.assertTrue((res == [4, 3, 2, 1]) or (res == [4, 2, 1, 3]) or (res == [4, 2, 3, 1]))
def test_1(self): graph = undirected_graph.Graph() graph.add_edge(edge=undirected_graph.Edge(vertex1=1, vertex2=1)) self.assertEqual( list(undirected_graph.connected_components(graph=graph)), [[1]], )
def setUp(self): self.edges = [ undirected_graph.Edge(vertex1=1, vertex2=2), undirected_graph.Edge(vertex1=2, vertex2=3), undirected_graph.Edge(vertex1=2, vertex2=4), undirected_graph.Edge(vertex1=3, vertex2=4), ] self.add_vertices = [5, 1, 6] self.vertices = set([1, 2, 3, 4, 5, 6]) self.edges_from = { 1: set([self.edges[0]]), 2: set([self.edges[0], self.edges[1], self.edges[2]]), 3: set([self.edges[1], self.edges[3]]), 4: set([self.edges[2], self.edges[3]]), 5: set(), 6: set(), }
def test_1(self): graph = self.create_graph_from_edges(edges=[ undirected_graph.Edge(vertex1=1, vertex2=1), ], ) self.assertEqual( list( undirected_graph.preorder_depth_first_iteration(vertex=1, graph=graph)), [1], )
def test_3(self): graph = self.create_graph_from_edges(edges=[ undirected_graph.Edge(vertex1=1, vertex2=2), undirected_graph.Edge(vertex1=2, vertex2=3), ], ) self.assertEqual( list( undirected_graph.preorder_depth_first_iteration(vertex=1, graph=graph)), [1, 2, 3], ) self.assertEqual( list( undirected_graph.preorder_depth_first_iteration(vertex=3, graph=graph)), [3, 2, 1], ) middle = list( undirected_graph.preorder_depth_first_iteration(vertex=2, graph=graph)) self.assertTrue((middle == [2, 1, 3]) or (middle == [2, 3, 1]))
def test_2(self): graph = undirected_graph.Graph() graph.add_edge(edge=undirected_graph.Edge(vertex1=1, vertex2=2)) self.assertEqual( list( sorted(c) for c in undirected_graph.connected_components(graph=graph)), [[1, 2]], ) graph = undirected_graph.Graph() graph.add_vertex(1) graph.add_vertex(2) self.assertEqual( sorted(undirected_graph.connected_components(graph=graph)), [[1], [2]], )
def test_3(self): graph = undirected_graph.Graph() graph.add_edge(undirected_graph.Edge(vertex1=1, vertex2=2)) graph.add_edge(undirected_graph.Edge(vertex1=2, vertex2=3)) graph.add_edge(undirected_graph.Edge(vertex1=4, vertex2=5)) graph.add_edge(undirected_graph.Edge(vertex1=5, vertex2=6)) graph.add_edge(undirected_graph.Edge(vertex1=5, vertex2=7)) graph.add_edge(undirected_graph.Edge(vertex1=6, vertex2=7)) self.assertEqual( sorted( sorted(c) for c in undirected_graph.connected_components(graph=graph)), [[1, 2, 3], [4, 5, 6, 7]], )