Github user britter commented on a diff in the pull request:

    https://github.com/apache/commons-lang/pull/87#discussion_r30062633
  
    --- Diff: src/main/java/org/apache/commons/lang3/Validate.java ---
    @@ -874,7 +888,752 @@ public static void matchesPattern(final CharSequence 
input, final String pattern
                 throw new IllegalArgumentException(String.format(message, 
values));
             }
         }
    -
    +    
    +    // notNaN
    +    
//---------------------------------------------------------------------------------
    +    
    +    /**
    +     * <p>Validates that the specified argument is not {@code NaN}; 
otherwise
    +     * throwing an exception.</p>
    +     * 
    +     * <pre>Validate.notNaN(myDouble);</pre>
    +     * 
    +     * <p>The message of the exception is &quot;The validated value is not 
a 
    +     * number&quot;.</p>
    +     * 
    +     * @param value  the value to validate
    +     * @throws IllegalArgumentException if the value is not a number
    +     * @see #notNaN(double, java.lang.String, java.lang.Object...) 
    +     * 
    +     * @since 3.4
    +     */
    +    public static void notNaN(final double value) {
    +        notNaN(value, DEFAULT_NOT_NAN_EX_MESSAGE);
    +    }
    +    
    +    /**
    +     * <p>Validates that the specified argument is not {@code NaN}; 
otherwise
    +     * throwing an exception with the specified message.</p>
    +     * 
    +     * <pre>Validate.notNaN(myDouble, "The value must be a number");</pre>
    +     *
    +     * @param value  the value to validate
    +     * @param message  the {@link String#format(String, Object...)} 
exception message if invalid, not null
    +     * @param values  the optional values for the formatted exception 
message
    +     * @throws IllegalArgumentException if the value is not a number
    +     * @see #notNaN(double) 
    +     * 
    +     * @since 3.4
    +     */
    +    public static void notNaN(final double value, final String message, 
final Object... values) {
    +        if (value != value) {
    +            throw new IllegalArgumentException(String.format(message, 
values));
    +        }
    +    }
    +    
    +    // finite
    +    
//---------------------------------------------------------------------------------
    +    
    +    /**
    +     * <p>Validates that the specified argument is not infinite or {@code 
NaN};
    +     * otherwise throwing an exception.</p>
    +     * 
    +     * <pre>Validate.finite(myDouble);</pre>
    +     * 
    +     * <p>The message of the exception is &quot;The value is invalid: 
%f&quot;.</p>
    +     * 
    +     * @param value  the value to validate
    +     * @throws IllegalArgumentException if the value is infinite or {@code 
NaN}
    +     * @see #finite(double, java.lang.String, java.lang.Object...) 
    +     * 
    +     * @since 3.4
    +     */
    +    public static void finite(final double value) {
    +        finite(value, DEFAULT_FINITE_EX_MESSAGE, value);
    +    }
    +    
    +    /**
    +     * <p>Validates that the specified argument is not infinite or {@code 
NaN};
    +     * otherwise throwing an exception with the specified message.</p>
    +     * 
    +     * <pre>Validate.finite(myDouble, "The argument must contain a numeric 
value");</pre>
    +     *
    +     * @param value the value to validate
    +     * @param message  the {@link String#format(String, Object...)} 
exception message if invalid, not null
    +     * @param values  the optional values for the formatted exception 
message
    +     * @throws IllegalArgumentException if the value is infinite or {@code 
NaN}
    +     * @see #finite(double) 
    +     * 
    +     * @since 3.4
    +     */
    +    public static void finite(final double value, final String message, 
final Object... values) {
    +        if (value != value || Double.isInfinite(value)) {
    +            throw new IllegalArgumentException(String.format(message, 
values));
    +        }
    +    }
    +    
    +    // greater
    +    
