From b1ecef985bd3bcf94da59b52416e0ca4540c31fb Mon Sep 17 00:00:00 2001 From: Xavier Fontanet Date: Thu, 20 Jun 2024 19:17:15 +0200 Subject: [PATCH] prepare failing test for the planet loop requirement --- .../codingtests/marsrover/Coordinates.java | 4 ++++ .../codingtests/marsrover/MarsRover.java | 2 +- .../codingtests/marsrover/MarsRoverTest.java | 22 ++++++++++++++----- 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/src/main/java/cat/hack3/codingtests/marsrover/Coordinates.java b/src/main/java/cat/hack3/codingtests/marsrover/Coordinates.java index 4368e48..7370088 100644 --- a/src/main/java/cat/hack3/codingtests/marsrover/Coordinates.java +++ b/src/main/java/cat/hack3/codingtests/marsrover/Coordinates.java @@ -58,4 +58,8 @@ public class Coordinates { ", longitude=" + longitude + '}'; } + + public Coordinates copy() { + return new Coordinates(latitude, longitude); + } } diff --git a/src/main/java/cat/hack3/codingtests/marsrover/MarsRover.java b/src/main/java/cat/hack3/codingtests/marsrover/MarsRover.java index cdb3036..d8bf5da 100644 --- a/src/main/java/cat/hack3/codingtests/marsrover/MarsRover.java +++ b/src/main/java/cat/hack3/codingtests/marsrover/MarsRover.java @@ -25,7 +25,7 @@ public class MarsRover { } public Coordinates getCurrentCoordinates() { - return currentCoordinates; + return currentCoordinates.copy(); } public MarsMap.Direction getCurrentDirection() { diff --git a/src/test/java/cat/hack3/codingtests/marsrover/MarsRoverTest.java b/src/test/java/cat/hack3/codingtests/marsrover/MarsRoverTest.java index 7a0d148..c4649d9 100644 --- a/src/test/java/cat/hack3/codingtests/marsrover/MarsRoverTest.java +++ b/src/test/java/cat/hack3/codingtests/marsrover/MarsRoverTest.java @@ -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