Made command system and DFS usage more intuitive.
This commit is contained in:
@@ -15,7 +15,6 @@ import org.junit.jupiter.api.TestInstance;
|
||||
import org.junit.jupiter.api.TestInstance.Lifecycle;
|
||||
|
||||
import ca.recrown.islandsurvivalcraft.utilities.datatypes.Point2;
|
||||
import ca.recrown.islandsurvivalcraft.utilities.pathfinding.CoordinateTargetValidatable;
|
||||
import ca.recrown.islandsurvivalcraft.utilities.pathfinding.CoordinateValidatable;
|
||||
|
||||
/**
|
||||
@@ -24,7 +23,7 @@ import ca.recrown.islandsurvivalcraft.utilities.pathfinding.CoordinateValidatabl
|
||||
@TestInstance(Lifecycle.PER_CLASS)
|
||||
public class DepthFirstSearchTest {
|
||||
|
||||
private class Validator implements CoordinateValidatable, CoordinateTargetValidatable {
|
||||
private class Validator implements CoordinateValidatable {
|
||||
private byte[][] map;
|
||||
|
||||
public Validator(byte[][] map) {
|
||||
@@ -39,15 +38,24 @@ public class DepthFirstSearchTest {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private class TargetValidator implements CoordinateValidatable {
|
||||
private byte[][] map;
|
||||
|
||||
public TargetValidator(byte[][] map) {
|
||||
this.map = map;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isCoordinateTarget(Point2 point) {
|
||||
public boolean validate(Point2 point) {
|
||||
try {
|
||||
return map[point.y][point.x] == 2;
|
||||
} catch (IndexOutOfBoundsException e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private byte[][] mapA;
|
||||
@@ -139,7 +147,8 @@ public class DepthFirstSearchTest {
|
||||
public void testDFSFindEndNodeMapBValid() {
|
||||
DepthFirstSearch dfs = new DepthFirstSearch(new Point2(3, 0), new Point2(0, 0));
|
||||
Validator validator = new Validator(mapB);
|
||||
dfs.buildToGoal(validator, validator);
|
||||
TargetValidator targetValidator = new TargetValidator(mapB);
|
||||
dfs.buildToGoal(validator, targetValidator);
|
||||
assertTrue(dfs.getResult() != null);
|
||||
assertEquals(1, dfs.getResult().x);
|
||||
assertEquals(2, dfs.getResult().y);
|
||||
@@ -148,8 +157,9 @@ public class DepthFirstSearchTest {
|
||||
@Test
|
||||
public void testDFSFindEndNodeMapDValid() {
|
||||
Validator validator = new Validator(mapD);
|
||||
TargetValidator targetValidator = new TargetValidator(mapD);
|
||||
DepthFirstSearch dfs = new DepthFirstSearch(new Point2(0, 0), new Point2(0, 0));
|
||||
dfs.buildToGoal(validator, validator);
|
||||
dfs.buildToGoal(validator, targetValidator);
|
||||
assertTrue(dfs.getResult() != null);
|
||||
assertEquals(0, dfs.getResult().x);
|
||||
assertEquals(3, dfs.getResult().y);
|
||||
@@ -158,8 +168,9 @@ public class DepthFirstSearchTest {
|
||||
@Test
|
||||
public void testDFSFindEndNodeMapHValid() {
|
||||
Validator validator = new Validator(mapH);
|
||||
TargetValidator targetValidator = new TargetValidator(mapH);
|
||||
DepthFirstSearch dfs = new DepthFirstSearch(new Point2(3, 0), new Point2(0, 0));
|
||||
dfs.buildToGoal(validator, validator);
|
||||
dfs.buildToGoal(validator, targetValidator);
|
||||
|
||||
assertTrue(dfs.getResult() != null);
|
||||
assertEquals(95, dfs.getResult().x);
|
||||
@@ -169,8 +180,9 @@ public class DepthFirstSearchTest {
|
||||
@Test
|
||||
public void testDFSFindEndNodeMapHInvalidLimited() {
|
||||
Validator validator = new Validator(mapH);
|
||||
TargetValidator targetValidator = new TargetValidator(mapH);
|
||||
DepthFirstSearch dfs = new DepthFirstSearch(new Point2(3, 0), new Point2(0, 0), null, 128);
|
||||
dfs.buildToGoal(validator, validator);
|
||||
dfs.buildToGoal(validator, targetValidator);
|
||||
assertFalse(dfs.getResult() != null);
|
||||
}
|
||||
|
||||
@@ -178,16 +190,18 @@ public class DepthFirstSearchTest {
|
||||
@Test
|
||||
public void testDFSFindEndNodeMapEInvalid() {
|
||||
Validator validator = new Validator(mapE);
|
||||
TargetValidator targetValidator = new TargetValidator(mapE);
|
||||
DepthFirstSearch dfs = new DepthFirstSearch(new Point2(0, 0), new Point2(0, 0), null, 128);
|
||||
dfs.buildToGoal(validator, validator);
|
||||
dfs.buildToGoal(validator, targetValidator);
|
||||
assertFalse(dfs.getResult() != null);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDFSFindEndNodeMapFValid() {
|
||||
Validator validator = new Validator(mapF);
|
||||
TargetValidator targetValidator = new TargetValidator(mapF);
|
||||
DepthFirstSearch dfs = new DepthFirstSearch(new Point2(0, 0), new Point2(0, 0), null, 1024);
|
||||
dfs.buildToGoal(validator, validator);
|
||||
dfs.buildToGoal(validator, targetValidator);
|
||||
assertTrue(dfs.getResult() != null);
|
||||
assertEquals(26, dfs.getResult().x);
|
||||
assertEquals(32, dfs.getResult().y);
|
||||
@@ -196,16 +210,18 @@ public class DepthFirstSearchTest {
|
||||
@Test
|
||||
public void testDFSFindEndNodeMapGInvalid() {
|
||||
Validator validator = new Validator(mapG);
|
||||
TargetValidator targetValidator = new TargetValidator(mapG);
|
||||
DepthFirstSearch dfs = new DepthFirstSearch(new Point2(0, 0), new Point2(0, 0), null, 128);
|
||||
dfs.buildToGoal(validator, validator);
|
||||
dfs.buildToGoal(validator, targetValidator);
|
||||
assertFalse(dfs.getResult() != null);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDFSFindEndNodeMapHWithAssistValid() {
|
||||
Validator validator = new Validator(mapH);
|
||||
TargetValidator targetValidator = new TargetValidator(mapH);
|
||||
DepthFirstSearch dfs = new DepthFirstSearch(new Point2(3, 0), new Point2(95, 49), null, 0);
|
||||
dfs.buildToGoal(validator, validator);
|
||||
dfs.buildToGoal(validator, targetValidator);
|
||||
assertTrue(dfs.getResult() != null);
|
||||
assertEquals(95, dfs.getResult().x);
|
||||
assertEquals(49, dfs.getResult().y);
|
||||
@@ -214,8 +230,9 @@ public class DepthFirstSearchTest {
|
||||
@Test
|
||||
public void testDFSFindEndNodeMapHWithoutAssistValid() {
|
||||
Validator validator = new Validator(mapH);
|
||||
TargetValidator targetValidator = new TargetValidator(mapH);
|
||||
DepthFirstSearch dfs = new DepthFirstSearch(new Point2(3, 0), new Point2(0, 0), null, 0);
|
||||
dfs.buildToGoal(validator, validator);
|
||||
dfs.buildToGoal(validator, targetValidator);
|
||||
assertTrue(dfs.getResult() != null);
|
||||
assertEquals(95, dfs.getResult().x);
|
||||
assertEquals(49, dfs.getResult().y);
|
||||
|
Reference in New Issue
Block a user