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); }
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); }
[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); } }