예제 #1
0
        public void Find_shortest_path_in_graph()
        {
            using (var reader = File.OpenText(@"C:\rajiv\DSinCS\DataStructures\DSTests\Data\tinyEWD.txt"))
            {
                var V = uint.Parse(reader.ReadLine());
                var g = new DGraph<int>(V);
                reader.ReadLine();
                while (!reader.EndOfStream)
                {
                    var line = reader.ReadLine();
                    if(line == null) { continue; }
                    var inp = line.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
                    var u = int.Parse(inp[0]);
                    var v = int.Parse(inp[1]);
                    var w = float.Parse(inp[2]);
                    g.AddEdge(u, v, w);
                }
                var res = g.ShortestPathTree(0);
                Assert.AreEqual(res[0], 0);
                Assert.AreEqual(res[1], (float)1.05);
                Assert.AreEqual(res[2], (float)0.26);
                Assert.AreEqual(res[3], (float)0.99);
                Assert.AreEqual(res[4], (float)0.38);
                Assert.AreEqual(res[5], (float)0.73);
                Assert.AreEqual(res[6], (float)1.51);
                Assert.AreEqual(res[7], (float)0.6);

            }
        }