From 7ce0ddf343edbed29ef709b184ed845c03e3e31c Mon Sep 17 00:00:00 2001 From: zzzj Date: Thu, 23 Mar 2023 11:54:53 +0800 Subject: [PATCH] parse( Int/Long/Float/Double/Number ) Test Case --- .../cn/hutool/core/util/NumberUtilTest.java | 109 ++++++++++++++++++ 1 file changed, 109 insertions(+) diff --git a/hutool-core/src/test/java/cn/hutool/core/util/NumberUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/util/NumberUtilTest.java index 3a1f08330..80bfa5ee9 100644 --- a/hutool-core/src/test/java/cn/hutool/core/util/NumberUtilTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/util/NumberUtilTest.java @@ -10,6 +10,12 @@ import java.math.BigInteger; import java.math.RoundingMode; import java.util.Set; +import static cn.hutool.core.util.NumberUtil.parseDouble; +import static cn.hutool.core.util.NumberUtil.parseFloat; +import static org.hamcrest.CoreMatchers.equalTo; +import static org.hamcrest.CoreMatchers.nullValue; +import static org.hamcrest.MatcherAssert.assertThat; + /** * {@link NumberUtil} 单元测试类 * @@ -296,6 +302,23 @@ public class NumberUtilTest { Assert.assertEquals(0, v1); } + @Test + public void parseIntTest4() { + + // -------------------------- Parse failed ----------------------- + + assertThat(NumberUtil.parseInt("abc", null), nullValue()); + + assertThat(NumberUtil.parseInt("abc", 456), equalTo(456)); + + // -------------------------- Parse success ----------------------- + + assertThat(NumberUtil.parseInt("123.abc", 789), equalTo(123)); + + assertThat(NumberUtil.parseInt("123.3", null), equalTo(123)); + + } + @Test(expected = NumberFormatException.class) public void parseNumberTest4(){ // issue#I5M55F @@ -324,6 +347,29 @@ public class NumberUtilTest { Assert.assertTrue(number instanceof BigDecimal); } + @Test + public void parseNumberTest3(){ + + // -------------------------- Parse failed ----------------------- + + assertThat(NumberUtil.parseNumber("abc", null), nullValue()); + + assertThat(NumberUtil.parseNumber(StrUtil.EMPTY, null), nullValue()); + + assertThat(NumberUtil.parseNumber(StrUtil.repeat(StrUtil.SPACE, 10), null), nullValue()); + + assertThat(NumberUtil.parseNumber("abc", 456).intValue(), equalTo(456)); + + // -------------------------- Parse success ----------------------- + + assertThat(NumberUtil.parseNumber("123.abc", 789).intValue(), equalTo(123)); + + assertThat(NumberUtil.parseNumber("123.3", null).doubleValue(), equalTo(123.3D)); + + assertThat(NumberUtil.parseNumber("0.123.3", null).doubleValue(), equalTo(0.123D)); + + } + @Test public void parseHexNumberTest() { // 千位分隔符去掉 @@ -362,6 +408,69 @@ public class NumberUtilTest { Assert.assertEquals(0, number); } + @Test + public void parseLongTest2() { + + // -------------------------- Parse failed ----------------------- + + Long v1 = NumberUtil.parseLong(null, null); + assertThat(v1, nullValue()); + + Long v2 = NumberUtil.parseLong(StrUtil.EMPTY, null); + assertThat(v2, nullValue()); + + Long v3 = NumberUtil.parseLong("L3221", 1233L); + assertThat(v3, equalTo(1233L)); + + // -------------------------- Parse success ----------------------- + + Long v4 = NumberUtil.parseLong("1233L", null); + assertThat(v4, equalTo(1233L)); + + } + + @Test + public void parseFloatTest() throws Exception { + + // -------------------------- Parse failed ----------------------- + + assertThat(parseFloat("abc", null), nullValue()); + + assertThat(parseFloat("a123.33", null), nullValue()); + + assertThat(parseFloat("..123", null), nullValue()); + + assertThat(parseFloat(StrUtil.EMPTY, 1233F), equalTo(1233F)); + + // -------------------------- Parse success ----------------------- + + assertThat(parseFloat("123.33a", null), equalTo(123.33F)); + + assertThat(parseFloat(".123", null), equalTo(0.123F)); + + } + + @Test + public void parseDoubleTest() throws Exception { + + // -------------------------- Parse failed ----------------------- + + assertThat(parseDouble("abc", null), nullValue()); + + assertThat(parseDouble("a123.33", null), nullValue()); + + assertThat(parseDouble("..123", null), nullValue()); + + assertThat(parseDouble(StrUtil.EMPTY, 1233D), equalTo(1233D)); + + // -------------------------- Parse success ----------------------- + + assertThat(parseDouble("123.33a", null), equalTo(123.33D)); + + assertThat(parseDouble(".123", null), equalTo(0.123D)); + + } + @Test public void factorialTest(){ long factorial = NumberUtil.factorial(0);