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

commit 638488d02f76358259f7b8fde5a09da8951924ca
Author: Gary D. Gregory <garydgreg...@gmail.com>
AuthorDate: Tue Jun 17 15:29:02 2025 -0400

    Add missing test coverage for
    org.apache.commons.lang3.ArrayUtils.shift(byte[], int, int, int)
---
 .../org/apache/commons/lang3/ArrayUtilsTest.java   | 45 +++++++++++++++++++++-
 1 file changed, 44 insertions(+), 1 deletion(-)

diff --git a/src/test/java/org/apache/commons/lang3/ArrayUtilsTest.java 
b/src/test/java/org/apache/commons/lang3/ArrayUtilsTest.java
index 2e364af13..6b1c236e2 100644
--- a/src/test/java/org/apache/commons/lang3/ArrayUtilsTest.java
+++ b/src/test/java/org/apache/commons/lang3/ArrayUtilsTest.java
@@ -4504,6 +4504,8 @@ void testShiftAllShort() {
 
     @Test
     void testShiftBoolean() {
+        ArrayUtils.shift((boolean[]) null, 1);
+        ArrayUtils.shift(new boolean[0], 1);
         final boolean[] array = { true, true, false, false };
         ArrayUtils.shift(array, 1);
         assertFalse(array[0]);
@@ -4568,7 +4570,48 @@ void testShiftBooleanParams() {
 
     @Test
     void testShiftByte() {
-        final byte[] array = {1, 2, 3, 4};
+        ArrayUtils.shift((byte[]) null, 1);
+        ArrayUtils.shift(new byte[0], 1);
+        final byte[] array = { 1, 2, 3, 4 };
+        ArrayUtils.shift(array, 1);
+        assertEquals(4, array[0]);
+        assertEquals(1, array[1]);
+        assertEquals(2, array[2]);
+        assertEquals(3, array[3]);
+        ArrayUtils.shift(array, -1);
+        assertEquals(1, array[0]);
+        assertEquals(2, array[1]);
+        assertEquals(3, array[2]);
+        assertEquals(4, array[3]);
+        ArrayUtils.shift(array, 5);
+        assertEquals(4, array[0]);
+        assertEquals(1, array[1]);
+        assertEquals(2, array[2]);
+        assertEquals(3, array[3]);
+        ArrayUtils.shift(array, -3);
+        assertEquals(3, array[0]);
+        assertEquals(4, array[1]);
+        assertEquals(1, array[2]);
+        assertEquals(2, array[3]);
+    }
+
+    @Test
+    void testShiftByteParams() {
+        // edge cases where nothing happens
+        // (1) array == null
+        ArrayUtils.shift((byte[]) null, 0, 0, 0);
+        // (2) startIndexInclusive >= array.length - 1
+        ArrayUtils.shift(new byte[0], 100, 0, 0);
+        // (3) endIndexExclusive <= 0
+        byte[] array1 = { 1 };
+        ArrayUtils.shift(array1, -1, 0, 0);
+        assertArrayEquals(new byte[] { 1 }, array1);
+        // (4) n <= 1
+        byte[] array2 = { 1, 0, 1 };
+        ArrayUtils.shift(array2, 1, 1, 0);
+        assertArrayEquals(new byte[] { 1, 0, 1 }, array2);
+        // tests
+        final byte[] array = { 1, 2, 3, 4 };
         ArrayUtils.shift(array, 1);
         assertEquals(4, array[0]);
         assertEquals(1, array[1]);

Reply via email to