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 <[email protected]>
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]);