public RowExpression rewriteExpression(RowExpression expression, Predicate<VariableReferenceExpression> variableScope)
    {
        checkArgument(determinismEvaluator.isDeterministic(expression), "Only deterministic expressions may be considered for rewrite");
        return rewriteExpression(expression, variableScope, true);
    }
@Test
    public void testParseEqualityExpression()
    {
        EqualityInference inference = new EqualityInference.Builder(METADATA)
                .addEquality(equals("a1", "b1"))
                .addEquality(equals("a1", "c1"))
                .addEquality(equals("c1", "a1"))
                .build();

        RowExpression expression = inference.rewriteExpression(someExpression("a1", "b1"), matchesVariables("c1"));
        assertEquals(expression, someExpression("c1", "c1"));
    }