internal InternalEvaluatorValue Create(EvaluatorValue val) { if (val.TypeKey == ValueTypeKey.Number) { return(val.Number); } if (val.TypeKey == ValueTypeKey.Word) { return(Word().Create(val.Word)); } if (val.TypeKey == ValueTypeKey.DateTime) { return(DateTime().Create(val.DateTime)); } if (val.TypeKey == ValueTypeKey.WordList) { return(WordList().Create(val.WordList)); } if (val.TypeKey == ValueTypeKey.NumberList) { return(NumberList().Create(val.NumberList)); } if (val.TypeKey == ValueTypeKey.Boolean) { // Bool represent as number in any cases return(val.Boolean ? 1 : 0); } throw new InvalidCastException($"Can't cast {nameof(EvaluatorValue)} with the typeKey = \"{val.TypeKey}\" to {nameof(InternalEvaluatorValue)}"); }
public FormulaModel(string formula, string parsedFormula, EvaluatorValue result, bool expectedOkResult = true) { Formula = formula; ParsedFormula = parsedFormula; Result = result; ExpectedOkResult = expectedOkResult; Arguments = new Dictionary <string, EvaluatorValue>(); }
private EvaluatorValue OnCalcAggregated(List <BaseFormulaNode> nodes, VariablesSource variables) { // Rent using var idContainer = GetIdContainer(); // Calculate with internal struct EvaluatorValue res = CalcInternal(nodes, variables, idContainer); return(res); }
private static FormulaModel[] CreateTestModel(string formula, EvaluatorValue result, params (string, EvaluatorValue)[] arguments)