@VisibleForTesting
  Object evaluate(final GenericRow row) {
    return term.getValue(new TermEvaluationContext(row));
  }
@Test
  public void shouldEvaluateComparisons_int() {
    // Given:
    final Expression expression1 = new ComparisonExpression(
        ComparisonExpression.Type.GREATER_THAN,
        COL7,
        new IntegerLiteral(10)
    );
    final Expression expression2 = new ComparisonExpression(
        ComparisonExpression.Type.LESS_THAN,
        COL7,
        new IntegerLiteral(20)
    );
    final Expression expression3 = new ComparisonExpression(
        ComparisonExpression.Type.EQUAL,
        COL7,
        new DoubleLiteral(30)
    );

    // When:
    InterpretedExpression interpreter1 = interpreter(expression1);
    InterpretedExpression interpreter2 = interpreter(expression2);
    InterpretedExpression interpreter3 = interpreter(expression3);

    // Then:
    assertThat(interpreter1.evaluate(make(7, 30)), is(true));
    assertThat(interpreter1.evaluate(make(7, 4)), is(false));
    assertThat(interpreter2.evaluate(make(7, 13)), is(true));
    assertThat(interpreter2.evaluate(make(7, 20)), is(false));
    assertThat(interpreter3.evaluate(make(7, 30)), is(true));
    assertThat(interpreter3.evaluate(make(7, 31)), is(false));
  }