Пример #1
0
        public void NegativeValueTest()
        {
            var infix = "Abs(-25)";
            var arithmeticCalculator = ArithmeticCalculator.CreateInstance(infix); // Создали экземпляр арифметического калькулятора
            var postfix = arithmeticCalculator.PostFix;

            Assert.AreEqual("-25 Abs", postfix, postfix);
        }
Пример #2
0
        public void FunctionTest()
        {
            var infix = "Pow(2,5) + Sqrt(16) + 10";
            var arithmeticCalculator = ArithmeticCalculator.CreateInstance(infix); // Создали экземпляр арифметического калькулятора
            var postfix = arithmeticCalculator.PostFix;

            Assert.AreEqual("2 5 Pow 16 Sqrt 10 + +", postfix, infix + "  ->  " + postfix);
        }
Пример #3
0
        public void Test05()
        {
            var infix = "log(3,-2)";
            var arithmeticCalculator = ArithmeticCalculator.CreateInstance(infix); // Создали экземпляр арифметического калькулятора
            var postfix = arithmeticCalculator.PostFix;

            Assert.AreEqual("3 -2 log", postfix, infix + "  ->  " + postfix);
        }
Пример #4
0
        public void Test56()
        {
            var infix = "(3+4)*2+(5+6)*8";
            var arithmeticCalculator = ArithmeticCalculator.CreateInstance(infix); // Создали экземпляр арифметического калькулятора
            var postfix = arithmeticCalculator.PostFix;

            Assert.AreEqual("3 4 + 2 * 5 6 + 8 * +", postfix, infix + "  ->  " + postfix);
        }
Пример #5
0
        public void SetNegative()
        {
            var infix = "-25.45";
            var arithmeticCalculator = ArithmeticCalculator.CreateInstance(infix); // Создали экземпляр арифметического калькулятора
            var result = arithmeticCalculator.Execute();

            Assert.AreEqual(-25.45M, result);
        }
Пример #6
0
        public void Test19()
        {
            var infix = "(-(3)-(4))";
            var arithmeticCalculator = ArithmeticCalculator.CreateInstance(infix); // Создали экземпляр арифметического калькулятора
            var postfix = arithmeticCalculator.PostFix;

            Assert.AreEqual("-1 3 * 4 -", postfix, infix + "  ->  " + postfix);
        }
Пример #7
0
        public void Test54()
        {
            var infix = "((2+3)*5)+(2+4)*(4+8)";
            var arithmeticCalculator = ArithmeticCalculator.CreateInstance(infix); // Создали экземпляр арифметического калькулятора
            var postfix = arithmeticCalculator.PostFix;

            Assert.AreEqual("2 3 + 5 * 2 4 + 4 8 + * +", postfix, infix + "  ->  " + postfix);
        }
Пример #8
0
        public void SetPriority()
        {
            var infix = "((4 + 6)*2 + (2+3)^3)^2";
            var arithmeticCalculator = ArithmeticCalculator.CreateInstance(infix); // Создали экземпляр арифметического калькулятора
            var result = arithmeticCalculator.Execute();

            Assert.AreEqual(21025M, result);
        }
        public void Variant0()
        {
            var infix = "(3)-2";
            var arithmeticCalculator = ArithmeticCalculator.CreateInstance(infix); // Создали экземпляр арифметического калькулятора
            var result  = arithmeticCalculator.Execute();
            var postfix = arithmeticCalculator.PostFix;

            Assert.AreEqual(1, result, infix + "  ->  " + postfix);
        }
        public void Variant3()
        {
            var infix = "(-(-50+90+((((2+3)*5)+(2+4)*(4+8)+3)*4/2)+10)*-2)/5";
            var arithmeticCalculator = ArithmeticCalculator.CreateInstance(infix); // Создали экземпляр арифметического калькулятора
            var result  = arithmeticCalculator.Execute();
            var postfix = arithmeticCalculator.PostFix;

            Assert.AreEqual(100M, result, infix + "  ->  " + postfix);
        }
