public async Task Add_Character_SuccessTestAsync()
        {
            var commandSet = new CommandSet();

            await commandSet.AddAsync('L');

            await commandSet.AddAsync('R');

            await commandSet.AddAsync('M');

            Assert.AreEqual(commandSet.Count, 3);
            Assert.AreEqual(Command.RotateLeft, commandSet[0]);
            Assert.AreEqual(Command.RotateRight, commandSet[1]);
            Assert.AreEqual(Command.Move, commandSet[2]);
        }
        public async Task Add_String_SuccessTestAsync()
        {
            var commandSet = new CommandSet();
            await commandSet.AddAsync("MML");

            Assert.AreEqual(commandSet.Count, 3);
            Assert.AreEqual(Command.Move, commandSet[0]);
            Assert.AreEqual(Command.Move, commandSet[1]);
            Assert.AreEqual(Command.RotateLeft, commandSet[2]);
        }
        public async Task Execute_OriginRover_FacingNorth_RR_SuccessTestAsync()
        {
            var originRoverFacingNorth = new Rover(0, 0, Direction.North);

            var commandSet = new CommandSet();
            await commandSet.AddAsync('R', 'R');

            commandSet.SetRover(originRoverFacingNorth);
            commandSet.Execute();

            Assert.AreEqual(Direction.South, originRoverFacingNorth.Heading);
        }
        public async Task Execute_OriginRover_FacingSouth_MLMM_SuccessTestAsync()
        {
            var originRoverFacingSouth = new Rover(0, 0, Direction.South);

            var commandSet = new CommandSet();
            await commandSet.AddAsync("MLMM");

            commandSet.SetRover(originRoverFacingSouth);
            commandSet.Execute();

            Assert.AreEqual(-1, originRoverFacingSouth.YCoordinate);
            Assert.AreEqual(Direction.East, originRoverFacingSouth.Heading);
            Assert.AreEqual(2, originRoverFacingSouth.XCoordinate);
        }