public static MultiVariableFunction FromString(string expression, params string[] variableNames) { var ctx = VariableContext.FromVariableNames(variableNames); var root = StringTokenizer.ToExpression(expression, ctx); return(new MultiVariableFunction(root, variableNames)); }
public static SingleVariableFunction FromString(string expression, string variableName) { var ctx = VariableContext.FromVariableNames(new List <string> { variableName }); var root = StringTokenizer.ToExpression(expression, ctx); return(new SingleVariableFunction(root, variableName)); }
public static void CanSubstituteAndEvaluateFunction() { var ctx = VariableContext.FromVariableNames("x"); var tree = StringTokenizer.ToExpression(" 2 * x", ctx); var function = new SingleVariableFunction(tree, "x"); Assert.AreEqual(4, function.Call(2).AsInt); Assert.AreEqual(10, function.Call(5).AsInt); }
public VariableContext GenerateContext() { return(VariableContext.FromVariableNames(AllNames())); }
public SingleVariableFunction(ISymbol root, string variableName) : base(root, VariableContext.FromVariableNames(new List <string> { variableName })) { VariableName = variableName; }
public MultiVariableFunction(ISymbol root, params string[] variableNames) : base(root, VariableContext.FromVariableNames(variableNames)) { VariableNames = variableNames; }