Exemplo n.º 1
0
    def test_equality(self):
        a = simple_graph.Graph("a")
        a2 = simple_graph.Graph("a")
        b = simple_graph.Graph("b")

        a.add_child(b)
        a2.add_child(b)

        self.assertEqual(a, a2)
Exemplo n.º 2
0
 def test_has_node(self):
     g = simple_graph.Graph()
     new_node1 = 'yes'
     new_node2 = 'no'
     g.add_node(new_node1)
     assert g.has_node(new_node1) is True
     assert g.has_node(new_node2) is False
Exemplo n.º 3
0
    def test_neighb_no_node(self):
        g = simple_graph.Graph()
        node = 'Nope'
        with self.assertRaises(ValueError) as context:
            g.neighbors(node)
        self.assertEqual(context.exception.message, u"Node does not \
exist in graph.")
Exemplo n.º 4
0
 def test_del_edge_exists(self):
     g = simple_graph.Graph()
     new_node1 = 1
     new_node2 = 1
     g.add_edge(new_node1, new_node2)
     g.del_edge(new_node2, new_node1)
     assert len(g.edges()) == 0
Exemplo n.º 5
0
 def test_add_edge(self):
     g = simple_graph.Graph()
     new_node_val1 = 1
     new_node_val2 = 2
     g.add_edge(new_node_val1, new_node_val2)
     assert new_node_val1 in g.edges()[0]
     assert new_node_val2 in g.edges()[0]
Exemplo n.º 6
0
 def test_edges(self):
     g = simple_graph.Graph()
     node1 = simple_graph.Node(1)
     node2 = simple_graph.Node(2)
     node3 = simple_graph.Node(3)
     g.edges_list = [simple_graph.Edge(node1, node2),
                     simple_graph.Edge(node1, node3)]
     assert g.edges() == [(1, 2), (1, 3)]
Exemplo n.º 7
0
 def test_del_node_deletes_edges(self):
     g = simple_graph.Graph()
     new_node1 = simple_graph.Node()
     new_node2 = simple_graph.Node()
     g.add_edge(new_node1, new_node2)
     g.del_node(new_node1)
     assert len(g.nodes()) == 1
     assert len(g.edges()) == 0
Exemplo n.º 8
0
    def test_adjacent_error(self):
        g = simple_graph.Graph()
        n1 = 'n1'
        n2 = 'n2'
        with self.assertRaises(ValueError) as context:
            g.adjacent(n1, n2)
        self.assertEqual(context.exception.message, u"Node n1 does not exist \
in graph.")
Exemplo n.º 9
0
 def test_dikstra(self):
     g = simple_graph.Graph()
     g.add_edge(1, 2, 3)
     g.add_edge(1, 3, 2)
     g.add_edge(3, 4, 5)
     g.add_edge(2, 4, 2)
     actual = g.dikstra(1)
     expected = [1, 2, 4]
     assert actual == expected
Exemplo n.º 10
0
 def test_del_node_not_exist(self):
     g = simple_graph.Graph()
     new_node1 = simple_graph.Node('hello')
     new_node2 = simple_graph.Node('goodbye')
     g.add_node(new_node1)
     with self.assertRaises(ValueError) as context:
         g.del_node(new_node2)
     self.assertEqual(context.exception.message,
                      u"Node does not exist in graph.")
Exemplo n.º 11
0
 def test_add_edge_nodes(self):
     g = simple_graph.Graph()
     new_node_val1 = 1
     new_node_val2 = 2
     g.add_edge(new_node_val1, new_node_val2)
     assert new_node_val1 in g.nodes()
     assert new_node_val2 in g.nodes()
     new_node_val3 = 3
     g.add_edge(new_node_val1, new_node_val3)
     assert g.nodes().count(1) == 1
Exemplo n.º 12
0
 def test_dikstra2(self):
     g = simple_graph.Graph()
     g.add_edge(1, 2, 1)
     g.add_edge(2, 3, 1)
     g.add_edge(3, 6, 2)
     g.add_edge(1, 4, 2)
     g.add_edge(4, 5, 2)
     g.add_edge(5, 3, 2)
     g.add_edge(1, 6, 5)
     actual = g.dikstra(1)
     expected = [1, 2, 3, 6]
     assert actual == expected
Exemplo n.º 13
0
 def test_adjacent(self):
     n1 = 'n1'
     n2 = 'n2'
     n3 = 'n3'
     n4 = 'n4'
     g = simple_graph.Graph()
     g.add_edge(n1, n2)
     g.add_edge(n2, n4)
     g.add_edge(n1, n4)
     g.add_edge(n2, n3)
     assert g.adjacent(n1, n2) is True
     assert g.adjacent(n1, n3) is False
