public void GivenFacingWest_AndOnTheTopLeft_WhenMovesForward_ShouldMoveToTopRight() { //Arrange _sut = new Rover(_planet, -10, 10, Direction.W); var expcPositionString = "10, 10, W"; //Act var isSuccessfulMove = _sut.ProcessCommands("F"); var currentPosition = _sut.GetCurrentPosition(); //Assert isSuccessfulMove.Should().BeTrue("Wrapping On TopLeft boundary failed"); expcPositionString.ToString().Should().Be(currentPosition); }
public void GivenFacingSouth_AndOnTheTopRight_WhenMovesBackward_ShouldMoveToBottomRight() { //Arrange _sut = new Rover(_planet, 10, 10, Direction.S); var expcPositionString = "10, -10, S"; //Act var isSuccessfulMove = _sut.ProcessCommands("B"); var currentPosition = _sut.GetCurrentPosition(); //Assert isSuccessfulMove.Should().BeTrue("Wrapping On TopRight boundary failed"); expcPositionString.ToString().Should().Be(currentPosition); }
public void GivenBackCommand_WhenRoverMoves_ShouldMoveDownwardsVertically() { //Arrange _sut = new Rover(_planet, 2, 3, Direction.N); var expcPositionString = "2, 2, N"; //Act var isSuccess = _sut.ProcessCommands("B"); var currentPosition = _sut.GetCurrentPosition(); //Assert isSuccess.Should().BeTrue("Vertial Downwards operation failed"); expcPositionString.ToString().Should().Be(currentPosition, "Rover is not at expected position"); }
public void GivenBackwardCommand_WhenRoverMoves_ShouldMoveBackHorizontally() { //Arrange _sut = new Rover(_planet, 2, 3, Direction.E); var expcPositionString = "1, 3, E"; //Act var isSuccess = _sut.ProcessCommands("B"); var currentPosition = _sut.GetCurrentPosition(); //Assert isSuccess.Should().BeTrue("Horizontal Backward operation failed"); expcPositionString.ToString().Should().Be(currentPosition, "Rover is not at expected position"); }
public void GivenSeriesOfCommands_WhenRoverMoves_ShouldMoveToExpectionPosition() { //Arrange _sut = new Rover(_planet, 0, 0, Direction.N); var expcPositionString = "2, 2, E"; //Act var isSuccess = _sut.ProcessCommands("FFRFF"); var currentPosition = _sut.GetCurrentPosition(); //Assert isSuccess.Should().BeTrue("Rover Move operation failed"); expcPositionString.ToString().Should().Be(currentPosition, "Rover is not at expected position"); }
public void GivenObstacleIsPresentImmediately_WhenMovesForward_ShouldNotChangeInPosition() { //Arrange _obstacles = new List <Point> { new Point(1, 0) }; _planet.SetObstacles(_obstacles); _sut = new Rover(_planet, 0, 0, Direction.E); var expcPositionString = "0, 0, E"; //Act var isSuccessfulMove = _sut.ProcessCommands("F"); var currentPosition = _sut.GetCurrentPosition(); //Assert isSuccessfulMove.Should().BeFalse("Rover moved past obstacle"); expcPositionString.ToString().Should().Be(currentPosition); }
public void GivenCommandsToMove_WhenObstacleIsEncounteredInTheMiddle_ShouldReturnLastSuccessfulPoint() { //Arrange _obstacles = new List <Point> { new Point(80, 80) }; _planet = new Pluto(100, 0, 100, 0); _planet.SetObstacles(_obstacles); _sut = new Rover(_planet, 70, 70, Direction.N); var expcPositionString = "79, 80, E"; //Act var isSuccessfulMove = _sut.ProcessCommands("FFFFFFFFFFRFFFFFFFFFF"); var currentPosition = _sut.GetCurrentPosition(); //Assert isSuccessfulMove.Should().BeFalse("Rover moved past obstacle"); expcPositionString.ToString().Should().Be(currentPosition); }