Ejemplo n.º 1
0
    def test_all_out_edges_of_node(self):
        graph = DiGraph()

        tuple0 = (0, 30, 2)
        tuple1 = (50, 50, 50)
        node0 = NodeData(0, tuple0)  # node: key=0 tuple=(0, 30, 2)
        node1 = NodeData(1, tuple0)  # node: key=1 tuple=(0, 30, 2)
        node2 = NodeData(2, tuple1)  # node: key=2 tuple=(50, 50, 50)
        node3 = NodeData(3, tuple1)  # node: key=3 tuple=(50, 50, 50)

        graph.add_node(node0.get_key(), tuple0)  # add node0
        self.assertEqual({}, graph.all_out_edges_of_node(
            node0.get_key()))  # check the list In empty
        graph.add_node(node1.get_key(), tuple0)  # add node1
        graph.add_node(node2.get_key(), tuple1)  # add node2
        graph.add_node(node3.get_key(), tuple1)  # add node3

        graph.add_edge(node1.get_key(), node0.get_key(), 10)  # connect 1->0
        graph.add_edge(node1.get_key(), node2.get_key(), 15)  # connect 1->2
        graph.add_edge(node1.get_key(), node3.get_key(), 20)  # connect 1->2

        ans_list_keys = [node0.get_key(), node2.get_key(), node3.get_key()]
        for i in graph.all_out_edges_of_node(node1.get_key()).keys():
            self.assertIn(i, ans_list_keys)
        graph.remove_node(node2.get_key())  # remove node2
        graph.remove_node(node3.get_key())  # remove node3

        ans_list_keys = [node0.get_key()]
        for i in ans_list_keys:
            self.assertIn(i,
                          graph.all_out_edges_of_node(node1.get_key()).keys())
Ejemplo n.º 2
0
    def test_add_node1(self):
        graph = DiGraph()
        graph.add_node(1)
        graph.add_node(2)
        graph.add_node(3)
        graph.add_node(4)
        graph.add_node(5)
        graph.add_edge(1, 2, 3)
        graph.add_edge(2, 3, 4)
        graph.add_edge(3, 4, 10)
        graph.add_edge(4, 3, 1)
        graph.add_edge(3, 5, 7)
        graph.add_edge(5, 1, 1)
        graph.add_edge(1, 5, 2)

        self.assertEqual(12, graph.get_mc())
        self.assertEqual(5, graph.v_size())
        self.assertEqual(7, graph.e_size())

        keys = [1, 2, 3, 4, 5]
        self.assertEqual(keys, list(graph.get_all_v().keys()))
        self.assertEqual({2: 4, 4: 1}, graph.all_in_edges_of_node(3))
        self.assertEqual({4: 10, 5: 7}, graph.all_out_edges_of_node(3))

        graph.remove_edge(5, 1)
        self.assertEqual(6, graph.e_size())
        self.assertEqual(0, len(graph.all_out_edges_of_node(5)))
        self.assertEqual(13, graph.get_mc())

        graph.remove_node(3)
        self.assertEqual(4, graph.v_size())
        self.assertEqual(2, graph.e_size())

        self.assertEqual(0, len(graph.all_out_edges_of_node(4)))
        self.assertEqual(14, graph.get_mc())
Ejemplo n.º 3
0
 def test_all_edges(self):
     G = DiGraph()
     G.add_node(0)
     G.add_node(1)
     G.add_node(2)
     G.add_edge(0, 1, 10)
     G.add_edge(2, 1, 10)
     self.assertEqual(len(G.all_in_edges_of_node(1)), 2)
     self.assertEqual(len(G.all_out_edges_of_node(1)), 0)
     self.assertEqual(len(G.all_in_edges_of_node(0)), 0)
     self.assertEqual(len(G.all_out_edges_of_node(0)), 1)
 def test_all_out_edges_of_node(self):
     graph = DiGraph()
     self.assertTrue(graph.add_node(0))
     self.assertTrue(graph.add_node(1))
     self.assertTrue(graph.add_node(2))
     self.assertTrue(graph.add_node(3))
     self.assertTrue(graph.add_edge(1, 2, 0))
     self.assertTrue(graph.add_edge(2, 1, 1))
     edge = graph.all_out_edges_of_node(1)
     self.assertEqual(edge[2], 0)
     edge = graph.all_out_edges_of_node(2)
     self.assertEqual(edge[1], 1)
