def test_neighbors_should_be_collected(self): g = Graph( v=["A", "B", "C", "D"], e=[("A", ["B", "C"]), ("B", ["D", "A"]), ("C", ["C", "D"]), ("D", ["A", "B", "C", "D"])], ) self.assertEqual(["A", "B", "C", "D"], g.neighbors("D"))
class GraphTraversalTest(TestCase): """Graph traversal tests""" def setUp(self): self.tree = Graph(v=['A', 'B', 'C', 'D', 'E', 'F', 'G'], e=[('A', ['B', 'C']), ('B', ['D', 'F']), ('E', ['F', 'G'])]) def test_graph_simple_traversal(self): self.assertEqual(['A', 'B', 'C', 'D', 'E', 'F', 'G'], list(self.tree.traversal())) def test_graph_bfs_traversal(self): self.assertEqual(['A', 'B', 'C', 'D', 'E', 'F', 'G'], list(self.tree.traversal(strategy='bfs'))) def test_graph_dfs_traversal(self): self.assertEqual(['G', 'F', 'E', 'D', 'C', 'B', 'A'], list(self.tree.traversal(strategy='dfs')))
def setUp(self): self.tree = Graph(v=['A', 'B', 'C', 'D', 'E', 'F', 'G'], e=[('A', ['B', 'C']), ('B', ['D', 'F']), ('E', ['F', 'G'])])
def test_graph_should_be_pretty_printed(self): g = Graph(v=["A", "B", "C"]) g.add_edge("A", "C") self.assertEqual("[('A', ['C']), ('B', []), ('C', [])]", g.__str__())
import sys from kihon.graphs import Graph if __name__ == '__main__': cases = int(sys.stdin.readline()) for i in range(cases): edge_number = int(sys.stdin.readline()) g = Graph(kind=Graph.UNDIRECTED) for edge in range(edge_number): g.add_edge(*sys.stdin.readline().split()) sol = "yes" if g.is_bipartite() else "no" #print(g) print("Case #%d: %s" % (i + 1, sol))
def test_simple_non_bipartite_graph(self): g = Graph(v=['A', 'B', 'C'], e=[('A', ['B']), ('B', ['C']), ('C', ['A'])]) self.assertFalse(g.is_bipartite())
def test_simple_bipartite_graph(self): g = Graph(v=['A', 'B'], e=[('A', ['B'])]) self.assertTrue(g.is_bipartite())