From da740edd3972fa049c4c8d0e43448c10a6a65dce Mon Sep 17 00:00:00 2001 From: Adrien Hopkins Date: Sun, 15 Jun 2025 19:26:12 -0500 Subject: Format & clean up source code --- .../java/sevenUnits/unit/UnitDatabaseTest.java | 45 ++++----- src/test/java/sevenUnits/unit/UnitTest.java | 106 +++++++++++---------- src/test/java/sevenUnits/unit/UnitValueTest.java | 2 +- 3 files changed, 71 insertions(+), 82 deletions(-) (limited to 'src/test/java/sevenUnits/unit') diff --git a/src/test/java/sevenUnits/unit/UnitDatabaseTest.java b/src/test/java/sevenUnits/unit/UnitDatabaseTest.java index 800d13d..3d6d663 100644 --- a/src/test/java/sevenUnits/unit/UnitDatabaseTest.java +++ b/src/test/java/sevenUnits/unit/UnitDatabaseTest.java @@ -58,7 +58,6 @@ class UnitDatabaseTest { private V value; /** - * * @since 2021-10-07 * @since v0.3.2 */ @@ -190,7 +189,7 @@ class UnitDatabaseTest { } private static final Stream testEvaluateExpressionValid() { - UncertainDouble uncertainTwoThirds = UncertainDouble.of(2.0, 1.0) + final var uncertainTwoThirds = UncertainDouble.of(2.0, 1.0) .dividedBy(UncertainDouble.of(3.0, 1.0)); return Stream.of( Arguments.of("J + (2 * 3) J + (20 / 4) J", @@ -206,19 +205,14 @@ class UnitDatabaseTest { Arguments.of("2 J / 3 J", LinearUnitValue.of(J.dividedBy(J), uncertainTwoThirds))); } - + private static final Stream testFormatExpression() { - return Stream.of( - Arguments.of("1*2", "1 * 2"), - Arguments.of("1/2", "1 / 2"), - Arguments.of("1|2", "1 | 2"), - Arguments.of("1^2", "1 ^ 2"), - Arguments.of("1 * 2", "1 * 2"), - Arguments.of("+1", "+1"), - Arguments.of("-1", "-1"), + return Stream.of(Arguments.of("1*2", "1 * 2"), + Arguments.of("1/2", "1 / 2"), Arguments.of("1|2", "1 | 2"), + Arguments.of("1^2", "1 ^ 2"), Arguments.of("1 * 2", "1 * 2"), + Arguments.of("+1", "+1"), Arguments.of("-1", "-1"), Arguments.of("1.1e+5", "1.1e+5"), - Arguments.of("1.25e-5", "1.25e-5") - ); + Arguments.of("1.25e-5", "1.25e-5")); } /** @@ -266,15 +260,14 @@ class UnitDatabaseTest { database.addPrefix("B", B); database.addPrefix("C", C); - final var actual = database - .evaluateUnitExpression(expression); + final var actual = database.evaluateUnitExpression(expression); assertEquals(expected, actual); final var expectedU = expected.getUnit().times(expected.getValueExact()); final var actualU = database.getUnitFromExpression(expression); assertEquals(expectedU, actualU); } - + @ParameterizedTest @MethodSource public void testFormatExpression(String expression, String expected) { @@ -335,8 +328,7 @@ class UnitDatabaseTest { infiniteDatabase.addPrefix("B", B); infiniteDatabase.addPrefix("C", C); - final var entrySet = infiniteDatabase.unitMap() - .entrySet(); + final var entrySet = infiniteDatabase.unitMap().entrySet(); final var keySet = infiniteDatabase.unitMap().keySet(); assertThrows(IllegalStateException.class, () -> entrySet.toArray()); assertThrows(IllegalStateException.class, () -> keySet.toArray()); @@ -376,8 +368,7 @@ class UnitDatabaseTest { @ValueSource(ints = { 1, 2, 3, 4, 5 }) public void testLoadingInvalidUnitFile(int num) { final var database = new UnitDatabase(); - final var filename = String.format("/test-unitsfile-invalid%d.txt", - num); + final var filename = String.format("/test-unitsfile-invalid%d.txt", num); final var errs = loadUnitsFile(database, filename); assertFalse(errs.isEmpty(), "no error from invalid file " + filename); final var e = errs.get(0).problem(); @@ -418,7 +409,7 @@ class UnitDatabaseTest { assertEquals(7, database.getPrefix("A").getMultiplier()); assertEquals(11, database.getPrefix("B").getMultiplier()); assertEquals(13, database.getPrefix("C").getMultiplier()); - + // test invalid prefixes assertThrows(NoSuchElementException.class, () -> database.getPrefix("N/A")); @@ -487,8 +478,7 @@ class UnitDatabaseTest { final var map1 = database1.unitMap(); final var keyIterator1 = map1.keySet().iterator(); - final var entryIterator1 = map1.entrySet() - .iterator(); + final var entryIterator1 = map1.entrySet().iterator(); final Set expectedKeys = Set.of("U", "V", "W"); final Set actualKeys = new HashSet<>(); @@ -552,8 +542,7 @@ class UnitDatabaseTest { @Test public void testPrefixlessUnitMap() { final var database = new UnitDatabase(); - final var prefixlessUnits = database - .unitMapPrefixless(true); + final var prefixlessUnits = database.unitMapPrefixless(true); database.addUnit("U", U); database.addUnit("V", V); @@ -690,10 +679,8 @@ class UnitDatabaseTest { final var NUM_UNITS = database.unitMapPrefixless(true).size(); final var NUM_PREFIXES = database.prefixMap(true).size(); - final var nameIterator = database.unitMap().keySet() - .iterator(); - final var entryIterator = database.unitMap() - .entrySet().iterator(); + final var nameIterator = database.unitMap().keySet().iterator(); + final var entryIterator = database.unitMap().entrySet().iterator(); var expectedLength = 1; var unitsWithThisLengthSoFar = 0; diff --git a/src/test/java/sevenUnits/unit/UnitTest.java b/src/test/java/sevenUnits/unit/UnitTest.java index 4d9a103..7ae550f 100644 --- a/src/test/java/sevenUnits/unit/UnitTest.java +++ b/src/test/java/sevenUnits/unit/UnitTest.java @@ -32,7 +32,7 @@ import sevenUnits.utils.NameSymbol; /** * Testing the various Unit classes. This is NOT part of this program's public * API. - * + * * @author Adrien Hopkins * @since 2018-12-22 * @since v0.1.0 @@ -40,119 +40,121 @@ import sevenUnits.utils.NameSymbol; class UnitTest { /** A random number generator */ private static final Random rng = ThreadLocalRandom.current(); - + @Test public void testAdditionAndSubtraction() { - final LinearUnit inch = Metric.METRE.times(0.0254) + final var inch = Metric.METRE.times(0.0254) .withName(NameSymbol.of("inch", "in")); - final LinearUnit foot = Metric.METRE.times(0.3048) + final var foot = Metric.METRE.times(0.3048) .withName(NameSymbol.of("foot", "ft")); - - assertTrue(inch.plus(foot).equalsApproximately(Metric.METRE.times(0.3302)), - String.format("Expected: %s, Actual: %s", - inch.plus(foot), Metric.METRE.times(0.3302))); - assertTrue(foot.minus(inch).equalsApproximately(Metric.METRE.times(0.2794)), - String.format("Expected: %s, Actual: %s", - foot.minus(inch), Metric.METRE.times(0.2794))); - + + assertTrue( + inch.plus(foot).equalsApproximately(Metric.METRE.times(0.3302)), + String.format("Expected: %s, Actual: %s", inch.plus(foot), + Metric.METRE.times(0.3302))); + assertTrue( + foot.minus(inch).equalsApproximately(Metric.METRE.times(0.2794)), + String.format("Expected: %s, Actual: %s", foot.minus(inch), + Metric.METRE.times(0.2794))); + // test with LinearUnitValue - final LinearUnitValue value1 = LinearUnitValue.getExact(Metric.METRE, 15); - final LinearUnitValue value2 = LinearUnitValue.getExact(foot, 120); - final LinearUnitValue value3 = LinearUnitValue.getExact(Metric.METRE, + final var value1 = LinearUnitValue.getExact(Metric.METRE, 15); + final var value2 = LinearUnitValue.getExact(foot, 120); + final var value3 = LinearUnitValue.getExact(Metric.METRE, 0.5); - final LinearUnitValue value4 = LinearUnitValue.getExact(Metric.KILOGRAM, + final var value4 = LinearUnitValue.getExact(Metric.KILOGRAM, 60); - + // make sure addition is done correctly assertEquals(51.576, value1.plus(value2).getValueExact(), 0.001); assertEquals(15.5, value1.plus(value3).getValueExact()); assertEquals(52.076, value1.plus(value2).plus(value3).getValueExact(), 0.001); - + // make sure addition uses the correct unit, and is still associative // (ignoring floating-point rounding errors) assertEquals(Metric.METRE, value1.plus(value2).getUnit()); assertEquals(Metric.METRE, value1.plus(value2).plus(value3).getUnit()); assertEquals(foot, value2.plus(value1).getUnit()); assertTrue(value1.plus(value2).equals(value2.plus(value1), true)); - + // make sure errors happen when they should assertThrows(IllegalArgumentException.class, () -> value1.plus(value4)); assertThrows(IllegalArgumentException.class, () -> value1.minus(value4)); } - + @Test public void testConversion() { - final LinearUnit metre = Metric.METRE; + final var metre = Metric.METRE; final Unit inch = metre.times(0.0254); - - final UnitValue value = UnitValue.of(inch, 75); - + + final var value = UnitValue.of(inch, 75); + assertEquals(1.9, inch.convertTo(metre, 75), 0.01); assertEquals(1.9, value.convertTo(metre).getValue(), 0.01); - + // try random stuff - for (int i = 0; i < 1000; i++) { + for (var i = 0; i < 1000; i++) { // initiate random values - final double conversionFactor = UnitTest.rng.nextDouble() * 1000000; - final double testValue = UnitTest.rng.nextDouble() * 1000000; - final double expected = testValue * conversionFactor; - + final var conversionFactor = UnitTest.rng.nextDouble() * 1000000; + final var testValue = UnitTest.rng.nextDouble() * 1000000; + final var expected = testValue * conversionFactor; + // test final Unit unit = Metric.METRE.times(conversionFactor); - final double actual = unit.convertToBase(testValue); - + final var actual = unit.convertToBase(testValue); + assertEquals(actual, expected, expected * DecimalComparison.DOUBLE_EPSILON); } } - + @Test public void testEquals() { - final LinearUnit metre = Metric.METRE; + final var metre = Metric.METRE; final Unit meter = Metric.BaseUnits.METRE.asLinearUnit(); - + assertEquals(metre, meter); } - + @Test public void testIsMetric() { final Unit metre = Metric.METRE; final Unit megasecond = Metric.SECOND.withPrefix(Metric.MEGA); final Unit hour = Metric.HOUR; - + assertTrue(metre.isMetric()); assertTrue(megasecond.isMetric()); assertFalse(hour.isMetric()); } - + @Test public void testMultiplicationAndDivision() { // test unit-times-unit multiplication - final LinearUnit generatedJoule = Metric.KILOGRAM + final var generatedJoule = Metric.KILOGRAM .times(Metric.METRE.toExponent(2)) .dividedBy(Metric.SECOND.toExponent(2)); - final LinearUnit actualJoule = Metric.JOULE; - + final var actualJoule = Metric.JOULE; + assertEquals(generatedJoule, actualJoule); - + // test multiplication by conversion factors - final LinearUnit kilometre = Metric.METRE.times(1000); - final LinearUnit hour = Metric.SECOND.times(3600); - final LinearUnit generatedKPH = kilometre.dividedBy(hour); - - final LinearUnit actualKPH = Metric.METRE.dividedBy(Metric.SECOND) + final var kilometre = Metric.METRE.times(1000); + final var hour = Metric.SECOND.times(3600); + final var generatedKPH = kilometre.dividedBy(hour); + + final var actualKPH = Metric.METRE.dividedBy(Metric.SECOND) .dividedBy(3.6); - + assertEquals(generatedKPH, actualKPH); } - + @Test public void testPrefixes() { - final LinearUnit generatedKilometre = Metric.METRE + final var generatedKilometre = Metric.METRE .withPrefix(Metric.KILO); - final LinearUnit actualKilometre = Metric.METRE.times(1000); - + final var actualKilometre = Metric.METRE.times(1000); + assertEquals(generatedKilometre, actualKilometre); } } diff --git a/src/test/java/sevenUnits/unit/UnitValueTest.java b/src/test/java/sevenUnits/unit/UnitValueTest.java index 6182b20..3679703 100644 --- a/src/test/java/sevenUnits/unit/UnitValueTest.java +++ b/src/test/java/sevenUnits/unit/UnitValueTest.java @@ -36,7 +36,7 @@ import sevenUnits.utils.UncertainDouble; /** * Tests for the UnitValue and LinearUnitValue classes - * + * * @since v1.0.0 */ public final class UnitValueTest { -- cgit v1.2.3