public static IEnumerable <RoverPath> Parse(List <string> instructions)
        {
            var bounds = instructions[0].Split(' ');
            int boundsX;
            int boundsY;

            int.TryParse(bounds[0], out boundsX);
            int.TryParse(bounds[1], out boundsY);
            Plateau.SetPlateauBounds(boundsX, boundsY);

            for (var i = 1; i < instructions.Count; i += 2)
            {
                var currentInstruction = instructions[i].Split(' ');
                var x       = int.Parse(currentInstruction[0]);
                var y       = int.Parse(currentInstruction[1]);
                var heading = char.Parse(currentInstruction[2]);

                var startPosition = new Position(x, y);
                var startHeading  = new Heading(heading);
                var path          = instructions[i + 1];

                var roverPath = new RoverPath(startPosition, startHeading, path);
                RoverPathList.Add(roverPath);
            }
            return(RoverPathList);
        }
        public static IEnumerable<RoverPath> Parse(List<string> instructions)
        {
            var bounds = instructions[0].Split(' ');
            int boundsX;
            int boundsY;

            int.TryParse(bounds[0], out boundsX);
            int.TryParse(bounds[1], out boundsY);
            Plateau.SetPlateauBounds(boundsX, boundsY);

            for (var i = 1; i < instructions.Count; i += 2)
            {
                var currentInstruction = instructions[i].Split(' ');
                var x = int.Parse(currentInstruction[0]);
                var y = int.Parse(currentInstruction[1]);
                var heading = char.Parse(currentInstruction[2]);

                var startPosition = new Position(x, y);
                var startHeading = new Heading(heading);
                var path = instructions[i + 1];

                var roverPath = new RoverPath(startPosition, startHeading, path);
                RoverPathList.Add(roverPath);
            }
            return RoverPathList;
        }
        public void CreateRoverPaths()
        {
            var positionA = new Position(5, 5);
            var headingA = new Heading('N');
            var pathA = "MMRLMM";
            var roverPathA = new RoverPath(positionA, headingA, pathA);

            var positionB = new Position(4, 4);
            var headingB = new Heading('S');
            var pathB = "MMMMMMM";
            var roverPathB = new RoverPath(positionB, headingB, pathB);

            roverPathA.GetStartHeading().GetHeading().ShouldBeEquivalentTo('N');
            roverPathA.GetStartPosition().ShouldBeEquivalentTo(new Position(5, 5));

            roverPathB.GetStartHeading().GetHeading().ShouldBeEquivalentTo('S');
            roverPathB.GetStartPosition().ShouldBeEquivalentTo(new Position(4, 4));

        }