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.java6
-rw-r--r--src/test/java/sevenUnits/unit/UnitTest.java86
2 files changed, 87 insertions, 5 deletions
diff --git a/src/test/java/sevenUnits/unit/UnitDatabaseTest.java b/src/test/java/sevenUnits/unit/UnitDatabaseTest.java
index 033d763..2276d7c 100644
--- a/src/test/java/sevenUnits/unit/UnitDatabaseTest.java
+++ b/src/test/java/sevenUnits/unit/UnitDatabaseTest.java
@@ -568,6 +568,12 @@ class UnitDatabaseTest {
final Unit actual2 = database.getUnitFromExpression("2 fj + 6 ej");
assertEquals(expected2, actual2);
+
+ // test incorrect expressions
+ assertThrows(IllegalArgumentException.class,
+ () -> database.getUnitFromExpression("U + V"));
+ assertThrows(IllegalArgumentException.class,
+ () -> database.getUnitFromExpression("U - V"));
}
/**
diff --git a/src/test/java/sevenUnits/unit/UnitTest.java b/src/test/java/sevenUnits/unit/UnitTest.java
index e495338..bb2e6a4 100644
--- a/src/test/java/sevenUnits/unit/UnitTest.java
+++ b/src/test/java/sevenUnits/unit/UnitTest.java
@@ -27,6 +27,7 @@ import java.util.concurrent.ThreadLocalRandom;
import org.junit.jupiter.api.Test;
import sevenUnits.utils.DecimalComparison;
+import sevenUnits.utils.UncertainDouble;
/**
* Testing the various Unit classes. This is NOT part of this program's public
@@ -53,8 +54,10 @@ class UnitTest {
// test with LinearUnitValue
final LinearUnitValue value1 = LinearUnitValue.getExact(Metric.METRE, 15);
final LinearUnitValue value2 = LinearUnitValue.getExact(foot, 120);
- final LinearUnitValue value3 = LinearUnitValue.getExact(Metric.METRE, 0.5);
- final LinearUnitValue value4 = LinearUnitValue.getExact(Metric.KILOGRAM, 60);
+ final LinearUnitValue value3 = LinearUnitValue.getExact(Metric.METRE,
+ 0.5);
+ final LinearUnitValue value4 = LinearUnitValue.getExact(Metric.KILOGRAM,
+ 60);
// make sure addition is done correctly
assertEquals(51.576, value1.plus(value2).getValueExact(), 0.001);
@@ -71,6 +74,7 @@ class UnitTest {
// make sure errors happen when they should
assertThrows(IllegalArgumentException.class, () -> value1.plus(value4));
+ assertThrows(IllegalArgumentException.class, () -> value1.minus(value4));
}
@Test
@@ -122,7 +126,8 @@ class UnitTest {
public void testMultiplicationAndDivision() {
// test unit-times-unit multiplication
final LinearUnit generatedJoule = Metric.KILOGRAM
- .times(Metric.METRE.toExponent(2)).dividedBy(Metric.SECOND.toExponent(2));
+ .times(Metric.METRE.toExponent(2))
+ .dividedBy(Metric.SECOND.toExponent(2));
final LinearUnit actualJoule = Metric.JOULE;
assertEquals(generatedJoule, actualJoule);
@@ -132,16 +137,87 @@ class UnitTest {
final LinearUnit hour = Metric.SECOND.times(3600);
final LinearUnit generatedKPH = kilometre.dividedBy(hour);
- final LinearUnit actualKPH = Metric.METRE.dividedBy(Metric.SECOND).dividedBy(3.6);
+ final LinearUnit actualKPH = Metric.METRE.dividedBy(Metric.SECOND)
+ .dividedBy(3.6);
assertEquals(generatedKPH, actualKPH);
}
@Test
public void testPrefixes() {
- final LinearUnit generatedKilometre = Metric.METRE.withPrefix(Metric.KILO);
+ final LinearUnit generatedKilometre = Metric.METRE
+ .withPrefix(Metric.KILO);
final LinearUnit actualKilometre = Metric.METRE.times(1000);
assertEquals(generatedKilometre, actualKilometre);
}
+
+ /**
+ * Tests converting an uncertain LinearUnitValue to a string.
+ *
+ * @since 2021-11-04
+ */
+ @Test
+ public void testValueToString1() {
+ final LinearUnitValue value = LinearUnitValue.of(Metric.METRE,
+ UncertainDouble.of(10, 0.24));
+
+ assertEquals("(10.0 ± 0.2) m", value.toString());
+ assertEquals("(10.0 ± 0.2) m", value.toString(true));
+ assertEquals("10.0 m", value.toString(false));
+ }
+
+ /**
+ * Tests converting a certain LinearUnitValue to a string.
+ *
+ * @since 2021-11-04
+ */
+ @Test
+ public void testValueToString2() {
+ final LinearUnitValue value = LinearUnitValue.of(Metric.METRE,
+ UncertainDouble.of(10, 0));
+
+ assertEquals("10.0 m", value.toString());
+ assertEquals("(10.0 ± 0.0) m", value.toString(true));
+ assertEquals("10.0 m", value.toString(false));
+ }
+
+ /**
+ * Tests converting an unnamed LinearUnitValue to a string.
+ *
+ * @since 2021-11-04
+ */
+ @Test
+ public void testValueToString3() {
+ final LinearUnitValue value = LinearUnitValue.of(
+ Metric.METRE.withName(NameSymbol.EMPTY),
+ UncertainDouble.of(10, 0.24));
+
+ assertEquals("10.0 unnamed unit (= 10.0 m)", value.toString(false));
+ }
+
+ /**
+ * Tests converting a named UnitValue to a string.
+ *
+ * @since 2021-11-04
+ */
+ @Test
+ public void testValueToString4() {
+ final UnitValue value = UnitValue.of(BritishImperial.FAHRENHEIT, 80);
+
+ assertEquals("80.0 \u00B0F", value.toString());
+ }
+
+ /**
+ * Tests converting an unnamed UnitValue to a string.
+ *
+ * @since 2021-11-04
+ */
+ @Test
+ public void testValueToString5() {
+ final UnitValue value = UnitValue
+ .of(USCustomary.FAHRENHEIT.withName(NameSymbol.EMPTY), 50);
+
+ assertEquals("50.0 unnamed unit (= 283.15 K)", value.toString());
+ }
}