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]);

Reply via email to