Esempio n. 1
0
        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)}");
        }
Esempio n. 2
0
 public FormulaModel(string formula, string parsedFormula, EvaluatorValue result, bool expectedOkResult = true)
 {
     Formula          = formula;
     ParsedFormula    = parsedFormula;
     Result           = result;
     ExpectedOkResult = expectedOkResult;
     Arguments        = new Dictionary <string, EvaluatorValue>();
 }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
 private static FormulaModel[] CreateTestModel(string formula, EvaluatorValue result, params (string, EvaluatorValue)[] arguments)