//---------------------------------------------------------------------------------
    +    
    +    /**
    +     * <p>Validates that the specified argument is strictly greater than a 
given
    +     * reference; otherwise throwing an exception.</p>
    +     * 
    +     * <pre>Validate.greaterObj(myObject, refObject);</pre>
    +     * 
    +     * <p>The message of the exception is &quot;The value {@code value} is 
not 
    +     * greater than {@code min}&quot;.</p>
    +     * 
    +     * @param <T>  the type of the argument object
    +     * @param min  the reference value
    +     * @param value  the object to validate
    +     * @throws IllegalArgumentException if {@code value} is smaller than 
or equal to {@code min}
    +     * @see #greaterObj(java.lang.Object, java.lang.Comparable, 
java.lang.String, java.lang.Object...) 
    +     * 
    +     * @since 3.4
    +     */
    +    public static <T> void greaterObj(final T min, final Comparable<T> 
value) {
    +        greaterObj(min, value, DEFAULT_GREATER_EX_MESSAGE, value, min);
    +    }
    +    
    +    /**
    +     * <p>Validates that the specified argument is strictly greater than a 
given
    +     * reference; otherwise throwing an exception with the specified 
message.</p>
    +     * 
    +     * <pre>Validate.greaterObj(myObject, refObject, "The value must be 
greater than the reference");</pre>
    +     * 
    +     * @param <T>  the type of the argument object
    +     * @param min  the reference value
    +     * @param value  the object to validate
    +     * @param message  the {@link String#format(String, Object...)} 
exception message if invalid, not null
    +     * @param values  the optional values for the formatted exception 
message
    +     * @throws IllegalArgumentException if {@code value} is smaller than 
or equal to {@code min}
    +     * @see #greaterObj(java.lang.Object, java.lang.Comparable) 
    +     * 
    +     * @since 3.4
    +     */
    +    public static <T> void greaterObj(final T min, final Comparable<T> 
value, final String message, final Object... values) {
    +        if (value.compareTo(min) <= 0) {
    +            throw new IllegalArgumentException(String.format(message, 
values));
    +        }
    +    }
    +    
    +    /**
    +     * <p>Validates that the specified argument is strictly greater than a 
given
    +     * reference; otherwise throwing an exception.</p>
    +     * 
    +     * <pre>Validate.greater(myLong, 0);</pre>
    +     * 
    +     * <p>The message of the exception is &quot;The value {@code value} is 
not 
    +     * greater than {@code min}&quot;.</p>
    +     * 
    +     * @param min  the reference value
    +     * @param value  the value to validate
    +     * @throws IllegalArgumentException if {@code value} is smaller than 
or equal to {@code min}
    +     * @see #greater(long, long, java.lang.String, java.lang.Object...) 
    +     * 
    +     * @since 3.4
    +     */
    +    public static void greater(final long min, final long value) {
    +        greater(min, value, DEFAULT_GREATER_EX_MESSAGE, value, min);
    +    }
    +    
    +    /**
    +     * <p>Validates that the specified argument is strictly greater than a 
given
    +     * reference; otherwise throwing an exception with the specified 
message.</p>
    +     * 
    +     * <pre>Validate.greater(myLong, 0);</pre>
    +     * 
    +     * @param min  the reference value
    +     * @param value  the value to validate
    +     * @param message  the {@link String#format(String, Object...)} 
exception message if invalid, not null
    +     * @param values  the optional values for the formatted exception 
message
    +     * @throws IllegalArgumentException if {@code value} is smaller than 
or equal to {@code min}
    +     * @see #greater(long, long) 
    +     * 
    +     * @since 3.4
    +     */
    +    public static void greater(final long min, final long value, final 
String message, final Object... values) {
    +        if (value <= min) {
    +            throw new IllegalArgumentException(String.format(message, 
values));
    +        }
    +    }
    +    
    +    /**
    +     * <p>Validates that the specified argument is strictly greater than a 
given
    +     * reference; otherwise throwing an exception.</p>
    +     * 
    +     * <p>If {@code min} or {@code value} is {@code NaN}, the test will 
fail and
    +     * the exception will be thrown.</p>
    +     * 
    +     * <pre>Validate.greater(myDouble, 0.0);</pre>
    +     * 
    +     * <p>The message of the exception is &quot;The value {@code value} is 
not 
    +     * greater than {@code min}&quot;.</p>
    +     * 
    +     * @param min  the reference value
    +     * @param value  the value to validate
    +     * @throws IllegalArgumentException if {@code value} is smaller than 
or equal to {@code min}
    +     * @see #greater(double, double, java.lang.String, 
java.lang.Object...) 
    +     * 
    +     * @since 3.4
    +     */
    +    public static void greater(final double min, final double value) {
    +        greater(min, value, DEFAULT_GREATER_EX_MESSAGE, value, min);
    +    }
    +    
    +    /**
    +     * <p>Validates that the specified argument is strictly greater than a 
given
    +     * reference; otherwise throwing an exception with the specified 
message.</p>
    +     * 
    +     * <p>If {@code min} or {@code value} is {@code NaN}, the test will 
fail and
    +     * the exception will be thrown.</p>
    +     * 
    +     * <pre>Validate.greater(myDouble, 0.0);</pre>
    +     * 
    +     * @param min  the reference value
    +     * @param value  the value to validate
    +     * @param message  the {@link String#format(String, Object...)} 
exception message if invalid, not null
    +     * @param values  the optional values for the formatted exception 
message
    +     * @throws IllegalArgumentException if {@code value} is smaller than 
or equal to {@code min}
    +     * @see #greater(double, double) 
    +     * 
    +     * @since 3.4
    +     */
    +    public static void greater(final double min, final double value, final 
String message, final Object... values) {
    +        if (!(value > min)) {
    +            throw new IllegalArgumentException(String.format(message, 
values));
    +        }
    +    }
    +    
    +    // greaterOrEqual
    +    
//---------------------------------------------------------------------------------
    +    
    +    /**
    +     * <p>Validates that the specified argument is greater than, or equal 
to, a 
    +     * given reference; otherwise throwing an exception.</p>
    +     * 
    +     * <pre>Validate.greaterOrEqualObj(myObject, refObject);</pre>
    +     * 
    +     * <p>The message of the exception is &quot;The value {@code value} is 
not 
    +     * greater than or equal to {@code min}&quot;.</p>
    +     * 
    +     * @param <T>  the type of the argument object
    +     * @param min  the reference value
    +     * @param value  the object to validate
    +     * @throws IllegalArgumentException if {@code value} is smaller than 
{@code min}
    +     * @see #greaterOrEqualObj(java.lang.Object, java.lang.Comparable, 
java.lang.String, java.lang.Object...) 
    +     * 
    +     * @since 3.4
    +     */
    +    public static <T> void greaterOrEqualObj(final T min, final 
Comparable<T> value) {
    +        greaterOrEqualObj(min, value, DEFAULT_GREATER_OR_EQUAL_EX_MESSAGE, 
value, min);
    +    }
    +    
    +    /**
    +     * <p>Validates that the specified argument is greater than, or equal 
to, a 
    +     * given reference; otherwise throwing an exception.</p>
    +     * 
    +     * <pre>Validate.greaterOrEqualObj(myObject, refObject, "The value 
must be greater than the reference");</pre>
    +     * 
    +     * @param <T>  the type of the argument object
    +     * @param min  the reference value
    +     * @param value  the object to validate
    +     * @param message  the {@link String#format(String, Object...)} 
exception message if invalid, not null
    +     * @param values  the optional values for the formatted exception 
message
    +     * @throws IllegalArgumentException if {@code value} is smaller than 
{@code min}
    +     * @see #greaterOrEqualObj(java.lang.Object, java.lang.Comparable) 
    +     * 
    +     * @since 3.4
    +     */
    +    public static <T> void greaterOrEqualObj(final T min, final 
Comparable<T> value, final String message, final Object... values) {
    +        if (value.compareTo(min) < 0) {
    +            throw new IllegalArgumentException(String.format(message, 
values));
    +        }
    +    }
    +    
    +    /**
    +     * <p>Validates that the specified argument is greater than, or equal 
to, a 
    +     * given reference; otherwise throwing an exception.</p>
    +     * 
    +     * <pre>Validate.greaterOrEqual(myLong, 0);</pre>
    +     * 
    +     * <p>The message of the exception is &quot;The value {@code value} is 
not 
    +     * greater than or equal to {@code min}&quot;.</p>
    +     * 
    +     * @param min  the reference value
    +     * @param value  the value to validate
    +     * @throws IllegalArgumentException if {@code value} is smaller than 
{@code min}
    +     * @see #greaterOrEqual(long, long, java.lang.String, 
java.lang.Object...) 
    +     * 
    +     * @since 3.4
    +     */
    +    public static void greaterOrEqual(final long min, final long value) {
    +        greaterOrEqual(min, value, DEFAULT_GREATER_OR_EQUAL_EX_MESSAGE, 
value, min);
    +    }
    +    
    +    /**
    +     * <p>Validates that the specified argument is greater than, or equal 
to, a 
    +     * given reference; otherwise throwing an exception with the specified 
message.</p>
    +     * 
    +     * <pre>Validate.greaterOrEqual(myLong, 0);</pre>
    +     * 
    +     * @param min  the reference value
    +     * @param value  the value to validate
    +     * @param message  the {@link String#format(String, Object...)} 
exception message if invalid, not null
    +     * @param values  the optional values for the formatted exception 
message
    +     * @throws IllegalArgumentException if {@code value} is smaller than 
{@code min}
    +     * @see #greaterOrEqual(long, long) 
    +     * 
    +     * @since 3.4
    +     */
    +    public static void greaterOrEqual(final long min, final long value, 
final String message, final Object... values) {
    +        if (value < min) {
    +            throw new IllegalArgumentException(String.format(message, 
values));
    +        }
    +    }
    +    
    +    /**
    +     * <p>Validates that the specified argument is greater than, or equal 
to, a 
    +     * given reference; otherwise throwing an exception.</p>
    +     * 
    +     * <p>If {@code min} or {@code value} is {@code NaN}, the test will 
fail and
    +     * the exception will be thrown.</p>
    +     * 
    +     * <pre>Validate.greaterOrEqual(myDouble, 0.0);</pre>
    +     * 
    +     * <p>The message of the exception is &quot;The value {@code value} is 
not 
    +     * greater than or equal to {@code min}&quot;.</p>
    +     * 
    +     * @param min  the reference value
    +     * @param value  the value to validate
    +     * @throws IllegalArgumentException if {@code value} is smaller than 
{@code min}
    +     * @see #greaterOrEqual(double, double, java.lang.String, 
java.lang.Object...) 
    +     * 
    +     * @since 3.4
    +     */
    +    public static void greaterOrEqual(final double min, final double 
value) {
    +        greaterOrEqual(min, value, DEFAULT_GREATER_OR_EQUAL_EX_MESSAGE, 
value, min);
    +    }
    +    
    +    /**
    +     * <p>Validates that the specified argument is greater than, or equal 
to, a 
    +     * given reference; otherwise throwing an exception with the specified 
message.</p>
    +     * 
    +     * <p>If {@code min} or {@code value} is {@code NaN}, the test will 
fail and
    +     * the exception will be thrown.</p>
    +     * 
    +     * <pre>Validate.greaterOrEqual(myDouble, 0.0);</pre>
    +     * 
    +     * @param min  the reference value
    +     * @param value  the value to validate
    +     * @param message  the {@link String#format(String, Object...)} 
exception message if invalid, not null
    +     * @param values  the optional values for the formatted exception 
message
    +     * @throws IllegalArgumentException if {@code value} is smaller than 
{@code min}
    +     * @see #greaterOrEqual(double, double) 
    +     * 
    +     * @since 3.4
    +     */
    +    public static void greaterOrEqual(final double min, final double 
value, final String message, final Object... values) {
    +        if (!(value >= min)) {
    +            throw new IllegalArgumentException(String.format(message, 
values));
    +        }
    +    }
    +    
    +    // smaller
    +    
