@@ -0,0 +1,2151 @@
+/*%0A * Licensed under the Apache License, Version 2.0 (the %22License%22);%0A * you may not use this file except in compliance with the License.%0A * You may obtain a copy of the License at%0A *%0A *     http://www.apache.org/licenses/LICENSE-2.0%0A *%0A * Unless required by applicable law or agreed to in writing, software%0A * distributed under the License is distributed on an %22AS IS%22 BASIS,%0A * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.%0A * See the License for the specific language governing permissions and%0A * limitations under the License.%0A */%0Apackage com.facebook.presto.sql.planner.iterative.rule;%0A%0Aimport com.facebook.presto.sql.planner.iterative.rule.test.BaseRuleTest;%0Aimport com.facebook.presto.sql.planner.plan.LimitNode;%0Aimport com.facebook.presto.sql.planner.plan.MarkDistinctNode;%0Aimport com.facebook.presto.sql.planner.plan.ValuesNode;%0Aimport org.testng.annotations.Test;%0A%0Aimport static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.node;%0Aimport static java.util.Collections.emptyList;%0A%0Apublic class TestPushLimitThroughMarkDistinct%0A        extends BaseRuleTest%0A%7B%0A    @Test%0A    public void test()%0A            throws Exception%0A    %7B%0A        tester().assertThat(new PushLimitThroughMarkDistinct())%0A                .on(p -%3E%0A                        p.limit(%0A                                1,%0A                                p.markDistinct(%0A                                        p.values(), p.symbol(%22foo%22), emptyList())))%0A                .matches(%0A                        node(MarkDistinctNode.class,%0A                                node(LimitNode.class,%0A                                        node(ValuesNode.class))));%0A    %7D%0A%0A    @Test%0A    public void testDoesNotFire()%0A            throws Exception%0A    %7B%0A        tester().assertThat(new PushLimitThroughMarkDistinct())%0A                .on(p -%3E%0A                        p.markDistinct(%0A                                p.limit(%0A                                        1,%0A                                        p.values()),%0A                                p.symbol(%22foo%22),%0A                                emptyList()))%0A                .doesNotFire();%0A    %7D%0A%7D%0A

Add tests for PushLimitThroughMarkDistinct rule