Ejemplo n.º 1
0
        public void FromCompileResultShouldCreateIntegerExpressionIfCompileResultIsInteger()
        {
            var compileResult = new CompileResult(1, DataType.Integer);
            var result        = _converter.FromCompileResult(compileResult);

            Assert.IsInstanceOfType(result, typeof(IntegerExpression));
            Assert.AreEqual(1d, result.Compile().Result);
        }
Ejemplo n.º 2
0
        private IEnumerable <Expression> HandleGroupedExpressions()
        {
            if (!_expressions.Any())
            {
                return(Enumerable.Empty <Expression>());
            }
            var first = _expressions.First();
            var groupedExpressions = _expressions.Where(x => x.IsGroupedExpression);

            foreach (var groupedExpression in groupedExpressions)
            {
                var result = groupedExpression.Compile();
                if (result == CompileResult.Empty)
                {
                    continue;
                }
                var newExp = _expressionConverter.FromCompileResult(result);
                newExp.Operator = groupedExpression.Operator;
                newExp.Prev     = groupedExpression.Prev;
                newExp.Next     = groupedExpression.Next;
                if (groupedExpression.Prev != null)
                {
                    groupedExpression.Prev.Next = newExp;
                }
                if (groupedExpression == first)
                {
                    first = newExp;
                }
            }
            return(RefreshList(first));
        }