void MoveForward(IPlateau plateau, IRover rover, char command) { bool isValidMovementForward = MovementHelper.TryMoveForward(plateau.plateauCoordinate, rover.Position, out Coordinate nextCoordinate); if (isValidMovementForward) { rover.Position = new Position { CompassDirection = rover.Position.CompassDirection, Coordinate = nextCoordinate }; } }
public void TryMoveForwardFalseNorth() { Plateau plateau = new Plateau(new Coordinate(3, 3)); Position roverPosition = new Position { Coordinate = new Coordinate(2, 3), CompassDirection = CompassDirection.North }; bool result = MovementHelper.TryMoveForward(plateau.plateauCoordinate, roverPosition, out Coordinate nextCoordinate); Assert.False(result); Assert.Equal(default(Coordinate), nextCoordinate); }
public void TryMoveForwardTrueNorth() { Plateau plateau = new Plateau(new Coordinate(3, 3)); Position roverPosition = new Position { Coordinate = new Coordinate(2, 2), CompassDirection = CompassDirection.North }; Coordinate expectedValue = new Coordinate(2, 3); bool result = MovementHelper.TryMoveForward(plateau.plateauCoordinate, roverPosition, out Coordinate nextCoordinate); Assert.True(result); Assert.Equal(expectedValue, nextCoordinate); }