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); }