This commit is contained in:
Looly
2024-08-09 14:23:57 +08:00
parent 8dc232a22a
commit 362b06534e
5 changed files with 90 additions and 85 deletions

View File

@@ -13,16 +13,17 @@
package org.dromara.hutool.core.bean; package org.dromara.hutool.core.bean;
import lombok.Data; import lombok.Data;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class IssueI5DDZXTest { public class IssueI5DDZXTest {
@Test @Test
public void copyPropertiesTest() { public void copyPropertiesTest() {
// 对于final字段private由于没有提供setter方法是无法实现属性赋值的如果设置为public即可 // 对于final字段private由于没有提供setter方法是无法实现属性赋值的如果设置为public即可
final TeStudent student = new TeStudent("Hutool"); final TeStudent student = new TeStudent("Hutool");
final TePerson tePerson = BeanUtil.copyProperties(student, TePerson.class); final TePerson tePerson = BeanUtil.copyProperties(student, TePerson.class);
Assertions.assertEquals("Hutool", tePerson.getName()); assertEquals("Hutool", tePerson.getName());
} }
@Data @Data

View File

@@ -12,9 +12,10 @@
package org.dromara.hutool.core.data; package org.dromara.hutool.core.data;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
/** /**
* 坐标转换工具类单元测试<br> * 坐标转换工具类单元测试<br>
* 测试参考https://github.com/wandergis/coordtransform * 测试参考https://github.com/wandergis/coordtransform
@@ -26,53 +27,53 @@ public class CoordinateUtilTest {
@Test @Test
public void wgs84ToGcj02Test() { public void wgs84ToGcj02Test() {
final CoordinateUtil.Coordinate coordinate = CoordinateUtil.wgs84ToGcj02(116.404, 39.915); final CoordinateUtil.Coordinate coordinate = CoordinateUtil.wgs84ToGcj02(116.404, 39.915);
Assertions.assertEquals(116.41024449916938D, coordinate.getLng(), 0.00000000000001D); assertEquals(116.41024449916938D, coordinate.getLng(), 0.00000000000001D);
Assertions.assertEquals(39.91640428150164D, coordinate.getLat(), 0.00000000000001D); assertEquals(39.91640428150164D, coordinate.getLat(), 0.00000000000001D);
} }
@Test @Test
public void gcj02ToWgs84Test() { public void gcj02ToWgs84Test() {
final CoordinateUtil.Coordinate coordinate = CoordinateUtil.gcj02ToWgs84(116.404, 39.915); final CoordinateUtil.Coordinate coordinate = CoordinateUtil.gcj02ToWgs84(116.404, 39.915);
Assertions.assertEquals(116.39775550083061D, coordinate.getLng(), 0.00000000000001D); assertEquals(116.39775550083061D, coordinate.getLng(), 0.00000000000001D);
Assertions.assertEquals(39.91359571849836D, coordinate.getLat(), 0.00000000000001D); assertEquals(39.91359571849836D, coordinate.getLat(), 0.00000000000001D);
} }
@Test @Test
public void wgs84toBd09Test() { public void wgs84toBd09Test() {
final CoordinateUtil.Coordinate coordinate = CoordinateUtil.wgs84ToBd09(116.404, 39.915); final CoordinateUtil.Coordinate coordinate = CoordinateUtil.wgs84ToBd09(116.404, 39.915);
Assertions.assertEquals(116.41662724378733D, coordinate.getLng(), 0.00000000000001D); assertEquals(116.41662724378733D, coordinate.getLng(), 0.00000000000001D);
Assertions.assertEquals(39.922699552216216D, coordinate.getLat(), 0.00000000000001D); assertEquals(39.922699552216216D, coordinate.getLat(), 0.00000000000001D);
} }
@Test @Test
public void wgs84toBd09Test2() { public void wgs84toBd09Test2() {
// https://tool.lu/coordinate/ // https://tool.lu/coordinate/
final CoordinateUtil.Coordinate coordinate = CoordinateUtil.wgs84ToBd09(122.99395597D, 44.99804071D); final CoordinateUtil.Coordinate coordinate = CoordinateUtil.wgs84ToBd09(122.99395597D, 44.99804071D);
Assertions.assertEquals(123.00636516028885D, coordinate.getLng(), 0.00000000000001D); assertEquals(123.00636516028885D, coordinate.getLng(), 0.00000000000001D);
// 不同jdk版本、不同架构jdk, 精度有差异数值不完全相等这里增加精度控制delta // 不同jdk版本、不同架构jdk, 精度有差异数值不完全相等这里增加精度控制delta
// 参考从Java Math底层实现看Arm与x86的差异https://yikun.github.io/2020/04/10/%E4%BB%8EJava-Math%E5%BA%95%E5%B1%82%E5%AE%9E%E7%8E%B0%E7%9C%8BArm%E4%B8%8Ex86%E7%9A%84%E5%B7%AE%E5%BC%82/ // 参考从Java Math底层实现看Arm与x86的差异https://yikun.github.io/2020/04/10/%E4%BB%8EJava-Math%E5%BA%95%E5%B1%82%E5%AE%9E%E7%8E%B0%E7%9C%8BArm%E4%B8%8Ex86%E7%9A%84%E5%B7%AE%E5%BC%82/
Assertions.assertEquals(45.00636909189589D, coordinate.getLat(), 0.00000000000001D); assertEquals(45.00636909189589D, coordinate.getLat(), 0.00000000000001D);
} }
@Test @Test
public void bd09toWgs84Test() { public void bd09toWgs84Test() {
final CoordinateUtil.Coordinate coordinate = CoordinateUtil.bd09toWgs84(116.404, 39.915); final CoordinateUtil.Coordinate coordinate = CoordinateUtil.bd09toWgs84(116.404, 39.915);
Assertions.assertEquals(116.3913836995125D, coordinate.getLng(), 0.00000000000001D); assertEquals(116.3913836995125D, coordinate.getLng(), 0.00000000000001D);
Assertions.assertEquals(39.907253214522164D, coordinate.getLat(), 0.00000000000001D); assertEquals(39.907253214522164D, coordinate.getLat(), 0.00000000000001D);
} }
@Test @Test
public void gcj02ToBd09Test() { public void gcj02ToBd09Test() {
final CoordinateUtil.Coordinate coordinate = CoordinateUtil.gcj02ToBd09(116.404, 39.915); final CoordinateUtil.Coordinate coordinate = CoordinateUtil.gcj02ToBd09(116.404, 39.915);
Assertions.assertEquals(116.41036949371029D, coordinate.getLng(), 0.00000000000001D); assertEquals(116.41036949371029D, coordinate.getLng(), 0.00000000000001D);
Assertions.assertEquals(39.92133699351022D, coordinate.getLat(), 0.00000000000001D); assertEquals(39.92133699351022D, coordinate.getLat(), 0.00000000000001D);
} }
@Test @Test
public void bd09toGcj02Test() { public void bd09toGcj02Test() {
final CoordinateUtil.Coordinate coordinate = CoordinateUtil.bd09ToGcj02(116.404, 39.915); final CoordinateUtil.Coordinate coordinate = CoordinateUtil.bd09ToGcj02(116.404, 39.915);
Assertions.assertEquals(116.39762729119315D, coordinate.getLng(), 0.00000000000001D); assertEquals(116.39762729119315D, coordinate.getLng(), 0.00000000000001D);
Assertions.assertEquals(39.90865673957631D, coordinate.getLat(), 0.00000000000001D); assertEquals(39.90865673957631D, coordinate.getLat(), 0.00000000000001D);
} }
} }

View File

@@ -14,7 +14,6 @@ package org.dromara.hutool.core.math;
import org.dromara.hutool.core.lang.Console; import org.dromara.hutool.core.lang.Console;
import org.dromara.hutool.core.text.StrUtil; import org.dromara.hutool.core.text.StrUtil;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.condition.EnabledForJreRange; import org.junit.jupiter.api.condition.EnabledForJreRange;
import org.junit.jupiter.api.condition.JRE; import org.junit.jupiter.api.condition.JRE;
@@ -25,8 +24,7 @@ import java.math.RoundingMode;
import java.text.NumberFormat; import java.text.NumberFormat;
import java.text.ParseException; import java.text.ParseException;
import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.*;
import static org.junit.jupiter.api.Assertions.assertThrows;
/** /**
* {@link NumberUtil} 单元测试类 * {@link NumberUtil} 单元测试类
@@ -362,7 +360,7 @@ public class NumberUtilTest {
@Test @Test
public void equalsTest() { public void equalsTest() {
Assertions.assertTrue(NumberUtil.equals(new BigDecimal("0.00"), BigDecimal.ZERO)); assertTrue(NumberUtil.equals(new BigDecimal("0.00"), BigDecimal.ZERO));
} }
@Test @Test
@@ -467,7 +465,7 @@ public class NumberUtilTest {
// -------------------------- Parse failed ----------------------- // -------------------------- Parse failed -----------------------
Assertions.assertNull(NumberUtil.parseInt("abc", null)); assertNull(NumberUtil.parseInt("abc", null));
assertEquals(456, NumberUtil.parseInt("abc", 456)); assertEquals(456, NumberUtil.parseInt("abc", 456));
@@ -502,8 +500,8 @@ public class NumberUtilTest {
// issue#I5M55F // issue#I5M55F
final String numberStr = "429900013E20220812163344551"; final String numberStr = "429900013E20220812163344551";
final Number number = NumberUtil.parseNumber(numberStr); final Number number = NumberUtil.parseNumber(numberStr);
Assertions.assertNotNull(number); assertNotNull(number);
Assertions.assertInstanceOf(BigDecimal.class, number); assertInstanceOf(BigDecimal.class, number);
} }
@Test @Test
@@ -511,11 +509,11 @@ public class NumberUtilTest {
// -------------------------- Parse failed ----------------------- // -------------------------- Parse failed -----------------------
Assertions.assertNull(NumberUtil.parseNumber("abc", (Number) null)); assertNull(NumberUtil.parseNumber("abc", (Number) null));
Assertions.assertNull(NumberUtil.parseNumber(StrUtil.EMPTY, (Number) null)); assertNull(NumberUtil.parseNumber(StrUtil.EMPTY, (Number) null));
Assertions.assertNull(NumberUtil.parseNumber(StrUtil.repeat(StrUtil.SPACE, 10), (Number) null)); assertNull(NumberUtil.parseNumber(StrUtil.repeat(StrUtil.SPACE, 10), (Number) null));
assertEquals(456, NumberUtil.parseNumber("abc", 456).intValue()); assertEquals(456, NumberUtil.parseNumber("abc", 456).intValue());
@@ -580,10 +578,10 @@ public class NumberUtilTest {
// -------------------------- Parse failed ----------------------- // -------------------------- Parse failed -----------------------
final Long v1 = NumberUtil.parseLong(null, null); final Long v1 = NumberUtil.parseLong(null, null);
Assertions.assertNull(v1); assertNull(v1);
final Long v2 = NumberUtil.parseLong(StrUtil.EMPTY, null); final Long v2 = NumberUtil.parseLong(StrUtil.EMPTY, null);
Assertions.assertNull(v2); assertNull(v2);
final Long v3 = NumberUtil.parseLong("L3221", 1233L); final Long v3 = NumberUtil.parseLong("L3221", 1233L);
assertEquals(1233L, v3); assertEquals(1233L, v3);
@@ -597,11 +595,11 @@ public class NumberUtilTest {
@Test @Test
public void isPowerOfTwoTest() { public void isPowerOfTwoTest() {
Assertions.assertFalse(NumberUtil.isPowerOfTwo(-1)); assertFalse(NumberUtil.isPowerOfTwo(-1));
Assertions.assertTrue(NumberUtil.isPowerOfTwo(16)); assertTrue(NumberUtil.isPowerOfTwo(16));
Assertions.assertTrue(NumberUtil.isPowerOfTwo(65536)); assertTrue(NumberUtil.isPowerOfTwo(65536));
Assertions.assertTrue(NumberUtil.isPowerOfTwo(1)); assertTrue(NumberUtil.isPowerOfTwo(1));
Assertions.assertFalse(NumberUtil.isPowerOfTwo(17)); assertFalse(NumberUtil.isPowerOfTwo(17));
} }
@Test @Test
@@ -622,28 +620,28 @@ public class NumberUtilTest {
@Test @Test
public void isOddOrEvenTest() { public void isOddOrEvenTest() {
final int[] a = {0, 32, -32, 123, -123}; final int[] a = {0, 32, -32, 123, -123};
Assertions.assertFalse(NumberUtil.isOdd(a[0])); assertFalse(NumberUtil.isOdd(a[0]));
Assertions.assertTrue(NumberUtil.isEven(a[0])); assertTrue(NumberUtil.isEven(a[0]));
Assertions.assertFalse(NumberUtil.isOdd(a[1])); assertFalse(NumberUtil.isOdd(a[1]));
Assertions.assertTrue(NumberUtil.isEven(a[1])); assertTrue(NumberUtil.isEven(a[1]));
Assertions.assertFalse(NumberUtil.isOdd(a[2])); assertFalse(NumberUtil.isOdd(a[2]));
Assertions.assertTrue(NumberUtil.isEven(a[2])); assertTrue(NumberUtil.isEven(a[2]));
Assertions.assertTrue(NumberUtil.isOdd(a[3])); assertTrue(NumberUtil.isOdd(a[3]));
Assertions.assertFalse(NumberUtil.isEven(a[3])); assertFalse(NumberUtil.isEven(a[3]));
Assertions.assertTrue(NumberUtil.isOdd(a[4])); assertTrue(NumberUtil.isOdd(a[4]));
Assertions.assertFalse(NumberUtil.isEven(a[4])); assertFalse(NumberUtil.isEven(a[4]));
} }
@Test @Test
public void toBigIntegerTest() { public void toBigIntegerTest() {
final Number number = 1123123; final Number number = 1123123;
final Number number2 = 1123123.123; final Number number2 = 1123123.123;
Assertions.assertNotNull(NumberUtil.toBigInteger(number)); assertNotNull(NumberUtil.toBigInteger(number));
Assertions.assertNotNull(NumberUtil.toBigInteger(number2)); assertNotNull(NumberUtil.toBigInteger(number2));
} }
@Test @Test
@@ -654,25 +652,25 @@ public class NumberUtilTest {
@Test @Test
public void isDoubleTest() { public void isDoubleTest() {
Assertions.assertFalse(NumberUtil.isDouble(null)); assertFalse(NumberUtil.isDouble(null));
Assertions.assertFalse(NumberUtil.isDouble("")); assertFalse(NumberUtil.isDouble(""));
Assertions.assertFalse(NumberUtil.isDouble(" ")); assertFalse(NumberUtil.isDouble(" "));
Assertions.assertFalse(NumberUtil.isDouble("1")); assertFalse(NumberUtil.isDouble("1"));
Assertions.assertFalse(NumberUtil.isDouble("-1")); assertFalse(NumberUtil.isDouble("-1"));
Assertions.assertFalse(NumberUtil.isDouble("+1")); assertFalse(NumberUtil.isDouble("+1"));
Assertions.assertFalse(NumberUtil.isDouble("0.1.")); assertFalse(NumberUtil.isDouble("0.1."));
Assertions.assertFalse(NumberUtil.isDouble("01")); assertFalse(NumberUtil.isDouble("01"));
Assertions.assertFalse(NumberUtil.isDouble("NaN")); assertFalse(NumberUtil.isDouble("NaN"));
Assertions.assertFalse(NumberUtil.isDouble("-NaN")); assertFalse(NumberUtil.isDouble("-NaN"));
Assertions.assertFalse(NumberUtil.isDouble("-Infinity")); assertFalse(NumberUtil.isDouble("-Infinity"));
Assertions.assertTrue(NumberUtil.isDouble("0.")); assertTrue(NumberUtil.isDouble("0."));
Assertions.assertTrue(NumberUtil.isDouble("0.1")); assertTrue(NumberUtil.isDouble("0.1"));
Assertions.assertTrue(NumberUtil.isDouble("-0.1")); assertTrue(NumberUtil.isDouble("-0.1"));
Assertions.assertTrue(NumberUtil.isDouble("+0.1")); assertTrue(NumberUtil.isDouble("+0.1"));
Assertions.assertTrue(NumberUtil.isDouble("0.110")); assertTrue(NumberUtil.isDouble("0.110"));
Assertions.assertTrue(NumberUtil.isDouble("00.1")); assertTrue(NumberUtil.isDouble("00.1"));
Assertions.assertTrue(NumberUtil.isDouble("01.1")); assertTrue(NumberUtil.isDouble("01.1"));
} }
@Test @Test
@@ -700,16 +698,16 @@ public class NumberUtilTest {
@Test @Test
public void isPrimeTest(){ public void isPrimeTest(){
Assertions.assertTrue(NumberUtil.isPrime(2)); assertTrue(NumberUtil.isPrime(2));
Assertions.assertTrue(NumberUtil.isPrime(3)); assertTrue(NumberUtil.isPrime(3));
Assertions.assertTrue(NumberUtil.isPrime(7)); assertTrue(NumberUtil.isPrime(7));
Assertions.assertTrue(NumberUtil.isPrime(17)); assertTrue(NumberUtil.isPrime(17));
Assertions.assertTrue(NumberUtil.isPrime(296731)); assertTrue(NumberUtil.isPrime(296731));
Assertions.assertTrue(NumberUtil.isPrime(99999989)); assertTrue(NumberUtil.isPrime(99999989));
Assertions.assertFalse(NumberUtil.isPrime(4)); assertFalse(NumberUtil.isPrime(4));
Assertions.assertFalse(NumberUtil.isPrime(296733)); assertFalse(NumberUtil.isPrime(296733));
Assertions.assertFalse(NumberUtil.isPrime(20_4123_2399)); assertFalse(NumberUtil.isPrime(20_4123_2399));
} }
@Test @Test
@@ -717,11 +715,11 @@ public class NumberUtilTest {
// -------------------------- Parse failed ----------------------- // -------------------------- Parse failed -----------------------
Assertions.assertNull(NumberUtil.parseFloat("abc", null)); assertNull(NumberUtil.parseFloat("abc", null));
Assertions.assertNull(NumberUtil.parseFloat("a123.33", null)); assertNull(NumberUtil.parseFloat("a123.33", null));
Assertions.assertNull(NumberUtil.parseFloat("..123", null)); assertNull(NumberUtil.parseFloat("..123", null));
assertEquals(1233F, NumberUtil.parseFloat(StrUtil.EMPTY, 1233F)); assertEquals(1233F, NumberUtil.parseFloat(StrUtil.EMPTY, 1233F));
@@ -738,9 +736,9 @@ public class NumberUtilTest {
// -------------------------- Parse failed ----------------------- // -------------------------- Parse failed -----------------------
Assertions.assertNull(NumberUtil.parseDouble("abc", null)); assertNull(NumberUtil.parseDouble("abc", null));
Assertions.assertNull(NumberUtil.parseDouble("a123.33", null)); assertNull(NumberUtil.parseDouble("a123.33", null));
Assertions.assertNull(NumberUtil.parseDouble("..123", null)); assertNull(NumberUtil.parseDouble("..123", null));
assertEquals(1233D, NumberUtil.parseDouble(StrUtil.EMPTY, 1233D)); assertEquals(1233D, NumberUtil.parseDouble(StrUtil.EMPTY, 1233D));
// -------------------------- Parse success ----------------------- // -------------------------- Parse success -----------------------
@@ -765,7 +763,7 @@ public class NumberUtilTest {
@Test @Test
void issueI6ZD1RTest() { void issueI6ZD1RTest() {
Assertions.assertFalse(NumberUtil.isInteger("999999999999999")); assertFalse(NumberUtil.isInteger("999999999999999"));
} }
@Test @Test
@@ -792,7 +790,7 @@ public class NumberUtilTest {
@Test @Test
public void isValidNumberTest() { public void isValidNumberTest() {
final boolean validNumber = NumberUtil.isValidNumber(1); final boolean validNumber = NumberUtil.isValidNumber(1);
Assertions.assertTrue(validNumber); assertTrue(validNumber);
} }
@Test @Test

View File

@@ -122,6 +122,10 @@
<artifactId>kotlin-stdlib-jdk8</artifactId> <artifactId>kotlin-stdlib-jdk8</artifactId>
<groupId>org.jetbrains.kotlin</groupId> <groupId>org.jetbrains.kotlin</groupId>
</exclusion> </exclusion>
<exclusion>
<artifactId>junit</artifactId>
<groupId>junit</groupId>
</exclusion>
</exclusions> </exclusions>
</dependency> </dependency>
</dependencies> </dependencies>

View File

@@ -3,12 +3,13 @@ package org.dromara.hutool.http;
import org.dromara.hutool.core.net.url.UrlQuery; import org.dromara.hutool.core.net.url.UrlQuery;
import org.dromara.hutool.core.net.url.UrlQueryUtil; import org.dromara.hutool.core.net.url.UrlQueryUtil;
import org.dromara.hutool.core.util.CharsetUtil; import org.dromara.hutool.core.util.CharsetUtil;
import org.junit.Assert; import org.junit.jupiter.api.Test;
import org.junit.Test;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class Issue3536Test { public class Issue3536Test {
@Test @Test
@@ -19,7 +20,7 @@ public class Issue3536Test {
paramMap.put("scope", "a,b,c你"); paramMap.put("scope", "a,b,c你");
final String s = HttpUtil.urlWithFormUrlEncoded(url, paramMap, CharsetUtil.UTF_8); final String s = HttpUtil.urlWithFormUrlEncoded(url, paramMap, CharsetUtil.UTF_8);
Assert.assertEquals("https://hutool.cn/test?scope=a,b,c%E4%BD%A0&redirect_uri=https://api.hutool.cn/v1/test", s); assertEquals("https://hutool.cn/test?scope=a,b,c%E4%BD%A0&redirect_uri=https://api.hutool.cn/v1/test", s);
} }
@Test @Test
@@ -29,6 +30,6 @@ public class Issue3536Test {
paramMap.put("scope", "a,b,c你"); paramMap.put("scope", "a,b,c你");
final String params = UrlQueryUtil.toQuery(paramMap, CharsetUtil.UTF_8, UrlQuery.EncodeMode.STRICT); final String params = UrlQueryUtil.toQuery(paramMap, CharsetUtil.UTF_8, UrlQuery.EncodeMode.STRICT);
Assert.assertEquals("scope=a%2Cb%2Cc%E4%BD%A0&redirect_uri=https%3A%2F%2Fapi.hutool.cn%2Fv1%2Ftest", params); assertEquals("scope=a%2Cb%2Cc%E4%BD%A0&redirect_uri=https%3A%2F%2Fapi.hutool.cn%2Fv1%2Ftest", params);
} }
} }