Exemplo n.º 14
0
    def test_del_edge_not_exists(self):
        g = simple_graph.Graph()
        new_node1 = 1
        new_node2 = 2
        new_node3 = simple_graph.Node('nope')
        g.add_edge(new_node1, new_node2)
        g.add_node(new_node3)
        with self.assertRaises(ValueError) as context:
            g.del_edge(new_node1, new_node3)
        self.assertEqual(context.exception.message, u"Edge does not exist \
in graph.")
        assert len(g.edges()) == 1
Exemplo n.º 15
0
 def test_bf(self):
     g = simple_graph.Graph()
     g.add_edge(1, 2, 1)
     g.add_edge(2, 3, 1)
     g.add_edge(3, 6, 2)
     g.add_edge(1, 4, 2)
     g.add_edge(4, 5, 2)
     g.add_edge(5, 3, 2)
     g.add_edge(1, 6, 5)
     actual = g.bellman_ford(1)[1]
     expected = [1, 2, 3, 1, 4]
     assert actual == expected
Exemplo n.º 16
0
    def test_weight(self):
        g = simple_graph.Graph()
        g.add_edge(1, 2, 3)
        assert g.weight_edge(1, 2) == 3
        with self.assertRaises(ValueError) as context:
            g.weight_edge(1, 5)
        self.assertEqual(context.exception.message, u"Node 5 does not exist \
in graph.")
        g.add_node(5)
        with self.assertRaises(ValueError) as context:
            g.weight_edge(1, 5)
        self.assertEqual(context.exception.message, u"Edge does not exist \
in graph.")
Exemplo n.º 17
0
 def test_neighbors(self):
     n1 = 'n1'
     n2 = 'n2'
     n3 = 'n3'
     n4 = 'n4'
     g = simple_graph.Graph()
     g.add_edge(n1, n2)
     g.add_edge(n2, n4)
     g.add_edge(n1, n4)
     g.add_edge(n2, n3)
     neighb = g.neighbors(n1)
     assert n2 in neighb
     assert n4 in neighb
     assert n3 not in neighb
Exemplo n.º 18
0
    def setUp(self):

        # Note: This test method tests add_edge(), add_node() and
        # the Graph constructor.

        self.empty_graph = simple_graph.Graph()

        self.linear_graph = simple_graph.Graph()
        for each_integer in range(0, 10):
            self.linear_graph.add_node(each_integer)
        # range(0, 10) gives 0 though 9 and len(that) gives 10
        for each_index in range(1, len(self.linear_graph.node_list)):
            self.linear_graph.add_edge((each_index - 1), each_index)

        self.circular_graph = simple_graph.Graph()
        for each_integer in range(0, 10):
            self.circular_graph.add_node(each_integer)
        # range(0, 10) gives 0 though 9 and len(that) gives 10
        for each_index in range(1, len(self.circular_graph.node_list)):
            self.circular_graph.add_edge((each_index - 1), each_index)
        # Tie the graph chain together at the ends:
        self.circular_graph.add_edge(0,
                                     (len(self.circular_graph.node_list) - 1))
Exemplo n.º 19
0
 def test_bft(self):
     n1 = 1
     n2 = 2
     n3 = 3
     n4 = 4
     n5 = 5
     g = simple_graph.Graph()
     g.add_edge(n1, n2)
     g.add_edge(n2, n4)
     g.add_edge(n1, n4)
     g.add_edge(n2, n3)
     g.add_edge(n3, n5)
     actual = g.breadth_first_traversal(n1)
     expected = [1, 2, 4, 3, 5]
     assert actual == expected
Exemplo n.º 20
0
 def test_dft(self):
     # 1 - 2 - 3
     #   \ |
     #     4
     n1 = 1
     n2 = 2
     n3 = 3
     n4 = 4
     g = simple_graph.Graph()
     g.add_edge(n1, n2)
     g.add_edge(n2, n4)
     g.add_edge(n1, n4)
     g.add_edge(n2, n3)
     actual = g.depth_first_traversal(n1)
     expected = [1, 2, 4, 3]
     assert actual == expected
Exemplo n.º 21
0
 def test_no_nodes(self):
     g = simple_graph.Graph()
     no_nodes = g.nodes()
     assert no_nodes == []
Exemplo n.º 22
0
 def test_del_node_exists(self):
     g = simple_graph.Graph()
     new_node = 'hello'
     g.add_node(new_node)
     g.del_node(new_node)
     assert len(g.nodes()) == 0
Exemplo n.º 23
0
 def test_add_node(self):
     g = simple_graph.Graph()
     g.add_node(1)
     assert g.nodes() == [1]
Exemplo n.º 24
0
 def test_nodes(self):
     g = simple_graph.Graph()
     g.nodes_list = [simple_graph.Node(1), simple_graph.Node(2)]
     assert g.nodes() == [1, 2]