@@ -5805,6 +5805,18 @@ void testSwapBoolean() {
58055805
58065806 @ Test
58075807 void testSwapBooleanRange () {
5808+ // edge cases where nothing happens
5809+ ArrayUtils .swap ((boolean []) null , 0 , 2 , 1 );
5810+ ArrayUtils .swap (new boolean [0 ], 0 , 2 , 1 );
5811+ final boolean [] array3a = new boolean [] {true , false , true };
5812+ final boolean [] array3b = array3a .clone ();
5813+ // (1) offset1 >= array.length
5814+ ArrayUtils .swap (array3b , array3b .length , 2 , 1 );
5815+ assertArrayEquals (array3a , array3b );
5816+ // (2) offset2 >= array.length
5817+ ArrayUtils .swap (array3b , 0 , array3b .length , 1 );
5818+ assertArrayEquals (array3a , array3b );
5819+ // tests
58085820 boolean [] array = { false , false , true , true };
58095821 ArrayUtils .swap (array , 0 , 2 , 2 );
58105822 assertTrue (array [0 ]);
@@ -5854,6 +5866,18 @@ void testSwapByte() {
58545866
58555867 @ Test
58565868 void testSwapByteRange () {
5869+ // edge cases where nothing happens
5870+ ArrayUtils .swap ((byte []) null , 0 , 2 , 1 );
5871+ ArrayUtils .swap (new byte [0 ], 0 , 2 , 1 );
5872+ final byte [] array3a = new byte [] {1 , 0 , 1 };
5873+ final byte [] array3b = array3a .clone ();
5874+ // (1) offset1 >= array.length
5875+ ArrayUtils .swap (array3b , array3b .length , 2 , 1 );
5876+ assertArrayEquals (array3a , array3b );
5877+ // (2) offset2 >= array.length
5878+ ArrayUtils .swap (array3b , 0 , array3b .length , 1 );
5879+ assertArrayEquals (array3a , array3b );
5880+ // tests
58575881 byte [] array = { 1 , 2 , 3 , 4 };
58585882 ArrayUtils .swap (array , 0 , 2 , 2 );
58595883 assertEquals (3 , array [0 ]);
@@ -5909,6 +5933,18 @@ void testSwapChar() {
59095933
59105934 @ Test
59115935 void testSwapCharRange () {
5936+ // edge cases where nothing happens
5937+ ArrayUtils .swap ((char []) null , 0 , 2 , 1 );
5938+ ArrayUtils .swap (new char [0 ], 0 , 2 , 1 );
5939+ final char [] array3a = new char [] {1 , 0 , 1 };
5940+ final char [] array3b = array3a .clone ();
5941+ // (1) offset1 >= array.length
5942+ ArrayUtils .swap (array3b , array3b .length , 2 , 1 );
5943+ assertArrayEquals (array3a , array3b );
5944+ // (2) offset2 >= array.length
5945+ ArrayUtils .swap (array3b , 0 , array3b .length , 1 );
5946+ assertArrayEquals (array3a , array3b );
5947+ // tests
59125948 char [] array = { 1 , 2 , 3 , 4 };
59135949 ArrayUtils .swap (array , 0 , 2 , 2 );
59145950 assertEquals (3 , array [0 ]);
@@ -5958,6 +5994,18 @@ void testSwapDouble() {
59585994
59595995 @ Test
59605996 void testSwapDoubleRange () {
5997+ // edge cases where nothing happens
5998+ ArrayUtils .swap ((double []) null , 0 , 2 , 1 );
5999+ ArrayUtils .swap (new double [0 ], 0 , 2 , 1 );
6000+ final double [] array3a = new double [] {1 , 0 , 1 };
6001+ final double [] array3b = array3a .clone ();
6002+ // (1) offset1 >= array.length
6003+ ArrayUtils .swap (array3b , array3b .length , 2 , 1 );
6004+ assertArrayEquals (array3a , array3b );
6005+ // (2) offset2 >= array.length
6006+ ArrayUtils .swap (array3b , 0 , array3b .length , 1 );
6007+ assertArrayEquals (array3a , array3b );
6008+ // tests
59616009 double [] array = { 1 , 2 , 3 , 4 };
59626010 ArrayUtils .swap (array , 0 , 2 , 2 );
59636011 assertEquals (3 , array [0 ]);
@@ -6070,6 +6118,18 @@ void testSwapFloat() {
60706118
60716119 @ Test
60726120 void testSwapFloatRange () {
6121+ // edge cases where nothing happens
6122+ ArrayUtils .swap ((float []) null , 0 , 2 , 1 );
6123+ ArrayUtils .swap (new float [0 ], 0 , 2 , 1 );
6124+ final float [] array3a = new float [] {1 , 0 , 1 };
6125+ final float [] array3b = array3a .clone ();
6126+ // (1) offset1 >= array.length
6127+ ArrayUtils .swap (array3b , array3b .length , 2 , 1 );
6128+ assertArrayEquals (array3a , array3b );
6129+ // (2) offset2 >= array.length
6130+ ArrayUtils .swap (array3b , 0 , array3b .length , 1 );
6131+ assertArrayEquals (array3a , array3b );
6132+ // tests
60736133 float [] array = { 1 , 2 , 3 , 4 };
60746134 ArrayUtils .swap (array , 0 , 2 , 2 );
60756135 assertEquals (3 , array [0 ]);
@@ -6131,6 +6191,18 @@ void testSwapIntExchangedOffsets() {
61316191
61326192 @ Test
61336193 void testSwapIntRange () {
6194+ // edge cases where nothing happens
6195+ ArrayUtils .swap ((int []) null , 0 , 2 , 1 );
6196+ ArrayUtils .swap (new int [0 ], 0 , 2 , 1 );
6197+ final int [] array3a = new int [] {1 , 0 , 1 };
6198+ final int [] array3b = array3a .clone ();
6199+ // (1) offset1 >= array.length
6200+ ArrayUtils .swap (array3b , array3b .length , 2 , 1 );
6201+ assertArrayEquals (array3a , array3b );
6202+ // (2) offset2 >= array.length
6203+ ArrayUtils .swap (array3b , 0 , array3b .length , 1 );
6204+ assertArrayEquals (array3a , array3b );
6205+ // tests
61346206 int [] array = { 1 , 2 , 3 , 4 };
61356207 ArrayUtils .swap (array , 0 , 2 , 2 );
61366208 assertEquals (3 , array [0 ]);
@@ -6180,6 +6252,18 @@ void testSwapLong() {
61806252
61816253 @ Test
61826254 void testSwapLongRange () {
6255+ // edge cases where nothing happens
6256+ ArrayUtils .swap ((long []) null , 0 , 2 , 1 );
6257+ ArrayUtils .swap (new long [0 ], 0 , 2 , 1 );
6258+ final long [] array3a = new long [] {1 , 0 , 1 };
6259+ final long [] array3b = array3a .clone ();
6260+ // (1) offset1 >= array.length
6261+ ArrayUtils .swap (array3b , array3b .length , 2 , 1 );
6262+ assertArrayEquals (array3a , array3b );
6263+ // (2) offset2 >= array.length
6264+ ArrayUtils .swap (array3b , 0 , array3b .length , 1 );
6265+ assertArrayEquals (array3a , array3b );
6266+ // tests
61836267 long [] array = { 1 , 2 , 3 , 4 };
61846268 ArrayUtils .swap (array , 0 , 2 , 2 );
61856269 assertEquals (3 , array [0 ]);
@@ -6292,6 +6376,18 @@ void testSwapObject() {
62926376
62936377 @ Test
62946378 void testSwapObjectRange () {
6379+ // edge cases where nothing happens
6380+ ArrayUtils .swap ((Object []) null , 0 , 2 , 1 );
6381+ ArrayUtils .swap (new Object [0 ], 0 , 2 , 1 );
6382+ final Object [] array3a = new Object [] {1 , 0 , 1 };
6383+ final Object [] array3b = array3a .clone ();
6384+ // (1) offset1 >= array.length
6385+ ArrayUtils .swap (array3b , array3b .length , 2 , 1 );
6386+ assertArrayEquals (array3a , array3b );
6387+ // (2) offset2 >= array.length
6388+ ArrayUtils .swap (array3b , 0 , array3b .length , 1 );
6389+ assertArrayEquals (array3a , array3b );
6390+ // tests
62956391 String [] array = { "1" , "2" , "3" , "4" };
62966392 ArrayUtils .swap (array , 0 , 2 , 2 );
62976393 assertEquals ("3" , array [0 ]);
@@ -6342,6 +6438,18 @@ void testSwapShort() {
63426438
63436439 @ Test
63446440 void testSwapShortRange () {
6441+ // edge cases where nothing happens
6442+ ArrayUtils .swap ((short []) null , 0 , 2 , 1 );
6443+ ArrayUtils .swap (new short [0 ], 0 , 2 , 1 );
6444+ final short [] array3a = new short [] {1 , 0 , 1 };
6445+ final short [] array3b = array3a .clone ();
6446+ // (1) offset1 >= array.length
6447+ ArrayUtils .swap (array3b , array3b .length , 2 , 1 );
6448+ assertArrayEquals (array3a , array3b );
6449+ // (2) offset2 >= array.length
6450+ ArrayUtils .swap (array3b , 0 , array3b .length , 1 );
6451+ assertArrayEquals (array3a , array3b );
6452+ // tests
63456453 short [] array = { 1 , 2 , 3 , 4 };
63466454 ArrayUtils .swap (array , 0 , 2 , 2 );
63476455 assertEquals (3 , array [0 ]);
0 commit comments