From 4910b914392753986526bc28102ddef42e275e6c Mon Sep 17 00:00:00 2001 From: Adrien Hopkins Date: Wed, 30 Apr 2025 16:42:01 -0500 Subject: Add more UnitDatabase tests --- src/main/java/sevenUnits/unit/UnitDatabase.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'src/main/java/sevenUnits/unit/UnitDatabase.java') diff --git a/src/main/java/sevenUnits/unit/UnitDatabase.java b/src/main/java/sevenUnits/unit/UnitDatabase.java index dc81aca..690430b 100644 --- a/src/main/java/sevenUnits/unit/UnitDatabase.java +++ b/src/main/java/sevenUnits/unit/UnitDatabase.java @@ -1905,18 +1905,23 @@ public final class UnitDatabase { * * @since 2024-08-22 */ - private List getUnitSetFromExpression(String expression) { + List getUnitSetFromExpression(String expression) { final String[] parts = expression.split(";"); final List units = new ArrayList<>(parts.length); for (final String unitName : parts) { final Unit unit = this.getUnitFromExpression(unitName.trim()); - if (unit instanceof LinearUnit) { - units.add((LinearUnit) unit); - } else + if (!(unit instanceof LinearUnit)) { throw new IllegalArgumentException(String.format( "Unit '%s' is in a unit-set expression, but is not linear.", unitName)); + } else if (units.size() > 0 && !unit.canConvertTo(units.get(0))) { + throw new IllegalArgumentException(String.format( + "Units in expression '%s' have different dimensions.", + expression)); + } + + units.add((LinearUnit) unit); } return units; } -- cgit v1.2.3