//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void testRun() public virtual void TestRun() { // make the graph Graph.makeEdgeChain("a,b1,c1,d1,e1,f1,g1"); Graph.makeEdgeChain("a,b2,c2,d2,e2,f2,g2"); Graph.makeEdgeChain("a,b3,c3,d3,e3,f3,g3"); Graph.makeEdgeChain("b1,b2,b3,b1"); Graph.makeEdgeChain("d1,d2,d3,d1"); Graph.makeEdgeChain("f1,f2,f3,f1"); // make the computation SingleSourceShortestPath <int> singleSource = GetSingleSourceAlgorithm(Graph.getNode("a")); // check a few distances assertEquals(0, ( int )singleSource.GetCost(Graph.getNode("a"))); assertEquals(1, ( int )singleSource.GetCost(Graph.getNode("b2"))); assertEquals(2, ( int )singleSource.GetCost(Graph.getNode("c3"))); assertEquals(3, ( int )singleSource.GetCost(Graph.getNode("d1"))); assertEquals(4, ( int )singleSource.GetCost(Graph.getNode("e2"))); assertEquals(5, ( int )singleSource.GetCost(Graph.getNode("f3"))); assertEquals(6, ( int )singleSource.GetCost(Graph.getNode("g1"))); // check one path IList <Node> path = singleSource.GetPathAsNodes(Graph.getNode("g2")); assertEquals(7, path.Count); assertEquals(path[0], Graph.getNode("a")); assertEquals(path[1], Graph.getNode("b2")); assertEquals(path[2], Graph.getNode("c2")); assertEquals(path[3], Graph.getNode("d2")); assertEquals(path[4], Graph.getNode("e2")); assertEquals(path[5], Graph.getNode("f2")); assertEquals(path[6], Graph.getNode("g2")); // check it as relationships IList <Relationship> rpath = singleSource.GetPathAsRelationships(Graph.getNode("g2")); assertEquals(6, rpath.Count); assertEquals(rpath[0], Graph.getRelationship("a", "b2")); assertEquals(rpath[1], Graph.getRelationship("b2", "c2")); assertEquals(rpath[2], Graph.getRelationship("c2", "d2")); assertEquals(rpath[3], Graph.getRelationship("d2", "e2")); assertEquals(rpath[4], Graph.getRelationship("e2", "f2")); assertEquals(rpath[5], Graph.getRelationship("f2", "g2")); // check it as both IList <PropertyContainer> cpath = singleSource.GetPath(Graph.getNode("g2")); assertEquals(13, cpath.Count); assertEquals(cpath[0], Graph.getNode("a")); assertEquals(cpath[2], Graph.getNode("b2")); assertEquals(cpath[4], Graph.getNode("c2")); assertEquals(cpath[6], Graph.getNode("d2")); assertEquals(cpath[8], Graph.getNode("e2")); assertEquals(cpath[10], Graph.getNode("f2")); assertEquals(cpath[12], Graph.getNode("g2")); assertEquals(cpath[1], Graph.getRelationship("a", "b2")); assertEquals(cpath[3], Graph.getRelationship("b2", "c2")); assertEquals(cpath[5], Graph.getRelationship("c2", "d2")); assertEquals(cpath[7], Graph.getRelationship("d2", "e2")); assertEquals(cpath[9], Graph.getRelationship("e2", "f2")); assertEquals(cpath[11], Graph.getRelationship("f2", "g2")); Graph.clear(); }
static void Main(string[] args) { string path = @"xml/Rete.xml"; IGraph g = new Graph(); g.CreateFromXmlDocument(path); IVertex v = g.Vertices.FindByID("B"); IVertex w = g.Vertices.FindByID("F"); SingleSourceShortestPath sp = new SingleSourceShortestPath(g, v); sp.Compute(); IPath p = sp.GetShortestPath(w); Console.WriteLine($"{p} (weight: {p.TotalWeight})"); Console.ReadLine(); }