public static boolean canDrop(
      FilterPredicate pred, List<ColumnChunkMetaData> columns, DictionaryPageReadStore dictionaries) {
    Objects.requireNonNull(pred, "pred cannnot be null");
    Objects.requireNonNull(columns, "columns cannnot be null");
    return pred.accept(new DictionaryFilter(columns, dictionaries));
  }
@Test
  public void testUdp() throws Exception {
    InInt32UDP dropabble = new InInt32UDP(ImmutableSet.of(42));
    InInt32UDP undroppable = new InInt32UDP(ImmutableSet.of(205));

    assertTrue(
        "Should drop block for non-matching UDP",
        canDrop(userDefined(intColumn("int32_field"), dropabble), ccmd, dictionaries));

    assertFalse(
        "Should not drop block for matching UDP",
        canDrop(userDefined(intColumn("int32_field"), undroppable), ccmd, dictionaries));
  }