Ejemplo n.º 5
0
 def test_all_out_edges_of_node(self):
     g = DiGraph()
     g.add_node(1)
     g.add_node(2)
     g.add_node(3)
     g.add_node(4)
     g.add_edge(1, 2, 3)
     g.add_edge(2, 3, 2)
     g.add_edge(3, 4, 3)
     g.add_edge(4, 1, 2.5)
     self.assertEqual({2: 3}, g.all_out_edges_of_node(1))
     g.add_edge(1, 4, 1)
     self.assertEqual({2: 3, 4: 1}, g.all_out_edges_of_node(1))
Ejemplo n.º 6
0
 def test_remove_edge(self):
     graph = DiGraph()
     graph.add_node(1)
     graph.add_node(2)
     graph.add_node(3)
     graph.add_edge(1, 2, 1)
     graph.add_edge(1, 3, 1)
     self.assertEqual(graph.all_in_edges_of_node(2).get(1), 1)
     self.assertEqual(graph.all_out_edges_of_node(1).get(2), 1)
     graph.remove_edge(1, 2)
     self.assertEqual(graph.all_in_edges_of_node(2).get(1), None)
     self.assertEqual(graph.all_out_edges_of_node(1).get(2), None)
     self.assertEqual(graph.e_size(), 1)
Ejemplo n.º 7
0
    def test_add_edge(self):
        g = self.graphCreator(20)
        assert 20 == g.v_size()
        g.add_edge(0, 1, 5)
        assert g.all_in_edges_of_node(1).get(0) == 5
        g.add_edge(0, 1, 2)
        assert g.all_in_edges_of_node(1).get(0) == 5
        g.add_edge(0, 2, 2)
        g.add_edge(0, 3, 7)
        g.add_edge(1, 2, 4.23)
        assert False == g.add_edge(1, 4, -15)
        assert False == g.add_edge(1, 2, 2)

        g = self.graphCreator1(20, 20)
        e = 20
        if g.add_edge(4, 5, 15):
            e += 1
            assert g.e_size() == e
            g.all_out_edges_of_node(4).get(5) == 15
            g.all_in_edges_of_node(5).get(4) == 15
            print("done")
        if g.add_edge(4, 6, 9.5):
            e += 1
            assert g.e_size() == e
            assert g.all_out_edges_of_node(4).get(6) == 9.5
            g.all_in_edges_of_node(6).get(4) == 9.5
            print("done")

        g = DiGraph()
        g.add_node(0)
        g.add_edge(0, 0, 1)
        assert 0 == g.e_size()
        assert g.all_out_edges_of_node(0).get(0) == None
Ejemplo n.º 8
0
 def graph_nx(self, graph: DiGraph):
     g = nx.DiGraph()
     for i in graph.get_all_v().keys():
         g.add_node(i)
         for n, w in graph.all_out_edges_of_node(i).items():
             g.add_edge(i, n, weight=w)
     return g
Ejemplo n.º 9
0
def check0():
    """
    This function tests the naming (main methods of the DiGraph class, as defined in GraphInterface.
    :return:
    """
    g = DiGraph()  # creates an empty directed graph
    for n in range(4):
        g.add_node(n)
    g.add_edge(0, 1, 1)
    g.add_edge(1, 0, 1.1)
    g.add_edge(1, 2, 1.3)
    g.add_edge(2, 3, 1.1)
    g.add_edge(1, 3, 1.9)
    g.remove_edge(1, 3)
    g.add_edge(1, 3, 10)
    print(g)  # prints the __repr__ (func output)
    print(g.get_all_v())  # prints a dict with all the graph's vertices.
    print(g.all_in_edges_of_node(1))
    print(g.all_out_edges_of_node(1))

    g_algo = GraphAlgo(g)
    g_algo.save_to_json('graph.json')

    g_algo2 = GraphAlgo()
    g_algo2.load_from_json('graph.json')
    g_algo2.save_to_json('graphAlgo2.json')

    print(g_algo.shortest_path(0, 3))
    g_algo.plot_graph()
