Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="type"></param>
 /// <returns></returns>
 public TableBuilder <TModel> Orientation(OrientationTypes type)
 {
     _component.Orientation = type;
     return(this);
 }