コード例 #1
0
        public void CalculateTest(double firstArgument, double secondArgument, double expectedResult)
        {
            var calculator   = new ArithmeticCalculator();
            var actualResult = calculator.Calculate(firstArgument, secondArgument);

            Assert.AreEqual(actualResult, expectedResult);
        }
コード例 #2
0
        public void NegativeValueTest()
        {
            var infix = "Abs(-25)";
            var arithmeticCalculator = ArithmeticCalculator.CreateInstance(infix); // Создали экземпляр арифметического калькулятора
            var postfix = arithmeticCalculator.PostFix;

            Assert.AreEqual("-25 Abs", postfix, postfix);
        }
コード例 #3
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);
        }
コード例 #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 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);
        }
コード例 #6
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);
        }
コード例 #7
0
        public void LogTestMethod()
        {
            var infix = "Log(34, 3)";
            var arithmeticCalculator = ArithmeticCalculator.CreateInstance(infix); // Создали экземпляр арифметического калькулятора
            var result = arithmeticCalculator.Execute();

            Assert.AreEqual(0.311542816169567M, result);
        }
コード例 #8
0
        public void CosTestMethod()
        {
            var infix = "Cos(0.5)";
            var arithmeticCalculator = ArithmeticCalculator.CreateInstance(infix); // Создали экземпляр арифметического калькулятора
            var result = arithmeticCalculator.Execute();

            Assert.AreEqual(0.877582561890373M, result);
        }
コード例 #9
0
        public void ExpTestMethod()
        {
            var infix = "Exp(2)";
            var arithmeticCalculator = ArithmeticCalculator.CreateInstance(infix); // Создали экземпляр арифметического калькулятора
            var result = arithmeticCalculator.Execute();

            Assert.AreEqual(7.38905609893065M, result);
        }
コード例 #10
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);
        }
コード例 #11
0
        public void AtanTestMethod()
        {
            var infix = "Atan(0.5)";
            var arithmeticCalculator = ArithmeticCalculator.CreateInstance(infix); // Создали экземпляр арифметического калькулятора
            var result = arithmeticCalculator.Execute();

            Assert.AreEqual(0.463647609000806M, result);
        }
コード例 #12
0
        public void SinTestMethod()
        {
            var infix = "Sin(0.5)";
            var arithmeticCalculator = ArithmeticCalculator.CreateInstance(infix); // Создали экземпляр арифметического калькулятора
            var result = arithmeticCalculator.Execute();

            Assert.AreEqual(0.479425538604203M, result);
        }
コード例 #13
0
        public void SqrtTestMethod()
        {
            var infix = "Sqrt(18.48)";
            var arithmeticCalculator = ArithmeticCalculator.CreateInstance(infix); // Создали экземпляр арифметического калькулятора
            var result = arithmeticCalculator.Execute();

            Assert.AreEqual(4.29883705204094M, result);
        }
コード例 #14
0
        public void TestConstantPositive()
        {
            var infix = "0.89";
            var arithmeticCalculator = ArithmeticCalculator.CreateInstance(infix); // Создали экземпляр арифметического калькулятора
            var result = arithmeticCalculator.Execute();

            Assert.AreEqual(0.89M, result);
        }
コード例 #15
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);
        }
コード例 #16
0
        public void SetNegative()
        {
            var infix = "-25.45";
            var arithmeticCalculator = ArithmeticCalculator.CreateInstance(infix); // Создали экземпляр арифметического калькулятора
            var result = arithmeticCalculator.Execute();

            Assert.AreEqual(-25.45M, result);
        }
コード例 #17
0
        public void AbsTestMethod()
        {
            var infix = "Abs(-25)";
            var arithmeticCalculator = ArithmeticCalculator.CreateInstance(infix); // Создали экземпляр арифметического калькулятора
            var result = arithmeticCalculator.Execute();

            Assert.AreEqual(25, result);
        }
コード例 #18
0
        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);
        }
コード例 #19
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"));
        }
コード例 #20
0
        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);
        }
コード例 #21
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);
        }
コード例 #22
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);
        }
コード例 #23
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);
        }
コード例 #24
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);
        }
コード例 #25
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);
        }
コード例 #26
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);
        }
コード例 #27
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);
        }
コード例 #28
0
        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);
        }
コード例 #29
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);
        }
コード例 #30
0
 public void TestErrorExpression01X()
 {
     MyAssert.Throws <Exception>(
         () =>
     {
         const string Infix       = "5,6";
         var arithmeticCalculator = ArithmeticCalculator.CreateInstance(Infix);
         arithmeticCalculator.Execute();         // Создали экземпляр арифметического калькулятора
     },
         @"Ошибка выполнения арифметического выражения");
 }