public static NumberTerm MakeOperation(this NumberTerm firstNumber, NumberTerm secondNumber)
        {
            decimal result = 0;

            switch (secondNumber.Sign)
            {
            case ArithmeticSign.Mul:
                result = firstNumber.Digit * secondNumber.Digit;
                break;

            case ArithmeticSign.Del:
                result = firstNumber.Digit / secondNumber.Digit;
                break;

            case ArithmeticSign.Sum:
                result = firstNumber.Digit + secondNumber.Digit;
                break;

            case ArithmeticSign.Sub:
                result = firstNumber.Digit - secondNumber.Digit;
                break;
            }

            return(new NumberTerm(firstNumber.Sign, result));
        }
        public void CalculateInnerExpressionTest_CorrectCalculate(NumberTerm expectedResult, List <ITerm> innerExpression)
        {
            var actualResult = Calculate.CalculateInnerExpression(innerExpression);

            Assert.AreEqual(expectedResult, actualResult, $"Incorrect inner expression calculation.");
        }
Example #3
0
        private List <NestedExpression> GetReplacedCalculatedNestedExpressions(List <NestedExpression> nestedExpressions, int i, NumberTerm calculateInnerExpression)
        {
            int innerIndex = nestedExpressions[i].Index;

            nestedExpressions[i - 1].Expression[innerIndex] = calculateInnerExpression;
            nestedExpressions.RemoveAt(i);

            return(nestedExpressions);
        }
        public void MakeOperationTest_CorrectCalculate(NumberTerm firstNumber, NumberTerm secondNumber, NumberTerm expectedResult)
        {
            NumberTerm actualResult = firstNumber.MakeOperation(secondNumber);

            Assert.AreEqual(expectedResult, actualResult, $"Operation: {firstNumber}{secondNumber};");
        }