diff --git a/hutool-core/src/test/java/cn/hutool/core/collection/CollUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/collection/CollUtilTest.java index 5615a97aa..fea503b8a 100755 --- a/hutool-core/src/test/java/cn/hutool/core/collection/CollUtilTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/collection/CollUtilTest.java @@ -62,6 +62,25 @@ public class CollUtilTest { assertEquals(srcList, answerList); } + @Test + public void testPadLeft_NegativeMinLen_ShouldNotModifyList() { + List list = CollUtil.newArrayList("a", "b", "c"); + List original = CollUtil.newArrayList("a", "b", "c"); + + CollUtil.padLeft(list, -5, "x"); + + assertEquals(original, list, "List should remain unchanged when minLen is negative"); + } + + @Test + public void testPadLeft_EmptyList_MinLenZero() { + List list = CollUtil.newArrayList(); + + CollUtil.padLeft(list, 0, "x"); + + assertTrue(list.isEmpty(), "List should remain empty when minLen is 0"); + } + @Test public void testPadRight() { final List srcList = CollUtil.newArrayList("a"); @@ -211,6 +230,19 @@ public class CollUtilTest { final List r2 = CollUtil.subtractToList(map1.keySet(), map2.keySet()); assertEquals("[1]", r2.toString()); } + + @Test + public void testSubtractWithDuplicates() { + Collection coll1 = new ArrayList<>(Arrays.asList("a", "b", "b", "c")); + Collection coll2 = Collections.singletonList("b"); + Collection result = CollUtil.subtract(coll1, coll2); + + List expected = Arrays.asList("a", "c"); + List resultList = new ArrayList<>(result); + Collections.sort(resultList); + Collections.sort(expected); + assertEquals(expected, resultList); + } @Test public void toMapListAndToListMapTest() { @@ -825,6 +857,34 @@ public class CollUtilTest { assertEquals(2, i); } + @Test + public void lastIndexOf_NoMatchExists() { + List list = CollUtil.newArrayList("a", "b", "c"); + int idx = CollUtil.lastIndexOf(list, item -> item.equals("z")); + assertEquals(-1, idx); + } + + @Test + public void lastIndexOf_MatcherIsNull_MatchAll() { + List list = CollUtil.newArrayList("x", "y", "z"); + int idx = CollUtil.lastIndexOf(list, null); + assertEquals(2, idx); + } + + @Test + public void lastIndexOf_EmptyCollection() { + List list = CollUtil.newArrayList(); + int idx = CollUtil.lastIndexOf(list, item -> item != null); + assertEquals(-1, idx); + } + + @Test + public void lastIndexOf_SingletonCollection_Match() { + List list = CollUtil.newArrayList("foo"); + int idx = CollUtil.lastIndexOf(list, item -> item.equals("foo")); + assertEquals(0, idx); + } + @Test public void pageTest() { final List objects = CollUtil.newArrayList();