コード例 #1
0
        public void cheapestFirePathTest()
        {
            TravelWorld world = new TravelWorld();

            world.AddPlaces(1, 2, 3, 4);
            world.AddWay(1, 2, 10);
            world.AddWay(2, 3, 5);
            world.AddWay(4, 3, 5);
            world.SetFire(1, 2);
            world.SetFire(4, 3);
            var paths = world.findCheapestFirePaths(2).ToArray();

            if (paths.Count() != 2)
            {
                Assert.Fail();
            }

            var path1    = paths[0];
            var path2    = paths[1];
            var resPath1 = new TravelPath();

            resPath1.Add(1, 10);
            var resPath2 = new TravelPath();

            resPath2.Add(3, 5);
            resPath2.Add(4, 5);
            Assert.IsTrue(
                path1.Equals(resPath1) && path2.Equals(resPath2) ||
                path1.Equals(resPath2) && path2.Equals(resPath1));
        }
コード例 #2
0
        private TravelPath findFirePath(TravelWorld world)
        {
            var paths = world.findCheapestFirePaths(CurrentLocation);

            if (paths == null || paths.Count() == 0)
            {
                return(null);
            }

            return(findMinDest(paths));
        }
コード例 #3
0
        public void cheapestFirePathTest2()
        {
            TravelWorld world = new TravelWorld();

            world.AddPlaces(1, 2, 3, 4);
            world.AddWay(1, 2, 10);
            world.AddWay(2, 3, 5);
            world.AddWay(4, 3, 5);
            world.SetFire(1, 2);
            var paths = world.findCheapestFirePaths(2).ToArray();

            if (paths.Count() != 1)
            {
                Assert.Fail();
            }

            var path1    = paths.First();
            var resPath1 = new TravelPath();

            resPath1.Add(1, 10);
            Assert.AreEqual(path1, resPath1);
        }