public RobotPosition MoveOnePointFrom(RobotPosition position)
        {
            var location = position.Location;

            switch (position.Heading)
            {
            case Heading.North:
                location.Y += 1;
                break;

            case Heading.East:
                location.X += 1;
                break;

            case Heading.South:
                location.Y -= 1;
                break;

            default:
                location.X -= 1;
                break;
            }

            position.Location = AdjustPositionIfNeeded(location);

            return(position);
        }
 public bool IsPositionWithinBoundaries(RobotPosition position)
 {
     return(position.Location.X <= arenaSize.Width &&
            position.Location.X >= 0 &&
            position.Location.Y <= arenaSize.Height &&
            position.Location.Y >= 0);
 }