public void RoverStopsAtObstacleInMultiStepPath()
        {
            grid.PlaceObstacleAt(4, 4);
            marsRover = new MarsRover(grid, 0, 0, DirectionConstants.East);
            marsRover.RunRoverWithCommands("fflffrflffrf");
            Assert.IsTrue(marsRover.AtObstacle);

            var stringGrid = marsRover.PrintMap();
            System.Diagnostics.Debug.WriteLine(stringGrid);
        }
 public void GridToStringWorks()
 {
     grid.PlaceObstacleAt(4, 4);
     grid.PlaceObstacleAt(0, 0);
     marsRover = new MarsRover(grid, 0, 4, DirectionConstants.East);
     marsRover.RunRoverWithCommands("f");
     var stringGrid = marsRover.PrintMap();
     System.Diagnostics.Debug.WriteLine(stringGrid);
     Assert.AreEqual(".R__X\n_____\n_____\n_____\nX____\n", stringGrid);
 }
        public void RoverStopsAtObstacleInPath(Char initialDirection)
        {
            grid.PlaceObstacleAt(1, 0);
            grid.PlaceObstacleAt(2, 1);
            grid.PlaceObstacleAt(0, 1);
            grid.PlaceObstacleAt(1, 2);
            marsRover = new MarsRover(grid, 1, 1, initialDirection);
            marsRover.RunRoverWithCommands("f");
            Assert.IsTrue(marsRover.AtObstacle);

            var stringGrid = marsRover.PrintMap();
            System.Diagnostics.Debug.WriteLine(stringGrid);
        }
        public void VerifyRoverWrapsFromBottomOfGridToTheTop()
        {
            marsRover = new MarsRover(grid, 2, 0, DirectionConstants.South);
            marsRover.RunRoverWithCommands("f");
            Assert.AreEqual(2, marsRover.XCoordinate);
            Assert.AreEqual(4, marsRover.YCoordinate);

            var stringGrid = marsRover.PrintMap();
            System.Diagnostics.Debug.WriteLine(stringGrid);
        }
        public void VerifyRoverWrapsFromRightOfGridToLeft()
        {
            marsRover = new MarsRover(grid, 4, 0, DirectionConstants.East);
            marsRover.RunRoverWithCommands("f");
            Assert.AreEqual(0, marsRover.XCoordinate);
            Assert.AreEqual(0, marsRover.YCoordinate);
            marsRover.XCoordinate = 6;

            var stringGrid = marsRover.PrintMap();
            System.Diagnostics.Debug.WriteLine(stringGrid);
        }
        public void RoverFullMovement(Char initialDirection, Int32 initialXCoordinate, Int32 initialYCoordinate, String commands, Char endingDireciton, Int32 endingXCoordinate, Int32 endingYCoordinate)
        {
            var rover = new MarsRover(initialXCoordinate, initialYCoordinate, initialDirection);

            rover.RunRoverWithCommands(commands);
            Assert.That(rover.roverState.Direction, Is.EqualTo(endingDireciton));
            Assert.That(rover.XCoordinate, Is.EqualTo(endingXCoordinate));
            Assert.That(rover.YCoordinate, Is.EqualTo(endingYCoordinate));
        }
        public void RoverUnitVectors(Char initialDirection, String commands, Int32 endingXCoordinate, Int32 endingYCoordinate)
        {
            var rover = new MarsRover(InitialXCoordinate, InitialYCoordinate, initialDirection);

            rover.RunRoverWithCommands(commands);
            Assert.That(rover.XCoordinate, Is.EqualTo(endingXCoordinate));
            Assert.That(rover.YCoordinate, Is.EqualTo(endingYCoordinate));
        }
        public void RoverTurning(Char initialDirection, String commands, Char endingDireciton)
        {
            var rover = new MarsRover(InitialXCoordinate, InitialYCoordinate, initialDirection);

            rover.RunRoverWithCommands(commands);
            Assert.That(rover.roverState.Direction, Is.EqualTo(endingDireciton));
        }