mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-08-18 20:38:02 +08:00
@@ -60,6 +60,40 @@ public class CollStreamUtilTest {
|
|||||||
assertNull(map.get(4L));
|
assertNull(map.get(4L));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testToMap_KeyCollision_SilentlyOverwrite() {
|
||||||
|
List<Student> list = new ArrayList<>();
|
||||||
|
list.add(new Student(1, 101, 1, "张三"));
|
||||||
|
list.add(new Student(1, 102, 1, "李四"));
|
||||||
|
Map<Long, String> map = CollStreamUtil.toMap(list, Student::getStudentId, Student::getName, false);
|
||||||
|
|
||||||
|
assertEquals(1, map.size());
|
||||||
|
assertEquals("李四", map.get(1L)); // 确保后面的值覆盖前面的
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testToMap_NullKeyOrValue() {
|
||||||
|
List<Student> list = new ArrayList<>();
|
||||||
|
list.add(new Student(1, 1, 1L, "张三"));
|
||||||
|
list.add(null);
|
||||||
|
list.add(new Student(1, 2, 2L, null));
|
||||||
|
|
||||||
|
assertThrows(NullPointerException.class, () -> {
|
||||||
|
CollStreamUtil.toMap(list, Student::getStudentId, Student::getName);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testToMap_LargeInputPerformance() {
|
||||||
|
List<Student> list = new ArrayList<>();
|
||||||
|
for (long i = 0; i < 10000; i++) {
|
||||||
|
list.add(new Student(1, 1, i, "学生" + i));
|
||||||
|
}
|
||||||
|
Map<Long, String> map = CollStreamUtil.toMap(list, Student::getStudentId, Student::getName);
|
||||||
|
|
||||||
|
assertEquals(10000, map.size());
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testGroupByKey() {
|
public void testGroupByKey() {
|
||||||
Map<Long, List<Student>> map = CollStreamUtil.groupByKey(null, Student::getClassId);
|
Map<Long, List<Student>> map = CollStreamUtil.groupByKey(null, Student::getClassId);
|
||||||
|
@@ -62,6 +62,25 @@ public class CollUtilTest {
|
|||||||
assertEquals(srcList, answerList);
|
assertEquals(srcList, answerList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testPadLeft_NegativeMinLen_ShouldNotModifyList() {
|
||||||
|
List<String> list = CollUtil.newArrayList("a", "b", "c");
|
||||||
|
List<String> 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<String> list = CollUtil.newArrayList();
|
||||||
|
|
||||||
|
CollUtil.padLeft(list, 0, "x");
|
||||||
|
|
||||||
|
assertTrue(list.isEmpty(), "List should remain empty when minLen is 0");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testPadRight() {
|
public void testPadRight() {
|
||||||
final List<String> srcList = CollUtil.newArrayList("a");
|
final List<String> srcList = CollUtil.newArrayList("a");
|
||||||
@@ -212,6 +231,19 @@ public class CollUtilTest {
|
|||||||
assertEquals("[1]", r2.toString());
|
assertEquals("[1]", r2.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testSubtractWithDuplicates() {
|
||||||
|
Collection<String> coll1 = new ArrayList<>(Arrays.asList("a", "b", "b", "c"));
|
||||||
|
Collection<String> coll2 = Collections.singletonList("b");
|
||||||
|
Collection<String> result = CollUtil.subtract(coll1, coll2);
|
||||||
|
|
||||||
|
List<String> expected = Arrays.asList("a", "c");
|
||||||
|
List<String> resultList = new ArrayList<>(result);
|
||||||
|
Collections.sort(resultList);
|
||||||
|
Collections.sort(expected);
|
||||||
|
assertEquals(expected, resultList);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void toMapListAndToListMapTest() {
|
public void toMapListAndToListMapTest() {
|
||||||
final HashMap<String, String> map1 = new HashMap<>();
|
final HashMap<String, String> map1 = new HashMap<>();
|
||||||
@@ -825,6 +857,34 @@ public class CollUtilTest {
|
|||||||
assertEquals(2, i);
|
assertEquals(2, i);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void lastIndexOf_NoMatchExists() {
|
||||||
|
List<String> 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<String> list = CollUtil.newArrayList("x", "y", "z");
|
||||||
|
int idx = CollUtil.lastIndexOf(list, null);
|
||||||
|
assertEquals(2, idx);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void lastIndexOf_EmptyCollection() {
|
||||||
|
List<String> list = CollUtil.newArrayList();
|
||||||
|
int idx = CollUtil.lastIndexOf(list, item -> item != null);
|
||||||
|
assertEquals(-1, idx);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void lastIndexOf_SingletonCollection_Match() {
|
||||||
|
List<String> list = CollUtil.newArrayList("foo");
|
||||||
|
int idx = CollUtil.lastIndexOf(list, item -> item.equals("foo"));
|
||||||
|
assertEquals(0, idx);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void pageTest() {
|
public void pageTest() {
|
||||||
final List<Dict> objects = CollUtil.newArrayList();
|
final List<Dict> objects = CollUtil.newArrayList();
|
||||||
|
@@ -528,6 +528,44 @@ public class FileUtilTest {
|
|||||||
assertTrue(FileUtil.isSub(file, file2));
|
assertTrue(FileUtil.isSub(file, file2));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void isSub_SubIsAncestorOfParentTest() {
|
||||||
|
File parent = new File("d:/home/user/docs/notes");
|
||||||
|
File sub = new File("d:/home/user/docs");
|
||||||
|
assertFalse(FileUtil.isSub(parent, sub));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void isSub_SamePathTest() {
|
||||||
|
File parent = new File("d:/home/user/docs");
|
||||||
|
File sub = new File("d:/home/user/docs");
|
||||||
|
assertTrue(FileUtil.isSub(parent, sub));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void isSub_NonexistentPathsTest() {
|
||||||
|
File parent = new File("d:/unlikely/to/exist/parent");
|
||||||
|
File sub = new File("d:/unlikely/to/exist/parent/child/file.txt");
|
||||||
|
assertTrue(FileUtil.isSub(parent, sub));
|
||||||
|
|
||||||
|
File nonchild = new File("d:/also/unlikely/path.txt");
|
||||||
|
assertFalse(FileUtil.isSub(parent, nonchild));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void isSub_NullParentTest() {
|
||||||
|
assertThrows(IllegalArgumentException.class, () -> {
|
||||||
|
FileUtil.isSub(null, new java.io.File("d:/any/path"));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void isSub_NullSubTest() {
|
||||||
|
assertThrows(IllegalArgumentException.class, () -> {
|
||||||
|
FileUtil.isSub(new java.io.File("d:/any/path"), null);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@Disabled
|
@Disabled
|
||||||
public void appendLinesTest(){
|
public void appendLinesTest(){
|
||||||
|
Reference in New Issue
Block a user