Ejemplo n.º 10
0
 def test_v_e_size_removes_and_add(self):
     graph = DiGraph()
     self.assertEqual(False, self.graph.add_edge(1, 7, -1))
     self.assertEqual(0, graph.e_size())
     self.assertEqual(0, graph.v_size())
     self.assertEqual(0, graph.get_mc())
     self.assertEqual(False, graph.remove_edge(1, 3))
     self.assertEqual({}, graph.all_out_edges_of_node(3))
     self.assertEqual({}, graph.all_in_edges_of_node(3))
     self.assertEqual(14, self.graph.v_size())
     self.assertEqual(24, self.graph.e_size())
     self.assertEqual(38, self.graph.get_mc())
     self.assertEqual(True, self.graph.remove_node(4))
     self.assertEqual(39, self.graph.get_mc())
     self.assertEqual(True, self.graph.remove_edge(1, 2))
     self.graph.remove_edge(11, 10)
     self.assertEqual(False, self.graph.remove_node(15))
     self.assertEqual(False, self.graph.remove_node(0))
     self.assertEqual(False, self.graph.remove_node(-1))
     self.assertEqual(False, self.graph.remove_edge(11, 11))
     self.assertEqual(False, self.graph.remove_edge(6, 5))
     self.assertEqual(17, self.graph.e_size())
     self.assertEqual(13, self.graph.v_size())
     self.graph.add_node(99)
     self.assertEqual(14, self.graph.v_size())
     self.graph.add_edge(99, 10, 5)
     self.graph.add_edge(99, 5, 5)
     self.graph.add_edge(99, 10, 5)
     self.graph.add_edge(99, 99, 5)
     self.graph.add_edge(10, 99, 5)
     self.graph.add_edge(10, 99, 5)
     self.assertEqual(20, self.graph.e_size())
     self.assertEqual(45, self.graph.get_mc())
Ejemplo n.º 11
0
 def test_all_out_edges_of_node(self):
     graph = DiGraph()
     for i in range(0, 20):
         graph.add_node(i)
     for i in range(0, 10):
         graph.add_edge(i, i + 1, 2)
     for i in graph.all_in_edges_of_node(10):
         self.assertTrue(10 in graph.all_out_edges_of_node(i))
class TestDiGraph(TestCase):
    def setUp(self) -> None:
        self.g = DiGraph()
        for i in range(5):
            self.g.add_node(i)
        self.g.add_edge(1, 2, 1)
        self.g.add_edge(1, 3, 1)
        self.g.add_edge(1, 4, 1)
        self.g.add_edge(2, 1, 1)
        self.g.add_edge(2, 0, 1.5)
        self.g.add_edge(3, 1, 1)
        self.g.add_edge(4, 0, 4.8)
        self.g.add_edge(4, 2, 1)

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

    def test_e_size(self):
        self.assertEqual(8, self.g.e_size())

    def test_get_mc(self):
        self.assertEqual(13, self.g.get_mc())

    def test_add_edge(self):
        self.assertFalse(self.g.add_edge(9, 5, 0.35))
        self.assertTrue(self.g.add_edge(0, 2, 0.93))

    def test_add_node(self):
        self.assertFalse(self.g.add_node(0))
        self.assertTrue(self.g.add_node(5))
        self.assertFalse(self.g.add_node(5))

    def test_remove_node(self):
        self.assertFalse(self.g.remove_node(6))
        self.assertTrue(self.g.remove_node(4))
        self.assertEqual(5, self.g.e_size())

    def test_remove_edge(self):
        self.assertFalse(self.g.remove_edge(0, 7))
        self.assertTrue(self.g.remove_edge(1, 2))
        self.assertEqual(7, self.g.e_size())

    def test_all_in_edges_of_node(self):
        self.assertEqual({2: 1.5, 4: 4.8}, self.g.all_in_edges_of_node(0))

    def test_all_out_edges_of_node(self):
        self.assertEqual({2: 1, 3: 1, 4: 1}, self.g.all_out_edges_of_node(1))

    def test_get_all_v(self):
        self.assertEqual(5, len(self.g.get_all_v()))
        d = {
            0: self.g.get_all_v()[0],
            1: self.g.get_all_v()[1],
            2: self.g.get_all_v()[2],
            3: self.g.get_all_v()[3],
            4: self.g.get_all_v()[4]
        }
        self.assertEqual(d, self.g.get_all_v())
