@Test
  void equality() {
    final LocalDate date1 = LocalDate.now();
    repository.insert(generator.get().withId("id1").withValue(date1));

    ids(holder.value.is(date1)).hasContentInAnyOrder("id1");
    ids(holder.value.is(date1.plusDays(1))).isEmpty();
    ids(holder.value.isNot(date1)).isEmpty();
    ids(holder.value.isNot(date1.plusDays(1))).hasContentInAnyOrder("id1");
    ids(holder.value.in(date1, date1)).hasContentInAnyOrder("id1");
    ids(holder.value.notIn(date1, date1)).isEmpty();
    ids(holder.value.notIn(date1.plusMonths(1), date1.plusDays(1))).hasContentInAnyOrder("id1");

    final LocalDate date2 = LocalDate.now().plusWeeks(2);
    repository.insert(generator.get().withId("id2").withValue(date1).withValue(date2));
    ids(holder.value.is(date2)).hasContentInAnyOrder("id2");
    ids(holder.value.isNot(date2)).hasContentInAnyOrder("id1");
    ids(holder.value.isNot(date1)).hasContentInAnyOrder("id2");
    ids(holder.value.in(date1, date2)).hasContentInAnyOrder("id1", "id2");
    ids(holder.value.in(date1.plusDays(1), date2.plusDays(1))).isEmpty();
    ids(holder.value.notIn(date1, date2)).isEmpty();
    ids(holder.value.notIn(date1.plusDays(1), date2)).hasContentInAnyOrder("id1");
    ids(holder.value.notIn(date1, date2.plusDays(1))).hasContentInAnyOrder("id2");
  }
Testing predicates, projections, sorting etc. on booleans
criteria/common/test/org/immutables/criteria/typemodel/LocalDateTemplate.java