Skip to content

Commit a6af715

Browse files
committed
Add missing test coverage for
org.apache.commons.lang3.ArrayUtils.swap(*)
1 parent 0a42367 commit a6af715

File tree

1 file changed

+108
-0
lines changed

1 file changed

+108
-0
lines changed

src/test/java/org/apache/commons/lang3/ArrayUtilsTest.java

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)