Ejemplo n.º 13
0
 def test_all_out_edges_of_node(self):
     graph = DiGraph()
     self.assertTrue(graph.add_node(2))
     self.assertTrue(graph.add_node(3))
     self.assertTrue(graph.add_node(4))
     self.assertTrue(graph.add_edge(2, 3, 0))
     self.assertTrue(graph.add_edge(3, 4, 1))
     edge = graph.all_out_edges_of_node(3)
     self.assertEqual(edge[3], 1)
Ejemplo n.º 14
0
 def rereverseGraph(self, g: DiGraph) -> GraphInterface:
     gr = DiGraph()
     for n in g.get_all_v().values():
         gr.add_node(n.getKey(), n.getLocation())
     for n in g.get_all_v().values():
         for e in g.all_out_edges_of_node(n.getKey()).items(
         ):  # return tuple of pair (other node id, weight))
             gr.add_edge(e[0], n.getKey(), e[1])
     return gr
Ejemplo n.º 15
0
 def test_all_out_edges_of_node(self):
     g0 = DiGraph()
     for i in range(0, 10):
         g0.add_node(i)
     g0.add_edge(4, 3, 1)
     g0.add_edge(4, 2, 1)
     g0.add_edge(2, 4, 1)
     g0.add_edge(1, 2, 1)
     g0.add_edge(5, 3, 1)
     g0.add_edge(4, 5, 1)
     temp = g0.all_out_edges_of_node(4)
     self.assertEqual(3, len(g0.all_out_edges_of_node(4)))
     g0.add_edge(4, 6, 1)
     self.assertEqual(4, len(g0.all_out_edges_of_node(4)))
     g0.add_edge(4, 6, 1)  # already existed
     self.assertEqual(4, len(g0.all_out_edges_of_node(4)))
     g0.remove_edge(4, 6)  # check if this dict updates after removing edge
     self.assertEqual(3, len(g0.all_out_edges_of_node(4)))
 def test_remove_edge(self):
     graph = DiGraph()
     self.assertTrue(graph.add_node(0))
     self.assertTrue(graph.add_node(1))
     self.assertTrue(graph.add_node(2))
     self.assertTrue(graph.add_node(3))
     self.assertTrue(graph.add_edge(0, 1, 0))
     self.assertTrue(graph.add_edge(0, 2, 0))
     self.assertTrue(graph.add_edge(1, 2, 0))
     self.assertTrue(graph.add_edge(2, 1, 1))
     self.assertEqual(len(graph.all_out_edges_of_node(0)), 2)
     self.assertTrue(graph.remove_edge(0, 2))
     self.assertFalse(graph.remove_edge(0, 2))
     self.assertEqual(len(graph.all_out_edges_of_node(0)), 1)
     self.assertEqual(graph.v_size(), 4)
     self.assertEqual(graph.e_size(), 3)
     self.assertTrue(graph.remove_edge(0, 1))
     self.assertIsNone(graph.all_out_edges_of_node(0))
     self.assertEqual(graph.get_mc(), 10)
Ejemplo n.º 17
0
 def test_remove_edge(self):
     g0 = DiGraph()
     for i in range(0, 10):
         g0.add_node(i)
     for i in range(0, 10):
         g0.add_edge(i, 9 - i, 0.2)
     g0.remove_edge(0, 9)
     self.assertEqual(9, g0.e_size())
     self.assertEqual(21, g0.get_mc())
     self.assertFalse(9 in g0.all_out_edges_of_node(0).keys())
