From 34dc797d23128730849633960847e23d05988929 Mon Sep 17 00:00:00 2001 From: Looly Date: Mon, 24 Oct 2022 11:55:12 +0800 Subject: [PATCH] add test --- .../core/collection/partition/Partition.java | 4 ++ .../collection/partition/package-info.java | 6 ++ .../collection/partition/PartitionTest.java | 56 +++++++++++++++++++ 3 files changed, 66 insertions(+) create mode 100755 hutool-core/src/main/java/cn/hutool/core/collection/partition/package-info.java create mode 100755 hutool-core/src/test/java/cn/hutool/core/collection/partition/PartitionTest.java diff --git a/hutool-core/src/main/java/cn/hutool/core/collection/partition/Partition.java b/hutool-core/src/main/java/cn/hutool/core/collection/partition/Partition.java index 1f81f3be0..c407ea858 100644 --- a/hutool-core/src/main/java/cn/hutool/core/collection/partition/Partition.java +++ b/hutool-core/src/main/java/cn/hutool/core/collection/partition/Partition.java @@ -42,6 +42,10 @@ public class Partition extends AbstractList> { public int size() { // 此处采用动态计算,以应对list变 final int size = this.size; + if(0 == size){ + return 0; + } + final int total = list.size(); // 类似于判断余数,当总数非整份size时,多余的数>=1,则相当于被除数多一个size,做到+1目的 // 类似于:if(total % size > 0){length += 1;} diff --git a/hutool-core/src/main/java/cn/hutool/core/collection/partition/package-info.java b/hutool-core/src/main/java/cn/hutool/core/collection/partition/package-info.java new file mode 100755 index 000000000..f24820d37 --- /dev/null +++ b/hutool-core/src/main/java/cn/hutool/core/collection/partition/package-info.java @@ -0,0 +1,6 @@ +/** + * 列表分区或分段 + * + * @author looly + */ +package cn.hutool.core.collection.partition; diff --git a/hutool-core/src/test/java/cn/hutool/core/collection/partition/PartitionTest.java b/hutool-core/src/test/java/cn/hutool/core/collection/partition/PartitionTest.java new file mode 100755 index 000000000..6d4788e0e --- /dev/null +++ b/hutool-core/src/test/java/cn/hutool/core/collection/partition/PartitionTest.java @@ -0,0 +1,56 @@ +package cn.hutool.core.collection.partition; + +import cn.hutool.core.collection.ListUtil; +import org.junit.Assert; +import org.junit.Test; + +import java.util.ArrayList; +import java.util.List; + +public class PartitionTest { + @Test + public void sizeTest() { + final ArrayList list = ListUtil.of(1, 2, 3, 4, 5); + final Partition partition = new Partition<>(list, 4); + Assert.assertEquals(2, partition.size()); + } + + @Test + public void getSizeTest() { + List mockedList = makingList(19); + Partition partition = new Partition<>(mockedList, 10); + Assert.assertEquals(2, partition.size()); + + mockedList = makingList(11); + partition = new Partition<>(mockedList, 10); + Assert.assertEquals(2, partition.size()); + + mockedList = makingList(10); + partition = new Partition<>(mockedList, 10); + Assert.assertEquals(1, partition.size()); + + mockedList = makingList(9); + partition = new Partition<>(mockedList, 10); + Assert.assertEquals(1, partition.size()); + + mockedList = makingList(5); + partition = new Partition<>(mockedList, 10); + Assert.assertEquals(1, partition.size()); + } + + @Test + public void getZeroSizeTest() { + final List mockedList = makingList(0); + final Partition partition = new Partition<>(mockedList, 10); + Assert.assertEquals(0, partition.size()); + } + + private List makingList(final int length) { + final List list = ListUtil.of(); + for (int i = 0; i < length; i++) { + list.add(i); + } + + return list; + } +}