### Question:
Options { public static <T> Predicate<Option<T>> hasNoValue() { return isNone(); }  static Iterable<Option<T>> somes(Iterable<Option<T>> options); static Iterable<Option<T>> nones(Iterable<Option<T>> options); static Predicate<Option<T>> isSome(); static Predicate<Option<T>> isNone(); static Predicate<Option<T>> hasValue(); static Predicate<Option<T>> hasNoValue(); static Mapper<Option<T>, T> toValue(); static Mapper<Option<T>, T> toValue(
            @SuppressWarnings("unused") Class<T> valueClass); static Iterable<T> flatten(Iterable<Option<T>> options);  }### Answer:
@Test public void returnsTrueForHasNoValueIfTheSuppliedOptionHasNoValue() { Option<Integer> option = none(); boolean result = Options.<Integer>hasNoValue().evaluate(option); assertThat(result, is(true)); }
@Test public void returnsFalseForHasNoValueIfTheSuppliedOptionHasAValue() { Option<Integer> option = some(10); boolean result = Options.<Integer>hasNoValue().evaluate(option); assertThat(result, is(false)); }