Browse Source
Merge branch 'matchfield' into fleetstorm
Merge branch 'matchfield' into fleetstorm
Lorenz Hohmann
3 years ago
2 changed files with 105 additions and 0 deletions
-
39src/main/java/de/tims/fleetstorm/matchfield/Matchfield.java
-
66src/test/java/de/tims/fleetstorm/matchfield/MatchfieldCreationTest.java
@ -0,0 +1,39 @@ |
|||
package de.tims.fleetstorm.matchfield; |
|||
|
|||
public class Matchfield { |
|||
|
|||
private int[][] matchfield; |
|||
private int size; |
|||
|
|||
public static final int EMPTY = 0; |
|||
public static final int SHIP = 1; |
|||
public static final int SHOT = 2; |
|||
|
|||
public Matchfield(int size) { |
|||
this.size = size; |
|||
this.matchfield = new int[this.size][this.size]; |
|||
} |
|||
|
|||
public int[][] createMatchfield() { |
|||
for (int i = 0; i < size; i++) { |
|||
for (int j = 0; j < size; j++) { |
|||
this.matchfield[i][j] = Matchfield.EMPTY; |
|||
} |
|||
} |
|||
|
|||
return this.matchfield; |
|||
} |
|||
|
|||
public int getSize() { |
|||
return this.matchfield.length * this.matchfield[0].length; |
|||
} |
|||
|
|||
public int getState(int x, int y) { |
|||
return this.matchfield[x][y]; |
|||
} |
|||
|
|||
public void setState(int x, int y, int state) { |
|||
this.matchfield[x][y] = state; |
|||
} |
|||
|
|||
} |
@ -0,0 +1,66 @@ |
|||
package de.tims.fleetstorm.matchfield; |
|||
|
|||
import static org.assertj.core.api.Assertions.assertThat; |
|||
import static org.junit.Assert.assertNotNull; |
|||
|
|||
import java.util.stream.Stream; |
|||
|
|||
import org.junit.jupiter.api.Test; |
|||
import org.junit.jupiter.params.ParameterizedTest; |
|||
import org.junit.jupiter.params.provider.Arguments; |
|||
import org.junit.jupiter.params.provider.MethodSource; |
|||
|
|||
class MatchfieldCreationTest { |
|||
|
|||
@Test |
|||
void testMatchfieldCreateNotEmpty() { |
|||
Matchfield matchfield = new Matchfield(0); |
|||
int[][] calcResult = matchfield.createMatchfield(); |
|||
assertNotNull(calcResult); |
|||
} |
|||
|
|||
@ParameterizedTest(name = "matchfield creation has correct size") |
|||
@MethodSource("testMatchfieldSize") |
|||
void testMatchfieldCreationHasCorrectSize(String testName, int size, int expectedResult) { |
|||
Matchfield matchfield = new Matchfield(size); |
|||
matchfield.createMatchfield(); |
|||
|
|||
int calcResult = matchfield.getSize(); |
|||
assertThat(calcResult).describedAs(testName).isEqualTo(expectedResult); |
|||
} |
|||
|
|||
static Stream<Arguments> testMatchfieldSize() { |
|||
return Stream.of(Arguments.of("field size 10x10", 10, 100), Arguments.of("field size 15x15", 15, 225)); |
|||
} |
|||
|
|||
@ParameterizedTest(name = "matchfield get field is correct") |
|||
@MethodSource("testMatchfieldGetFieldState") |
|||
void testMatchfieldGetCorrectState(String testName, int x, int y, int expectedResult) { |
|||
Matchfield matchfield = new Matchfield(10); |
|||
matchfield.createMatchfield(); |
|||
|
|||
int calcResult = matchfield.getState(x, y); |
|||
assertThat(calcResult).describedAs(testName).isEqualTo(expectedResult); |
|||
} |
|||
|
|||
static Stream<Arguments> testMatchfieldGetFieldState() { |
|||
return Stream.of(Arguments.of("field x:0 y:0 has empty state", 0, 0, Matchfield.EMPTY)); |
|||
} |
|||
|
|||
@ParameterizedTest(name = "matchfield change field is correct") |
|||
@MethodSource("testMatchfieldSetStateIsCorrect") |
|||
void testMatchfieldGetCorrectState(String testName, int x, int y, int state, int expectedResult) { |
|||
Matchfield matchfield = new Matchfield(10); |
|||
matchfield.createMatchfield(); |
|||
|
|||
matchfield.setState(x, y, state); |
|||
|
|||
int calcResult = matchfield.getState(x, y); |
|||
assertThat(calcResult).describedAs(testName).isEqualTo(expectedResult); |
|||
} |
|||
|
|||
static Stream<Arguments> testMatchfieldSetStateIsCorrect() { |
|||
return Stream.of( |
|||
Arguments.of("field x:0 y:0 has state SHIP after setState()", 0, 0, Matchfield.SHIP, Matchfield.SHIP)); |
|||
} |
|||
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue