### Question:
ArgChecker { public static double notNaN(double argument, String name) { if (Double.isNaN(argument)) { throw new IllegalArgumentException(notNaNMsg(name)); } return argument; } private  ArgChecker(); static void isTrue(boolean validIfTrue); static void isTrue(boolean validIfTrue, String message); static void isTrue(boolean validIfTrue, String message, Object... arg); static void isTrue(boolean validIfTrue, String message, long arg); static void isTrue(boolean validIfTrue, String message, double arg); static void isFalse(boolean validIfFalse, String message); static void isFalse(boolean validIfFalse, String message, Object... arg); static T notNull(T argument, String name); static T notNullItem(T argument); static String matches(Pattern pattern, String argument, String name); static String matches(
      CharMatcher matcher,
      int minLength,
      int maxLength,
      String argument,
      String name,
      String equivalentRegex); static String notBlank(String argument, String name); static String notEmpty(String argument, String name); static T[] notEmpty(T[] argument, String name); static int[] notEmpty(int[] argument, String name); static long[] notEmpty(long[] argument, String name); static double[] notEmpty(double[] argument, String name); static I notEmpty(I argument, String name); static C notEmpty(C argument, String name); static M notEmpty(M argument, String name); static T[] noNulls(T[] argument, String name); static I noNulls(I argument, String name); static M noNulls(M argument, String name); static double[] noDuplicates(double[] argument, String name); static double[] noDuplicatesSorted(double[] argument, String name); static int notNegative(int argument, String name); static long notNegative(long argument, String name); static double notNegative(double argument, String name); static double notNaN(double argument, String name); static int notNegativeOrZero(int argument, String name); static long notNegativeOrZero(long argument, String name); static double notNegativeOrZero(double argument, String name); static double notNegativeOrZero(double argument, double tolerance, String name); static double notZero(double argument, String name); static double notZero(double argument, double tolerance, String name); static double inRange(double argument, double lowInclusive, double highExclusive, String name); static double inRangeInclusive(double argument, double lowInclusive, double highInclusive, String name); static double inRangeExclusive(double argument, double lowExclusive, double highExclusive, String name); static int inRange(int argument, int lowInclusive, int highExclusive, String name); static int inRangeInclusive(int argument, int lowInclusive, int highInclusive, String name); static int inRangeExclusive(int argument, int lowExclusive, int highExclusive, String name); static void inOrderNotEqual(Comparable<? super T> obj1, T obj2, String name1, String name2); static void inOrderOrEqual(Comparable<? super T> obj1, T obj2, String name1, String name2);  }### Answer:
@Test public void test_notNaN_double_ok() { assertThat(ArgChecker.notNaN(0d, "name")).isEqualTo(0d); assertThat(ArgChecker.notNaN(1d, "name")).isEqualTo(1d); }
@Test public void test_notNaN_double_NaN() { assertThatIllegalArgumentException() .isThrownBy(() -> ArgChecker.notNaN(Double.NaN, "name")) .withMessageMatching(".*'name'.*NaN.*"); }