Пример #11
0
        public void TestVariableList()
        {
            var infix = "(A1 + B2)*C6";
            var arithmeticCalculator = ArithmeticCalculator.CreateInstance(infix); // Создали экземпляр арифметического калькулятора

            Assert.AreEqual(true, arithmeticCalculator.VariableList.Contains("a1"));
            Assert.AreEqual(true, arithmeticCalculator.VariableList.Contains("b2"));
            Assert.AreEqual(true, arithmeticCalculator.VariableList.Contains("c6"));
        }
Пример #12
0
        public void TestUnexpectedCharInExpression()
        {
            var ex = Assert.Throws <Exception>(delegate
            {
                const string Infix = "5$6";
                ArithmeticCalculator.CreateInstance(Infix); // Создали экземпляр арифметического калькулятора
            });

            Assert.IsTrue(ex.Message.Contains("Недопустимый символ"), ex.Message);
        }
Пример #13
0
        public void TestVariablePositive()
        {
            var infix = "XDR23";
            var arithmeticCalculator = ArithmeticCalculator.CreateInstance(infix); // Создали экземпляр арифметического калькулятора

            arithmeticCalculator.SetVariableValue("XDR23", 23.56M);
            var result = arithmeticCalculator.Execute();

            Assert.AreEqual(23.56M, result);
        }
Пример #14
0
        public void TestVariableNegative()
        {
            var infix = "S11";
            var arithmeticCalculator = ArithmeticCalculator.CreateInstance(infix); // Создали экземпляр арифметического калькулятора

            arithmeticCalculator.SetVariableValue("S11", -2.67M);
            var result = arithmeticCalculator.Execute();

            Assert.AreEqual(-2.67M, result);
        }
Пример #15
0
        public void TestUnexpectedDotInVariable()
        {
            var ex = Assert.Throws <Exception>(delegate
            {
                const string Infix = "D.5";
                ArithmeticCalculator.CreateInstance(Infix); // Создали экземпляр арифметического калькулятора
            });

            Assert.IsTrue(ex.Message.Contains("Недопустимое использование"), ex.Message);
        }
Пример #16
0
        public void TestFunctionFromOneVariable()
        {
            var infix = "pow(2, data)";
            var arithmeticCalculator = ArithmeticCalculator.CreateInstance(infix); // Создали экземпляр арифметического калькулятора

            arithmeticCalculator.SetVariableValue("data", 5M);
            var result = arithmeticCalculator.Execute();

            Assert.AreEqual(25M, result);
        }
 public void TestErrorExpression01X()
 {
     MyAssert.Throws <Exception>(
         () =>
     {
         const string Infix       = "5,6";
         var arithmeticCalculator = ArithmeticCalculator.CreateInstance(Infix);
         arithmeticCalculator.Execute();         // Создали экземпляр арифметического калькулятора
     },
         @"Ошибка выполнения арифметического выражения");
 }
Пример #18
0
        public void TestResetVariable()
        {
            var infix = "XYZ";
            var arithmeticCalculator = ArithmeticCalculator.CreateInstance(infix); // Создали экземпляр арифметического калькулятора

            arithmeticCalculator.SetVariableValue("XYZ", 23.56M);
            arithmeticCalculator.SetVariableValue("Xyz", 12.45M);
            var result = arithmeticCalculator.Execute();

            Assert.AreEqual(12.45M, result);
        }
Пример #19
0
        public void TestErrorExpression04()
        {
            var ex = Assert.Throws <Exception>(delegate
            {
                const string Infix       = "Pow(5,6,7)";
                var arithmeticCalculator = ArithmeticCalculator.CreateInstance(Infix);
                arithmeticCalculator.Execute();
            });

            Assert.IsTrue(ex.Message.Contains("Ошибка выполнения арифметического выражения"), ex.Message);
        }
        public void Variant31()
        {
            var infix = "3-data";
            var arithmeticCalculator = ArithmeticCalculator.CreateInstance(infix); // Создали экземпляр арифметического калькулятора

            arithmeticCalculator.SetVariableValue("data", 1);
            var result  = arithmeticCalculator.Execute();
            var postfix = arithmeticCalculator.PostFix;

            Assert.AreEqual(2, result, infix + "  ->  " + postfix);
        }
