public void NegativeValueTest() { var infix = "Abs(-25)"; var arithmeticCalculator = ArithmeticCalculator.CreateInstance(infix); // Создали экземпляр арифметического калькулятора var postfix = arithmeticCalculator.PostFix; Assert.AreEqual("-25 Abs", postfix, postfix); }
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); }
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); }
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); }
public void SetNegative() { var infix = "-25.45"; var arithmeticCalculator = ArithmeticCalculator.CreateInstance(infix); // Создали экземпляр арифметического калькулятора var result = arithmeticCalculator.Execute(); Assert.AreEqual(-25.45M, result); }
public void Test19() { var infix = "(-(3)-(4))"; var arithmeticCalculator = ArithmeticCalculator.CreateInstance(infix); // Создали экземпляр арифметического калькулятора var postfix = arithmeticCalculator.PostFix; Assert.AreEqual("-1 3 * 4 -", postfix, infix + " -> " + postfix); }
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); }
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); }
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")); }
public void TestUnexpectedCharInExpression() { var ex = Assert.Throws <Exception>(delegate { const string Infix = "5$6"; ArithmeticCalculator.CreateInstance(Infix); // Создали экземпляр арифметического калькулятора }); Assert.IsTrue(ex.Message.Contains("Недопустимый символ"), ex.Message); }
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); }
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); }
public void TestUnexpectedDotInVariable() { var ex = Assert.Throws <Exception>(delegate { const string Infix = "D.5"; ArithmeticCalculator.CreateInstance(Infix); // Создали экземпляр арифметического калькулятора }); Assert.IsTrue(ex.Message.Contains("Недопустимое использование"), ex.Message); }
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(); // Создали экземпляр арифметического калькулятора }, @"Ошибка выполнения арифметического выражения"); }
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); }
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); }
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); }
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; } }
/// <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); }