1
0
Fork 0

prepare failing test for the planet loop requirement

This commit is contained in:
Xavier Fontanet 2024-06-20 19:17:15 +02:00
parent 72ca8a2629
commit b1ecef985b
3 changed files with 21 additions and 7 deletions

View File

@ -58,4 +58,8 @@ public class Coordinates {
", longitude=" + longitude +
'}';
}
public Coordinates copy() {
return new Coordinates(latitude, longitude);
}
}

View File

@ -25,7 +25,7 @@ public class MarsRover {
}
public Coordinates getCurrentCoordinates() {
return currentCoordinates;
return currentCoordinates.copy();
}
public MarsMap.Direction getCurrentDirection() {

View File

@ -28,13 +28,23 @@ public class MarsRoverTest {
@Test
public void stepForward() {
Coordinates currentPosition = rover.moveForward();
assertEquals(currentPosition, Coordinates.of(3, 3));
assertEquals(rover.getCurrentDirection(), SOUTH);
Direction originalDirection = rover.getCurrentDirection();
repeatAction(5, i -> rover.moveForward());
assertEquals(rover.getCurrentCoordinates(), Coordinates.of(8, 3));
assertEquals(rover.getCurrentDirection(), SOUTH);
Coordinates oneStepForward = rover.moveForward();
assertEquals(oneStepForward, Coordinates.of(3, 3));
assertEquals(rover.getCurrentDirection(), originalDirection);
}
@Test
public void loopTheWorldMovingForward() {
Coordinates originalCoordinates = rover.getCurrentCoordinates();
Direction originalDirection = rover.getCurrentDirection();
repeatAction(10, i -> rover.moveForward());
assertEquals(rover.getCurrentCoordinates(), originalCoordinates);
assertEquals(rover.getCurrentDirection(), originalDirection);
}
@Test