示例#1
0
        public void Equals_Obj_Test_Matching_Same_Solotion()
        {
            IHeuristic          AirDistance      = new MazeAirDistance();
            ASearchingAlgorithm astarAir         = new Astar(AirDistance);
            MazeGenerator       DfsMazeGenerator = new DfsMazeGenerator();
            maze        Dfs            = DfsMazeGenerator.generatMaze(20, 20);
            ISearchable SearchableMaze = new SearchableMaze(Dfs, false);
            Solution    target         = astarAir.Solve(SearchableMaze);

            Solution inObject = astarAir.Solve(SearchableMaze);
            bool     expected = true;
            bool     actual   = target.GetSolutionPath().Capacity.Equals(inObject.GetSolutionPath().Capacity);

            Assert.AreEqual(expected, actual);
        }
示例#2
0
        public void Equals_Sol_Test_null()
        {
            IHeuristic          AirDistance      = new MazeAirDistance();
            ASearchingAlgorithm astarAir         = new Astar(AirDistance);
            MazeGenerator       DfsMazeGenerator = new DfsMazeGenerator();
            maze        Dfs             = DfsMazeGenerator.generatMaze(20, 20);
            ISearchable SearchableMazeA = new SearchableMaze(Dfs, false);
            ISearchable SearchableMazeB = new SearchableMaze(Dfs, true);

            Solution target   = astarAir.Solve(SearchableMazeA);
            Solution inObject = astarAir.Solve(SearchableMazeB);
            bool     expected = false;
            bool     actual   = target.Equals(inObject);

            Assert.AreEqual(expected, actual);
        }
示例#3
0
        public void Run100()
        {
            IHeuristic          AirDistance      = new MazeAirDistance();
            ASearchingAlgorithm astarAir         = new Astar(AirDistance);
            MazeGenerator       DfsMazeGenerator = new DfsMazeGenerator();
            maze        Dfs            = DfsMazeGenerator.generatMaze(20, 20);
            ISearchable SearchableMaze = new SearchableMaze(Dfs, true);
            Solution    inObject       = astarAir.Solve(SearchableMaze);
            Solution    target;

            bool expected = true;

            for (int i = 0; i < 100; i++)
            {
                target = astarAir.Solve(SearchableMaze);
                bool actual = target.GetSolutionPath().Capacity.Equals(inObject.GetSolutionPath().Capacity);
                Assert.AreEqual(expected, actual);
            }
        }
示例#4
0
        /// ThreadPoolGeneratMaze<summary>
        /// thrading to genrate maze by give algorithem
        /// </summary>
        /// <param name="param">'hight' 'width' 'name'</param>
        public void ThreadPoolGeneratMaze(object param)
        {
            string[] p = (string[])param;

            IStoppable NewMazeGenerator;

            if (Curr_Genrator == "Dfs")//// Change from Configure
            {
                NewMazeGenerator = new DfsMazeGenerator();
            }
            else
            {
                NewMazeGenerator = new RandomMazeGenerator();
            }

            Workers.Add(NewMazeGenerator);
            maze m_Maze = new maze();

            m_Status = string.Format("Maze {0} started Genarate...", p[2]);
            PrintEvent();

            m_Maze = (maze)(((MazeGenerator)NewMazeGenerator).generatMaze(Convert.ToInt32(p[0]), Convert.ToInt32(p[1])));

            if (m_Maze != null)
            {
                extendedMaze ex_Maze = new extendedMaze(m_Maze);
                ex_Maze.setName(p[2]);
                if (p[3] != "0")
                {
                    ex_Maze.SaveGuiParams(p[3]);
                }
                addMaze(ex_Maze, p[2]);
                m_Status = string.Format("Maze {0} is ready...", p[2]);
                PrintEvent();
            }
        }