예제 #1
0
        public void TestViablePath()
        {
            var roads = new TestRoads();


            Assert.AreEqual(1, roads.seg_0_0_10_0.AIRoutes.Length);
            Assert.AreEqual(1, roads.seg_40_0_50_0.AIRoutes.Length);
            Assert.AreEqual(3, roads.seg_0_0_10_0.AIRoutes[0].Paths.Length);
            Assert.AreEqual(3, roads.seg_40_0_50_0.AIRoutes[0].Paths.Length);

            var routeSolver = new RouteSolver(roads.seg_0_0_10_0.AIRoutes, roads.seg_40_0_50_0.AIRoutes);

            while (!routeSolver.IsComplete)
            {
                routeSolver.Iterate();
            }
            Assert.IsTrue(routeSolver.IsSuccess);

            var route = routeSolver.Solution;

            var pathSolver = new PathSolver(roads.seg_0_0_10_0.AIRoutes[0].Paths, roads.seg_40_0_50_0.AIRoutes[0].Paths, route);

            while (!pathSolver.IsComplete)
            {
                pathSolver.Iterate();
            }
            Assert.IsTrue(pathSolver.IsSuccess);
        }
예제 #2
0
        private void TestRoute(TestRoute from, TestRoute to, TestRoute[] array)
        {
            var solver = new RouteSolver(new[] { from }, new[] { to });

            while (solver.Iterate())
            {
            }

            Assert.IsTrue(solver.IsComplete);
            Assert.IsTrue(solver.IsSuccess);

            CollectionAssert.AreEqual(array, solver.Solution.ToArray());
            r.HighlightRoute(array);
        }