From e2df8d44ada98c828444461766297e9041565aee Mon Sep 17 00:00:00 2001 From: Looly Date: Tue, 9 Dec 2025 15:46:54 +0800 Subject: [PATCH] add test --- .../java/cn/hutool/v7/core/math/NumberUtilTest.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/hutool-core/src/test/java/cn/hutool/v7/core/math/NumberUtilTest.java b/hutool-core/src/test/java/cn/hutool/v7/core/math/NumberUtilTest.java index 8fdef3bc99..281c4be961 100644 --- a/hutool-core/src/test/java/cn/hutool/v7/core/math/NumberUtilTest.java +++ b/hutool-core/src/test/java/cn/hutool/v7/core/math/NumberUtilTest.java @@ -841,4 +841,16 @@ public class NumberUtilTest { final String result = NumberUtil.getBinaryStr(3.5); assertEquals("0100000000001100000000000000000000000000000000000000000000000000", result); } + + @Test + public void testMultipleOverflow() { + final int a = 500000; + final int b = 600000; + + // 原方法使用 a * b / gcd(a, b) 计算,a * b 会先溢出,得到最小公倍数为负数 + // 使用修改后的multiple方法,测试它是否能正确处理这种情况 + final BigDecimal result = NumberUtil.mul(a, b); + // 验证结果必须是正数(两个正数的最小公倍数必须为正) + assertTrue(result.compareTo(BigDecimal.ZERO) > 0); + } }