Created package uninformed for uninformed search algorithms and moved the implementations to this package

This commit is contained in:
Niklas Birk
2019-04-01 20:27:14 +02:00
parent bb95a412d8
commit 4a0b04aefe
6 changed files with 8 additions and 12 deletions

View File

@ -0,0 +1,55 @@
package search.uninformed.breadthfirstsearch;
import org.junit.jupiter.api.Test;
import search.EightPuzzleNode;
import java.util.List;
import static search.SearchTestUtils.printSolution;
class BreadthFirstSearchTest
{
@Test
void shouldReturnCorrectTarget()
{
int[][] state = {
{5, 0, 3},
{2, 1, 6},
{4, 7, 8}
};
var root = new EightPuzzleNode(state);
int[][] targetState = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 0}
};
var expected = new EightPuzzleNode(targetState);
var actual = new BreadthFirstSearch().breadthFirstSearch(List.of(root), expected);
printSolution(actual);
}
@Test
void shouldReturnCorrectTargetCubekNode()
{
int[][] state = {
{2, 0, 4},
{6, 7, 1},
{8, 5, 3}
};
var root = new EightPuzzleNode(state);
int[][] targetState = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 0}
};
var expected = new EightPuzzleNode(targetState);
var actual = new BreadthFirstSearch().breadthFirstSearch(List.of(root), expected);
printSolution(actual);
}
}

View File

@ -0,0 +1,31 @@
package search.uninformed.depthfirstsearch;
import org.junit.jupiter.api.Test;
import search.EightPuzzleNode;
import static search.SearchTestUtils.printSolution;
class DepthFirstSearchTest
{
@Test
void shouldReturnCorrectTarget()
{
int[][] state = {
{1, 2, 3},
{4, 5, 6},
{7, 0, 8}
};
var root = new EightPuzzleNode(state);
int[][] targetState = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 0}
};
var expected = new EightPuzzleNode(targetState);
var actual = new DepthFirstSearch().depthFirstSearch(root, expected);
printSolution(actual);
}
}

View File

@ -0,0 +1,53 @@
package search.uninformed.iterativedeepening;
import org.junit.jupiter.api.Test;
import search.EightPuzzleNode;
import static search.SearchTestUtils.printSolution;
class IterativeDeepeningTest
{
@Test
void shouldReturnCorrectTarget()
{
int[][] state = {
{5, 0, 3},
{2, 1, 6},
{4, 7, 8}
};
var root = new EightPuzzleNode(state);
int[][] targetState = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 0}
};
var expected = new EightPuzzleNode(targetState);
var actual = new IterativeDeepening().iterativeDeepening(root, expected);
printSolution(actual);
}
@Test
void shouldReturnCorrectTargetCubekNode()
{
int[][] state = {
{2, 0, 4},
{6, 7, 1},
{8, 5, 3}
};
var root = new EightPuzzleNode(state);
int[][] targetState = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 0}
};
var expected = new EightPuzzleNode(targetState);
var actual = new IterativeDeepening().iterativeDeepening(root, expected);
printSolution(actual);
}
}