Ejemplo n.º 1
0
    def test_undirected_graph_remove_vertex(self):
        """ Remove vertices from an undirected graph """
        g = UndirectedGraph()
        g.add_vertex(v_val='v0')
        g.add_vertex(v_val='v1')
        g.add_vertex(v_val='v2')
        g.add_edge(('v0', 'v1'))
        g.add_edge(('v1', 'v2'))

        g.remove_vertex('v0')

        self.assertFalse(g.has_vertex('v0'))
        self.assertTrue(g.has_vertex('v1'))
        self.assertTrue(g.has_vertex('v2'))
        self.assertFalse(g.has_edge(('v0', 'v1')))
        self.assertFalse(g.has_edge(('v1', 'v0')))
        self.assertTrue(g.has_edge(('v1', 'v2')))

        g.remove_vertex('v1')

        self.assertFalse(g.has_vertex('v0'))
        self.assertFalse(g.has_vertex('v1'))
        self.assertTrue(g.has_vertex('v2'))
        self.assertFalse(g.has_edge(('v0', 'v1')))
        self.assertFalse(g.has_edge(('v1', 'v0')))
        self.assertFalse(g.has_edge(('v1', 'v2')))
Ejemplo n.º 2
0
    def test_undirected_graph_add_vertex(self):
        """ Add vertices to an undirected graph """
        g = UndirectedGraph()
        v0_val = g.add_vertex(v_val='v0', attrs={'city': 'Modena'})
        v1_val = g.add_vertex(v_val='v1')

        self.assertEqual(v0_val, 'v0')
        self.assertEqual(v1_val, 'v1')
        self.assertTrue(g.has_vertex('v0'))
        self.assertTrue(g.has_vertex('v1'))
        self.assertFalse(g.has_vertex('v2'))
        self.assertEqual(g.get_vertex(v0_val).get('city'), 'Modena')
        self.assertIsNone(g.get_vertex(v1_val).get('city'))
Ejemplo n.º 3
0
    def test_undirected_graph_iteration(self):
        """ Iterate through an undirected graph """
        g = UndirectedGraph()

        counter = 0
        for v in g:
            counter += 1
        self.assertEqual(counter, 0)

        g.add_vertex(v_val='v0')
        g.add_vertex(v_val='v1')
        g.add_edge(('v0', 'v1'))

        for v in g:
            counter += 1
            self.assertTrue(g.has_vertex(v.val))
        self.assertEqual(counter, 2)