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')))
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'))
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)