def test_directed_graph_remove_vertex(self): """ Remove vertices from a directed graph """ g = DirectedGraph() 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', 'v1'))) self.assertFalse(g.has_edge(('v1', 'v2')))
def test_directed_graph_add_vertex(self): """ Add vertices to a directed graph """ g = DirectedGraph() 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').get('city'), 'Modena') self.assertIsNone(g.get_vertex('v1').get('city'))
def test_directed_graph_iteration(self): """ Iterate through a directed graph """ g = DirectedGraph() 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)