summaryrefslogtreecommitdiff
path: root/src/test/java/sevenUnits/unit
diff options
context:
space:
mode:
authorAdrien Hopkins <adrien.p.hopkins@gmail.com>2025-06-15 19:26:12 -0500
committerAdrien Hopkins <adrien.p.hopkins@gmail.com>2025-06-15 19:26:12 -0500
commitda740edd3972fa049c4c8d0e43448c10a6a65dce (patch)
tree4a0d4f9fa861560d273249666c7a2acc12e9f235 /src/test/java/sevenUnits/unit
parent34f0321a31e728fa66057d0decd9a938d133d596 (diff)
Format & clean up source code
Diffstat (limited to 'src/test/java/sevenUnits/unit')
-rw-r--r--src/test/java/sevenUnits/unit/UnitDatabaseTest.java45
-rw-r--r--src/test/java/sevenUnits/unit/UnitTest.java106
-rw-r--r--src/test/java/sevenUnits/unit/UnitValueTest.java2
3 files changed, 71 insertions, 82 deletions
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<Arguments> 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<Arguments> 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<String> expectedKeys = Set.of("U", "V", "W");
final Set<String> 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 {