本文整理汇总了Python中apgl.graph.DictGraph.DictGraph.findAllDistances方法的典型用法代码示例。如果您正苦于以下问题:Python DictGraph.findAllDistances方法的具体用法?Python DictGraph.findAllDistances怎么用?Python DictGraph.findAllDistances使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类apgl.graph.DictGraph.DictGraph
的用法示例。
在下文中一共展示了DictGraph.findAllDistances方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: DictGraphTest
# 需要导入模块: from apgl.graph.DictGraph import DictGraph [as 别名]
# 或者: from apgl.graph.DictGraph.DictGraph import findAllDistances [as 别名]
#.........这里部分代码省略.........
self.assertTrue((graph.dijkstrasAlgorithm(3) == numpy.array([2, 1, 2, 0, 3])).all())
self.assertTrue((graph.dijkstrasAlgorithm(4) == numpy.array([3, 2, 1, 3, 0])).all())
#Test a graph which has an isolated node
graph = DictGraph()
graph.setVertex(5, 1)
graph.addEdge(0, 1, 1)
graph.addEdge(1, 2, 1)
graph.addEdge(1, 3, 1)
self.assertTrue((graph.dijkstrasAlgorithm(0) == numpy.array([0, 1, 2, 2, numpy.inf])).all())
#Test a graph in a ring
graph = DictGraph()
graph.addEdge(0, 1, 1)
graph.addEdge(1, 2, 1)
graph.addEdge(2, 3, 1)
graph.addEdge(3, 4, 1)
graph.addEdge(4, 0, 1)
self.assertTrue((graph.dijkstrasAlgorithm(0) == numpy.array([0, 1, 2, 2, 1])).all())
#Try case in which vertex ids are not numbers
graph = DictGraph()
graph.addEdge("a", "b", 1)
graph.addEdge("b", "c", 1)
graph.addEdge("b", "d", 1)
graph.addEdge("c", "e", 1)
inds = Util.argsort(graph.getAllVertexIds())
self.assertTrue((graph.dijkstrasAlgorithm("a")[inds] == numpy.array([0, 1, 2, 2, 3])).all())
self.assertTrue((graph.dijkstrasAlgorithm("b")[inds] == numpy.array([1, 0, 1, 1, 2])).all())
self.assertTrue((graph.dijkstrasAlgorithm("c")[inds] == numpy.array([2, 1, 0, 2, 1])).all())
self.assertTrue((graph.dijkstrasAlgorithm("d")[inds] == numpy.array([2, 1, 2, 0, 3])).all())
self.assertTrue((graph.dijkstrasAlgorithm("e")[inds] == numpy.array([3, 2, 1, 3, 0])).all())
def testAdjacencyList(self):
graph = DictGraph()
graph.addEdge("a", "b", 1)
graph.addEdge("b", "c", 1)
graph.addEdge("b", "d", 1)
graph.addEdge("c", "e", 1)
graph.setVertex("f", 1)
neighbourIndices, neighbourWeights = graph.adjacencyList()
vertexIds = graph.getAllVertexIds()
for i in range(len(neighbourIndices)):
for k, j in enumerate(neighbourIndices[i]):
self.assertTrue(graph.edgeExists(vertexIds[i], vertexIds[j]))
self.assertEquals(graph[vertexIds[i], vertexIds[j]], neighbourWeights[i][k])
def testFindAllDistances(self):
P = self.graph.findAllDistances()
P2 = numpy.zeros((self.graph.size, self.graph.size))
P2[0, :] = numpy.array([0, 1, 2, 2, 1, numpy.inf])
P2[1, :] = numpy.array([1, 0, 3, 1, 2, numpy.inf])
P2[2, :] = numpy.array([2, 3, 0, 4, 3, numpy.inf])
P2[3, :] = numpy.array([2, 1, 4, 0, 1, numpy.inf])
P2[4, :] = numpy.array([1, 2, 3, 1, 0, numpy.inf])
P2[5, :] = numpy.array([numpy.inf, numpy.inf, numpy.inf, numpy.inf, numpy.inf, 0])
self.assertTrue((P == P2).all())
#Now test the directed graph
P = self.graph2.findAllDistances()
P2 = numpy.zeros((self.graph.size, self.graph.size))
P2[0, :] = numpy.array([0, 1, 2, 2, 1, numpy.inf])
P2[1, :] = numpy.array([numpy.inf, 0, numpy.inf, 1, 2, numpy.inf])
P2[2, :] = numpy.array([numpy.inf, numpy.inf, 0, 5, 6, numpy.inf])
P2[3, :] = numpy.array([numpy.inf, numpy.inf, numpy.inf, 0, 1, numpy.inf])
P2[4, :] = numpy.array([numpy.inf, numpy.inf, numpy.inf, numpy.inf, 0, numpy.inf])
P2[5, :] = numpy.array([numpy.inf, numpy.inf, numpy.inf, numpy.inf, numpy.inf, 0])
self.assertTrue((P == P2).all())
def testToIGraph(self):
try:
import igraph
except ImportError as error:
logging.debug(error)
return
graph = DictGraph()
graph["a", "b"] = 1
graph["b", "c"] = 2
ig = graph.toIGraph()
self.assertEquals(len(ig.vs), 3)
self.assertEquals(ig[0, 2], 1)
self.assertEquals(ig[1, 2], 1)