Esempio n. 1
0
 public void Setup()
 {
     mChecker          = Substitute.For <IExpressionEqualityChecker>();
     mFirstSimplifier  = Substitute.For <ISimplifier>();
     mSecondSimplifier = Substitute.For <ISimplifier>();
     mUnderTest        = new AggregateSimplifier(new[] { mFirstSimplifier, mSecondSimplifier }, mChecker);
 }
 internal Expression Translate(Expression expression)
 {
     if (expression is ProjectionExpression projection)
     {
         return(projection);
     }
     expression = Evaluator.PartialEval(expression, CanBeEvaluatedLocally);
     expression = QueryBinder.Bind(this, expression);
     expression = ConstantEscaper.EscapeConstants(expression);
     expression = OrderByRewriter.Rewrite(expression);
     expression = RedundantSubqueryRemover.Remove(expression);
     expression = UnusedColumnRemover.Remove(expression);
     expression = AggregateSimplifier.Simplify(expression);
     return(expression);
 }