public void TestNPuzzleBreadthFirstSearch() { var solver = new BreadthFirstSearchSolver <NPuzzle>(); var problem = new NPuzzleProblem(3, 3, "8 6 7 2 5 4 3 0 1"); TestSolver(solver, problem, 27); // cannot really solve larger problems with this method }
public void TestNPuzzleAStarSearchHammingDistance() { var solver = new AStarSearchSolver <NPuzzle>(NPuzzle.HammingDistance); var problem = new NPuzzleProblem(3, 3, "8 6 7 2 5 4 3 0 1"); TestSolver(solver, problem, 27); // cannot really solve larger problems with this method }
public void TestNPuzzleAStarSearchManhattanDistance() { var solver = new AStarSearchSolver <NPuzzle>(NPuzzle.ManhattanDistance); var problem = new NPuzzleProblem(3, 3, "8 6 7 2 5 4 3 0 1"); int expected = 27; //var problem = new NPuzzleProblem(3, 4, "3 7 9 11 4 8 10 0 5 2 1 6"); int expected = 37; //var problem = new NPuzzleProblem(4, 4, "14, 1, 9, 6, 4, 8, 12, 5, 7, 2, 3, 0, 10, 11, 13, 15"); int expected = 45; //var problem = new NPuzzleProblem(4, 4, "4, 3, 6, 13, 7, 15, 9, 0, 10, 5, 8, 11, 2, 12, 1, 14"); int expected = 50; TestSolver(solver, problem, expected); }