diff options
Diffstat (limited to 'src/test/java/sevenUnits/unit/UnitDatabaseTest.java')
-rw-r--r-- | src/test/java/sevenUnits/unit/UnitDatabaseTest.java | 29 |
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} |