public void RoverEngine_Constructor_NoObstacleDetector_ArgumentNullException() { Assert.Throws <ArgumentNullException>(() => { var engine = new RoverEngine(5, 5, EDirection.N, 3, 3, null); }); }
public Discovery(IRover rover, List <ICommand> commands, ICommandExecutor commandExecutor) { Rover = rover; Commands = commands; IRoverEngine roverEngine = new RoverEngine(rover, commandExecutor); roverEngine.Start(Commands); }
public void shouldReturnTrueIfCommandsValidForRCommand() { RoverEngine roverEngine = new RoverEngine(); bool isValid = roverEngine.isCommandValid('R'); Assert.True(isValid); }
public void shouldReturnFalseIfCommandsNotValid() { RoverEngine roverEngine = new RoverEngine(); bool isValid = roverEngine.isCommandValid('P'); Assert.False(isValid); }
public void RoverEngine_MoveBack_From11N_To10N() { var engine = new RoverEngine(1, 1, EDirection.N, _gridHeight, _gridWidth, _mockObstacleDetector.Object); var moveResult = engine.MoveBack(); Assert.AreEqual(1, moveResult.Position.X); Assert.AreEqual(0, moveResult.Position.Y); Assert.AreEqual(EDirection.N, moveResult.Position.Direction); }
public void RoverEngine_MoveForward_From11W_To01W() { var engine = new RoverEngine(1, 1, EDirection.W, _gridHeight, _gridWidth, _mockObstacleDetector.Object); var moveResult = engine.MoveForward(); Assert.AreEqual(0, moveResult.Position.X); Assert.AreEqual(1, moveResult.Position.Y); Assert.AreEqual(EDirection.W, moveResult.Position.Direction); }
public void RoverEngine_Initialise() { var engine = new RoverEngine(5, 2, EDirection.S, _gridHeight, _gridWidth, _mockObstacleDetector.Object); var position = engine.GetPosition(); Assert.AreEqual(5, position.X); Assert.AreEqual(2, position.Y); Assert.AreEqual(EDirection.S, position.Direction); }
public void RoverEngine_TurnRight_From11W_To11N() { var engine = new RoverEngine(1, 1, EDirection.W, _gridHeight, _gridWidth, _mockObstacleDetector.Object); var moveResult = engine.TurnRight(); Assert.AreEqual(1, moveResult.Position.X); Assert.AreEqual(1, moveResult.Position.Y); Assert.AreEqual(EDirection.N, moveResult.Position.Direction); }
public void shouldSendMCommand() { RoverEngine roverEngine = new RoverEngine(); Planet planet = new Planet(5, 5); Rover rover = new Rover(0, 0, Direction.NORTH, planet); roverEngine.sendCommand(rover, 'M'); Assert.AreEqual("0 1 N", rover.getCurrentPosition()); }
public void RoverEngine_MoveBack_W_ObstacleDetected_ReportObstacle() { _mockObstacleDetector.Setup(m => m.CanMove(2, 1)).Returns(false); var engine = new RoverEngine(1, 1, EDirection.W, _gridHeight, _gridWidth, _mockObstacleDetector.Object); var moveResult = engine.MoveBack(); Assert.AreEqual(1, moveResult.Position.X); Assert.AreEqual(1, moveResult.Position.Y); Assert.AreEqual(EDirection.W, moveResult.Position.Direction); Assert.IsTrue(moveResult.IsObstacleDetected); }
public void RoverEngine_WrapWest_MoveBack150_From15W_To51_5W() { var engine = new RoverEngine(1, 5, EDirection.W, _gridHeight, _gridWidth, _mockObstacleDetector.Object); for (int i = 0; i < 150; i++) { engine.MoveBack(); } var newPosition = engine.GetPosition(); Assert.AreEqual(51, newPosition.X); Assert.AreEqual(5, newPosition.Y); Assert.AreEqual(EDirection.W, newPosition.Direction); }
public void RoverEngine_WrapWest_MoveBack100_ArriveAtSameSpot() { var engine = new RoverEngine(0, 0, EDirection.W, _gridHeight, _gridWidth, _mockObstacleDetector.Object); for (int i = 0; i < 100; i++) { engine.MoveBack(); } var newPosition = engine.GetPosition(); Assert.AreEqual(0, newPosition.X); Assert.AreEqual(0, newPosition.Y); Assert.AreEqual(EDirection.W, newPosition.Direction); }
public void RoverEngine_WrapSouth_MoveForward150_From15S_To1_55S() { var engine = new RoverEngine(1, 5, EDirection.S, _gridHeight, _gridWidth, _mockObstacleDetector.Object); for (int i = 0; i < 150; i++) { engine.MoveForward(); } var newPosition = engine.GetPosition(); Assert.AreEqual(1, newPosition.X); Assert.AreEqual(55, newPosition.Y); Assert.AreEqual(EDirection.S, newPosition.Direction); }