public PickTableLayoutForPredicate pickTableLayoutForPredicate()
    {
        return new PickTableLayoutForPredicate(metadata);
    }
@Test
    public void doesNotFireIfRuleNotChangePlan()
    {
        tester().assertThat(pickTableLayout.pickTableLayoutForPredicate())
                .on(p -> {
                    p.variable("nationkey", BIGINT);
                    return p.filter(p.rowExpression("nationkey % 17 =  BIGINT '44' AND nationkey % 15 =  BIGINT '43'"),
                            p.tableScan(
                                    nationTableHandle,
                                    ImmutableList.of(p.variable("nationkey", BIGINT)),
                                    ImmutableMap.of(p.variable("nationkey", BIGINT), new TpchColumnHandle("nationkey", BIGINT)),
                                    TupleDomain.all(),
                                    TupleDomain.all()));
                })
                .doesNotFire();

        tester().assertThat(pickTableLayout.pickTableLayoutForPredicate())
                .on(p -> {
                    p.variable("nationkey");
                    return p.filter(p.rowExpression("nationkey % 17 =  BIGINT '44' AND nationkey % 15 =  BIGINT '43'"),
                            p.tableScan(
                                    nationTableHandle,
                                    ImmutableList.of(variable("nationkey", BIGINT)),
                                    ImmutableMap.of(variable("nationkey", BIGINT), new TpchColumnHandle("nationkey", BIGINT)),
                                    TupleDomain.all(),
                                    TupleDomain.all()));
                })
                .doesNotFire();
    }