From 1285f94cb0952a099801fccac1eaa639e817ad0b Mon Sep 17 00:00:00 2001 From: Looly Date: Fri, 17 Jan 2025 19:49:46 +0800 Subject: [PATCH] add test --- .../dromara/hutool/core/math/Fraction.java | 5 ++- .../hutool/core/math/FractionTest.java | 42 +++++++++++++++++++ 2 files changed, 45 insertions(+), 2 deletions(-) create mode 100644 hutool-core/src/test/java/org/dromara/hutool/core/math/FractionTest.java diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/math/Fraction.java b/hutool-core/src/main/java/org/dromara/hutool/core/math/Fraction.java index a617cd523..af06bd60f 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/math/Fraction.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/math/Fraction.java @@ -58,6 +58,7 @@ public final class Fraction extends Number implements Comparable { * @throws ArithmeticException 如果计算出的分母为 {@code zero} * @throws ArithmeticException 如果算法不收敛 */ + @SuppressWarnings("ReassignedVariable") public static Fraction of(double value) { final int sign = value < 0 ? -1 : 1; value = Math.abs(value); @@ -103,7 +104,7 @@ public final class Fraction extends Number implements Comparable { if (i == 25) { throw new ArithmeticException("Unable to convert double to fraction"); } - return getReducedFraction((numer0 + wholeNumber * denom0) * sign, denom0); + return ofReduced((numer0 + wholeNumber * denom0) * sign, denom0); } /** @@ -282,7 +283,7 @@ public final class Fraction extends Number implements Comparable { * @param numerator 分子,例如在“七分之三”中的三 * @param denominator 分母,例如在“七分之三”中的七 */ - private Fraction(final int numerator, final int denominator) { + public Fraction(final int numerator, final int denominator) { this.numerator = numerator; this.denominator = denominator; } diff --git a/hutool-core/src/test/java/org/dromara/hutool/core/math/FractionTest.java b/hutool-core/src/test/java/org/dromara/hutool/core/math/FractionTest.java new file mode 100644 index 000000000..56272fea5 --- /dev/null +++ b/hutool-core/src/test/java/org/dromara/hutool/core/math/FractionTest.java @@ -0,0 +1,42 @@ +package org.dromara.hutool.core.math; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +public class FractionTest { + + private Fraction fraction1; + private Fraction fraction2; + + @BeforeEach + public void setUp() { + // 假设 Fraction 类有一个构造函数 Fraction(int numerator, int denominator) + fraction1 = new Fraction(1, 2); + fraction2 = new Fraction(3, 4); + } + + @Test + public void add_Fractions_ShouldReturnCorrectSum() { + final Fraction result = fraction1.add(fraction2); + assertEquals(new Fraction(5, 4), result); + } + + @Test + public void subtract_Fractions_ShouldReturnCorrectDifference() { + final Fraction result = fraction1.subtract(fraction2); + assertEquals(new Fraction(-1, 4), result); + } + + @Test + public void equals_Fractions_ShouldReturnTrueForEqualFractions() { + final Fraction fraction3 = new Fraction(1, 2); + assertEquals(fraction1, fraction3); + } + + @Test + public void equals_Fractions_ShouldReturnFalseForDifferentFractions() { + assertNotEquals(fraction1, fraction2); + } +}