public Resolution(PixelSize size, OrientationTypes orientation) { Orientation = orientation; switch (orientation) { case OrientationTypes.Landscape: Height = 45 * (int)size; Amount = Height * 0.01; Width = 80 * (int)size; break; case OrientationTypes.Portrait: Height = 80 * (int)size; Width = 45 * (int)size; Amount = Width * 0.01; break; case OrientationTypes.Square: Height = 45 * (int)size; Amount = Height * 0.01; Width = Height; break; default: throw new ArgumentException(nameof(orientation)); } }
private Robot InicializateRobot(int posX, int posY, OrientationTypes orientation, string instructions) { Robot robot = new Robot() { Id = 0, LastValidPosition = new RobotPosition() { PositionCoordinates = new GridPoint(posX, posY), RobotOrientation = orientation }, InstructionsSet = _parseInputsService.ParseInstructionSet(instructions), }; return(robot); }
public void RightInstructionMovementIsCorrect(int posX, int posY, OrientationTypes orientation, string instructions, int newPosX, int newPosY, OrientationTypes newOrientation) { Initialization(); Robot robot = InicializateRobot(posX, posY, orientation, instructions); Grid grid = new Grid() { GridLimit = new GridPoint(20, 20) }; _robotMovementService.MoveRobot(grid, robot); Assert.AreEqual(newPosX, robot.LastValidPosition.PositionCoordinates.X_Coordinate); Assert.AreEqual(newPosY, robot.LastValidPosition.PositionCoordinates.Y_Coordinate); Assert.AreEqual(newOrientation, robot.LastValidPosition.RobotOrientation); }
public void RobotFallsIfOutOfGridAndNotScentPoint(int posX, int posY, OrientationTypes orientation, string instructions) { Initialization(); Robot robot = InicializateRobot(posX, posY, orientation, instructions); Grid grid = new Grid() { GridLimit = new GridPoint(20, 20) }; _robotMovementService.MoveRobot(grid, robot); Assert.AreEqual(posX, robot.LastValidPosition.PositionCoordinates.X_Coordinate); Assert.AreEqual(posY, robot.LastValidPosition.PositionCoordinates.Y_Coordinate); Assert.AreEqual(true, robot.IsLost); Assert.AreEqual(1, grid.ScentPoints.Count); Assert.AreEqual(posX, grid.ScentPoints[0].X_Coordinate); Assert.AreEqual(posY, grid.ScentPoints[0].X_Coordinate); }
public void MovementIsCorrect(int posX, int posY, OrientationTypes orientation, string instructions, int newPosX, int newPosY, OrientationTypes newOrientation, bool isLostRobot) { Initialization(); Robot robot = InicializateRobot(posX, posY, orientation, instructions); Grid grid = new Grid() { GridLimit = new GridPoint(5, 5), ScentPoints = new List <GridPoint>() { new GridPoint(2, 0), new GridPoint(0, 1) } }; _robotMovementService.MoveRobot(grid, robot); Assert.AreEqual(newPosX, robot.LastValidPosition.PositionCoordinates.X_Coordinate); Assert.AreEqual(newPosY, robot.LastValidPosition.PositionCoordinates.Y_Coordinate); Assert.AreEqual(newOrientation, robot.LastValidPosition.RobotOrientation); Assert.AreEqual(isLostRobot, robot.IsLost); }
public void RobotPositionInputCorrectlyParsed(string robotPositionInput, int XCoordinateParsed, int YCoordinateParsed, OrientationTypes orientationParsed) { Grid grid = new Grid() { GridLimit = new GridPoint(50, 50) }; RobotPosition robotPosition = _parseInputsService.ParseRobotPosition(robotPositionInput, grid); Assert.AreEqual(XCoordinateParsed, robotPosition.PositionCoordinates.X_Coordinate); Assert.AreEqual(YCoordinateParsed, robotPosition.PositionCoordinates.Y_Coordinate); Assert.AreEqual(orientationParsed, robotPosition.RobotOrientation); }
/// <summary> /// /// </summary> /// <param name="type"></param> /// <returns></returns> public TableBuilder <TModel> Orientation(OrientationTypes type) { _component.Orientation = type; return(this); }