//---------------------------------------------------------------------------------
    +    
    +    /**
    +     * <p>Validates that the specified argument is strictly smaller than a 
given
    +     * reference; otherwise throwing an exception.</p>
    +     * 
    +     * <pre>Validate.smallerObj(myObject, refObject);</pre>
    +     * 
    +     * <p>The message of the exception is &quot;The value {@code value} is 
not 
    +     * smaller than {@code max}&quot;.</p>
    +     * 
    +     * @param <T>  the type of the argument object
    +     * @param max  the reference value
    +     * @param value  the object to validate
    +     * @throws IllegalArgumentException if {@code value} is greater than 
or equal to {@code max}
    +     * @see #smallerObj(java.lang.Object, java.lang.Comparable, 
java.lang.String, java.lang.Object...) 
    +     * 
    +     * @since 3.4
    +     */
    +    public static <T> void smallerObj(final T max, final Comparable<T> 
value) {
    +        smallerObj(max, value, DEFAULT_SMALLER_EX_MESSAGE, value, max);
    +    }
    +    
    +    /**
    +     * <p>Validates that the specified argument is strictly smaller than a 
given
    +     * reference; otherwise throwing an exception with the specified 
message.</p>
    +     * 
    +     * <pre>Validate.smallerObj(myObject, refObject, "The value must be 
greater than the reference");</pre>
    +     * 
    +     * @param <T>  the type of the argument object
    +     * @param max  the reference value
    +     * @param value  the object to validate
    +     * @param message  the {@link String#format(String, Object...)} 
exception message if invalid, not null
    +     * @param values  the optional values for the formatted exception 
message
    +     * @throws IllegalArgumentException if {@code value} is greater than 
or equal to {@code max}
    +     * @see #smallerObj(java.lang.Object, java.lang.Comparable) 
    +     * 
    +     * @since 3.4
    +     */
    +    public static <T> void smallerObj(final T max, final Comparable<T> 
value, final String message, final Object... values) {
    +        if (value.compareTo(max) >= 0) {
    +            throw new IllegalArgumentException(String.format(message, 
values));
    +        }
    +    }
    +    
    +    /**
    +     * <p>Validates that the specified argument is strictly smaller than a 
given
    +     * reference; otherwise throwing an exception.</p>
    +     * 
    +     * <pre>Validate.smaller(myLong, 0);</pre>
    +     * 
    +     * <p>The message of the exception is &quot;The value {@code value} is 
not 
    +     * smaller than {@code max}&quot;.</p>
    +     * 
    +     * @param max  the reference value
    +     * @param value  the value to validate
    +     * @throws IllegalArgumentException if {@code value} is greater than 
or equal to {@code max}
    +     * @see #smaller(long, long, java.lang.String, java.lang.Object...) 
    +     * 
    +     * @since 3.4
    +     */
    +    public static void smaller(final long max, final long value) {
    +        smaller(max, value, DEFAULT_SMALLER_EX_MESSAGE, value, max);
    +    }
    +    
    +    /**
    +     * <p>Validates that the specified argument is strictly smaller than a 
given
    +     * reference; otherwise throwing an exception with the specified 
message.</p>
    +     * 
    +     * <pre>Validate.smaller(myLong, 0);</pre>
    +     * 
    +     * @param max  the reference value
    +     * @param value  the value to validate
    +     * @param message  the {@link String#format(String, Object...)} 
exception message if invalid, not null
    +     * @param values  the optional values for the formatted exception 
message
    +     * @throws IllegalArgumentException if {@code value} is greater than 
or equal to {@code max}
    +     * @see #smaller(long, long) 
    +     * 
    +     * @since 3.4
    +     */
    +    public static void smaller(final long max, final long value, final 
String message, final Object... values) {
    +        if (value >= max) {
    +            throw new IllegalArgumentException(String.format(message, 
values));
    +        }
    +    }
    +    
    +    /**
    +     * <p>Validates that the specified argument is strictly smaller than a 
given
    +     * reference; otherwise throwing an exception.</p>
    +     * 
    +     * <p>If {@code min} or {@code value} is {@code NaN}, the test will 
fail and
    +     * the exception will be thrown.</p>
    +     * 
    +     * <pre>Validate.smaller(myDouble, 0.0);</pre>
    +     * 
    +     * <p>The message of the exception is &quot;The value {@code value} is 
not 
    +     * smaller than {@code max}&quot;.</p>
    +     * 
    +     * @param max  the reference value
    +     * @param value  the value to validate
    +     * @throws IllegalArgumentException if {@code value} is greater than 
or equal to {@code max}
    +     * @see #smaller(double, double, java.lang.String, 
java.lang.Object...) 
    +     * 
    +     * @since 3.4
    +     */
    +    public static void smaller(final double max, final double value) {
    +        smaller(max, value, DEFAULT_SMALLER_EX_MESSAGE, value, max);
    +    }
    +    
    +    /**
    +     * <p>Validates that the specified argument is strictly smaller than a 
given
    +     * reference; otherwise throwing an exception with the specified 
message.</p>
    +     * 
    +     * <p>If {@code min} or {@code value} is {@code NaN}, the test will 
fail and
    +     * the exception will be thrown.</p>
    +     * 
    +     * <pre>Validate.smaller(myDouble, 0.0);</pre>
    +     * 
    +     * @param max  the reference value
    +     * @param value  the value to validate
    +     * @param message  the {@link String#format(String, Object...)} 
exception message if invalid, not null
    +     * @param values  the optional values for the formatted exception 
message
    +     * @throws IllegalArgumentException if {@code value} is greater than 
or equal to {@code max}
    +     * @see #smaller(double, double) 
    +     * 
    +     * @since 3.4
    +     */
    +    public static void smaller(final double max, final double value, final 
String message, final Object... values) {
    +        if (!(value < max)) {
    +            throw new IllegalArgumentException(String.format(message, 
values));
    +        }
    +    }
    +    
    +    // smallerOrEqual
    +    
