### Question:
ExpressionRewriteRuleSet { public Rule<?> valuesExpressionRewrite() { return new ValuesExpressionRewrite(rewriter); } ExpressionRewriteRuleSet(ExpressionRewriter rewriter); Set<Rule<?>> rules(); Rule<?> projectExpressionRewrite(); Rule<?> aggregationExpressionRewrite(); Rule<?> filterExpressionRewrite(); Rule<?> joinExpressionRewrite(); Rule<?> valuesExpressionRewrite();  }### Answer:
@Test public void testValueExpressionRewrite() { tester().assertThat(zeroRewriter.valuesExpressionRewrite()) .on(p -> p.values( ImmutableList.<Symbol>of(p.symbol("a")), ImmutableList.of((ImmutableList.of(PlanBuilder.expression("1")))))) .matches( values(ImmutableList.of("a"), ImmutableList.of(ImmutableList.of(new LongLiteral("0"))))); }
@Test public void testValueExpressionNotRewritten() { tester().assertThat(zeroRewriter.valuesExpressionRewrite()) .on(p -> p.values( ImmutableList.<Symbol>of(p.symbol("a")), ImmutableList.of((ImmutableList.of(PlanBuilder.expression("0")))))) .doesNotFire(); }