static void Main(string[] args) { UI ui = UI.Instance; ui.DisplayLogo(false); ui.GreetUser(); ui.IntroduceEngines(); ConsoleKeyInfo keyInfo; do { int option = ui.ChooseEngine(); IMathExpressionSolver solver = GetEngine(option); string expression = ui.GetUserMathExpression(); try { double result = solver.Solve(expression); ui.PresentResult(result); } catch (Exception e) { Console.WriteLine(e.Message); } ui.EndMessage(); keyInfo = Console.ReadKey(); } while (keyInfo.Key != ConsoleKey.Escape); }
public void TestComplexExpression() { IMathExpressionSolver solver = ExpressionSolverFactory.GetSolver(Solver.CSharpMathSolver); string expression = "2+1*3/2+12"; double result = solver.Solve(expression); Assert.AreEqual(15.5d, result); }
public void TestDivision() { IMathExpressionSolver solver = ExpressionSolverFactory.GetSolver(Solver.CSharpMathSolver); string expression = "25/2"; double result = solver.Solve(expression); Assert.AreEqual(12.5d, result); }
public void TestMultiplication() { IMathExpressionSolver solver = ExpressionSolverFactory.GetSolver(Solver.CSharpMathSolver); string expression = "20*5"; double result = solver.Solve(expression); Assert.AreEqual(100d, result); }
public void TestSubtraction() { IMathExpressionSolver solver = ExpressionSolverFactory.GetSolver(Solver.CSharpMathSolver); string expression = "10-1"; double result = solver.Solve(expression); Assert.AreEqual(9d, result); }
public void TestException() { IMathExpressionSolver solver = ExpressionSolverFactory.GetSolver(Solver.CSharpMathSolver); string expression = "assadsad"; Assert.ThrowsException <ArgumentException>(() => { double result = solver.Solve(expression); }); }
public void TestExpressionMathSolverCreation() { IMathExpressionSolver solver = ExpressionSolverFactory.GetSolver(Solver.ExpressionMathSolver); Assert.IsInstanceOfType(solver, typeof(ExpressionMathSolver)); }