Browse Source

Merge remote-tracking branch 'origin/checkBase' into develop

AIPlayer
FelixKrull 3 years ago
parent
commit
590296f9e9
  1. 12
      src/main/java/Player.java
  2. 14
      src/test/java/GameTest.java
  3. 69
      src/test/java/PlayerTest.java

12
src/main/java/Player.java

@ -38,4 +38,16 @@ public class Player {
} }
return true; return true;
} }
public boolean checkFigureInBase(Collection<Figure> figures) {
Iterator<Figure> it = figures.iterator();
Figure f;
for(;it.hasNext();) {
f = it.next();
if(f.getPosition() == -1) {
return true;
}
}
return false;
}
} }

14
src/test/java/GameTest.java

@ -2,20 +2,12 @@ import org.junit.jupiter.api.BeforeEach;
public class GameTest { public class GameTest {
private Gameboard gb;
private Player p1;
private Player p2;
private Player p3;
private Player p4;
private Game g;
@BeforeEach @BeforeEach
void setup() { void setup() {
this.gb = new Gameboard();
gb.initGameboard();
p1 = new Player("Rot", 40, 43);
p2 = new Player("Blau", 44, 47);
p3 = new Player("Gelb", 48, 51);
p4 = new Player("Grün", 52, 55);
g = new Game();
} }
} }

69
src/test/java/PlayerTest.java

@ -48,7 +48,7 @@ public class PlayerTest {
} }
@ParameterizedTest @ParameterizedTest
@MethodSource("FieldStream")
@MethodSource("GameWinTestData")
void checkGameWin(String testname, Collection<Figure> figures, Collection<Integer> positions, boolean expectedResult) { void checkGameWin(String testname, Collection<Figure> figures, Collection<Integer> positions, boolean expectedResult) {
Iterator<Figure> it = figures.iterator(); Iterator<Figure> it = figures.iterator();
Iterator<Integer> it2 = positions.iterator(); Iterator<Integer> it2 = positions.iterator();
@ -59,9 +59,21 @@ public class PlayerTest {
assertThat(calculatedResult).describedAs("Check Win").isEqualTo(expectedResult); assertThat(calculatedResult).describedAs("Check Win").isEqualTo(expectedResult);
} }
static Stream<Arguments> FieldStream() {
@ParameterizedTest
@MethodSource("BaseTestData")
void checkFigureInBase(String testname, Collection<Figure> figures, Collection<Integer> positions, boolean expectedResult) {
Iterator<Figure> it = figures.iterator();
Iterator<Integer> it2 = positions.iterator();
for(;it.hasNext();) {
it.next().setPosition(it2.next());
}
boolean calculatedResult = p.checkFigureInBase(figures);
assertThat(calculatedResult).describedAs("Check Win").isEqualTo(expectedResult);
}
static Stream<Arguments> GameWinTestData() {
return Stream.of( return Stream.of(
Arguments.of("No Figure in House",
Arguments.of("No Figures in House",
Arrays.asList( Arrays.asList(
new Figure(), new Figure(),
new Figure(), new Figure(),
@ -77,7 +89,7 @@ public class PlayerTest {
new Figure()), new Figure()),
Arrays.asList(40, -1, -1, -1), Arrays.asList(40, -1, -1, -1),
false), false),
Arguments.of("Two Figure in House",
Arguments.of("Two Figures in House",
Arrays.asList( Arrays.asList(
new Figure(), new Figure(),
new Figure(), new Figure(),
@ -85,7 +97,7 @@ public class PlayerTest {
new Figure()), new Figure()),
Arrays.asList(40, 41, -1, -1), Arrays.asList(40, 41, -1, -1),
false), false),
Arguments.of("Three Figure in House",
Arguments.of("Three Figures in House",
Arrays.asList( Arrays.asList(
new Figure(), new Figure(),
new Figure(), new Figure(),
@ -93,7 +105,7 @@ public class PlayerTest {
new Figure()), new Figure()),
Arrays.asList(40, 41, 42, -1), Arrays.asList(40, 41, 42, -1),
false), false),
Arguments.of("Four Figure in House",
Arguments.of("Four Figures in House",
Arrays.asList( Arrays.asList(
new Figure(), new Figure(),
new Figure(), new Figure(),
@ -103,4 +115,49 @@ public class PlayerTest {
true) true)
); );
} }
static Stream<Arguments> BaseTestData() {
return Stream.of(
Arguments.of("Four Figures in Base",
Arrays.asList(
new Figure(),
new Figure(),
new Figure(),
new Figure()),
Arrays.asList(-1, -1, -1, -1),
true),
Arguments.of("Three Figures in Base",
Arrays.asList(
new Figure(),
new Figure(),
new Figure(),
new Figure()),
Arrays.asList(40, -1, -1, -1),
true),
Arguments.of("Two Figures in Base",
Arrays.asList(
new Figure(),
new Figure(),
new Figure(),
new Figure()),
Arrays.asList(40, 41, -1, -1),
true),
Arguments.of("One Figure in Base",
Arrays.asList(
new Figure(),
new Figure(),
new Figure(),
new Figure()),
Arrays.asList(40, 41, 42, -1),
true),
Arguments.of("No Figures in Base",
Arrays.asList(
new Figure(),
new Figure(),
new Figure(),
new Figure()),
Arrays.asList(40, 41, 42, 43),
false)
);
}
} }
Loading…
Cancel
Save