public void Test_DataService_SaveOffPosition() { IPositionFinal offPositionFinal1 = new PositionFinal { FinalXPosition = 5, FinalYPosition = 0, FinalOrientation = 'E', Lost = true }; var result1 = dataService.SaveOffPosition(2, offPositionFinal1); Assert.IsTrue(result1); IPositionFinal offPositionFinal2 = new PositionFinal { FinalXPosition = 0, FinalYPosition = 5, FinalOrientation = 'N', Lost = false }; var result2 = dataService.SaveOffPosition(2, offPositionFinal2); Assert.IsFalse(result2); }
public IPositionFinal GetFinalPostion(int gridId, IPositionStarting positionStarting) { IGridCoordinate gridCoordinate = _dataService.GetGridCoordinateByGridId(gridId); IPositionFinal positionFinal = new PositionFinal { FinalXPosition = positionStarting.StartingXPosition, FinalYPosition = positionStarting.StartingYPosition, FinalOrientation = positionStarting.Orientation, Lost = false }; char[] array = positionStarting.Instructions.ToCharArray(); foreach (char instruction in array) { if (positionFinal.Lost) { _dataService.SaveOffPosition(gridId, positionFinal); break; } switch (instruction) { case 'L': LeftInstructionProcess(positionFinal); break; case 'R': RightInstructionProcess(positionFinal); break; case 'F': if (!_dataService.IsOffPosition(gridId, positionFinal)) { ForwardInstructionProcess(positionFinal, gridCoordinate); } break; default: break; } } return(positionFinal); }