def test_Adjacents(self): graph = Graph() graph.add_edge(49, 57, weight=50) graph.add_edge(78, 57, weight=41) graph.add_edge(49, 8, weight=97) graph.add_edge(49, 26, weight=42) adj = [ v for v in graph.adjacent_to(49)] self.assertEqual(sorted(adj),[8, 26, 57]) self.assertIn(49, graph.adjacent_to(adj[1])) self.assertEqual(set(graph.adjacent_to(49)), set(graph.edges[49].keys())) self.assertIn(26, graph.edges[49].keys()) self.assertIn(26, graph.adjacent_to(49)) self.assertNotIn(56,graph.adjacent_to(49)) from _collections_abc import dict_keys self.assertIsInstance(graph.adjacent_to(49, lazy=False), set) self.assertNotIsInstance(graph.adjacent_to(49),list) self.assertNotIsInstance(graph.adjacent_to(49),dict) self.assertNotIsInstance(graph.adjacent_to(49),set) self.assertIsInstance(graph.adjacent_to(49, lazy=False),set) self.assertEqual(graph.degree(49), 3) self.assertEqual(graph.degree(8), 1) self.assertEqual(graph.degree(10), 0)
def test_verticesAndEdgeInsertion(self): graph = Graph() self.assertEqual(len(graph.vertices),0) self.assertEqual(len(graph.edges),0) graph.add_node(4) self.assertIn(4, graph.vertices) # self.assertNotIn(4,graph.edges) graph.add_edge(4,5,weight=30) self.assertTrue(graph.has_edge(5,4)) self.assertTrue(graph.has_node(4)) self.assertTrue(graph.has_node(5)) self.assertFalse(graph.has_node(100)) self.assertIn(5,graph.vertices) self.assertIn(4, graph.vertices) self.assertIn(4,graph.edges) self.assertIn(5,graph.edges) self.assertNotIn(100, graph.vertices) self.assertNotIn(100,graph.edges) self.assertEqual(graph[4][5], 30) self.assertEqual(graph[4][5],graph[5][4]) # self.assertEqual(graph.vertices.count(4), 1) self.assertEqual(graph.size(),2) self.assertIsInstance(graph[5],dict) self.assertIsInstance(graph[4],dict) graph.add_edge(6,4,weight=29) self.assertTrue(graph.has_edge(4,6)) self.assertTrue(graph.has_node(6)) self.assertIn(6,graph.vertices) self.assertIn(6,graph.edges) self.assertEqual(graph[4][6], 29) self.assertEqual(graph[4][6],graph[6][4]) # self.assertEqual(graph.vertices.count(4), 1) graph.add_node(6) # inserting again # self.assertEqual(graph.vertices.count(6), 1) self.assertFalse(graph.has_edge(4,7)) self.assertEqual(graph.weight(4,7),float("inf")) self.assertEqual(graph.weight(4,4),0) self.assertEqual(graph.degree(4),2) self.assertEqual(graph.degree(5),1) self.assertEqual(graph.degree(6),1) graph.add_edge(150, 134, weight=9) self.assertEqual(graph[150][134], 9) self.assertEqual(graph.weight(134,150), 9)