### Question:
Utilities { public static double sumDouble(Collection<? extends Number> collection) { double total = 0.; for (Number number : collection) { total += number.doubleValue(); } return total; } private  Utilities(); static boolean booleanValue(@Nullable Boolean value); static T checkNull(T parameter, String name); static boolean[] clone(boolean[] obj); static byte[] clone(byte[] obj); static char[] clone(char[] obj); static Date clone(Date date); static double[] clone(double[] obj); static float[] clone(float[] obj); static int[] clone(int[] obj); static long[] clone(long[] obj); static Object[] clone(Object[] obj); static void close(AutoCloseable... closeables); static void closeQuietly(AutoCloseable... closeables); static T getNonNull(T o1, T o2, BinaryOperator<T> resolver); static byte[] concatenate(byte[] arr1, byte[] arr2); static int[] concatenate(int[] arr1, int[] arr2); static long[] concatenate(long[] arr1, long[] arr2); static boolean equalsOrBothNaN(double val1, double val2); static ByteArrayOutputStream getByteArrayOutputStream(); static T getValue(T value, T defaultValue); static void ifNotNull(T obj, Consumer<? super T> consumer); static int indexOf(char[] arr, char element); static boolean isSequential(int[] ints); static boolean isSequential(long[] longs); @SuppressWarnings("PMD.CompareObjectsWithEquals") static boolean notSameInstance(Object obj1, Object obj2); static double parseDouble(String value, double defaultValue); static float parseFloat(String value, float defaultValue); static int parseInt(String value, int defaultValue); static long parseLong(String value, long defaultValue); static double parseSystemProperty(String propName, double defValue); static float parseSystemProperty(String propName, float defValue); static int parseSystemProperty(String propName, int defValue); static long parseSystemProperty(String propName, long defValue); static Class<?> primitiveTypeFor(Class<?> wrapper); static T[] removeFromArray(T[] arr, Object obj); @SuppressWarnings("PMD.CompareObjectsWithEquals") static boolean sameInstance(Object obj1, Object obj2); static int sizeOfArrayListBytes(int arrayLength); static int sizeOfEnumMapBytes(Class<K> type); static int sizeOfLinkedListBytes(int size); static double sumDouble(Collection<? extends Number> collection); static float sumFloat(Collection<? extends Number> collection); static int sumInt(Collection<? extends Number> collection); static long sumLong(Collection<? extends Number> collection); static boolean sumOverflow(long a, long b); static int sumRoundInt(Collection<? extends Number> collection); static long sumRoundLong(Collection<? extends Number> collection); static void times(int times, Runnable r); static int[] unique(int[] arr); static int[] uniqueUnsorted(int[] arr); @SuppressFBWarnings("WA_NOT_IN_LOOP") static boolean wait(Object obj);  }### Answer:
@Test public void testSumDouble() { Assert.assertEquals(1138. + Integer.MAX_VALUE, Utilities.sumDouble(Arrays.asList(Integer.valueOf(7), Integer.valueOf(-1), Integer.valueOf(1142), Integer.valueOf(-10), Integer.valueOf(Integer.MAX_VALUE))), 0.); Assert.assertEquals(1138. + Float.MAX_VALUE, Utilities.sumDouble(Arrays.asList(Float.valueOf(7.1f), Float.valueOf(-1.4f), Float.valueOf(1142.9f), Float.valueOf(-10.1f), Float.valueOf(Float.MAX_VALUE))), 0.); Assert.assertEquals(1138. + Float.MAX_VALUE, Utilities.sumDouble(Arrays.asList(Double.valueOf(7.1), Double.valueOf(-1.4), Double.valueOf(1142.9), Double.valueOf(-10.1), Double.valueOf(Float.MAX_VALUE))), 0.); Assert.assertEquals(1138. + Integer.MAX_VALUE, Utilities.sumDouble(Arrays.asList(Long.valueOf(7), Long.valueOf(-1), Long.valueOf(1142), Long.valueOf(-10), Long.valueOf(Integer.MAX_VALUE))), 0.); }