Пример #21
0
        public void TestNodefinedVariable()
        {
            var ex = Assert.Throws <Exception>(delegate
            {
                const string Infix       = "23 + D5 + 10";
                var arithmeticCalculator = ArithmeticCalculator.CreateInstance(Infix);
                arithmeticCalculator.Execute();
            });

            Assert.IsTrue(ex.Message.Contains("Неудалось распознать"), ex.Message);
        }
Пример #22
0
        public void TestConstantInFunction()
        {
            var infix = "Pow((2+2),(3+3))";
            var arithmeticCalculator = ArithmeticCalculator.CreateInstance(infix); // Создали экземпляр арифметического калькулятора

            arithmeticCalculator.SetVariableValue("A1", 2);
            arithmeticCalculator.SetVariableValue("A2", 2);
            arithmeticCalculator.SetVariableValue("B1", 3);
            arithmeticCalculator.SetVariableValue("B2", 3);
            var result = arithmeticCalculator.Execute();

            Assert.AreEqual(1296, result);
        }
 public void TestUnexpectedCharInExpression()
 {
     try
     {
         const string Infix = "5$6";
         ArithmeticCalculator.CreateInstance(Infix); // Создали экземпляр арифметического калькулятора
     }
     catch (Exception ex)
     {
         Assert.IsTrue(ex.Message.Contains("Недопустимый символ"), ex.Message);
         throw;
     }
 }
 public void TestUnexpectedDotInVariable()
 {
     try
     {
         const string Infix = "D.5";
         ArithmeticCalculator.CreateInstance(Infix); // Создали экземпляр арифметического калькулятора
     }
     catch (Exception ex)
     {
         Assert.IsTrue(ex.Message.Contains("Недопустимое использование"), ex.Message);
         throw;
     }
 }
 public void TestErrorExpression03()
 {
     try
     {
         const string Infix = "Pow(5,)";
         var          arithmeticCalculator = ArithmeticCalculator.CreateInstance(Infix);
         arithmeticCalculator.Execute(); // Создали экземпляр арифметического калькулятора
     }
     catch (Exception ex)
     {
         Assert.IsTrue(ex.Message.Contains("Ошибка выполнения арифметического выражения"), ex.Message);
         throw;
     }
 }
        public void TestNodefinedVariable()
        {
            try
            {
                const string Infix = "23 + D5 + 10";
                var          arithmeticCalculator = ArithmeticCalculator.CreateInstance(Infix);

                // Создали экземпляр арифметического калькулятора
                arithmeticCalculator.Execute();
            }
            catch (Exception ex)
            {
                Assert.IsTrue(ex.Message.Contains("Неудалось распознать"), ex.Message);
                throw;
            }
        }
Пример #27
0
        /// <summary>
        /// The main.
        /// </summary>
        public static void Main()
        {
            const string Expression = "(10*(A1 + B2 + C10) +25) * 0.5"; // Задали арифметическое выражение

            Console.WriteLine("Expression: {0}", Expression);
            var arithmeticCalculator = ArithmeticCalculator.CreateInstance(Expression); // Создали экземпляр арифметического калькулятора

            Console.WriteLine("PostFix notation: {0}", arithmeticCalculator.PostFix);   // Справочная информация Просмотр выражения в обратной польской нотации
            Console.WriteLine("VariableList:");

            arithmeticCalculator.VariableList.ForEach(Console.WriteLine); // Справочная информация Просмотр списка используемых переменных

            arithmeticCalculator.SetVariableValue("A1", 2);               // Задаем значения переменных
            arithmeticCalculator.SetVariableValue("B2", 3);
            arithmeticCalculator.SetVariableValue("C10", 4);

            var result = arithmeticCalculator.Execute(); // Выполняем вычисление

            Console.WriteLine("Result: {0}", result);
        }