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 a6af715f8 Add missing test coverage for org.apache.commons.lang3.ArrayUtils.swap(*) a6af715f8 is described below commit a6af715f86ef658ceeff12d3ba65d99d1a1f8f0f Author: Gary D. Gregory <garydgreg...@gmail.com> AuthorDate: Tue Jun 17 16:21:19 2025 -0400 Add missing test coverage for org.apache.commons.lang3.ArrayUtils.swap(*) --- .../org/apache/commons/lang3/ArrayUtilsTest.java | 108 +++++++++++++++++++++ 1 file changed, 108 insertions(+) diff --git a/src/test/java/org/apache/commons/lang3/ArrayUtilsTest.java b/src/test/java/org/apache/commons/lang3/ArrayUtilsTest.java index 607c0d207..c84711bb5 100644 --- a/src/test/java/org/apache/commons/lang3/ArrayUtilsTest.java +++ b/src/test/java/org/apache/commons/lang3/ArrayUtilsTest.java @@ -5805,6 +5805,18 @@ void testSwapBoolean() { @Test void testSwapBooleanRange() { + // edge cases where nothing happens + ArrayUtils.swap((boolean[]) null, 0, 2, 1); + ArrayUtils.swap(new boolean[0], 0, 2, 1); + final boolean[] array3a = new boolean[] {true, false, true}; + final boolean[] array3b = array3a.clone(); + // (1) offset1 >= array.length + ArrayUtils.swap(array3b, array3b.length, 2, 1); + assertArrayEquals(array3a, array3b); + // (2) offset2 >= array.length + ArrayUtils.swap(array3b, 0, array3b.length, 1); + assertArrayEquals(array3a, array3b); + // tests boolean[] array = { false, false, true, true }; ArrayUtils.swap(array, 0, 2, 2); assertTrue(array[0]); @@ -5854,6 +5866,18 @@ void testSwapByte() { @Test void testSwapByteRange() { + // edge cases where nothing happens + ArrayUtils.swap((byte[]) null, 0, 2, 1); + ArrayUtils.swap(new byte[0], 0, 2, 1); + final byte[] array3a = new byte[] {1, 0, 1}; + final byte[] array3b = array3a.clone(); + // (1) offset1 >= array.length + ArrayUtils.swap(array3b, array3b.length, 2, 1); + assertArrayEquals(array3a, array3b); + // (2) offset2 >= array.length + ArrayUtils.swap(array3b, 0, array3b.length, 1); + assertArrayEquals(array3a, array3b); + // tests byte[] array = { 1, 2, 3, 4 }; ArrayUtils.swap(array, 0, 2, 2); assertEquals(3, array[0]); @@ -5909,6 +5933,18 @@ void testSwapChar() { @Test void testSwapCharRange() { + // edge cases where nothing happens + ArrayUtils.swap((char[]) null, 0, 2, 1); + ArrayUtils.swap(new char[0], 0, 2, 1); + final char[] array3a = new char[] {1, 0, 1}; + final char[] array3b = array3a.clone(); + // (1) offset1 >= array.length + ArrayUtils.swap(array3b, array3b.length, 2, 1); + assertArrayEquals(array3a, array3b); + // (2) offset2 >= array.length + ArrayUtils.swap(array3b, 0, array3b.length, 1); + assertArrayEquals(array3a, array3b); + // tests char[] array = { 1, 2, 3, 4 }; ArrayUtils.swap(array, 0, 2, 2); assertEquals(3, array[0]); @@ -5958,6 +5994,18 @@ void testSwapDouble() { @Test void testSwapDoubleRange() { + // edge cases where nothing happens + ArrayUtils.swap((double[]) null, 0, 2, 1); + ArrayUtils.swap(new double[0], 0, 2, 1); + final double[] array3a = new double[] {1, 0, 1}; + final double[] array3b = array3a.clone(); + // (1) offset1 >= array.length + ArrayUtils.swap(array3b, array3b.length, 2, 1); + assertArrayEquals(array3a, array3b); + // (2) offset2 >= array.length + ArrayUtils.swap(array3b, 0, array3b.length, 1); + assertArrayEquals(array3a, array3b); + // tests double[] array = { 1, 2, 3, 4 }; ArrayUtils.swap(array, 0, 2, 2); assertEquals(3, array[0]); @@ -6070,6 +6118,18 @@ void testSwapFloat() { @Test void testSwapFloatRange() { + // edge cases where nothing happens + ArrayUtils.swap((float[]) null, 0, 2, 1); + ArrayUtils.swap(new float[0], 0, 2, 1); + final float[] array3a = new float[] {1, 0, 1}; + final float[] array3b = array3a.clone(); + // (1) offset1 >= array.length + ArrayUtils.swap(array3b, array3b.length, 2, 1); + assertArrayEquals(array3a, array3b); + // (2) offset2 >= array.length + ArrayUtils.swap(array3b, 0, array3b.length, 1); + assertArrayEquals(array3a, array3b); + // tests float[] array = { 1, 2, 3, 4 }; ArrayUtils.swap(array, 0, 2, 2); assertEquals(3, array[0]); @@ -6131,6 +6191,18 @@ void testSwapIntExchangedOffsets() { @Test void testSwapIntRange() { + // edge cases where nothing happens + ArrayUtils.swap((int[]) null, 0, 2, 1); + ArrayUtils.swap(new int[0], 0, 2, 1); + final int[] array3a = new int[] {1, 0, 1}; + final int[] array3b = array3a.clone(); + // (1) offset1 >= array.length + ArrayUtils.swap(array3b, array3b.length, 2, 1); + assertArrayEquals(array3a, array3b); + // (2) offset2 >= array.length + ArrayUtils.swap(array3b, 0, array3b.length, 1); + assertArrayEquals(array3a, array3b); + // tests int[] array = { 1, 2, 3, 4 }; ArrayUtils.swap(array, 0, 2, 2); assertEquals(3, array[0]); @@ -6180,6 +6252,18 @@ void testSwapLong() { @Test void testSwapLongRange() { + // edge cases where nothing happens + ArrayUtils.swap((long[]) null, 0, 2, 1); + ArrayUtils.swap(new long[0], 0, 2, 1); + final long[] array3a = new long[] {1, 0, 1}; + final long[] array3b = array3a.clone(); + // (1) offset1 >= array.length + ArrayUtils.swap(array3b, array3b.length, 2, 1); + assertArrayEquals(array3a, array3b); + // (2) offset2 >= array.length + ArrayUtils.swap(array3b, 0, array3b.length, 1); + assertArrayEquals(array3a, array3b); + // tests long[] array = { 1, 2, 3, 4 }; ArrayUtils.swap(array, 0, 2, 2); assertEquals(3, array[0]); @@ -6292,6 +6376,18 @@ void testSwapObject() { @Test void testSwapObjectRange() { + // edge cases where nothing happens + ArrayUtils.swap((Object[]) null, 0, 2, 1); + ArrayUtils.swap(new Object[0], 0, 2, 1); + final Object[] array3a = new Object[] {1, 0, 1}; + final Object[] array3b = array3a.clone(); + // (1) offset1 >= array.length + ArrayUtils.swap(array3b, array3b.length, 2, 1); + assertArrayEquals(array3a, array3b); + // (2) offset2 >= array.length + ArrayUtils.swap(array3b, 0, array3b.length, 1); + assertArrayEquals(array3a, array3b); + // tests String[] array = { "1", "2", "3", "4" }; ArrayUtils.swap(array, 0, 2, 2); assertEquals("3", array[0]); @@ -6342,6 +6438,18 @@ void testSwapShort() { @Test void testSwapShortRange() { + // edge cases where nothing happens + ArrayUtils.swap((short[]) null, 0, 2, 1); + ArrayUtils.swap(new short[0], 0, 2, 1); + final short[] array3a = new short[] {1, 0, 1}; + final short[] array3b = array3a.clone(); + // (1) offset1 >= array.length + ArrayUtils.swap(array3b, array3b.length, 2, 1); + assertArrayEquals(array3a, array3b); + // (2) offset2 >= array.length + ArrayUtils.swap(array3b, 0, array3b.length, 1); + assertArrayEquals(array3a, array3b); + // tests short[] array = { 1, 2, 3, 4 }; ArrayUtils.swap(array, 0, 2, 2); assertEquals(3, array[0]);