public void fct_OP_12_Sep_bonjour_8dot5_CP_retInt_21_ok() { ExpressionEval evaluator = new ExpressionEval(); // definir langue: fr ou en, sert pour les opérateurs: ET/AND, OU/OR, NON/NOT. evaluator.SetLang(Language.En); string expr = "fct(4, \"bonjour\", 8.5)"; evaluator.Parse(expr); // link function body to function call var funcMapper = new Func3ParamsRetIntMapper <int, string, double>(); funcMapper.SetFunction(FctP1Int_P2String_P3Double); evaluator.AttachFunction("Fct", funcMapper); //====3/execute l'expression booléenne ExecResult execResult = evaluator.Exec(); Assert.AreEqual(false, execResult.HasError, "The exec of the expression should finish with success"); // check the final result value (is ExprExecFunctionCallBool override ExprExecValueBool) ExprExecValueInt valueInt = execResult.ExprExec as ExprExecValueInt; Assert.IsNotNull(execResult, "The result value should be a bool"); Assert.AreEqual(21, valueInt.Value, "The result value should be: 18"); }
public void Exec_Minus_4_Minus_6_Ret_Minus_10_Ok() { ExpressionEval evaluator = new ExpressionEval(); // definir langue: fr ou en, sert pour les opérateurs: ET/AND, OU/OR, NON/NOT. evaluator.SetLang(Language.En); string expr = "-4-6"; ParseResult parseResult = evaluator.Parse(expr); ExecResult execResult = evaluator.Exec(); Assert.AreEqual(false, execResult.HasError, "The exec of the expression should finish with success"); // check the final result value ExprExecValueInt valueInt = execResult.ExprExec as ExprExecValueInt; Assert.IsNotNull(valueInt, "The result value should be a bool"); Assert.AreEqual(-10, valueInt.Value, "The result value should be: -10"); }
public void Exec_2_Plus_3_Mul_4_Plus_5_Ret_19_Ok() { ExpressionEval evaluator = new ExpressionEval(); // definir langue: fr ou en, sert pour les opérateurs: ET/AND, OU/OR, NON/NOT. evaluator.SetLang(Language.En); string expr = "2+3*4+5"; ParseResult parseResult = evaluator.Parse(expr); ExecResult execResult = evaluator.Exec(); Assert.AreEqual(false, execResult.HasError, "The exec of the expression should finish with success"); // check the final result value ExprExecValueInt valueInt = execResult.ExprExec as ExprExecValueInt; Assert.IsNotNull(valueInt, "The result value should be an int"); Assert.AreEqual(19, valueInt.Value, "The result value should be: 19"); }