public static boolean canDrop(FilterPredicate pred, List<ColumnChunkMetaData> columns) {
    Objects.requireNonNull(pred, "pred cannot be null");
    Objects.requireNonNull(columns, "columns cannot be null");
    return pred.accept(new StatisticsFilter(columns));
  }
@Test
  public void testContainsEqNonNull() {
    assertTrue(canDrop(contains(eq(intColumn, 9)), columnMetas));
    assertFalse(canDrop(contains(eq(intColumn, 10)), columnMetas));
    assertFalse(canDrop(contains(eq(intColumn, 100)), columnMetas));
    assertTrue(canDrop(contains(eq(intColumn, 101)), columnMetas));

    // drop columns of all nulls when looking for non-null value
    assertTrue(canDrop(contains(eq(intColumn, 0)), nullColumnMetas));
    assertFalse(canDrop(contains(eq(intColumn, 50)), missingMinMaxColumnMetas));
  }