/// <summary>
        /// Парсит строчку в свойства операндов и оператора
        /// и возвращает ResultStatus.OK, если парсинг удался,
        /// или ResultStatus.InvalidInput, если парсинг неудачен.
        /// </summary>
        /// <param name="inputStr"></param>
        /// <returns></returns>
        public ResultStatus ParseString(string str)
        {
            var parsedStr = SplitString(str);
            var result    = new bool[parsedStr.Length];
            var status    = DoubleOrCommandDecider(result, parsedStr);

            if (status == ResultStatus.InvalidInput)
            {
                return(ResultStatus.InvalidInput);
            }
            var elementsCount = parsedStr.Length;

            if (elementsCount == 1 && !result[0] && CalculatorOperators.IsOneElementCommand(parsedStr[0]))
            {
                Operator = StrToOperator(parsedStr[0]);
                return(ResultStatus.OK);
            }
            for (int i = 0; i < elementsCount; i++)
            {
                if (CalculatorOperators.IsMR(parsedStr[i]))
                {
                    parsedStr[i] = Memory.ToString();
                    result[i]    = true;
                }
            }
            if (elementsCount == 2 && !result[0] & result[1] && !CalculatorOperators.IsOneElementCommand(parsedStr[0]))
            {
                Operand1 = Result;
                Operand2 = StrToDouble(parsedStr[1]);
                Operator = StrToOperator(parsedStr[0]);
                return(ResultStatus.OK);
            }
            if (elementsCount == 3 && result[0] && !result[1] && result[2])
            {
                if (!CalculatorOperators.IsOneElementCommand(parsedStr[1]))
                {
                    Operand1 = StrToDouble(parsedStr[0]);
                    Operand2 = StrToDouble(parsedStr[2]);
                    Operator = StrToOperator(parsedStr[1]);
                    return(ResultStatus.OK);
                }
            }
            return(ResultStatus.InvalidInput);
        }
 public void CalculatorOperatorsIsMR_Test(string symbols, bool isMR)
 {
     Assert.AreEqual(isMR, CalculatorOperators.IsMR(symbols));
 }