public void MoveAroundWrappingGridWithObstacles() { var expectedStartWorld = "....N" + Environment.NewLine + "....." + Environment.NewLine + "..TBB" + Environment.NewLine + "..T.." + Environment.NewLine + "..TBB"; var expectedEndWorld = "....." + Environment.NewLine + "....." + Environment.NewLine + "..TBB" + Environment.NewLine + "..TE." + Environment.NewLine + "..TBB"; const int width = 5; const int height = 5; var grid = new Grid(width, height); grid.AddObstacle(2, 0, ObstacleType.Tree); grid.AddObstacle(2, 1, ObstacleType.Tree); grid.AddObstacle(2, 2, ObstacleType.Tree); grid.AddObstacle(3, 0, ObstacleType.Boulder); grid.AddObstacle(4, 0, ObstacleType.Boulder); grid.AddObstacle(3, 2, ObstacleType.Boulder); grid.AddObstacle(4, 2, ObstacleType.Boulder); var rover = new Rover(); var roverStartingLocation = grid.GetLocation(4, 4); rover.DropOnGrid(grid, roverStartingLocation, Direction.North); var worldFormatter = new WorldFormatter(rover, grid); var actualStartWorld = worldFormatter.FormatWorld(); Assert.Equal(expectedStartWorld, actualStartWorld); var commands = new[] { RoverCommand.TurnRight, RoverCommand.MoveForward, RoverCommand.TurnRight, RoverCommand.MoveForward, RoverCommand.MoveForward, RoverCommand.MoveForward, RoverCommand.TurnLeft, RoverCommand.MoveBackward, RoverCommand.MoveBackward }; rover.ProcessCommands(commands); var actualEndWorld = worldFormatter.FormatWorld(); Assert.Equal(expectedEndWorld, actualEndWorld); }
public void FormatRoverStatusSummary() { const string expectedSummary = "The rover is currently at (1, 3) facing North."; var locationMock = Mock.Of <ILocation>(c => c.X == 1 && c.Y == 3); var roverMock = Mock.Of <IRover>(r => r.Location == locationMock && r.Direction == Direction.North); var worldFormatter = new WorldFormatter(roverMock, Mock.Of <IGrid>()); var actualSummary = worldFormatter.FormatRoverStatusSummary(); Assert.Equal(expectedSummary, actualSummary); }
public void BuildRoverIntoFormat() { var expectedWorld = "..." + Environment.NewLine + "..." + Environment.NewLine + "N.."; var grid = new Grid(3, 3); var rover = new Rover(); var location = grid.GetLocation(0, 0); rover.DropOnGrid(grid, location, Direction.North); var worldFormatter = new WorldFormatter(rover, grid); var actualWorld = worldFormatter.FormatWorld(); Assert.Equal(expectedWorld, actualWorld); }
public void BuildObstaclesIntoFormat() { var expectedWorld = "T.B" + Environment.NewLine + "..." + Environment.NewLine + "N.."; var grid = new Grid(3, 3); var rover = new Rover(); var roverLocation = grid.GetLocation(0, 0); rover.DropOnGrid(grid, roverLocation, Direction.North); grid.AddObstacle(0, 2, ObstacleType.Tree); grid.AddObstacle(2, 2, ObstacleType.Boulder); var worldFormatter = new WorldFormatter(rover, grid); var actualWorld = worldFormatter.FormatWorld(); Assert.Equal(expectedWorld, actualWorld); }