Ejemplo n.º 1
0
    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"))
Ejemplo n.º 2
0
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')))
Ejemplo n.º 3
0
 def setUp(self):
     self.tree = Graph(v=['A', 'B', 'C', 'D', 'E', 'F', 'G'],
                       e=[('A', ['B', 'C']), ('B', ['D', 'F']), ('E', ['F', 'G'])])
Ejemplo n.º 4
0
    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__())
Ejemplo n.º 5
0
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))
Ejemplo n.º 6
0
 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())
Ejemplo n.º 7
0
 def test_simple_bipartite_graph(self):
     g = Graph(v=['A', 'B'], e=[('A', ['B'])])
     self.assertTrue(g.is_bipartite())