This commit is contained in:
Looly 2022-09-15 23:13:19 +08:00
parent a211d6eada
commit a929236bb7
15 changed files with 63 additions and 68 deletions

View File

@ -430,8 +430,7 @@ public class NumberChineseFormatter {
}
/**
* 中文大写数字金额转换为数字返回结果以元为单位的BigDecimal类型数字
*
* 中文大写数字金额转换为数字返回结果以元为单位的BigDecimal类型数字<br>
*
* 陆万柒仟伍佰伍拾陆元叁角贰分返回67556.32
* 叁角贰分返回0.32
@ -503,8 +502,8 @@ public class NumberChineseFormatter {
}
BigDecimal amount = new BigDecimal(y);
amount = amount.add(BigDecimal.valueOf(j).divide(BigDecimal.TEN, RoundingMode.HALF_UP));
amount = amount.add(BigDecimal.valueOf(f).divide(BigDecimal.valueOf(100), RoundingMode.HALF_UP));
amount = amount.add(BigDecimal.valueOf(j).divide(BigDecimal.TEN, 2, RoundingMode.HALF_UP));
amount = amount.add(BigDecimal.valueOf(f).divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP));
return amount;
}

View File

@ -854,7 +854,7 @@ public class CollUtilTest {
final List<Long> result = CollUtil.subtractToList(list1, list2);
Assert.assertEquals(1, result.size());
Assert.assertEquals(1L, result.get(0), 1);
Assert.assertEquals(1L, (long)result.get(0));
}
@Test

View File

@ -165,7 +165,7 @@ public class ConvertTest {
public void toNumberTest() {
final Object a = "12.45";
final Number number = Convert.toNumber(a);
Assert.assertEquals(12.45D, number.doubleValue(), 2);
Assert.assertEquals(12.45D, number.doubleValue(), 0);
}
@Test
@ -368,28 +368,28 @@ public class ConvertTest {
final String hex2 = "CD0CCB43";
final byte[] value = HexUtil.decodeHex(hex2);
final float f = Convert.toFloat(value);
Assert.assertEquals(406.1F, f, 2);
Assert.assertEquals(406.1F, f, 0);
}
@Test
public void floatToDoubleTest(){
final float a = 0.45f;
final double b = Convert.toDouble(a);
Assert.assertEquals(a, b, 5);
Assert.assertEquals(0.45D, b, 0);
}
@Test
public void floatToDoubleAddrTest(){
final float a = 0.45f;
final DoubleAdder adder = Convert.convert(DoubleAdder.class, a);
Assert.assertEquals(a, adder.doubleValue(), 5);
Assert.assertEquals(0.45D, adder.doubleValue(), 0);
}
@Test
public void doubleToFloatTest(){
final double a = 0.45f;
final float b = Convert.toFloat(a);
Assert.assertEquals(a, b, 5);
Assert.assertEquals(a, b, 0);
}
@Test

View File

@ -36,7 +36,7 @@ public class ConvertToNumberTest {
@Test
public void toBigDecimalTest(){
BigDecimal bigDecimal = Convert.toBigDecimal("1.1f");
Assert.assertEquals(1.1f, bigDecimal.floatValue(), 1);
Assert.assertEquals(1.1f, bigDecimal.floatValue(), 0);
bigDecimal = Convert.toBigDecimal("1L");
Assert.assertEquals(1L, bigDecimal.longValue());

View File

@ -358,11 +358,11 @@ public class NumberChineseFormatterTest {
*/
Assert.assertEquals(67556, NumberChineseFormatter.chineseMoneyToNumber("陆万柒仟伍佰伍拾陆圆").longValue());
Assert.assertEquals(67556, NumberChineseFormatter.chineseMoneyToNumber("陆万柒仟伍佰伍拾陆元").longValue());
Assert.assertEquals(0.3D, NumberChineseFormatter.chineseMoneyToNumber("叁角").doubleValue(), 2);
Assert.assertEquals(0.02, NumberChineseFormatter.chineseMoneyToNumber("贰分").doubleValue(), 2);
Assert.assertEquals(67556.3, NumberChineseFormatter.chineseMoneyToNumber("陆万柒仟伍佰伍拾陆元叁角").doubleValue(), 2);
Assert.assertEquals(67556.02, NumberChineseFormatter.chineseMoneyToNumber("陆万柒仟伍佰伍拾陆元贰分").doubleValue(), 2);
Assert.assertEquals(0.32, NumberChineseFormatter.chineseMoneyToNumber("叁角贰分").doubleValue(), 2);
Assert.assertEquals(67556.32, NumberChineseFormatter.chineseMoneyToNumber("陆万柒仟伍佰伍拾陆元叁角贰分").doubleValue(), 2);
Assert.assertEquals(0.3D, NumberChineseFormatter.chineseMoneyToNumber("叁角").doubleValue(), 0);
Assert.assertEquals(0.02, NumberChineseFormatter.chineseMoneyToNumber("贰分").doubleValue(), 0);
Assert.assertEquals(67556.3, NumberChineseFormatter.chineseMoneyToNumber("陆万柒仟伍佰伍拾陆元叁角").doubleValue(), 0);
Assert.assertEquals(67556.02, NumberChineseFormatter.chineseMoneyToNumber("陆万柒仟伍佰伍拾陆元贰分").doubleValue(), 0);
Assert.assertEquals(0.32, NumberChineseFormatter.chineseMoneyToNumber("叁角贰分").doubleValue(), 0);
Assert.assertEquals(67556.32, NumberChineseFormatter.chineseMoneyToNumber("陆万柒仟伍佰伍拾陆元叁角贰分").doubleValue(), 0);
}
}

