示例#1
0
    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)
示例#2
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)