示例#1
0
 def test_add_edge_and_remove_edge(self):
     g = DiGraph()
     # adding nodes to the graph
     for i in range(10):
         g.add_node(i)
     # creating edges
     for i in range(4):
         g.add_edge(i, i + 3, i * 5 / 2)
     my_dict = g.get_all_v()
     # checking if the edges successfully added in the node
     for i in range(4):
         current_node = my_dict[i]
         edge_dic = current_node.edges_towards
         self.assertEqual(edge_dic[i + 3], i * 5 / 2)
         # removing the edges
     for i in range(4):
         g.remove_edge(i, i + 3)
     my_dict = g.get_all_v()
     flag = True
     # checking if the edges were removed successfully
     for i in range(4):
         current_node = my_dict[i]
         empty_dict = {}
         if empty_dict != current_node.edges_towards:
             flag = False
             break
     self.assertEqual(True, flag)
示例#2
0
 def test_e_size(self):
     counter = 0
     g = DiGraph()
     for i in range(10000):
         g.add_node(i)
     for i in range(500):
         g.add_edge(i, (i + 1) * 10, i * 10 / 5)
         counter += 1
     self.assertEqual(counter, g.e_size())
     for i in range(100):
         g.remove_edge(i, (i + 1) * 10)
         counter -= 1
     self.assertEqual(counter, g.e_size())
示例#3
0
class TestDiGraph(unittest.TestCase):
    def setUp(self) -> None:
        """
        build the central graph for all the tests
        """
        self.graph = DiGraph()

        self.graph.add_node(1)
        self.graph.add_node(2)
        self.graph.add_node(3)
        self.graph.add_node(4)
        self.graph.add_node(5)

        self.graph.add_edge(1, 2, 600)
        self.graph.add_edge(2, 3, 600)
        self.graph.add_edge(3, 1, 600)
        self.graph.add_edge(3, 4, 600)
        self.graph.add_edge(4, 5, 600)
        self.graph.add_edge(5, 4, 600)

    def test_v_size(self):
        self.assertEqual(5, self.graph.v_size())

    def test_e_size(self):
        self.assertEqual(6, self.graph.e_size())

    def test_get_mc(self):
        self.assertEqual(11, self.graph.get_mc())

    def test_removeEdge(self):
        self.graph.remove_edge(3, 1)
        self.graph.remove_edge(2, 3)
        self.graph.remove_edge(5, 4)
        self.assertEqual(3, self.graph.e_size())
        self.graph.add_edge(3, 1, 1.67)
        self.assertEqual(4, self.graph.e_size())

    def test_removeNode(self):
        self.graph.remove_node(1)
        self.graph.remove_node(3)
        self.graph.remove_node(1)
        self.assertEqual(3, self.graph.v_size())

    def test_add_node(self):
        self.graph.add_node(6)
        self.graph.add_node(7)
        self.graph.add_node(8)
        self.graph.add_node(8)
        self.assertEqual(8, self.graph.v_size())

    def test_all_in_edges_of_node(self):
        self.assertTrue(len(self.graph.all_in_edges_of_node(1)) == 1)
        self.assertTrue(len(self.graph.all_in_edges_of_node(2)) == 1)
        self.graph.add_node(6)
        self.graph.add_edge(6, 3, 5.5)
        self.assertTrue(len(self.graph.all_in_edges_of_node(3)) == 2)

    def test_all_out_edges_of_node(self):
        self.assertTrue(len(self.graph.all_out_edges_of_node(2)) == 1)
        self.assertTrue(len(self.graph.all_out_edges_of_node(4)) == 1)
        self.assertTrue(len(self.graph.all_out_edges_of_node(3)) == 2)