Ejemplo n.º 18
0
 def test_all_out_edges_of_node(self):
     graph = DiGraph()
     graph.add_node(0)
     graph.add_node(1)
     graph.add_node(2)
     graph.add_node(3)
     graph.add_edge(0, 1, 5)
     graph.add_edge(1, 2, 3)
     graph.add_edge(2, 0, 1)
     graph.add_edge(2, 1, 4)
     graph.add_edge(2, 3, 3)
     graph.add_edge(3, 2, 2)
     edges_out = graph.all_out_edges_of_node(0)
     self.assertEqual(len(edges_out.values()), 1,
                      "the number of the edges that in to the node 1")
     graph.remove_node(1)
     edges_out = graph.all_out_edges_of_node(0)
     self.assertEqual(len(edges_out.values()), 0,
                      "the new number of the edges that in to the node 1")
Ejemplo n.º 19
0
def check():
    """
    This function tests the naming (main methods of the DiGraph class, as defined in GraphInterface.
    :return:


    """
    g = DiGraph()  # creates an empty directed graph

    for n in range(100):
        g.add_node(n)

    b = g.add_node(1)
    print("add test (false):" + str(b))  # should return false

    g.add_edge(0, 1, 1)
    g.add_edge(1, 0, 1.1)

    g.add_edge(1, 2, 1.3)
    g.add_edge(2, 3, 1.1)

    g.add_edge(1, 3, 1.9)
    b = g.add_edge(1, 3, 10)
    print("add update weight (false): ", b)

    b = g.remove_edge(1, 3)
    print("remove (true): " + str(b))  # should return true

    b = g.add_edge(1, 3, 10)
    print("add after remove (true): ", b)

    b = g.remove_node(2)
    print("remove node (true): ", b)

    b = g.remove_node(12)
    print("remove node that doesnt exist(false): ", b)

    b = g.add_edge(2, 3, 1.5)
    print("add edge of node that doesnt exist (false): ", b)

    b = g.add_edge(3, 2, 1.5)
    print("add edge of node that doesnt exist (false): ", b)

    b = g.add_edge(3, 3, 1.5)
    print("add edge of node that doesnt exist (false): ", b)

    b = g.add_edge(3, 13, 1.5)
    print("add edge of node that doesnt exist (false): ", b)

    print(g)  # prints the __repr__ (func output)

    print(g.get_all_v())  # prints a dict with all the graph's vertices.
    print(g.all_in_edges_of_node(1))
    print(g.all_out_edges_of_node(1))
    """
Ejemplo n.º 20
0
 def test_all_out_edges_of_node(self):
     g = DiGraph()
     g.add_node(1)
     g.add_node(2)
     g.add_node(3)
     g.add_node(4)
     g.add_edge(1, 2, 3.3)
     g.add_edge(2, 1, 4.4)
     g.add_edge(3, 2, 4.4)
     g.add_edge(2, 4, 4.4)
     self.assertEqual(g.all_out_edges_of_node(2), {1: 4.4, 4: 4.4})
Ejemplo n.º 21
0
 def test_remove_edge(self):
     graph = DiGraph()
     self.assertTrue(graph.add_node(3))
     self.assertTrue(graph.add_node(4))
     self.assertTrue(graph.add_node(5))
     self.assertTrue(graph.add_node(6))
     self.assertTrue(graph.add_node(7))
     self.assertTrue(graph.add_edge(6, 5, 1))
     self.assertTrue(graph.add_edge(5, 6, 0))
     self.assertTrue(graph.add_edge(4, 5, 0))
     self.assertTrue(graph.add_edge(4, 6, 0))
     self.assertEqual(len(graph.all_out_edges_of_node(4)), 2)
     self.assertTrue(graph.remove_edge(4, 6))
     self.assertFalse(graph.remove_edge(4, 6))
     self.assertFalse(graph.remove_edge(4, 6))
     self.assertEqual(len(graph.all_out_edges_of_node(4)), 1)
     self.assertEqual(graph.v_size(), 5)
     self.assertEqual(graph.e_size(), 3)
     self.assertTrue(graph.remove_edge(4, 5))
     self.assertEqual(graph.get_mc(), 11)
Ejemplo n.º 22
0
 def bfs(self, node_id: int, graph: DiGraph):
     q = Queue()
     n = graph.nodedict[node_id]
     q.put(n)
     n.set_tag(1)
     while not q.empty():
         node = q.get()
         if node.key in graph.edgedict:
             for key, w in graph.all_out_edges_of_node(node.key).items():
                 curr = graph.nodedict[key]
                 if curr.tag == 0:
                     q.put(curr)
                     curr.set_tag(1)
Ejemplo n.º 23
0
 def test_all_out_edges_of_node(self):
     graph = DiGraph()
     graph.add_node(1)
     graph.add_node(2)
     graph.add_node(3)
     graph.add_edge(1, 2, 1)
     graph.add_edge(1, 3, 1)
     graph.add_edge(2, 1, 1)
     graph.add_edge(2, 3, 1)
     edges_in = graph.all_out_edges_of_node(1)
     self.assertEqual(len(edges_in.values()), 2, 'not all nodes returned')
     self.assertEqual(edges_in.get(2), 1, 'Doesn\'t contain all edges')
     self.assertEqual(edges_in.get(3), 1, 'Doesn\'t contain all edges')
Ejemplo n.º 24
0
 def test_get_all_funcs(self):
     graph = DiGraph()
     self.assertEqual({}, graph.all_in_edges_of_node(1))
     self.assertEqual({}, graph.all_out_edges_of_node(1))
     self.assertEqual([], list(graph.get_all_v().keys()))
     self.assertEqual([], list(self.graph.all_out_edges_of_node(15)))
     self.assertEqual([], list(self.graph.all_in_edges_of_node(15)))
     self.assertEqual({1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}, self.graph.get_all_v().keys())
     self.assertEqual({1, 9, 13}, self.graph.all_in_edges_of_node(5).keys())
     self.assertEqual({3, 7, 4}, self.graph.all_in_edges_of_node(9).keys())
     self.assertEqual([], list(self.graph.all_in_edges_of_node(1).keys()))
     self.assertEqual({2, 5}, self.graph.all_out_edges_of_node(1).keys())
     self.graph.remove_node(5)
     self.assertEqual({1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14}, self.graph.get_all_v().keys())
Ejemplo n.º 25
0
    def test_all_out_edges_of_nodes(self):
        graph = DiGraph()
        for i in range(10):
            graph.add_node(i)
        graph.add_edge(1, 2, 1.2)
        graph.add_edge(1, 3, 1.2)
        graph.add_edge(1, 4, 1.2)
        graph.add_edge(1, 5, 1.2)
        graph.add_edge(1, 5, 1.2)

        graph.add_edge(9, 1, 14.0)
        graph.add_edge(9, 1, 14.0)
        graph.add_edge(8, 1, 15.0)
        self.assertEqual(4, len(graph.all_out_edges_of_node(1)))
Ejemplo n.º 26
0
    def test_add_edge(self):
        graph = DiGraph()
        for i in range(1, 11):
            graph.add_node(i)
        graph.add_edge(1, 2, 5)
        graph.add_edge(1, 8, 4)
        graph.add_edge(9, 10, 0)
        graph.add_edge(5, 2, 3)

        self.assertEqual(4, graph.e_size())
        self.assertFalse(graph.add_edge(1, 100, 4))
        self.assertEqual(2, len(graph.all_out_edges_of_node(1)))
        self.assertEqual(0, len(graph.all_out_edges_of_node(4)))
        graph.remove_edge(1, 8)
        self.assertEqual(3, graph.e_size())
        self.assertEqual(1, len(graph.all_out_edges_of_node(1)))
        graph.remove_node(9)
        self.assertEqual(2, graph.e_size())
        self.assertEqual(0, len(graph.all_out_edges_of_node(10)))
        self.assertFalse(graph.add_edge(1, 2, -9))
        self.assertFalse(graph.add_edge(1, 4, -9))
        self.assertEqual(2, graph.e_size())# If the weight is negative then the number of ribs does not change.
        self.assertEqual(16, graph.get_mc())
Ejemplo n.º 27
0
    def test_add_edge(self):
        graph = DiGraph()
        graph.add_node(1)
        graph.add_node(2)
        graph.add_edge(1, 2, 1)
        self.assertEqual(graph.all_in_edges_of_node(2).get(1), 1, "yalla")
        self.assertEqual(graph.all_out_edges_of_node(1).get(2), 1, "yalla")
        graph.add_edge(1, 2, 1)
        self.assertEqual(
            graph.all_out_edges_of_node(1).get(2), 1,
            "failed in add duplicate test")
        self.assertEqual(
            graph.all_in_edges_of_node(2).get(1), 1,
            "failed in add duplicate test")
        self.assertEqual(graph.e_size(), 1, "failed in add duplicate test")

        graph.add_edge(1, 1, 1)
        self.assertEqual(
            graph.all_out_edges_of_node(1).get(1), None,
            "failed in add duplicate test")
        self.assertEqual(
            graph.all_in_edges_of_node(1).get(1), None,
            "failed in add duplicate test")
        self.assertEqual(graph.e_size(), 1, "failed in add duplicate test")
Ejemplo n.º 28
0
 def test_all_out_edges_of_node(self):
     graph = DiGraph()
     edges_list_tuple = []
     for i in range(5):
         graph.add_node(i)
     for s in graph.get_all_v().keys():
         for d in graph.get_all_v().keys():
             w = random.random()
             graph.add_edge(s, d, w)
             edges_list_tuple.append((s, d, w))
     for v in graph.get_all_v().keys():
         edges_list = [(s, d, w) for s, d, w in edges_list_tuple
                       if d != s and s == v]
         edge_dict = graph.all_out_edges_of_node(v)
         for s, d, w in edges_list:
             self.assertEqual(edge_dict[d], w)
Ejemplo n.º 29
0
 def test_remove_node(self):
     g0 = DiGraph()
     for i in range(0, 10):
         g0.add_node(i)
     g0.add_edge(4, 3, 1)
     g0.add_edge(4, 2, 1)
     g0.add_edge(2, 4, 1)
     g0.add_edge(1, 2, 1)
     g0.add_edge(5, 4, 1)
     g0.add_edge(2, 5, 1)
     g0.remove_node(4)
     self.assertEqual(g0.get_all_v().get(4), None)
     self.assertEqual(0, len(g0.all_out_edges_of_node(5)))
     self.assertEqual(9, g0.v_size())
     self.assertEqual(2, g0.e_size())
     self.assertTrue(g0.remove_node(9))
     self.assertIsNone(g0.get_all_v().get(9))  # remove node without neighbors
     self.assertEqual(8, g0.v_size())
     self.assertEqual(2, g0.e_size())
     self.assertEqual(18, g0.get_mc())
Ejemplo n.º 30
0
    def test_get_edges(self):  # check for correct edges' dict values
        graph = DiGraph()
        for i in range(6):
            graph.add_node(i)
        graph.add_edge(0, 1, 1)
        graph.add_edge(2, 1, 3)
        graph.add_edge(3, 1, 4)
        graph.add_edge(1, 2, 3)
        graph.add_edge(1, 5, 6)

        # estimated values
        check_out = {2: 3, 5: 6}
        edges_out = graph.all_out_edges_of_node(1)
        check_in = {0: 1, 2: 3, 3: 4}
        edges_in = graph.all_in_edges_of_node(1)

        # check every dictionary values
        for e in edges_out:
            self.assertEqual(check_out[e], edges_out[e])
        for e in edges_in:
            self.assertEqual(check_in[e], edges_in[e])