@@ -59,6 +59,10 @@ private static final class TestClass {
5959 /** A predefined seed used to initialize {@link Random} in order to get predictable results */
6060 private static final long SEED = 16111981L ;
6161
62+ private static Random seededRandom () {
63+ return new Random (SEED );
64+ }
65+
6266 @ SafeVarargs
6367 private static <T > T [] toArrayPropagatingType (final T ... items ) {
6468 return ArrayUtils .toArray (items );
@@ -91,7 +95,6 @@ void testArraycopySupplier() {
9195 assertThrows (NullPointerException .class , () -> ArrayUtils .arraycopy (arr , 0 , 0 , 1 , Suppliers .nul ()));
9296 assertThrows (NullPointerException .class , () -> ArrayUtils .arraycopy (arr , 0 , 0 , 1 , (Supplier <String []>) null ));
9397 }
94-
9598 /**
9699 * Tests generic array creation with parameters of same type.
97100 */
@@ -102,6 +105,7 @@ void testArrayCreation() {
102105 assertEquals ("foo" , array [0 ]);
103106 assertEquals ("bar" , array [1 ]);
104107 }
108+
105109 /**
106110 * Tests generic array creation with parameters of common base type.
107111 */
@@ -5091,107 +5095,195 @@ void testShiftShort() {
50915095
50925096 @ Test
50935097 void testShuffle () {
5094- final String [] array1 = {"1" , "2" , "3" , "4" , "5" , "6" , "7" , "8" , "9" , "10" };
5098+ final String [] array1 = { "1" , "2" , "3" , "4" , "5" , "6" , "7" , "8" , "9" , "10" };
50955099 final String [] array2 = ArrayUtils .clone (array1 );
5096-
5097- ArrayUtils .shuffle (array1 , new Random (SEED ));
5100+ ArrayUtils .shuffle (array1 );
50985101 assertFalse (Arrays .equals (array1 , array2 ));
50995102 for (final String element : array2 ) {
5100- assertTrue (ArrayUtils .contains (array1 , element ), "Element " + element + " not found" );
5103+ assertTrue (ArrayUtils .contains (array1 , element ), () -> "Element " + element + " not found" );
51015104 }
51025105 }
51035106
51045107 @ Test
51055108 void testShuffleBoolean () {
5106- final boolean [] array1 = {true , false , true , true , false , false , true , false , false , true };
5109+ final boolean [] array1 = { true , false , true , true , false , false , true , false , false , true };
51075110 final boolean [] array2 = ArrayUtils .clone (array1 );
5111+ ArrayUtils .shuffle (array1 );
5112+ assertFalse (Arrays .equals (array1 , array2 ));
5113+ assertEquals (5 , ArrayUtils .removeAllOccurrences (array1 , true ).length );
5114+ }
51085115
5109- ArrayUtils .shuffle (array1 , new Random (SEED ));
5116+ @ Test
5117+ void testShuffleBooleanRandom () {
5118+ final boolean [] array1 = { true , false , true , true , false , false , true , false , false , true };
5119+ final boolean [] array2 = ArrayUtils .clone (array1 );
5120+ ArrayUtils .shuffle (array1 , seededRandom ());
51105121 assertFalse (Arrays .equals (array1 , array2 ));
51115122 assertEquals (5 , ArrayUtils .removeAllOccurrences (array1 , true ).length );
51125123 }
51135124
51145125 @ Test
51155126 void testShuffleByte () {
5116- final byte [] array1 = {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 };
5127+ final byte [] array1 = { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 };
51175128 final byte [] array2 = ArrayUtils .clone (array1 );
5129+ ArrayUtils .shuffle (array1 );
5130+ assertFalse (Arrays .equals (array1 , array2 ));
5131+ for (final byte element : array2 ) {
5132+ assertTrue (ArrayUtils .contains (array1 , element ), () -> "Element " + element + " not found" );
5133+ }
5134+ }
51185135
5119- ArrayUtils .shuffle (array1 , new Random (SEED ));
5136+ @ Test
5137+ void testShuffleByteRandom () {
5138+ final byte [] array1 = { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 };
5139+ final byte [] array2 = ArrayUtils .clone (array1 );
5140+ ArrayUtils .shuffle (array1 , seededRandom ());
51205141 assertFalse (Arrays .equals (array1 , array2 ));
51215142 for (final byte element : array2 ) {
5122- assertTrue (ArrayUtils .contains (array1 , element ), "Element " + element + " not found" );
5143+ assertTrue (ArrayUtils .contains (array1 , element ), () -> "Element " + element + " not found" );
51235144 }
51245145 }
51255146
51265147 @ Test
51275148 void testShuffleChar () {
5128- final char [] array1 = {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 };
5149+ final char [] array1 = { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 };
51295150 final char [] array2 = ArrayUtils .clone (array1 );
5151+ ArrayUtils .shuffle (array1 );
5152+ assertFalse (Arrays .equals (array1 , array2 ));
5153+ for (final char element : array2 ) {
5154+ assertTrue (ArrayUtils .contains (array1 , element ), () -> "Element " + element + " not found" );
5155+ }
5156+ }
51305157
5131- ArrayUtils .shuffle (array1 , new Random (SEED ));
5158+ @ Test
5159+ void testShuffleCharRandom () {
5160+ final char [] array1 = { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 };
5161+ final char [] array2 = ArrayUtils .clone (array1 );
5162+ ArrayUtils .shuffle (array1 , seededRandom ());
51325163 assertFalse (Arrays .equals (array1 , array2 ));
51335164 for (final char element : array2 ) {
5134- assertTrue (ArrayUtils .contains (array1 , element ), "Element " + element + " not found" );
5165+ assertTrue (ArrayUtils .contains (array1 , element ), () -> "Element " + element + " not found" );
51355166 }
51365167 }
51375168
51385169 @ Test
51395170 void testShuffleDouble () {
5140- final double [] array1 = {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 };
5171+ final double [] array1 = { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 };
51415172 final double [] array2 = ArrayUtils .clone (array1 );
5173+ ArrayUtils .shuffle (array1 );
5174+ assertFalse (Arrays .equals (array1 , array2 ));
5175+ for (final double element : array2 ) {
5176+ assertTrue (ArrayUtils .contains (array1 , element ), () -> "Element " + element + " not found" );
5177+ }
5178+ }
51425179
5143- ArrayUtils .shuffle (array1 , new Random (SEED ));
5180+ @ Test
5181+ void testShuffleDoubleRandom () {
5182+ final double [] array1 = { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 };
5183+ final double [] array2 = ArrayUtils .clone (array1 );
5184+ ArrayUtils .shuffle (array1 , seededRandom ());
51445185 assertFalse (Arrays .equals (array1 , array2 ));
51455186 for (final double element : array2 ) {
5146- assertTrue (ArrayUtils .contains (array1 , element ), "Element " + element + " not found" );
5187+ assertTrue (ArrayUtils .contains (array1 , element ), () -> "Element " + element + " not found" );
51475188 }
51485189 }
51495190
51505191 @ Test
51515192 void testShuffleFloat () {
5152- final float [] array1 = {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 };
5193+ final float [] array1 = { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 };
51535194 final float [] array2 = ArrayUtils .clone (array1 );
5195+ ArrayUtils .shuffle (array1 );
5196+ assertFalse (Arrays .equals (array1 , array2 ));
5197+ for (final float element : array2 ) {
5198+ assertTrue (ArrayUtils .contains (array1 , element ), () -> "Element " + element + " not found" );
5199+ }
5200+ }
51545201
5155- ArrayUtils .shuffle (array1 , new Random (SEED ));
5202+ @ Test
5203+ void testShuffleFloatRandom () {
5204+ final float [] array1 = { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 };
5205+ final float [] array2 = ArrayUtils .clone (array1 );
5206+ ArrayUtils .shuffle (array1 , seededRandom ());
51565207 assertFalse (Arrays .equals (array1 , array2 ));
51575208 for (final float element : array2 ) {
5158- assertTrue (ArrayUtils .contains (array1 , element ), "Element " + element + " not found" );
5209+ assertTrue (ArrayUtils .contains (array1 , element ), () -> "Element " + element + " not found" );
51595210 }
51605211 }
51615212
51625213 @ Test
51635214 void testShuffleInt () {
5164- final int [] array1 = {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 };
5215+ final int [] array1 = { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 };
51655216 final int [] array2 = ArrayUtils .clone (array1 );
5217+ ArrayUtils .shuffle (array1 , seededRandom ());
5218+ assertFalse (Arrays .equals (array1 , array2 ));
5219+ for (final int element : array2 ) {
5220+ assertTrue (ArrayUtils .contains (array1 , element ), () -> "Element " + element + " not found" );
5221+ }
5222+ }
51665223
5167- ArrayUtils .shuffle (array1 , new Random (SEED ));
5224+ @ Test
5225+ void testShuffleIntRandom () {
5226+ final int [] array1 = { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 };
5227+ final int [] array2 = ArrayUtils .clone (array1 );
5228+ ArrayUtils .shuffle (array1 );
51685229 assertFalse (Arrays .equals (array1 , array2 ));
51695230 for (final int element : array2 ) {
5170- assertTrue (ArrayUtils .contains (array1 , element ), "Element " + element + " not found" );
5231+ assertTrue (ArrayUtils .contains (array1 , element ), () -> "Element " + element + " not found" );
51715232 }
51725233 }
51735234
51745235 @ Test
51755236 void testShuffleLong () {
5176- final long [] array1 = {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 };
5237+ final long [] array1 = { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 };
51775238 final long [] array2 = ArrayUtils .clone (array1 );
5239+ ArrayUtils .shuffle (array1 );
5240+ assertFalse (Arrays .equals (array1 , array2 ));
5241+ for (final long element : array2 ) {
5242+ assertTrue (ArrayUtils .contains (array1 , element ), () -> "Element " + element + " not found" );
5243+ }
5244+ }
51785245
5179- ArrayUtils .shuffle (array1 , new Random (SEED ));
5246+ @ Test
5247+ void testShuffleLongRandom () {
5248+ final long [] array1 = { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 };
5249+ final long [] array2 = ArrayUtils .clone (array1 );
5250+ ArrayUtils .shuffle (array1 , seededRandom ());
51805251 assertFalse (Arrays .equals (array1 , array2 ));
51815252 for (final long element : array2 ) {
5182- assertTrue (ArrayUtils .contains (array1 , element ), "Element " + element + " not found" );
5253+ assertTrue (ArrayUtils .contains (array1 , element ), () -> "Element " + element + " not found" );
5254+ }
5255+ }
5256+
5257+ @ Test
5258+ void testShuffleRandom () {
5259+ final String [] array1 = { "1" , "2" , "3" , "4" , "5" , "6" , "7" , "8" , "9" , "10" };
5260+ final String [] array2 = ArrayUtils .clone (array1 );
5261+ ArrayUtils .shuffle (array1 , seededRandom ());
5262+ assertFalse (Arrays .equals (array1 , array2 ));
5263+ for (final String element : array2 ) {
5264+ assertTrue (ArrayUtils .contains (array1 , element ), () -> "Element " + element + " not found" );
51835265 }
51845266 }
51855267
51865268 @ Test
51875269 void testShuffleShort () {
5188- final short [] array1 = {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 };
5270+ final short [] array1 = { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 };
51895271 final short [] array2 = ArrayUtils .clone (array1 );
5272+ ArrayUtils .shuffle (array1 );
5273+ assertFalse (Arrays .equals (array1 , array2 ));
5274+ for (final short element : array2 ) {
5275+ assertTrue (ArrayUtils .contains (array1 , element ), () -> "Element " + element + " not found" );
5276+ }
5277+ }
51905278
5191- ArrayUtils .shuffle (array1 , new Random (SEED ));
5279+ @ Test
5280+ void testShuffleShortRandom () {
5281+ final short [] array1 = { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 };
5282+ final short [] array2 = ArrayUtils .clone (array1 );
5283+ ArrayUtils .shuffle (array1 , seededRandom ());
51925284 assertFalse (Arrays .equals (array1 , array2 ));
51935285 for (final short element : array2 ) {
5194- assertTrue (ArrayUtils .contains (array1 , element ), "Element " + element + " not found" );
5286+ assertTrue (ArrayUtils .contains (array1 , element ), () -> "Element " + element + " not found" );
51955287 }
51965288 }
51975289
0 commit comments