### Question:
Utilities { public static int[] uniqueUnsorted(int[] arr) { int[] sorted = arr.clone(); Arrays.sort(sorted); return unique(sorted); } 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 testUniqueUnsorted() { int[] arr; int[] expected; int[] result; String msg = "Arrays are not equal."; arr = new int[0]; expected = new int[0]; result = Utilities.uniqueUnsorted(arr); Assert.assertTrue(msg, Arrays.equals(result, expected)); arr = new int[] { 0 }; expected = new int[] { 0 }; result = Utilities.uniqueUnsorted(arr); Assert.assertTrue(msg, Arrays.equals(result, expected)); arr = new int[] { 1, 1, 1 }; expected = new int[] { 1 }; result = Utilities.uniqueUnsorted(arr); Assert.assertTrue(msg, Arrays.equals(result, expected)); arr = new int[] { -5, -3, -5, 2, 2, 1, 1, 0, -2 }; expected = new int[] { -5, -3, -2, 0, 1, 2 }; result = Utilities.uniqueUnsorted(arr); Assert.assertTrue(msg, Arrays.equals(result, expected)); }