summaryrefslogtreecommitdiff
path: root/src/test/java/sevenUnits/unit/UnitDatabaseTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/sevenUnits/unit/UnitDatabaseTest.java')
-rw-r--r--src/test/java/sevenUnits/unit/UnitDatabaseTest.java29
1 files changed, 28 insertions, 1 deletions
diff --git a/src/test/java/sevenUnits/unit/UnitDatabaseTest.java b/src/test/java/sevenUnits/unit/UnitDatabaseTest.java
index c78837f..800d13d 100644
--- a/src/test/java/sevenUnits/unit/UnitDatabaseTest.java
+++ b/src/test/java/sevenUnits/unit/UnitDatabaseTest.java
@@ -190,14 +190,35 @@ class UnitDatabaseTest {
}
private static final Stream<Arguments> testEvaluateExpressionValid() {
+ UncertainDouble 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",
LinearUnitValue.of(J,
UncertainDouble.of(12, Math.sqrt(14.625)))),
+ Arguments.of("J + 2 * 3 * J + 20 / 4 * J",
+ LinearUnitValue.of(J,
+ UncertainDouble.of(12, Math.sqrt(14.625)))),
Arguments.of("J - -1 * J",
LinearUnitValue.of(J, UncertainDouble.of(2, 1))),
Arguments.of("K^2",
- LinearUnitValue.of(K.times(K), UncertainDouble.of(1, 0))));
+ LinearUnitValue.of(K.times(K), UncertainDouble.of(1, 0))),
+ 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"),
+ Arguments.of("1.1e+5", "1.1e+5"),
+ Arguments.of("1.25e-5", "1.25e-5")
+ );
}
/**
@@ -253,6 +274,12 @@ class UnitDatabaseTest {
final var actualU = database.getUnitFromExpression(expression);
assertEquals(expectedU, actualU);
}
+
+ @ParameterizedTest
+ @MethodSource
+ public void testFormatExpression(String expression, String expected) {
+ assertEquals(expected, UnitDatabase.formatExpression(expression));
+ }
/**
* Test for {@link UnitDatabase#getUnit}, {@link UnitDatabase#getLinearUnit}