View File

@ -12,10 +12,6 @@ import java.util.Random;
import java.util.Set;
import java.util.regex.Pattern;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
/**
* Tests for NanoId.
*
@ -36,7 +32,7 @@ public class NanoIdTest {
if (ids.contains(id) == false) {
ids.add(id);
} else {
fail("Non-unique ID generated: " + id);
Assert.fail("Non-unique ID generated: " + id);
}
}
@ -59,7 +55,7 @@ public class NanoIdTest {
for (final String expectedId : expectedIds) {
final String generatedId = NanoId.randomNanoId(random, alphabet, size);
assertEquals(expectedId, generatedId);
Assert.assertEquals(expectedId, generatedId);
}
}
@ -86,7 +82,7 @@ public class NanoIdTest {
}
patternBuilder.append("]+$");
assertTrue(id.matches(patternBuilder.toString()));
Assert.assertTrue(id.matches(patternBuilder.toString()));
}
}
@ -99,7 +95,7 @@ public class NanoIdTest {
final String id = NanoId.randomNanoId(size);
assertEquals(size, id.length());
Assert.assertEquals(size, id.length());
}
}

View File

@ -8,44 +8,44 @@ public class CalculatorTest {
@Test
public void conversationTest(){
final double conversion = Calculator.conversion("(0*1--3)-5/-4-(3*(-2.13))");
Assert.assertEquals(10.64, conversion, 2);
Assert.assertEquals(10.64, conversion, 0);
}
@Test
public void conversationTest2(){
final double conversion = Calculator.conversion("77 * 12");
Assert.assertEquals(924.0, conversion, 2);
Assert.assertEquals(924.0, conversion, 0);
}
@Test
public void conversationTest3(){
final double conversion = Calculator.conversion("1");
Assert.assertEquals(1, conversion, 2);
Assert.assertEquals(1, conversion, 0);
}
@Test
public void conversationTest4(){
final double conversion = Calculator.conversion("(88*66/23)%26+45%9");
Assert.assertEquals((88D * 66 / 23) % 26, conversion, 2);
Assert.assertEquals((88D * 66 / 23) % 26, conversion, 0.000000001);
}
@Test
public void conversationTest5(){
// https://github.com/dromara/hutool/issues/1984
final double conversion = Calculator.conversion("((1/1) / (1/1) -1) * 100");
Assert.assertEquals(0, conversion, 2);
Assert.assertEquals(0, conversion, 0);
}
@Test
public void conversationTest6() {
final double conversion = Calculator.conversion("-((2.12-2) * 100)");
Assert.assertEquals(-1D * (2.12 - 2) * 100, conversion, 2);
Assert.assertEquals(-1D * (2.12D - 2D) * 100D, conversion, 0.00001);
}
@Test
public void conversationTest7() {
//https://gitee.com/dromara/hutool/issues/I4KONB
final double conversion = Calculator.conversion("((-2395+0) * 0.3+140.24+35+90)/30");
Assert.assertEquals(-15.11, conversion, 2);
Assert.assertEquals(-15.11D, conversion, 0.01);
}
}

View File

@ -16,8 +16,8 @@ public class MoneyTest {
@Test
public void centToYuanTest() {
final Money money = new Money(1234, 56);
Assert.assertEquals(1234.56D, money.getAmount().doubleValue(), 2);
Assert.assertEquals(1234.56D, money.getAmount().doubleValue(), 0);
Assert.assertEquals(1234.56D, MathUtil.centToYuan(123456), 2);
Assert.assertEquals(1234.56D, MathUtil.centToYuan(123456), 0);
}
}

View File

@ -231,9 +231,9 @@ public class AbstractEnhancedWrappedStreamTest {
@Test
public void testMapToDouble() {
final double[] array = wrap(1d, 2d, 3d).mapToDouble(Double::intValue).toArray();
Assert.assertEquals(1d, array[0], 0.01);
Assert.assertEquals(2d, array[1], 0.01);
Assert.assertEquals(3d, array[2], 0.01);
Assert.assertEquals(1d, array[0], 0);
Assert.assertEquals(2d, array[1], 0);
Assert.assertEquals(3d, array[2], 0);
}
@Test
@ -251,9 +251,9 @@ public class AbstractEnhancedWrappedStreamTest {
@Test
public void testFlatMapToDouble() {
final double[] array = wrap(1d, 2d, 3d).flatMapToDouble(DoubleStream::of).toArray();
Assert.assertEquals(1d, array[0], 0.01);
Assert.assertEquals(2d, array[1], 0.01);
Assert.assertEquals(3d, array[2], 0.01);
Assert.assertEquals(1d, array[0], 0);
Assert.assertEquals(2d, array[1], 0);
Assert.assertEquals(3d, array[2], 0);
}
@Test

View File

@ -16,7 +16,7 @@ public class TextSimilarityTest {
final String b = "一个文本,独一无二的文本";
final double degree = TextSimilarity.similar(a, b);
Assert.assertEquals(0.8571428571428571D, degree, 16);
Assert.assertEquals(0.8461538462D, degree, 0.0000000001);
final String similarPercent = TextSimilarity.similar(a, b, 2);
Assert.assertEquals("84.62%", similarPercent);
@ -28,7 +28,7 @@ public class TextSimilarityTest {
final String b = "一个文本,独一无二的文本,#,>>?#$%^%$&^&^%";
final double degree = TextSimilarity.similar(a, b);
Assert.assertEquals(0.8571428571428571D, degree, 16);
Assert.assertEquals(0.8461538462D, degree, 0.0001);
final String similarPercent = TextSimilarity.similar(a, b, 2);
Assert.assertEquals("84.62%", similarPercent);

View File

@ -176,7 +176,7 @@ public class ArrayUtilTest {
Assert.assertEquals(13, maxLong);
final double maxDouble = ArrayUtil.max(1D, 2.4D, 13.0D, 4.55D, 5D);
Assert.assertEquals(13.0, maxDouble, 2);
Assert.assertEquals(13.0, maxDouble, 0);
final BigDecimal one = new BigDecimal("1.00");
final BigDecimal two = new BigDecimal("2.0");
@ -199,7 +199,7 @@ public class ArrayUtilTest {
Assert.assertEquals(1, minLong);
final double minDouble = ArrayUtil.min(1D, 2.4D, 13.0D, 4.55D, 5D);
Assert.assertEquals(1.0, minDouble, 2);
Assert.assertEquals(1.0, minDouble, 0);
}
@Test

View File

@ -97,7 +97,7 @@ public class ByteUtilTest {
final byte[] bytesLong = ByteUtil.floatToBytes(f1, ByteOrder.LITTLE_ENDIAN);
final float f2 = ByteUtil.bytesToFloat(bytesLong, ByteOrder.LITTLE_ENDIAN);
Assert.assertEquals(f1, f2, 2);
Assert.assertEquals(f1, f2, 0);
}
@Test
@ -108,7 +108,7 @@ public class ByteUtilTest {
final byte[] bytesLong = ByteUtil.floatToBytes(f1, ByteOrder.BIG_ENDIAN);
final float f2 = ByteUtil.bytesToFloat(bytesLong, ByteOrder.BIG_ENDIAN);
Assert.assertEquals(f1, f2, 2);
Assert.assertEquals(f1, f2, 0);
}
@Test

View File

@ -14,43 +14,43 @@ public class CoordinateUtilTest {
@Test
public void wgs84ToGcj02Test(){
final CoordinateUtil.Coordinate coordinate = CoordinateUtil.wgs84ToGcj02(116.404, 39.915);
Assert.assertEquals(116.41033392216508D, coordinate.getLng(), 15);
Assert.assertEquals(39.91640428150164D, coordinate.getLat(), 15);
Assert.assertEquals(116.41033392216508D, coordinate.getLng(), 0);
Assert.assertEquals(39.91640428150164D, coordinate.getLat(), 0);
}
@Test
public void gcj02ToWgs84Test(){
final CoordinateUtil.Coordinate coordinate = CoordinateUtil.gcj02ToWgs84(116.404, 39.915);
Assert.assertEquals(116.39766607783491D, coordinate.getLng(), 15);
Assert.assertEquals(39.91359571849836D, coordinate.getLat(), 15);
Assert.assertEquals(116.39766607783491D, coordinate.getLng(), 0);
Assert.assertEquals(39.91359571849836D, coordinate.getLat(), 0);
}
@Test
public void wgs84toBd09Test(){
final CoordinateUtil.Coordinate coordinate = CoordinateUtil.wgs84ToBd09(116.404, 39.915);
Assert.assertEquals(116.41671695444782D, coordinate.getLng(), 15);
Assert.assertEquals(39.922698713521726D, coordinate.getLat(), 15);
Assert.assertEquals(116.41671695444782D, coordinate.getLng(), 0);
Assert.assertEquals(39.922698713521726D, coordinate.getLat(), 0);
}
@Test
public void bd09toWgs84Test(){
final CoordinateUtil.Coordinate coordinate = CoordinateUtil.bd09toWgs84(116.404, 39.915);
Assert.assertEquals(116.39129143419822D, coordinate.getLng(), 15);
Assert.assertEquals(39.907253214522164D, coordinate.getLat(), 15);
Assert.assertEquals(116.39129143419822D, coordinate.getLng(), 0);
Assert.assertEquals(39.907253214522164D, coordinate.getLat(), 0);
}
@Test
public void gcj02ToBd09Test() {
final CoordinateUtil.Coordinate coordinate = CoordinateUtil.gcj02ToBd09(116.404, 39.915);
Assert.assertEquals(116.41036949371029D, coordinate.getLng(), 15);
Assert.assertEquals(39.92133699351022D, coordinate.getLat(), 15);
Assert.assertEquals(116.41036949371029D, coordinate.getLng(), 0);
Assert.assertEquals(39.92133699351022D, coordinate.getLat(), 0);
}
@Test
public void bd09toGcj02Test(){
final CoordinateUtil.Coordinate coordinate = CoordinateUtil.bd09ToGcj02(116.404, 39.915);
Assert.assertEquals(116.39762729119315D, coordinate.getLng(), 15);
Assert.assertEquals(39.90865673957631D, coordinate.getLat(), 15);
Assert.assertEquals(116.39762729119315D, coordinate.getLng(), 0);
Assert.assertEquals(39.90865673957631D, coordinate.getLat(), 0);
}
}

View File

@ -20,15 +20,15 @@ public class NumberUtilTest {
final Float a = 3.15f;
final Double b = 4.22;
final double result = NumberUtil.add(a, b).doubleValue();
Assert.assertEquals(7.37, result, 2);
Assert.assertEquals(7.37, result, 0);
}
@Test
public void addTest2() {
final double a = 3.15f;
final double a = 3.15f;// 转换丢失精度
final double b = 4.22;
final double result = NumberUtil.add(a, b).doubleValue();
Assert.assertEquals(7.37, result, 2);
Assert.assertEquals(7.37, result, 0.0001);
}
@Test
@ -36,7 +36,7 @@ public class NumberUtilTest {
final float a = 3.15f;
final double b = 4.22;
final double result = NumberUtil.add(a, b, a, b).doubleValue();
Assert.assertEquals(14.74, result, 2);
Assert.assertEquals(14.74, result, 0);
}
@Test

View File

@ -21,7 +21,7 @@ public class ExpressionUtilTest {
.set("b", 45)
.set("c", -199.100);
final Object eval = ExpressionUtil.eval("a-(b-c)", dict);
Assert.assertEquals(-143.8, (double)eval, 2);
Assert.assertEquals(-143.8, (double)eval, 0);
}
@Test
@ -33,7 +33,7 @@ public class ExpressionUtilTest {
.set("b", 45)
.set("c", -199.100);
final Object eval = engine.eval("a-(b-c)", dict);
Assert.assertEquals(-143.8, (double)eval, 2);
Assert.assertEquals(-143.8, (double)eval, 0);
}
@Test
@ -56,7 +56,7 @@ public class ExpressionUtilTest {
.set("b", 45)
.set("c", -199.100);
final Object eval = engine.eval("a-(b-c)", dict);
Assert.assertEquals(-143.8, (double)eval, 2);
Assert.assertEquals(-143.8, (double)eval, 0);
}
@Test
@ -68,7 +68,7 @@ public class ExpressionUtilTest {
.set("b", 45)
.set("c", -199.100);
final Object eval = engine.eval("a-(b-c)", dict);
Assert.assertEquals(-143.8, (double)eval, 2);
Assert.assertEquals(-143.8, (double)eval, 0);
}
@Test
@ -80,7 +80,7 @@ public class ExpressionUtilTest {
.set("b", 45)
.set("c", -199.100);
final Object eval = engine.eval("#a-(#b-#c)", dict);
Assert.assertEquals(-143.8, (double)eval, 2);
Assert.assertEquals(-143.8, (double)eval, 0);
}
@Test
@ -92,7 +92,7 @@ public class ExpressionUtilTest {
.set("b", 45)
.set("c", -199.100);
final Object eval = engine.eval("a-(b-c)", dict);
Assert.assertEquals(-143.8, (double)eval, 2);
Assert.assertEquals(-143.8, (double)eval, 0);
}
}