public IActionResult Index(CoordinatesModel model) { // sets result for current rover var currentRover = model.Results[model.Results.Count - 1]; try { // sets end coordinates _coordinatesService.SetEnd(model.MaxCoordinates); // sets start position of rover _coordinatesService.SetCurrentPosition(currentRover.CurrentPosition); // calculates coordinates depending on route currentRover.Result = _coordinatesService.Calculate(currentRover.Movement); // adds result to model model.Results.Add(new RoverResultModel()); ModelState.Clear(); } catch (Exception ex) { ModelState.AddModelError("CustomError", ex.Message); } return(View(model)); }
public void Calculate_Option1() { _coordinatesService.SetEnd(5, 5); _coordinatesService.SetCurrentPosition(1, 2, 'N'); var result = _coordinatesService.Calculate("LMLMLMLMM"); Assert.Equal("1 3 N", result); }