public boolean eval(ContentFile<?> file) {
    // TODO: detect the case where a column is missing from the file using file's max field id.
    return new MetricsEvalVisitor().eval(file);
  }
@Test
  public void testSomeNulls() {
    boolean shouldRead =
        new StrictMetricsEvaluator(SCHEMA, lessThan("some_nulls", "ggg")).eval(FILE_2);
    assertThat(shouldRead).as("Should not match: lessThan on some nulls column").isFalse();

    shouldRead =
        new StrictMetricsEvaluator(SCHEMA, lessThanOrEqual("some_nulls", "eee")).eval(FILE_2);
    assertThat(shouldRead).as("Should not match: lessThanOrEqual on some nulls column").isFalse();

    shouldRead = new StrictMetricsEvaluator(SCHEMA, greaterThan("some_nulls", "aaa")).eval(FILE_2);
    assertThat(shouldRead).as("Should not match: greaterThan on some nulls column").isFalse();

    shouldRead =
        new StrictMetricsEvaluator(SCHEMA, greaterThanOrEqual("some_nulls", "bbb")).eval(FILE_2);
    assertThat(shouldRead)
        .as("Should not match: greaterThanOrEqual on some nulls column")
        .isFalse();

    shouldRead = new StrictMetricsEvaluator(SCHEMA, equal("some_nulls", "bbb")).eval(FILE_3);
    assertThat(shouldRead).as("Should not match: equal on some nulls column").isFalse();
  }