Exemplo n.º 1
0
 def test_returns_array_of_vertices_for_graph_as_list(self):
     g = Graph()
     g.add_edge(1, 2, 1)
     g.add_edge(2, 3, 1)
     has_cycle, vertices = topological_sort(g)
     self.assertEqual(False, has_cycle)
     self.assertEqual([3, 2, 1], vertices)
Exemplo n.º 2
0
 def test_returns_array_of_vertices_for_graph_with_dependent_vertices(self):
     g = Graph()
     g.add_edge(1, 2, 1)
     g.add_edge(4, 1, 1)
     g.add_edge(3, 1, 1)
     has_cycle, vertices = topological_sort(g)
     self.assertEqual(False, has_cycle)
     self.assertEqual(any_of([2, 1, 4, 3], [2, 1, 3, 4]), vertices)
Exemplo n.º 3
0
 def test_returns_array_of_vertices_for_graph_without_edges(self):
     g = Graph()
     g.add_vertex(1)
     g.add_vertex(2)
     g.add_vertex(3)
     has_cycle, vertices = topological_sort(g)
     self.assertEqual(False, has_cycle)
     self.assertEqual([1, 2, 3], vertices)
Exemplo n.º 4
0
 def test_returns_none_for_graph_with_cycle(self):
     g = Graph()
     g.add_edge(1, 2, 1)
     g.add_edge(4, 1, 1)
     g.add_edge(3, 1, 1)
     g.add_edge(2, 3, 1)
     has_cycle, vertices = topological_sort(g)
     self.assertEqual(True, has_cycle)
     self.assertIsNone(vertices)
Exemplo n.º 5
0
 def test_returns_empty_array_for_empty_graph(self):
     has_cycle, vertices = topological_sort(Graph())
     self.assertEqual(False, has_cycle)
     self.assertEqual([], vertices)
Exemplo n.º 6
0
 def test_returns_single_vertex_for_graph_with_single_vertex(self):
     g = Graph()
     g.add_vertex(1)
     has_cycle, vertices = topological_sort(g)
     self.assertEqual(False, has_cycle)
     self.assertEqual([1], vertices)