Added testclass and implemented methods
This commit is contained in:
87
test/search/breadthfirstsearch/EightPuzzleNodeTest.java
Normal file
87
test/search/breadthfirstsearch/EightPuzzleNodeTest.java
Normal file
@ -0,0 +1,87 @@
|
||||
package search.breadthfirstsearch;
|
||||
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
class EightPuzzleNodeTest
|
||||
{
|
||||
@Test
|
||||
public void shouldThrowExceptionWhileStateHasDuplicateNumbers()
|
||||
{
|
||||
int[][] state = {
|
||||
{1, 1, 3},
|
||||
{4, 5, 6},
|
||||
{7, 8, 0}
|
||||
};
|
||||
|
||||
Assertions.assertThrows(IllegalArgumentException.class, () -> new EightPuzzleNode(state));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shouldThrowExceptionWhileStateHasNumbersOutOfRange()
|
||||
{
|
||||
int[][] state = {
|
||||
{1, 2, 3},
|
||||
{4, 5, 6},
|
||||
{7, 8, 9}
|
||||
};
|
||||
|
||||
Assertions.assertThrows(IllegalArgumentException.class, () -> new EightPuzzleNode(state));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shouldReturnTrueWhenTargetReached()
|
||||
{
|
||||
int[][] state = {
|
||||
{1, 2, 3},
|
||||
{4, 5, 6},
|
||||
{7, 8, 0}
|
||||
};
|
||||
|
||||
var node = new EightPuzzleNode(state);
|
||||
var target = new EightPuzzleNode(state);
|
||||
|
||||
Assertions.assertTrue(node.isTargetReached(target));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shouldReturnFalseWhenTargetNotReached()
|
||||
{
|
||||
int[][] actualState = {
|
||||
{7, 1, 6},
|
||||
{0, 4, 2},
|
||||
{3, 5, 8}
|
||||
};
|
||||
|
||||
int[][] targetState = {
|
||||
{1, 2, 3},
|
||||
{4, 5, 6},
|
||||
{7, 8, 0}
|
||||
};
|
||||
|
||||
var node = new EightPuzzleNode(actualState);
|
||||
var target = new EightPuzzleNode(targetState);
|
||||
|
||||
Assertions.assertFalse(node.isTargetReached(target));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shouldReturnNonEmptyListOfSuccessors()
|
||||
{
|
||||
int[][] state = {
|
||||
{7, 1, 6},
|
||||
{0, 4, 2},
|
||||
{3, 5, 8}
|
||||
};
|
||||
|
||||
var node = new EightPuzzleNode(state);
|
||||
var successors = node.generateSuccessors();
|
||||
|
||||
Assertions.assertFalse(successors.isEmpty());
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user