diff options
Diffstat (limited to 'src/main/java/sevenUnits')
-rw-r--r-- | src/main/java/sevenUnits/unit/UnitDatabase.java | 8 | ||||
-rw-r--r-- | src/main/java/sevenUnits/unit/UnitPrefix.java | 16 |
2 files changed, 21 insertions, 3 deletions
diff --git a/src/main/java/sevenUnits/unit/UnitDatabase.java b/src/main/java/sevenUnits/unit/UnitDatabase.java index 12b78a7..ea0aa7f 100644 --- a/src/main/java/sevenUnits/unit/UnitDatabase.java +++ b/src/main/java/sevenUnits/unit/UnitDatabase.java @@ -1256,11 +1256,13 @@ public final class UnitDatabase { * @since v0.2.0 */ private final ExpressionParser<UnitPrefix> prefixExpressionParser = new ExpressionParser.Builder<>( - this::getPrefix).addBinaryOperator("*", (o1, o2) -> o1.times(o2), 0) + this::getPrefix).addBinaryOperator("+", (o1, o2) -> o1.plus(o2), 0) + .addBinaryOperator("-", (o1, o2) -> o1.minus(o2), 0) + .addBinaryOperator("*", (o1, o2) -> o1.times(o2), 1) .addSpaceFunction("*") - .addBinaryOperator("/", (o1, o2) -> o1.dividedBy(o2), 0) + .addBinaryOperator("/", (o1, o2) -> o1.dividedBy(o2), 1) .addBinaryOperator("^", - (o1, o2) -> o1.toExponent(o2.getMultiplier()), 1) + (o1, o2) -> o1.toExponent(o2.getMultiplier()), 2) .build(); /** diff --git a/src/main/java/sevenUnits/unit/UnitPrefix.java b/src/main/java/sevenUnits/unit/UnitPrefix.java index e1f7788..824f60b 100644 --- a/src/main/java/sevenUnits/unit/UnitPrefix.java +++ b/src/main/java/sevenUnits/unit/UnitPrefix.java @@ -158,6 +158,22 @@ public final class UnitPrefix implements Nameable { } /** + * Adds {@code other} to this prefix and returns the result. + * @since 2024-03-03 + */ + public UnitPrefix plus(final UnitPrefix other) { + return valueOf(this.getMultiplier() + other.getMultiplier()); + } + + /** + * Subtracts {@code other} from this prefix and returns the result. + * @since 2024-03-03 + */ + public UnitPrefix minus(final UnitPrefix other) { + return valueOf(this.getMultiplier() - other.getMultiplier()); + } + + /** * Multiplies this prefix by {@code other}. * * @param other prefix to multiply by |