Пример #1
0
        private ExpressionNode ParseRel()
        {
            var lhs = ParseMathExpr();

            if (_reader.Peek() is LessThan)
            {
                Match <LessThan>();
                lhs = new LessThanNode(lhs, ParseMathExpr());
            }
            else if (_reader.Peek() is LessThanOrEqual)
            {
                Match <LessThanOrEqual>();
                lhs = new LessThanOrEqualNode(lhs, ParseMathExpr());
            }
            else if (_reader.Peek() is GreaterThan)
            {
                Match <GreaterThan>();
                lhs = new GreaterThanNode(lhs, ParseMathExpr());
            }
            else if (_reader.Peek() is GreaterThanOrEqual)
            {
                Match <GreaterThanOrEqual>();
                lhs = new GreaterThanNodeOrEqual(lhs, ParseMathExpr());
            }

            return(lhs);
        }
        public override bool Visit(LessThanOrEqualNode node)
        {
            int nodeLeft  = 0;
            int nodeRight = 0;

            if (node.Left is NumberNode)
            {
                nodeLeft = Visit(node.Left as NumberNode);
            }
            else if (node.Left is IdentifierNode)
            {
                nodeLeft = Visit(node.Left as IdentifierNode);
            }
            else
            {
                nodeLeft = Visit(node.Left as InfixExpressionNode);
            }

            if (node.Right is NumberNode)
            {
                nodeRight = Visit(node.Right as NumberNode);
            }
            else if (node.Right is IdentifierNode)
            {
                nodeRight = Visit(node.Right as IdentifierNode);
            }
            else
            {
                nodeRight = Visit(node.Right as InfixExpressionNode);
            }

            return(nodeLeft <= nodeRight);
        }
Пример #3
0
        public void Init()
        {
            _testExpression = Expression.LessThan(TestLeftExpression, TestRightExpression);

            TestObject = new LessThanOrEqualNode(
                MockNodeFactory.Object,
                TestExpression);
        }
Пример #4
0
        public void LessThanOrEqualExpressionHasExpectedRight()
        {
            IExpressionNode actual = TestObject.Build(TestLessThanOrEqualExpression);

            LessThanOrEqualNode actualNode = actual.VerifyIsActually <LessThanOrEqualNode>();
            ConstantNode        rightNode  = actualNode.Right.VerifyIsActually <ConstantNode>();

            Assert.AreSame(TestConstantOne, rightNode.SourceExpression);
        }
Пример #5
0
        public void LessThanOrEqualExpressionIsExpected()
        {
            Expression testExpression = TestLessThanOrEqualExpression;

            IExpressionNode actual = TestObject.Build(testExpression);

            LessThanOrEqualNode actualNode = actual.VerifyIsActually <LessThanOrEqualNode>();

            Assert.AreSame(testExpression, actualNode.SourceExpression);
        }
        protected virtual BaseQuery HandleLessThanOrEqual(LessThanOrEqualNode node, ElasticSearchQueryMapperState state)
        {
            BaseQuery query;

            var fieldNode = node.GetFieldNode();
            var valueNode = QueryHelper.GetValueNode(node, fieldNode.FieldType);

            if (ProcessAsVirtualField(fieldNode, valueNode, node.Boost, ComparisonType.LessThanOrEqual, state, out query))
            {
                return(query);
            }

            return(HandleLessThanOrEqual(fieldNode.FieldKey, valueNode.Value, node.Boost));
        }
Пример #7
0
 public virtual void VisitLessThanOrEqual(LessThanOrEqualNode lessThanOrEqualNode) => throw new NotImplementedException();
 protected virtual QueryNode VisitLessThanOrEqual(LessThanOrEqualNode node, AzureQueryOptimizerState state)
 {
     return((QueryNode) new LessThanOrEqualNode(this.Visit(node.LeftNode, state), this.Visit(node.RightNode, state)));
 }
        protected virtual QueryNode VisitLessThanOrEqual(LessThanOrEqualNode node, ElasticSearchQueryOptimizerState state)
        {
            var node2 = Visit(node.LeftNode, state);

            return(new LessThanOrEqualNode(node2, Visit(node.RightNode, state)));
        }
 protected QueryBase VisitLessThanOrEqual(LessThanOrEqualNode node, ElasticQueryMapperState state)
 {
     return(GetSingleTermRangeQuery(node, RangeQueryPropertyNames.LessThanOrEqualTo));
 }
 public abstract U Visit(LessThanOrEqualNode node);