summaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/sevenUnits/unit/UnitDatabaseTest.java44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/test/java/sevenUnits/unit/UnitDatabaseTest.java b/src/test/java/sevenUnits/unit/UnitDatabaseTest.java
index 90c18e6..033d763 100644
--- a/src/test/java/sevenUnits/unit/UnitDatabaseTest.java
+++ b/src/test/java/sevenUnits/unit/UnitDatabaseTest.java
@@ -25,6 +25,7 @@ import static org.junit.jupiter.api.Assertions.fail;
import java.io.IOException;
import java.io.InputStream;
import java.util.Arrays;
+import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
@@ -195,6 +196,10 @@ class UnitDatabaseTest {
final LinearUnitValue actual = database
.evaluateUnitExpression("J + (2 * 3) J + (20 / 4) J");
assertEquals(expected, actual);
+
+ // check that negation works properly
+ assertEquals(2,
+ database.evaluateUnitExpression("J - -1 * J").getValueExact());
}
/**
@@ -491,6 +496,45 @@ class UnitDatabaseTest {
assertThrows(NoSuchElementException.class, () -> database.getUnit("Z"));
}
+ @Test
+ public void testRemovableDuplicates() {
+ final Map<String, Unit> unitMap = new HashMap<>();
+ unitMap.put("meter", Metric.METRE);
+ unitMap.put("metre", Metric.METRE);
+ unitMap.put("m", Metric.METRE);
+ unitMap.put("second", Metric.SECOND);
+
+ assertTrue(UnitDatabase.isRemovableDuplicate(unitMap,
+ entry("m", Metric.METRE)));
+ assertTrue(UnitDatabase.isRemovableDuplicate(unitMap,
+ entry("meter", Metric.METRE)));
+ assertFalse(UnitDatabase.isRemovableDuplicate(unitMap,
+ entry("metre", Metric.METRE)));
+ assertFalse(UnitDatabase.isRemovableDuplicate(unitMap,
+ entry("second", Metric.SECOND)));
+ }
+
+ @Test
+ public void testToString() {
+ final UnitDatabase database = new UnitDatabase();
+
+ database.addUnit("J", J);
+ database.addUnit("K", J);
+
+ database.addPrefix("A", A);
+ database.addPrefix("B", B);
+ database.addPrefix("C", C);
+
+ if ("Unit Database with 1 units, 3 unit prefixes and 0 dimensions"
+ .equals(database.toString())) {
+ fail("Database counts by number of units, not number of unit names.");
+ }
+
+ assertEquals(
+ "Unit Database with 2 units, 3 unit prefixes and 0 dimensions",
+ database.toString());
+ }
+
/**
* Test that unit expressions return the correct value.
*