Beispiel #1
0
        public void These_are_valid_expressions(string expression, string[] parameterNames, object[] values, object expected)
        {
            ExpressionService service = new ExpressionService();

            Type[] types  = values?.Select(v => v.GetType()).ToArray() ?? new Type[0];
            object actual = service.Evaluate(expression, parameterNames, values, types);

            Assert.Equal(expected, actual);
        }
Beispiel #2
0
        public void Compare_constants_versus_native(ExpressionFeatures features, int trials)
        {
            ExpressionService service = new ExpressionService(features);

            // Constants:
            CompareTests("Constants",
                         features.ToString(), () => service.Evaluate("100", null, null, null),
                         "Native", () => ConstantNative(),
                         trials, service, 100);
        }
Beispiel #3
0
        [InlineData("100 + a + b + c", new[] { "a", "b", "c" }, new object[] { 50, 5.5, 0.1 }, 155.6)]  // 100 + a + b + c => 155.6
        public void These_are_valid_expressions(string expression, string[] parameterNames, object[] values, object expected)
        {
            var trace = new TraceSource(nameof(ExpressionService));

            trace.Switch.Level = SourceLevels.All;
            trace.Listeners.Add(new XunitTraceListener(_output));

            using (ExpressionService service = new ExpressionService(ExpressionFeatures.None, trace))
            {
                Type[] types  = values?.Select(v => v.GetType()).ToArray() ?? Type.EmptyTypes;
                object actual = service.Evaluate(expression, parameterNames, types, values);
                Assert.Equal(expected, actual);
            }
        }