This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-lang.git


The following commit(s) were added to refs/heads/master by this push:
     new 53647a31a Add missing test coverage for 
org.apache.commons.lang3.ArrayUtils.shuffle(*)
53647a31a is described below

commit 53647a31a57a917a3c1fcd19dbd822fb707e0ecf
Author: Gary D. Gregory <garydgreg...@gmail.com>
AuthorDate: Mon Jun 16 11:46:30 2025 -0400

    Add missing test coverage for
    org.apache.commons.lang3.ArrayUtils.shuffle(*)
---
 .../org/apache/commons/lang3/ArrayUtilsTest.java   | 148 +++++++++++++++++----
 1 file changed, 120 insertions(+), 28 deletions(-)

diff --git a/src/test/java/org/apache/commons/lang3/ArrayUtilsTest.java 
b/src/test/java/org/apache/commons/lang3/ArrayUtilsTest.java
index 1675b56e9..0633f959d 100644
--- a/src/test/java/org/apache/commons/lang3/ArrayUtilsTest.java
+++ b/src/test/java/org/apache/commons/lang3/ArrayUtilsTest.java
@@ -59,6 +59,10 @@ private static final class TestClass {
     /** A predefined seed used to initialize {@link Random} in order to get 
predictable results */
     private static final long SEED = 16111981L;
 
+    private static Random seededRandom() {
+        return new Random(SEED);
+    }
+
     @SafeVarargs
     private static <T> T[] toArrayPropagatingType(final T... items) {
         return ArrayUtils.toArray(items);
@@ -91,7 +95,6 @@ void testArraycopySupplier() {
         assertThrows(NullPointerException.class, () -> 
ArrayUtils.arraycopy(arr, 0, 0, 1, Suppliers.nul()));
         assertThrows(NullPointerException.class, () -> 
ArrayUtils.arraycopy(arr, 0, 0, 1, (Supplier<String[]>) null));
     }
-
     /**
      * Tests generic array creation with parameters of same type.
      */
@@ -102,6 +105,7 @@ void testArrayCreation() {
         assertEquals("foo", array[0]);
         assertEquals("bar", array[1]);
     }
+
     /**
      * Tests generic array creation with parameters of common base type.
      */
@@ -5091,107 +5095,195 @@ void testShiftShort() {
 
     @Test
     void testShuffle() {
-        final String[] array1 = {"1", "2", "3", "4", "5", "6", "7", "8", "9", 
"10"};
+        final String[] array1 = { "1", "2", "3", "4", "5", "6", "7", "8", "9", 
"10" };
         final String[] array2 = ArrayUtils.clone(array1);
-
-        ArrayUtils.shuffle(array1, new Random(SEED));
+        ArrayUtils.shuffle(array1);
         assertFalse(Arrays.equals(array1, array2));
         for (final String element : array2) {
-            assertTrue(ArrayUtils.contains(array1, element), "Element " + 
element + " not found");
+            assertTrue(ArrayUtils.contains(array1, element), () -> "Element " 
+ element + " not found");
         }
     }
 
     @Test
     void testShuffleBoolean() {
-        final boolean[] array1 = {true, false, true, true, false, false, true, 
false, false, true};
+        final boolean[] array1 = { true, false, true, true, false, false, 
true, false, false, true };
         final boolean[] array2 = ArrayUtils.clone(array1);
+        ArrayUtils.shuffle(array1);
+        assertFalse(Arrays.equals(array1, array2));
+        assertEquals(5, ArrayUtils.removeAllOccurrences(array1, true).length);
+    }
 
-        ArrayUtils.shuffle(array1, new Random(SEED));
+    @Test
+    void testShuffleBooleanRandom() {
+        final boolean[] array1 = { true, false, true, true, false, false, 
true, false, false, true };
+        final boolean[] array2 = ArrayUtils.clone(array1);
+        ArrayUtils.shuffle(array1, seededRandom());
         assertFalse(Arrays.equals(array1, array2));
         assertEquals(5, ArrayUtils.removeAllOccurrences(array1, true).length);
     }
 
     @Test
     void testShuffleByte() {
-        final byte[] array1 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
+        final byte[] array1 = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
         final byte[] array2 = ArrayUtils.clone(array1);
+        ArrayUtils.shuffle(array1);
+        assertFalse(Arrays.equals(array1, array2));
+        for (final byte element : array2) {
+            assertTrue(ArrayUtils.contains(array1, element), () -> "Element " 
+ element + " not found");
+        }
+    }
 
-        ArrayUtils.shuffle(array1, new Random(SEED));
+    @Test
+    void testShuffleByteRandom() {
+        final byte[] array1 = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
+        final byte[] array2 = ArrayUtils.clone(array1);
+        ArrayUtils.shuffle(array1, seededRandom());
         assertFalse(Arrays.equals(array1, array2));
         for (final byte element : array2) {
-            assertTrue(ArrayUtils.contains(array1, element), "Element " + 
element + " not found");
+            assertTrue(ArrayUtils.contains(array1, element), () -> "Element " 
+ element + " not found");
         }
     }
 
     @Test
     void testShuffleChar() {
-        final char[] array1 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
+        final char[] array1 = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
         final char[] array2 = ArrayUtils.clone(array1);
+        ArrayUtils.shuffle(array1);
+        assertFalse(Arrays.equals(array1, array2));
+        for (final char element : array2) {
+            assertTrue(ArrayUtils.contains(array1, element), () -> "Element " 
+ element + " not found");
+        }
+    }
 
-        ArrayUtils.shuffle(array1, new Random(SEED));
+    @Test
+    void testShuffleCharRandom() {
+        final char[] array1 = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
+        final char[] array2 = ArrayUtils.clone(array1);
+        ArrayUtils.shuffle(array1, seededRandom());
         assertFalse(Arrays.equals(array1, array2));
         for (final char element : array2) {
-            assertTrue(ArrayUtils.contains(array1, element), "Element " + 
element + " not found");
+            assertTrue(ArrayUtils.contains(array1, element), () -> "Element " 
+ element + " not found");
         }
     }
 
     @Test
     void testShuffleDouble() {
-        final double[] array1 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
+        final double[] array1 = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
         final double[] array2 = ArrayUtils.clone(array1);
+        ArrayUtils.shuffle(array1);
+        assertFalse(Arrays.equals(array1, array2));
+        for (final double element : array2) {
+            assertTrue(ArrayUtils.contains(array1, element), () -> "Element " 
+ element + " not found");
+        }
+    }
 
-        ArrayUtils.shuffle(array1, new Random(SEED));
+    @Test
+    void testShuffleDoubleRandom() {
+        final double[] array1 = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
+        final double[] array2 = ArrayUtils.clone(array1);
+        ArrayUtils.shuffle(array1, seededRandom());
         assertFalse(Arrays.equals(array1, array2));
         for (final double element : array2) {
-            assertTrue(ArrayUtils.contains(array1, element), "Element " + 
element + " not found");
+            assertTrue(ArrayUtils.contains(array1, element), () -> "Element " 
+ element + " not found");
         }
     }
 
     @Test
     void testShuffleFloat() {
-        final float[] array1 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
+        final float[] array1 = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
         final float[] array2 = ArrayUtils.clone(array1);
+        ArrayUtils.shuffle(array1);
+        assertFalse(Arrays.equals(array1, array2));
+        for (final float element : array2) {
+            assertTrue(ArrayUtils.contains(array1, element), () -> "Element " 
+ element + " not found");
+        }
+    }
 
-        ArrayUtils.shuffle(array1, new Random(SEED));
+    @Test
+    void testShuffleFloatRandom() {
+        final float[] array1 = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
+        final float[] array2 = ArrayUtils.clone(array1);
+        ArrayUtils.shuffle(array1, seededRandom());
         assertFalse(Arrays.equals(array1, array2));
         for (final float element : array2) {
-            assertTrue(ArrayUtils.contains(array1, element), "Element " + 
element + " not found");
+            assertTrue(ArrayUtils.contains(array1, element), () -> "Element " 
+ element + " not found");
         }
     }
 
     @Test
     void testShuffleInt() {
-        final int[] array1 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
+        final int[] array1 = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
         final int[] array2 = ArrayUtils.clone(array1);
+        ArrayUtils.shuffle(array1, seededRandom());
+        assertFalse(Arrays.equals(array1, array2));
+        for (final int element : array2) {
+            assertTrue(ArrayUtils.contains(array1, element), () -> "Element " 
+ element + " not found");
+        }
+    }
 
-        ArrayUtils.shuffle(array1, new Random(SEED));
+    @Test
+    void testShuffleIntRandom() {
+        final int[] array1 = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
+        final int[] array2 = ArrayUtils.clone(array1);
+        ArrayUtils.shuffle(array1);
         assertFalse(Arrays.equals(array1, array2));
         for (final int element : array2) {
-            assertTrue(ArrayUtils.contains(array1, element), "Element " + 
element + " not found");
+            assertTrue(ArrayUtils.contains(array1, element), () -> "Element " 
+ element + " not found");
         }
     }
 
     @Test
     void testShuffleLong() {
-        final long[] array1 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
+        final long[] array1 = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
         final long[] array2 = ArrayUtils.clone(array1);
+        ArrayUtils.shuffle(array1);
+        assertFalse(Arrays.equals(array1, array2));
+        for (final long element : array2) {
+            assertTrue(ArrayUtils.contains(array1, element), () -> "Element " 
+ element + " not found");
+        }
+    }
 
-        ArrayUtils.shuffle(array1, new Random(SEED));
+    @Test
+    void testShuffleLongRandom() {
+        final long[] array1 = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
+        final long[] array2 = ArrayUtils.clone(array1);
+        ArrayUtils.shuffle(array1, seededRandom());
         assertFalse(Arrays.equals(array1, array2));
         for (final long element : array2) {
-            assertTrue(ArrayUtils.contains(array1, element), "Element " + 
element + " not found");
+            assertTrue(ArrayUtils.contains(array1, element), () -> "Element " 
+ element + " not found");
+        }
+    }
+
+    @Test
+    void testShuffleRandom() {
+        final String[] array1 = { "1", "2", "3", "4", "5", "6", "7", "8", "9", 
"10" };
+        final String[] array2 = ArrayUtils.clone(array1);
+        ArrayUtils.shuffle(array1, seededRandom());
+        assertFalse(Arrays.equals(array1, array2));
+        for (final String element : array2) {
+            assertTrue(ArrayUtils.contains(array1, element), () -> "Element " 
+ element + " not found");
         }
     }
 
     @Test
     void testShuffleShort() {
-        final short[] array1 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
+        final short[] array1 = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
         final short[] array2 = ArrayUtils.clone(array1);
+        ArrayUtils.shuffle(array1);
+        assertFalse(Arrays.equals(array1, array2));
+        for (final short element : array2) {
+            assertTrue(ArrayUtils.contains(array1, element), () -> "Element " 
+ element + " not found");
+        }
+    }
 
-        ArrayUtils.shuffle(array1, new Random(SEED));
+    @Test
+    void testShuffleShortRandom() {
+        final short[] array1 = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
+        final short[] array2 = ArrayUtils.clone(array1);
+        ArrayUtils.shuffle(array1, seededRandom());
         assertFalse(Arrays.equals(array1, array2));
         for (final short element : array2) {
-            assertTrue(ArrayUtils.contains(array1, element), "Element " + 
element + " not found");
+            assertTrue(ArrayUtils.contains(array1, element), () -> "Element " 
+ element + " not found");
         }
     }
 

Reply via email to