public void Run(RegressionEnvironment env) { var compiler = (EPCompilerSPI) env.Compiler; EPCompilerSPIExpression expressionCompiler = null; try { expressionCompiler = compiler.ExpressionCompiler(new Configuration()); } catch (EPCompileException e) { Assert.Fail(e.Message); } CompileEvaluate("1*1", 1, expressionCompiler); CompileEvaluate("'a' || 'y'", "ay", expressionCompiler); var arrays = typeof(Arrays).FullName; var list = (ICollection<object>) CompileEvaluate($"{arrays}.AsList({{\"a\"}})", expressionCompiler); EPAssertionUtil.AssertEqualsExactOrder(list.ToArray(), new object[] {"a"}); CompileEvaluate($"{arrays}.AsList({{'a', 'b'}}).firstOf()", "a", expressionCompiler); try { var timePeriod = (ExprTimePeriod) expressionCompiler.CompileValidate("5 seconds"); Assert.AreEqual(5d, timePeriod.EvaluateAsSeconds(null, true, null), 0.0001); } catch (EPCompileException e) { Assert.Fail(e.Message); } }
private static void CompileEvaluate( string expression, object expected, EPCompilerSPIExpression expressionCompiler) { var actual = CompileEvaluate(expression, expressionCompiler); Assert.AreEqual(expected, actual); }
private static object CompileEvaluate( string expression, EPCompilerSPIExpression expressionCompiler) { object result = null; try { result = expressionCompiler.CompileValidate(expression).Forge.ExprEvaluator.Evaluate(null, true, null); } catch (EPCompileException e) { Assert.Fail(e.Message); } return result; }