This commit is contained in:
Looly
2023-03-15 03:07:19 +08:00
parent b2235e4520
commit 48fdda9faf
16 changed files with 520 additions and 462 deletions

View File

@@ -864,7 +864,7 @@ public class CollUtilTest {
objects.add(Dict.of().set("name", "姓名:" + i));
}
Assert.assertEquals(0, CollUtil.page(3, 5, objects).size());
Assert.assertEquals(0, ListUtil.page(objects, 3, 5).size());
}
@Test

View File

@@ -2,7 +2,7 @@ package cn.hutool.core.collection;
import cn.hutool.core.date.StopWatch;
import cn.hutool.core.lang.Console;
import cn.hutool.core.util.PageUtil;
import cn.hutool.core.math.PageInfo;
import cn.hutool.core.util.RandomUtil;
import lombok.AllArgsConstructor;
import lombok.Data;
@@ -10,11 +10,7 @@ import org.junit.Assert;
import org.junit.Ignore;
import org.junit.Test;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.concurrent.CopyOnWriteArrayList;
public class ListUtilTest {
@@ -105,51 +101,32 @@ public class ListUtilTest {
}
@Test
public void pageTest() {
public void pageTest1() {
final List<Integer> a = ListUtil.ofLinked(1, 2, 3, 4, 5);
PageUtil.setFirstPageNo(1);
final int[] a_1 = ListUtil.page(1, 2, a).stream().mapToInt(Integer::valueOf).toArray();
final int[] a1 = ListUtil.page(1, 2, a).stream().mapToInt(Integer::valueOf).toArray();
final int[] a2 = ListUtil.page(2, 2, a).stream().mapToInt(Integer::valueOf).toArray();
final int[] a3 = ListUtil.page(3, 2, a).stream().mapToInt(Integer::valueOf).toArray();
final int[] a4 = ListUtil.page(4, 2, a).stream().mapToInt(Integer::valueOf).toArray();
final int[] a_1 = ListUtil.page(a, 0, 2).stream().mapToInt(Integer::valueOf).toArray();
final int[] a1 = ListUtil.page(a, 0, 2).stream().mapToInt(Integer::valueOf).toArray();
final int[] a2 = ListUtil.page(a, 1, 2).stream().mapToInt(Integer::valueOf).toArray();
final int[] a3 = ListUtil.page(a, 2, 2).stream().mapToInt(Integer::valueOf).toArray();
final int[] a4 = ListUtil.page(a, 3, 2).stream().mapToInt(Integer::valueOf).toArray();
Assert.assertArrayEquals(new int[]{1, 2}, a_1);
Assert.assertArrayEquals(new int[]{1, 2}, a1);
Assert.assertArrayEquals(new int[]{3, 4}, a2);
Assert.assertArrayEquals(new int[]{5}, a3);
Assert.assertArrayEquals(new int[]{}, a4);
}
PageUtil.setFirstPageNo(2);
final int[] b_1 = ListUtil.page(1, 2, a).stream().mapToInt(Integer::valueOf).toArray();
final int[] b1 = ListUtil.page(2, 2, a).stream().mapToInt(Integer::valueOf).toArray();
final int[] b2 = ListUtil.page(3, 2, a).stream().mapToInt(Integer::valueOf).toArray();
final int[] b3 = ListUtil.page(4, 2, a).stream().mapToInt(Integer::valueOf).toArray();
final int[] b4 = ListUtil.page(5, 2, a).stream().mapToInt(Integer::valueOf).toArray();
Assert.assertArrayEquals(new int[]{1, 2}, b_1);
Assert.assertArrayEquals(new int[]{1, 2}, b1);
Assert.assertArrayEquals(new int[]{3, 4}, b2);
Assert.assertArrayEquals(new int[]{5}, b3);
Assert.assertArrayEquals(new int[]{}, b4);
PageUtil.setFirstPageNo(0);
final int[] c_1 = ListUtil.page(-1, 2, a).stream().mapToInt(Integer::valueOf).toArray();
final int[] c1 = ListUtil.page(0, 2, a).stream().mapToInt(Integer::valueOf).toArray();
final int[] c2 = ListUtil.page(1, 2, a).stream().mapToInt(Integer::valueOf).toArray();
final int[] c3 = ListUtil.page(2, 2, a).stream().mapToInt(Integer::valueOf).toArray();
final int[] c4 = ListUtil.page(3, 2, a).stream().mapToInt(Integer::valueOf).toArray();
Assert.assertArrayEquals(new int[]{1, 2}, c_1);
Assert.assertArrayEquals(new int[]{1, 2}, c1);
Assert.assertArrayEquals(new int[]{3, 4}, c2);
Assert.assertArrayEquals(new int[]{5}, c3);
Assert.assertArrayEquals(new int[]{}, c4);
PageUtil.setFirstPageNo(1);
final int[] d1 = ListUtil.page(0, 8, a).stream().mapToInt(Integer::valueOf).toArray();
@Test
public void pageTest2() {
final List<Integer> a = ListUtil.ofLinked(1, 2, 3, 4, 5);
final int[] d1 = ListUtil.page(a, PageInfo.of(a.size(), 8).setFirstPageNo(0).setPageNo(0))
.stream().mapToInt(Integer::valueOf).toArray();
Assert.assertArrayEquals(new int[]{1, 2, 3, 4, 5}, d1);
}
@Test
public void pageTest3() {
final List<Integer> a = ListUtil.ofLinked(1, 2, 3, 4, 5);
// page with consumer
final List<List<Integer>> pageListData = new ArrayList<>();
ListUtil.page(a, 2, pageListData::add);
@@ -168,9 +145,6 @@ public class ListUtilTest {
Assert.assertArrayEquals(new int[]{}, pageListData.get(0).stream().mapToInt(Integer::valueOf).toArray());
Assert.assertArrayEquals(new int[]{3, 4}, pageListData.get(1).stream().mapToInt(Integer::valueOf).toArray());
Assert.assertArrayEquals(new int[]{5}, pageListData.get(2).stream().mapToInt(Integer::valueOf).toArray());
// 恢复默认值,避免影响其他测试用例
PageUtil.setFirstPageNo(0);
}
@Test

View File

@@ -0,0 +1,32 @@
package cn.hutool.core.math;
import org.junit.Assert;
import org.junit.Test;
public class PageInfoTest {
@Test
public void pagesTest() {
PageInfo pageInfo = new PageInfo(20, 3);
Assert.assertEquals(7, pageInfo.getPages());
pageInfo = new PageInfo(20, 4);
Assert.assertEquals(5, pageInfo.getPages());
}
@Test
public void getSegmentTest() {
final PageInfo page = PageInfo.of(20, 10);
Assert.assertEquals("[0, 9]", page.getSegment().toString());
Assert.assertEquals("[10, 19]", page.nextPage().getSegment().toString());
Assert.assertEquals("[20, 20]", page.nextPage().getSegment().toString());
}
@Test
public void getSegmentTest2() {
final PageInfo page = PageInfo.of(20, 10);
page.setFirstPageNo(0).setPageNo(0);
Assert.assertEquals("[0, 9]", page.getSegment().toString());
Assert.assertEquals("[10, 19]", page.nextPage().getSegment().toString());
Assert.assertEquals("[20, 20]", page.nextPage().getSegment().toString());
}
}

View File

@@ -91,15 +91,15 @@ public class DfaTest {
Assert.assertEquals(3, result.size());
Assert.assertEquals("", result.get(0).getWord());
Assert.assertEquals(0, result.get(0).getStartIndex().intValue());
Assert.assertEquals(0, result.get(0).getBeginIndex().intValue());
Assert.assertEquals(0, result.get(0).getEndIndex().intValue());
Assert.assertEquals("赵阿", result.get(1).getWord());
Assert.assertEquals(0, result.get(1).getStartIndex().intValue());
Assert.assertEquals(0, result.get(1).getBeginIndex().intValue());
Assert.assertEquals(1, result.get(1).getEndIndex().intValue());
Assert.assertEquals("赵阿三", result.get(2).getWord());
Assert.assertEquals(0, result.get(2).getStartIndex().intValue());
Assert.assertEquals(0, result.get(2).getBeginIndex().intValue());
Assert.assertEquals(2, result.get(2).getEndIndex().intValue());
}

View File

@@ -1,35 +0,0 @@
package cn.hutool.core.util;
import org.junit.Assert;
import org.junit.Test;
/**
* 分页单元测试
*
* @author Looly
*/
public class PageUtilTest {
@Test
public void transToStartEndTest() {
final int[] startEnd1 = PageUtil.transToStartEnd(0, 10);
Assert.assertEquals(0, startEnd1[0]);
Assert.assertEquals(10, startEnd1[1]);
final int[] startEnd2 = PageUtil.transToStartEnd(1, 10);
Assert.assertEquals(10, startEnd2[0]);
Assert.assertEquals(20, startEnd2[1]);
}
@Test
public void totalPage() {
final int totalPage = PageUtil.totalPage(20, 3);
Assert.assertEquals(7, totalPage);
}
@Test
public void rainbowTest() {
final int[] rainbow = PageUtil.rainbow(5, 20, 6);
Assert.assertArrayEquals(new int[]{3, 4, 5, 6, 7, 8}, rainbow);
}
}