Exemplo n.º 1
0
 protected void AssertTypeof(CompilationInput compilationInput, string expression, string typeStr)
 {
     var(success, result) = Host.Typeof(compilationInput, expression);
     if (!success)
     {
         Assert.Fail();
     }
     Assert.That(result, Is.EqualTo(typeStr));
 }
Exemplo n.º 2
0
 protected void AssertApproxEqual(CompilationInput compilationInput, string controlExpression, params string[] expressions) =>
 AssertApproxEqual(compilationInput, controlExpression, expressions.Select(expression =>
 {
     var(success, result) = Host.Evaluate(compilationInput, expression);
     if (!success)
     {
         Assert.Fail($"'{expression}' evaluation failed");
     }
     return(result);
 }).ToArray());
Exemplo n.º 3
0
 protected void AssertApproxEqual(CompilationInput compilationInput, string controlExpression, params float[][] results)
 {
     var(controlSuccess, controlResult) = Host.Evaluate(compilationInput, controlExpression);
     if (!controlSuccess)
     {
         Assert.Fail($"'{controlExpression}' evaluation failed");
     }
     results.Aggregate(controlResult, (expected, result) =>
     {
         CollectionAssert.AreEqual(expected, result, FloatComparer);
         return(expected);
     });
 }
Exemplo n.º 4
0
        protected void EvaluateExpectingErrorCode(CompilationInput compilationInput, int messageCode, string expression)
        {
            var errors = new List <CompilerMessage>();

            compilationInput.LogCallback = ExpectMessageCode(messageCode, errors);
            var(success, _) = Host.Evaluate(compilationInput, expression);
            if (success)
            {
                if (errors.Count > 0)
                {
                    Assert.Fail("Expected message code '{0}' but got following code(s): {1}", messageCode, string.Join(",", errors.Select(err => err.MessageCode)));
                }
                else
                {
                    Assert.Fail("Expected message code '{0}' but evaluation succeeded", messageCode);
                }
            }
        }
Exemplo n.º 5
0
 protected abstract (int ExitCode, string Result) CommandImplementation(CompilationInput input);
Exemplo n.º 6
0
        } = false;                                                        // Skipping validation during evaluate may cause indirect compiler errors

        protected override (int ExitCode, string Result) CommandImplementation(CompilationInput input) =>
        (0, new AtomicHost().Evaluate(input, Expression) switch
Exemplo n.º 7
0
 public (bool Success, float[] Result) Evaluate(CompilationInput compilationInput, string expression) => new PersistentHost(compilationInput).Evaluate(compilationInput, expression);
Exemplo n.º 8
0
 public bool Parse(CompilationInput compilationInput) => SourceContext.TryCreate(compilationInput, out _);
Exemplo n.º 9
0
 public (bool Success, string Result) Typeof(CompilationInput input, string expression) => new PersistentHost(input).Typeof(input, expression);
Exemplo n.º 10
0
 protected override (int ExitCode, string Result) CommandImplementation(CompilationInput compilationInput)
 => (0, new AtomicHost().Parse(compilationInput).ToString());
Exemplo n.º 11
0
 public static TDelegate Compile <TDelegate>(this IFunction function,
                                             CompilationInput input,
                                             ICLRBoundaryMap boundaryMap = null) where TDelegate : Delegate? =>
 (TDelegate)function.Compile(typeof(TDelegate), input, boundaryMap);