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