code: public static <T> T checkInvariant(
      final T value,
      final ContractConditionType<T> condition)
      throws InvariantViolationException
    {
      return checkInvariant(value, condition.predicate(), condition.describer());
    }
docs: <p>Evaluate the given {@code predicate} using {@code value} as input.</p>
  
  <p>The function throws {@link InvariantViolationException} if the predicate
  is false.</p>
  
  @param value     The value
  @param condition The predicate
  @param <T>       The type of values
  
  @return value
  
  @throws InvariantViolationException If the predicate is false