summaryrefslogtreecommitdiff
path: root/src/main/java/sevenUnits/unit
diff options
context:
space:
mode:
authorAdrien Hopkins <ahopk127@my.yorku.ca>2021-10-04 18:26:58 -0500
committerAdrien Hopkins <ahopk127@my.yorku.ca>2021-10-04 18:26:58 -0500
commitb59082c6b558705d4bd5effce2ae4b98c8a3ebe5 (patch)
treeaeb0e9226436fe63e2cd4a558ffa0c4a2a07b7a9 /src/main/java/sevenUnits/unit
parente35af3d2a4745eca2e6e1a70a694c40ed045617e (diff)
Added tests for valid & invalid dimension files
Diffstat (limited to 'src/main/java/sevenUnits/unit')
-rw-r--r--src/main/java/sevenUnits/unit/UnitDatabase.java32
1 files changed, 23 insertions, 9 deletions
diff --git a/src/main/java/sevenUnits/unit/UnitDatabase.java b/src/main/java/sevenUnits/unit/UnitDatabase.java
index a1dbb0a..7c72570 100644
--- a/src/main/java/sevenUnits/unit/UnitDatabase.java
+++ b/src/main/java/sevenUnits/unit/UnitDatabase.java
@@ -1344,10 +1344,10 @@ public final class UnitDatabase {
final String name = lineMatcher.group(1);
final String expression = lineMatcher.group(2);
- if (name.endsWith(" ")) {
- System.err.printf("Warning - line %d's dimension name ends in a space",
- lineCounter);
- }
+ // if (name.endsWith(" ")) {
+ // System.err.printf("Warning - line %d's dimension name ends in a space",
+ // lineCounter);
+ // }
// if expression is "!", search for an existing dimension
// if no unit found, throw an error
@@ -1360,7 +1360,7 @@ public final class UnitDatabase {
final ObjectProduct<BaseDimension> dimension;
try {
dimension = this.getDimensionFromExpression(expression);
- } catch (final IllegalArgumentException e) {
+ } catch (final IllegalArgumentException | NoSuchElementException e) {
System.err.printf("Parsing error on line %d:%n", lineCounter);
throw e;
}
@@ -1444,7 +1444,8 @@ public final class UnitDatabase {
final UnitPrefix prefix;
try {
prefix = this.getPrefixFromExpression(expression);
- } catch (final IllegalArgumentException e) {
+ } catch (final IllegalArgumentException
+ | NoSuchElementException e) {
System.err.printf("Parsing error on line %d:%n", lineCounter);
throw e;
}
@@ -1454,7 +1455,8 @@ public final class UnitDatabase {
final Unit unit;
try {
unit = this.getUnitFromExpression(expression);
- } catch (final IllegalArgumentException e) {
+ } catch (final IllegalArgumentException
+ | NoSuchElementException e) {
System.err.printf("Parsing error on line %d:%n", lineCounter);
throw e;
}
@@ -1582,8 +1584,15 @@ public final class UnitDatabase {
}
return base.toExponent(exponent);
+ } else {
+ final ObjectProduct<BaseDimension> dimension = this.dimensions
+ .get(name);
+ if (dimension == null)
+ throw new NoSuchElementException(
+ "No dimension with name \"" + name + "\".");
+ else
+ return dimension;
}
- return this.dimensions.get(name);
}
/**
@@ -1696,7 +1705,12 @@ public final class UnitDatabase {
try {
return UnitPrefix.valueOf(Double.parseDouble(name));
} catch (final NumberFormatException e) {
- return this.prefixes.get(name);
+ final UnitPrefix prefix = this.prefixes.get(name);
+ if (prefix == null)
+ throw new NoSuchElementException(
+ "No prefix with name \"" + name + "\".");
+ else
+ return prefix;
}
}