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 4bb9e2640 Test JRE edge cases for Arrays versus ArrayUtils.hashCode()
4bb9e2640 is described below
commit 4bb9e2640d008a9cdf5db340ade4dc94b9f41497
Author: Gary Gregory <[email protected]>
AuthorDate: Sat Jan 24 07:16:05 2026 -0500
Test JRE edge cases for Arrays versus ArrayUtils.hashCode()
---
src/test/java/org/apache/commons/lang3/ArrayUtilsTest.java | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/src/test/java/org/apache/commons/lang3/ArrayUtilsTest.java
b/src/test/java/org/apache/commons/lang3/ArrayUtilsTest.java
index fa06f61f4..f0d1a59fa 100644
--- a/src/test/java/org/apache/commons/lang3/ArrayUtilsTest.java
+++ b/src/test/java/org/apache/commons/lang3/ArrayUtilsTest.java
@@ -546,16 +546,26 @@ void testGetLength() {
@Test
void testHashCode() {
+ // JRE edge cases:
+ assertEquals(0, Arrays.hashCode((Object[]) null));
+ assertEquals(0, Arrays.hashCode((long[]) null));
+ assertEquals(1, Arrays.hashCode(ArrayUtils.EMPTY_OBJECT_ARRAY));
+ assertEquals(1,
Arrays.hashCode(ArrayUtils.EMPTY_BOOLEAN_OBJECT_ARRAY));
+ // Our edge cases:
+ // assertEquals(0, ArrayUtils.hashCode(null));
+ // assertEquals(1, ArrayUtils.hashCode(ArrayUtils.EMPTY_OBJECT_ARRAY));
+ // assertEquals(1,
ArrayUtils.hashCode(ArrayUtils.EMPTY_BOOLEAN_OBJECT_ARRAY));
+ // General cases:
final long[][] array1 = {{2, 5}, {4, 5}};
final long[][] array2 = {{2, 5}, {4, 6}};
assertEquals(ArrayUtils.hashCode(array1), ArrayUtils.hashCode(array1));
assertNotEquals(ArrayUtils.hashCode(array1),
ArrayUtils.hashCode(array2));
-
+ // Objects
final Object[] array3 = {new String(new char[]{'A', 'B'})};
final Object[] array4 = {"AB"};
assertEquals(ArrayUtils.hashCode(array3), ArrayUtils.hashCode(array3));
assertEquals(ArrayUtils.hashCode(array3), ArrayUtils.hashCode(array4));
-
+ // Primitives to Objects
final Object[] arrayA = {new boolean[]{true, false}, new int[]{6, 7}};
final Object[] arrayB = {new boolean[]{true, false}, new int[]{6, 7}};
assertEquals(ArrayUtils.hashCode(arrayB), ArrayUtils.hashCode(arrayA));