Exemple #1
0
            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);
                }
            }
Exemple #2
0
 private static void CompileEvaluate(
     string expression,
     object expected,
     EPCompilerSPIExpression expressionCompiler)
 {
     var actual = CompileEvaluate(expression, expressionCompiler);
     Assert.AreEqual(expected, actual);
 }
Exemple #3
0
        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;
        }