From ef61893d59386f96b6ff2894a828eb6b15eda258 Mon Sep 17 00:00:00 2001 From: LoveHuahua Date: Mon, 13 Feb 2023 22:04:34 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=AD=A3=E6=96=B9=E6=B3=95=E7=9A=84?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E7=B1=BB=E5=9E=8B=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=8D=95=E5=85=83=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/hutool/core/stream/EasyStream.java | 14 ++++---- .../cn/hutool/core/stream/EasyStreamTest.java | 35 +++++++++++-------- 2 files changed, 27 insertions(+), 22 deletions(-) diff --git a/hutool-core/src/main/java/cn/hutool/core/stream/EasyStream.java b/hutool-core/src/main/java/cn/hutool/core/stream/EasyStream.java index 1e2f4a919..549911bc5 100644 --- a/hutool-core/src/main/java/cn/hutool/core/stream/EasyStream.java +++ b/hutool-core/src/main/java/cn/hutool/core/stream/EasyStream.java @@ -320,7 +320,7 @@ public class EasyStream extends AbstractEnhancedWrappedStream 如果元素的长度为0 那么会返回为空的opt */ public Opt avg(final Function mapper) { return avg(mapper, 2); @@ -332,7 +332,7 @@ public class EasyStream extends AbstractEnhancedWrappedStream */ public Opt avg(final Function mapper, int scale) { return avg(mapper, scale, RoundingMode.HALF_UP); @@ -344,7 +344,7 @@ public class EasyStream extends AbstractEnhancedWrappedStream 如果元素的长度为0 那么会返回为空的opt */ public Opt avg(final Function mapper, int scale, RoundingMode roundingMode) { //元素列表 @@ -362,7 +362,7 @@ public class EasyStream extends AbstractEnhancedWrappedStream mapper) { return stream.mapToInt(mapper).average(); @@ -406,9 +406,9 @@ public class EasyStream extends AbstractEnhancedWrappedStream{@code - * accept(t) - * return this; - * } + * accept(t) + * return this; + * } */ default Builder add(final T t) { accept(t); diff --git a/hutool-core/src/test/java/cn/hutool/core/stream/EasyStreamTest.java b/hutool-core/src/test/java/cn/hutool/core/stream/EasyStreamTest.java index f44a0570a..5646d772f 100644 --- a/hutool-core/src/test/java/cn/hutool/core/stream/EasyStreamTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/stream/EasyStreamTest.java @@ -445,16 +445,17 @@ public class EasyStreamTest { public void testIntSumAndAvg() { //测试int类型的总和 int sum = EasyStream.of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10).sum(Integer::intValue); - Assert.assertEquals(sum, 55); + Assert.assertEquals(55, sum); //测试为空 List integerList = new ArrayList<>(); int emptySum = EasyStream.of(integerList).sum(Integer::intValue); - Assert.assertEquals(emptySum, 0); + Assert.assertEquals(0, emptySum); //测试平均值 OptionalDouble avg = EasyStream.of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10).avg(Integer::intValue); - Assert.assertEquals(avg.getAsDouble(), 5.5, 2); + Assert.assertTrue(avg.isPresent()); + Assert.assertEquals(5.5, avg.getAsDouble(), 2); //测试元素为空 OptionalDouble emptyAvg = EasyStream.of(integerList).avg(Integer::intValue); @@ -466,17 +467,18 @@ public class EasyStreamTest { public void testDoubleSumAndAvg() { //测试double类型的sum double doubleSum = EasyStream.of(1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 8.8, 9.9, 10.10).sum(Double::doubleValue); - Assert.assertEquals(doubleSum, 59.6, 2); + Assert.assertEquals(59.6, doubleSum, 2); //测试double类型的sum 无元素double List doubleList = new ArrayList<>(); double emptySum = EasyStream.of(doubleList).sum(Double::doubleValue); - Assert.assertEquals(emptySum, 0.0, 2); + Assert.assertEquals(0.0, emptySum, 2); //测试double类型的avg OptionalDouble doubleAvg = EasyStream.of(1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 8.8, 9.9, 10.10) .avg(Double::doubleValue); - Assert.assertEquals(doubleAvg.getAsDouble(), 5.96, 2); + Assert.assertTrue(doubleAvg.isPresent()); + Assert.assertEquals(5.96, doubleAvg.getAsDouble(), 2); //测试double类型的 空元素的avg OptionalDouble emptyDoubleAvg = EasyStream.of(doubleList).avg(Double::doubleValue); @@ -488,16 +490,17 @@ public class EasyStreamTest { public void testLongSumAndAvg() { //测试long类型的sum long sum = EasyStream.of(1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L).sum(Long::longValue); - Assert.assertEquals(sum, 55); + Assert.assertEquals(55, sum); //测试long类型的空元素 sum List longList = new ArrayList<>(); long emptySum = EasyStream.of(longList).sum(Long::longValue); - Assert.assertEquals(emptySum, 0L); + Assert.assertEquals(0L, emptySum); //测试long类型的avg OptionalDouble doubleAvg = EasyStream.of(1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L).avg(Long::longValue); - Assert.assertEquals(doubleAvg.getAsDouble(), 5.5, 2); + Assert.assertTrue(doubleAvg.isPresent()); + Assert.assertEquals(5.5, doubleAvg.getAsDouble(), 2); //测试long类型的avg 空元素 OptionalDouble emptyDoubleAvg = EasyStream.of(longList).avg(Long::longValue); @@ -513,34 +516,36 @@ public class EasyStreamTest { NumberUtil.toBigDecimal(3.3), NumberUtil.toBigDecimal(4.4), NumberUtil.toBigDecimal(5.5), NumberUtil.toBigDecimal(6.6), NumberUtil.toBigDecimal(7.7), NumberUtil.toBigDecimal(8.8), NumberUtil.toBigDecimal(9.9), NumberUtil.toBigDecimal(10.10)).sum(Function.identity()); - Assert.assertEquals(sum, NumberUtil.toBigDecimal(59.6)); + Assert.assertEquals(NumberUtil.toBigDecimal(59.6), sum); //测试bigDecimal的sum 空元素 List bigDecimalEmptyList = new ArrayList<>(); BigDecimal emptySum = EasyStream.of(bigDecimalEmptyList).sum(Function.identity()); - Assert.assertEquals(emptySum, BigDecimal.ZERO); + Assert.assertEquals(BigDecimal.ZERO, emptySum); - //测试bigDecimal的avg + //测试bigDecimal的avg全参 Opt bigDecimalAvgFullParam = EasyStream.of(NumberUtil.toBigDecimal(1.1), NumberUtil.toBigDecimal(2.2), NumberUtil.toBigDecimal(3.3), NumberUtil.toBigDecimal(4.4), NumberUtil.toBigDecimal(5.5), NumberUtil.toBigDecimal(6.6), NumberUtil.toBigDecimal(7.7), NumberUtil.toBigDecimal(8.8), NumberUtil.toBigDecimal(9.9), NumberUtil.toBigDecimal(10.10)) .avg(Function.identity(), 2, RoundingMode.HALF_UP); - Assert.assertEquals(bigDecimalAvgFullParam.get(), NumberUtil.toBigDecimal(5.96)); + Assert.assertEquals(NumberUtil.toBigDecimal(5.96), bigDecimalAvgFullParam.get()); + //测试bigDecimal的avg双参 Opt bigDecimalAvgOneParam = EasyStream.of(NumberUtil.toBigDecimal(1.1), NumberUtil.toBigDecimal(2.2), NumberUtil.toBigDecimal(3.3), NumberUtil.toBigDecimal(4.4), NumberUtil.toBigDecimal(5.5), NumberUtil.toBigDecimal(6.6), NumberUtil.toBigDecimal(7.7), NumberUtil.toBigDecimal(8.8), NumberUtil.toBigDecimal(9.9), NumberUtil.toBigDecimal(10.10)) .avg(Function.identity()); - Assert.assertEquals(bigDecimalAvgOneParam.get(), NumberUtil.toBigDecimal(5.96)); + Assert.assertEquals(NumberUtil.toBigDecimal(5.96), bigDecimalAvgOneParam.get()); + //测试bigDecimal的avg单参 Opt bigDecimalAvgTwoParam = EasyStream.of(NumberUtil.toBigDecimal(1.1), NumberUtil.toBigDecimal(2.2), NumberUtil.toBigDecimal(3.3), NumberUtil.toBigDecimal(4.4), NumberUtil.toBigDecimal(5.5), NumberUtil.toBigDecimal(6.6), NumberUtil.toBigDecimal(7.7), NumberUtil.toBigDecimal(8.8), NumberUtil.toBigDecimal(9.9), NumberUtil.toBigDecimal(10.10)) .avg(Function.identity(), 2); - Assert.assertEquals(bigDecimalAvgTwoParam.get(), NumberUtil.toBigDecimal(5.96)); + Assert.assertEquals(NumberUtil.toBigDecimal(5.96), bigDecimalAvgTwoParam.get()); //测试bigDecimal的avg 空元素 Opt emptyBigDecimalAvg = EasyStream.of(bigDecimalEmptyList)