summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/sevenUnits/unit/Metric.java153
-rw-r--r--src/main/java/sevenUnits/utils/NameSymbol.java3
-rw-r--r--src/main/resources/dimensionfile.txt8
-rw-r--r--src/test/java/sevenUnitsGUI/PresenterTest.java29
4 files changed, 117 insertions, 76 deletions
diff --git a/src/main/java/sevenUnits/unit/Metric.java b/src/main/java/sevenUnits/unit/Metric.java
index 78e3769..7ede085 100644
--- a/src/main/java/sevenUnits/unit/Metric.java
+++ b/src/main/java/sevenUnits/unit/Metric.java
@@ -19,6 +19,7 @@ package sevenUnits.unit;
import java.util.Set;
import sevenUnits.utils.NameSymbol;
+import sevenUnits.utils.NamedObjectProduct;
import sevenUnits.utils.ObjectProduct;
/**
@@ -114,32 +115,39 @@ public final class Metric {
public static final class Dimensions {
public static final ObjectProduct<BaseDimension> EMPTY = ObjectProduct
.empty();
- public static final ObjectProduct<BaseDimension> LENGTH = ObjectProduct
- .oneOf(BaseDimensions.LENGTH);
- public static final ObjectProduct<BaseDimension> MASS = ObjectProduct
- .oneOf(BaseDimensions.MASS);
- public static final ObjectProduct<BaseDimension> TIME = ObjectProduct
- .oneOf(BaseDimensions.TIME);
- public static final ObjectProduct<BaseDimension> ELECTRIC_CURRENT = ObjectProduct
- .oneOf(BaseDimensions.ELECTRIC_CURRENT);
- public static final ObjectProduct<BaseDimension> TEMPERATURE = ObjectProduct
- .oneOf(BaseDimensions.TEMPERATURE);
- public static final ObjectProduct<BaseDimension> QUANTITY = ObjectProduct
- .oneOf(BaseDimensions.QUANTITY);
- public static final ObjectProduct<BaseDimension> LUMINOUS_INTENSITY = ObjectProduct
- .oneOf(BaseDimensions.LUMINOUS_INTENSITY);
- public static final ObjectProduct<BaseDimension> INFORMATION = ObjectProduct
- .oneOf(BaseDimensions.INFORMATION);
- public static final ObjectProduct<BaseDimension> CURRENCY = ObjectProduct
- .oneOf(BaseDimensions.CURRENCY);
+ public static final NamedObjectProduct<BaseDimension> LENGTH = ObjectProduct
+ .oneOf(BaseDimensions.LENGTH)
+ .withName(NameSymbol.of("Length", "L"));
+ public static final NamedObjectProduct<BaseDimension> MASS = ObjectProduct
+ .oneOf(BaseDimensions.MASS).withName(NameSymbol.of("Mass", "M"));
+ public static final NamedObjectProduct<BaseDimension> TIME = ObjectProduct
+ .oneOf(BaseDimensions.TIME).withName(NameSymbol.of("Time", "T"));
+ public static final NamedObjectProduct<BaseDimension> ELECTRIC_CURRENT = ObjectProduct
+ .oneOf(BaseDimensions.ELECTRIC_CURRENT)
+ .withName(NameSymbol.of("Current", "I"));
+ public static final NamedObjectProduct<BaseDimension> TEMPERATURE = ObjectProduct
+ .oneOf(BaseDimensions.TEMPERATURE)
+ .withName(NameSymbol.of("Temperature", "\u0398"));
+ public static final NamedObjectProduct<BaseDimension> QUANTITY = ObjectProduct
+ .oneOf(BaseDimensions.QUANTITY)
+ .withName(NameSymbol.of("Quantity", "N"));
+ public static final NamedObjectProduct<BaseDimension> LUMINOUS_INTENSITY = ObjectProduct
+ .oneOf(BaseDimensions.LUMINOUS_INTENSITY)
+ .withName(NameSymbol.of("Luminous Intensity", "J"));
+ public static final NamedObjectProduct<BaseDimension> INFORMATION = ObjectProduct
+ .oneOf(BaseDimensions.INFORMATION)
+ .withName(NameSymbol.ofName("Information"));
+ public static final NamedObjectProduct<BaseDimension> CURRENCY = ObjectProduct
+ .oneOf(BaseDimensions.CURRENCY)
+ .withName(NameSymbol.ofName("Currency"));
// derived dimensions without named SI units
public static final ObjectProduct<BaseDimension> AREA = LENGTH
.times(LENGTH);
public static final ObjectProduct<BaseDimension> VOLUME = AREA
.times(LENGTH);
- public static final ObjectProduct<BaseDimension> VELOCITY = LENGTH
- .dividedBy(TIME);
+ public static final NamedObjectProduct<BaseDimension> VELOCITY = LENGTH
+ .dividedBy(TIME).withName(NameSymbol.ofName("Velocity"));
public static final ObjectProduct<BaseDimension> ACCELERATION = VELOCITY
.dividedBy(TIME);
public static final ObjectProduct<BaseDimension> WAVENUMBER = EMPTY
@@ -403,54 +411,89 @@ public final class Metric {
.withName(NameSymbol.of("exbi", "Ei"));
// a few prefixed units
- public static final LinearUnit MICROMETRE = Metric.METRE.withPrefix(Metric.MICRO);
- public static final LinearUnit MILLIMETRE = Metric.METRE.withPrefix(Metric.MILLI);
- public static final LinearUnit KILOMETRE = Metric.METRE.withPrefix(Metric.KILO);
- public static final LinearUnit MEGAMETRE = Metric.METRE.withPrefix(Metric.MEGA);
+ public static final LinearUnit MICROMETRE = Metric.METRE
+ .withPrefix(Metric.MICRO);
+ public static final LinearUnit MILLIMETRE = Metric.METRE
+ .withPrefix(Metric.MILLI);
+ public static final LinearUnit KILOMETRE = Metric.METRE
+ .withPrefix(Metric.KILO);
+ public static final LinearUnit MEGAMETRE = Metric.METRE
+ .withPrefix(Metric.MEGA);
- public static final LinearUnit MICROLITRE = Metric.LITRE.withPrefix(Metric.MICRO);
- public static final LinearUnit MILLILITRE = Metric.LITRE.withPrefix(Metric.MILLI);
- public static final LinearUnit KILOLITRE = Metric.LITRE.withPrefix(Metric.KILO);
- public static final LinearUnit MEGALITRE = Metric.LITRE.withPrefix(Metric.MEGA);
+ public static final LinearUnit MICROLITRE = Metric.LITRE
+ .withPrefix(Metric.MICRO);
+ public static final LinearUnit MILLILITRE = Metric.LITRE
+ .withPrefix(Metric.MILLI);
+ public static final LinearUnit KILOLITRE = Metric.LITRE
+ .withPrefix(Metric.KILO);
+ public static final LinearUnit MEGALITRE = Metric.LITRE
+ .withPrefix(Metric.MEGA);
- public static final LinearUnit MICROSECOND = Metric.SECOND.withPrefix(Metric.MICRO);
- public static final LinearUnit MILLISECOND = Metric.SECOND.withPrefix(Metric.MILLI);
- public static final LinearUnit KILOSECOND = Metric.SECOND.withPrefix(Metric.KILO);
- public static final LinearUnit MEGASECOND = Metric.SECOND.withPrefix(Metric.MEGA);
+ public static final LinearUnit MICROSECOND = Metric.SECOND
+ .withPrefix(Metric.MICRO);
+ public static final LinearUnit MILLISECOND = Metric.SECOND
+ .withPrefix(Metric.MILLI);
+ public static final LinearUnit KILOSECOND = Metric.SECOND
+ .withPrefix(Metric.KILO);
+ public static final LinearUnit MEGASECOND = Metric.SECOND
+ .withPrefix(Metric.MEGA);
- public static final LinearUnit MICROGRAM = Metric.GRAM.withPrefix(Metric.MICRO);
- public static final LinearUnit MILLIGRAM = Metric.GRAM.withPrefix(Metric.MILLI);
- public static final LinearUnit MEGAGRAM = Metric.GRAM.withPrefix(Metric.MEGA);
+ public static final LinearUnit MICROGRAM = Metric.GRAM
+ .withPrefix(Metric.MICRO);
+ public static final LinearUnit MILLIGRAM = Metric.GRAM
+ .withPrefix(Metric.MILLI);
+ public static final LinearUnit MEGAGRAM = Metric.GRAM
+ .withPrefix(Metric.MEGA);
- public static final LinearUnit MICRONEWTON = Metric.NEWTON.withPrefix(Metric.MICRO);
- public static final LinearUnit MILLINEWTON = Metric.NEWTON.withPrefix(Metric.MILLI);
- public static final LinearUnit KILONEWTON = Metric.NEWTON.withPrefix(Metric.KILO);
- public static final LinearUnit MEGANEWTON = Metric.NEWTON.withPrefix(Metric.MEGA);
+ public static final LinearUnit MICRONEWTON = Metric.NEWTON
+ .withPrefix(Metric.MICRO);
+ public static final LinearUnit MILLINEWTON = Metric.NEWTON
+ .withPrefix(Metric.MILLI);
+ public static final LinearUnit KILONEWTON = Metric.NEWTON
+ .withPrefix(Metric.KILO);
+ public static final LinearUnit MEGANEWTON = Metric.NEWTON
+ .withPrefix(Metric.MEGA);
- public static final LinearUnit MICROJOULE = Metric.JOULE.withPrefix(Metric.MICRO);
- public static final LinearUnit MILLIJOULE = Metric.JOULE.withPrefix(Metric.MILLI);
- public static final LinearUnit KILOJOULE = Metric.JOULE.withPrefix(Metric.KILO);
- public static final LinearUnit MEGAJOULE = Metric.JOULE.withPrefix(Metric.MEGA);
+ public static final LinearUnit MICROJOULE = Metric.JOULE
+ .withPrefix(Metric.MICRO);
+ public static final LinearUnit MILLIJOULE = Metric.JOULE
+ .withPrefix(Metric.MILLI);
+ public static final LinearUnit KILOJOULE = Metric.JOULE
+ .withPrefix(Metric.KILO);
+ public static final LinearUnit MEGAJOULE = Metric.JOULE
+ .withPrefix(Metric.MEGA);
- public static final LinearUnit MICROWATT = Metric.WATT.withPrefix(Metric.MICRO);
- public static final LinearUnit MILLIWATT = Metric.WATT.withPrefix(Metric.MILLI);
- public static final LinearUnit KILOWATT = Metric.WATT.withPrefix(Metric.KILO);
- public static final LinearUnit MEGAWATT = Metric.WATT.withPrefix(Metric.MEGA);
+ public static final LinearUnit MICROWATT = Metric.WATT
+ .withPrefix(Metric.MICRO);
+ public static final LinearUnit MILLIWATT = Metric.WATT
+ .withPrefix(Metric.MILLI);
+ public static final LinearUnit KILOWATT = Metric.WATT
+ .withPrefix(Metric.KILO);
+ public static final LinearUnit MEGAWATT = Metric.WATT
+ .withPrefix(Metric.MEGA);
public static final LinearUnit MICROCOULOMB = Metric.COULOMB
.withPrefix(Metric.MICRO);
public static final LinearUnit MILLICOULOMB = Metric.COULOMB
.withPrefix(Metric.MILLI);
- public static final LinearUnit KILOCOULOMB = Metric.COULOMB.withPrefix(Metric.KILO);
- public static final LinearUnit MEGACOULOMB = Metric.COULOMB.withPrefix(Metric.MEGA);
+ public static final LinearUnit KILOCOULOMB = Metric.COULOMB
+ .withPrefix(Metric.KILO);
+ public static final LinearUnit MEGACOULOMB = Metric.COULOMB
+ .withPrefix(Metric.MEGA);
- public static final LinearUnit MICROAMPERE = Metric.AMPERE.withPrefix(Metric.MICRO);
- public static final LinearUnit MILLIAMPERE = Metric.AMPERE.withPrefix(Metric.MILLI);
+ public static final LinearUnit MICROAMPERE = Metric.AMPERE
+ .withPrefix(Metric.MICRO);
+ public static final LinearUnit MILLIAMPERE = Metric.AMPERE
+ .withPrefix(Metric.MILLI);
- public static final LinearUnit MICROVOLT = Metric.VOLT.withPrefix(Metric.MICRO);
- public static final LinearUnit MILLIVOLT = Metric.VOLT.withPrefix(Metric.MILLI);
- public static final LinearUnit KILOVOLT = Metric.VOLT.withPrefix(Metric.KILO);
- public static final LinearUnit MEGAVOLT = Metric.VOLT.withPrefix(Metric.MEGA);
+ public static final LinearUnit MICROVOLT = Metric.VOLT
+ .withPrefix(Metric.MICRO);
+ public static final LinearUnit MILLIVOLT = Metric.VOLT
+ .withPrefix(Metric.MILLI);
+ public static final LinearUnit KILOVOLT = Metric.VOLT
+ .withPrefix(Metric.KILO);
+ public static final LinearUnit MEGAVOLT = Metric.VOLT
+ .withPrefix(Metric.MEGA);
public static final LinearUnit KILOOHM = Metric.OHM.withPrefix(Metric.KILO);
public static final LinearUnit MEGAOHM = Metric.OHM.withPrefix(Metric.MEGA);
diff --git a/src/main/java/sevenUnits/utils/NameSymbol.java b/src/main/java/sevenUnits/utils/NameSymbol.java
index 255e82f..41cf41d 100644
--- a/src/main/java/sevenUnits/utils/NameSymbol.java
+++ b/src/main/java/sevenUnits/utils/NameSymbol.java
@@ -283,7 +283,8 @@ public final class NameSymbol {
if (this.isEmpty())
return "NameSymbol.EMPTY";
else if (this.primaryName.isPresent() && this.symbol.isPresent())
- return this.primaryName + " (" + this.symbol + ")";
+ return this.primaryName.orElseThrow() + " ("
+ + this.symbol.orElseThrow() + ")";
else
return this.primaryName.orElseGet(this.symbol::orElseThrow);
}
diff --git a/src/main/resources/dimensionfile.txt b/src/main/resources/dimensionfile.txt
index 3485de5..a946677 100644
--- a/src/main/resources/dimensionfile.txt
+++ b/src/main/resources/dimensionfile.txt
@@ -12,7 +12,7 @@ TIME !
TEMPERATURE !
# Derived Dimensions
-AREA LENGTH^2
-VOLUME LENGTH^3
-VELOCITY LENGTH / TIME
-ENERGY MASS * VELOCITY^2 \ No newline at end of file
+Area LENGTH^2
+Volume LENGTH^3
+Velocity LENGTH / TIME
+Energy MASS * Velocity^2 \ No newline at end of file
diff --git a/src/test/java/sevenUnitsGUI/PresenterTest.java b/src/test/java/sevenUnitsGUI/PresenterTest.java
index deb16d7..82842d8 100644
--- a/src/test/java/sevenUnitsGUI/PresenterTest.java
+++ b/src/test/java/sevenUnitsGUI/PresenterTest.java
@@ -32,7 +32,6 @@ import sevenUnits.unit.BaseDimension;
import sevenUnits.unit.Metric;
import sevenUnits.unit.Unit;
import sevenUnits.unit.UnitValue;
-import sevenUnits.utils.NameSymbol;
import sevenUnits.utils.NamedObjectProduct;
/**
@@ -41,19 +40,18 @@ import sevenUnits.utils.NamedObjectProduct;
* @since 2022-02-10
*/
public final class PresenterTest {
+ static final Set<Unit> testUnits = Set.of(Metric.METRE, Metric.KILOMETRE,
+ Metric.METRE_PER_SECOND, Metric.KILOMETRE_PER_HOUR);
+
+ static final Set<NamedObjectProduct<BaseDimension>> testDimensions = Set
+ .of(Metric.Dimensions.LENGTH, Metric.Dimensions.VELOCITY);
+
private static final List<String> unitNames(
Collection<? extends Unit> units) {
return units.stream().map(Unit::getShortName)
.collect(Collectors.toList());
}
- Set<Unit> testUnits = Set.of(Metric.METRE, Metric.KILOMETRE,
- Metric.METRE_PER_SECOND, Metric.KILOMETRE_PER_HOUR);
-
- Set<NamedObjectProduct<BaseDimension>> testDimensions = Set.of(
- Metric.Dimensions.LENGTH.withName(NameSymbol.ofName("Length")),
- Metric.Dimensions.VELOCITY.withName(NameSymbol.ofName("Velocity")));
-
/**
* Test method for {@link Presenter#convertExpressions}
*
@@ -87,8 +85,8 @@ public final class PresenterTest {
final ViewBot viewBot = new ViewBot();
final Presenter presenter = new Presenter(viewBot);
- viewBot.setFromUnits(this.testUnits);
- viewBot.setToUnits(this.testUnits);
+ viewBot.setFromUnits(testUnits);
+ viewBot.setToUnits(testUnits);
viewBot.setFromSelection(Optional.of(Metric.METRE));
viewBot.setToSelection(Optional.of(Metric.KILOMETRE));
viewBot.setInputValue(OptionalDouble.of(10000.0));
@@ -124,16 +122,15 @@ public final class PresenterTest {
// override default database units
presenter.database.clear();
- for (final Unit unit : this.testUnits) {
+ for (final Unit unit : testUnits) {
presenter.database.addUnit(unit.getPrimaryName().orElseThrow(), unit);
}
// set from and to units
- viewBot.setFromUnits(this.testUnits);
- viewBot.setToUnits(this.testUnits);
- viewBot.setDimensions(this.testDimensions);
- viewBot.setSelectedDimension(
- Optional.of(this.testDimensions.iterator().next()));
+ viewBot.setFromUnits(testUnits);
+ viewBot.setToUnits(testUnits);
+ viewBot.setDimensions(testDimensions);
+ viewBot.setSelectedDimension(Optional.of(Metric.Dimensions.LENGTH));
// filter to length units only, then get the filtered sets of units
presenter.updateView();