//---------------------------------------------------------------------------------
    +    
    +    /**
    +     * <p>Validates that the specified argument is smaller than, or equal 
to, a 
    +     * given reference; otherwise throwing an exception.</p>
    +     * 
    +     * <pre>Validate.smallerOrEqualObj(myObject, refObject);</pre>
    +     * 
    +     * <p>The message of the exception is &quot;The value {@code value} is 
not 
    +     * smaller than or equal to {@code max}&quot;.</p>
    +     * 
    +     * @param <T>  the type of the argument object
    +     * @param max  the reference value
    +     * @param value  the object to validate
    +     * @throws IllegalArgumentException if {@code value} is greater than 
{@code max}
    +     * @see #smallerOrEqualObj(java.lang.Object, java.lang.Comparable, 
java.lang.String, java.lang.Object...) 
    +     * 
    +     * @since 3.4
    +     */
    +    public static <T> void smallerOrEqualObj(final T max, final 
Comparable<T> value) {
    +        smallerOrEqualObj(max, value, DEFAULT_SMALLER_OR_EQUAL_EX_MESSAGE, 
value, max);
    +    }
    +    
    +    /**
    +     * <p>Validates that the specified argument is smaller than, or equal 
to, a 
    +     * given reference; otherwise throwing an exception with the specified 
message.</p>
    +     * 
    +     * <pre>Validate.smallerOrEqualObj(myObject, refObject, "The value 
must be greater than the reference");</pre>
    +     * 
    +     * @param <T>  the type of the argument object
    +     * @param max  the reference value
    +     * @param value  the object to validate
    +     * @param message  the {@link String#format(String, Object...)} 
exception message if invalid, not null
    +     * @param values  the optional values for the formatted exception 
message
    +     * @throws IllegalArgumentException if {@code value} is greater than 
{@code max}
    +     * @see #smallerOrEqualObj(java.lang.Object, java.lang.Comparable) 
    +     * 
    +     * @since 3.4
    +     */
    +    public static <T> void smallerOrEqualObj(final T max, final 
Comparable<T> value, final String message, final Object... values) {
    +        if (value.compareTo(max) > 0) {
    +            throw new IllegalArgumentException(String.format(message, 
values));
    +        }
    +    }
    +    
    +    /**
    +     * <p>Validates that the specified argument is smaller than, or equal 
to, a 
    +     * given reference; otherwise throwing an exception.</p>
    +     * 
    +     * <pre>Validate.smallerOrEqual(myLong, 0);</pre>
    +     * 
    +     * <p>The message of the exception is &quot;The value {@code value} is 
not 
    +     * smaller than or equal to {@code max}&quot;.</p>
    +     * 
    +     * @param max  the reference value
    +     * @param value  the value to validate
    +     * @throws IllegalArgumentException if {@code value} is greater than 
{@code max}
    +     * @see #smallerOrEqual(long, long, java.lang.String, 
java.lang.Object...) 
    +     * 
    +     * @since 3.4
    +     */
    +    public static void smallerOrEqual(final long max, final long value) {
    +        smallerOrEqual(max, value, DEFAULT_SMALLER_OR_EQUAL_EX_MESSAGE, 
value, max);
    +    }
    +    
    +    /**
    +     * <p>Validates that the specified argument is smaller than, or equal 
to, a 
    +     * given reference; otherwise throwing an exception with the specified 
message.</p>
    +     * 
    +     * <pre>Validate.smallerOrEqual(myLong, 0);</pre>
    +     * 
    +     * @param max  the reference value
    +     * @param value  the value to validate
    +     * @param message  the {@link String#format(String, Object...)} 
exception message if invalid, not null
    +     * @param values  the optional values for the formatted exception 
message
    +     * @throws IllegalArgumentException if {@code value} is greater than 
{@code max}
    +     * @see #smallerOrEqual(long, long) 
    +     * 
    +     * @since 3.4
    +     */
    +    public static void smallerOrEqual(final long max, final long value, 
final String message, final Object... values) {
    +        if (value > max) {
    +            throw new IllegalArgumentException(String.format(message, 
values));
    +        }
    +    }
    +    
    +    /**
    +     * <p>Validates that the specified argument is smaller than, or equal 
to, a 
    +     * given reference; otherwise throwing an exception.</p>
    +     * 
    +     * <p>If {@code min} or {@code value} is {@code NaN}, the test will 
fail and
    +     * the exception will be thrown.</p>
    +     * 
    +     * <pre>Validate.smallerOrEqual(myDouble, 0.0);</pre>
    +     * 
    +     * <p>The message of the exception is &quot;The value {@code value} is 
not 
    +     * smaller than or equal to {@code max}&quot;.</p>
    +     * 
    +     * @param max  the reference value
    +     * @param value  the value to validate
    +     * @throws IllegalArgumentException if {@code value} is greater than 
{@code max}
    +     * @see #smallerOrEqual(double, double, java.lang.String, 
java.lang.Object...) 
    +     * 
    +     * @since 3.4
    +     */
    +    public static void smallerOrEqual(final double max, final double 
value) {
    +        smallerOrEqual(max, value, DEFAULT_SMALLER_OR_EQUAL_EX_MESSAGE, 
value, max);
    +    }
    +    
    +    /**
    +     * <p>Validates that the specified argument is smaller than, or equal 
to, a 
    +     * given reference; otherwise throwing an exception with the specified 
message.</p>
    +     * 
    +     * <p>If {@code min} or {@code value} is {@code NaN}, the test will 
fail and
    +     * the exception will be thrown.</p>
    +     * 
    +     * <pre>Validate.smallerOrEqual(myDouble, 0.0);</pre>
    +     * 
    +     * @param max  the reference value
    +     * @param value  the value to validate
    +     * @param message  the {@link String#format(String, Object...)} 
exception message if invalid, not null
    +     * @param values  the optional values for the formatted exception 
message
    +     * @throws IllegalArgumentException if {@code value} is greater than 
{@code max}
    +     * @see #smallerOrEqual(double, double) 
    +     * 
    +     * @since 3.4
    +     */
    +    public static void smallerOrEqual(final double max, final double 
value, final String message, final Object... values) {
    +        if (!(value <= max)) {
    +            throw new IllegalArgumentException(String.format(message, 
values));
    +        }
    +    }
    +    
    +    // different
    +    
//---------------------------------------------------------------------------------
    +    
    +    /**
    +     * <p>Validates that the specified argument is not equal to a given 
value
    --- End diff --
    
    The wording here is a bit confusing since "not equal" usually means 
```value.equals(reference) == false```. Maybe ```smallerOrGreater``` would be a 
better method name?


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

Reply via email to