private static void AddPoint(List <PositionResource> uniquePoints, PositionResource point) { if (point != null && uniquePoints.Count(r => r.Y == point.Y && r.X == point.X) == 0) { uniquePoints.Add(point); } }
public int GetCleanPoints(MovementResource movement) { var uniquePoints = new List <PositionResource>(); var commands = mapper.Map <MovementResource, IEnumerable <ICommand> >(movement); var lastPosition = new PositionResource(); foreach (var _command in commands) { var newPosition = _command.GetNewPoint(lastPosition.X, lastPosition.Y); lastPosition = newPosition ?? lastPosition; AddPoint(uniquePoints, newPosition); } return(uniquePoints.Count); }
public async void Post_ShouldReturn_BadRequest_For_Invalid_Start(int x, int y) { var commands = new List <CommandResource> { new CommandResource() { Direction = "west", Steps = 1 } }; var position = new PositionResource(x, y); var query = new MovementResource { Commands = commands, Start = position }; var result = await controller.Post(query); Assert.IsType <BadRequestResult>(result); }