diff options
author | Adrien Hopkins <ahopk127@my.yorku.ca> | 2021-08-26 07:52:45 -0500 |
---|---|---|
committer | Adrien Hopkins <ahopk127@my.yorku.ca> | 2021-08-26 08:04:32 -0500 |
commit | 1cb69cfdcb18bbafdbc792174697732e7cf359e7 (patch) | |
tree | 01db8e4ac3ee6d46b2f2e60ae07fc94425e55787 /src/main/java/sevenUnits/unit | |
parent | 2d6b85fb9e56b4afa7fd2f3cc26518d5d3125c2c (diff) |
Added units and dimensions to the design document
Diffstat (limited to 'src/main/java/sevenUnits/unit')
-rw-r--r-- | src/main/java/sevenUnits/unit/BritishImperial.java | 22 | ||||
-rw-r--r-- | src/main/java/sevenUnits/unit/LinearUnitValue.java | 2 | ||||
-rw-r--r-- | src/main/java/sevenUnits/unit/Metric.java (renamed from src/main/java/sevenUnits/unit/SI.java) | 86 | ||||
-rw-r--r-- | src/main/java/sevenUnits/unit/USCustomary.java | 8 | ||||
-rw-r--r-- | src/main/java/sevenUnits/unit/Unit.java | 12 | ||||
-rw-r--r-- | src/main/java/sevenUnits/unit/UnitDatabase.java | 8 |
6 files changed, 69 insertions, 69 deletions
diff --git a/src/main/java/sevenUnits/unit/BritishImperial.java b/src/main/java/sevenUnits/unit/BritishImperial.java index 63da7f0..81a3f2a 100644 --- a/src/main/java/sevenUnits/unit/BritishImperial.java +++ b/src/main/java/sevenUnits/unit/BritishImperial.java @@ -48,7 +48,7 @@ public final class BritishImperial { /** * According to the International Yard and Pound of 1959, a yard is defined as exactly 0.9144 metres. */ - public static final LinearUnit YARD = SI.METRE.times(0.9144); + public static final LinearUnit YARD = Metric.METRE.times(0.9144); public static final LinearUnit FOOT = YARD.dividedBy(3); public static final LinearUnit INCH = FOOT.dividedBy(12); public static final LinearUnit THOU = INCH.dividedBy(1000); @@ -57,7 +57,7 @@ public final class BritishImperial { public static final LinearUnit MILE = FURLONG.times(8); public static final LinearUnit LEAGUE = MILE.times(3); - public static final LinearUnit NAUTICAL_MILE = SI.METRE.times(1852); + public static final LinearUnit NAUTICAL_MILE = Metric.METRE.times(1852); public static final LinearUnit CABLE = NAUTICAL_MILE.dividedBy(10); public static final LinearUnit FATHOM = CABLE.dividedBy(100); @@ -72,7 +72,7 @@ public final class BritishImperial { * @since 2019-11-08 */ public static final class Mass { - public static final LinearUnit POUND = SI.GRAM.times(453.59237); + public static final LinearUnit POUND = Metric.GRAM.times(453.59237); public static final LinearUnit OUNCE = POUND.dividedBy(16); public static final LinearUnit DRACHM = POUND.dividedBy(256); public static final LinearUnit GRAIN = POUND.dividedBy(7000); @@ -80,7 +80,7 @@ public final class BritishImperial { public static final LinearUnit QUARTER = STONE.times(2); public static final LinearUnit HUNDREDWEIGHT = QUARTER.times(4); public static final LinearUnit LONG_TON = HUNDREDWEIGHT.times(20); - public static final LinearUnit SLUG = SI.KILOGRAM.times(14.59390294); + public static final LinearUnit SLUG = Metric.KILOGRAM.times(14.59390294); } /** @@ -90,7 +90,7 @@ public final class BritishImperial { * @since 2019-11-08 */ public static final class Volume { - public static final LinearUnit FLUID_OUNCE = SI.LITRE.withPrefix(SI.MILLI).times(28.4130625); + public static final LinearUnit FLUID_OUNCE = Metric.LITRE.withPrefix(Metric.MILLI).times(28.4130625); public static final LinearUnit GILL = FLUID_OUNCE.times(5); public static final LinearUnit PINT = FLUID_OUNCE.times(20); public static final LinearUnit QUART = PINT.times(2); @@ -104,13 +104,13 @@ public final class BritishImperial { public static final LinearUnit ACRE_FOOT = Area.ACRE.times(Length.FOOT); } - public static final LinearUnit OUNCE_FORCE = Mass.OUNCE.times(SI.Constants.EARTH_GRAVITY); - public static final LinearUnit POUND_FORCE = Mass.POUND.times(SI.Constants.EARTH_GRAVITY); + public static final LinearUnit OUNCE_FORCE = Mass.OUNCE.times(Metric.Constants.EARTH_GRAVITY); + public static final LinearUnit POUND_FORCE = Mass.POUND.times(Metric.Constants.EARTH_GRAVITY); - public static final LinearUnit BRITISH_THERMAL_UNIT = SI.JOULE.times(1055.06); - public static final LinearUnit CALORIE = SI.JOULE.times(4.184); - public static final LinearUnit KILOCALORIE = SI.JOULE.times(4184); + public static final LinearUnit BRITISH_THERMAL_UNIT = Metric.JOULE.times(1055.06); + public static final LinearUnit CALORIE = Metric.JOULE.times(4.184); + public static final LinearUnit KILOCALORIE = Metric.JOULE.times(4184); - public static final Unit FAHRENHEIT = Unit.fromConversionFunctions(SI.KELVIN.getBase(), + public static final Unit FAHRENHEIT = Unit.fromConversionFunctions(Metric.KELVIN.getBase(), tempK -> tempK * 1.8 - 459.67, tempF -> (tempF + 459.67) / 1.8); } diff --git a/src/main/java/sevenUnits/unit/LinearUnitValue.java b/src/main/java/sevenUnits/unit/LinearUnitValue.java index ffb9271..a36d568 100644 --- a/src/main/java/sevenUnits/unit/LinearUnitValue.java +++ b/src/main/java/sevenUnits/unit/LinearUnitValue.java @@ -32,7 +32,7 @@ import sevenUnits.utils.UncertainDouble; * @since 2020-07-26 */ public final class LinearUnitValue { - public static final LinearUnitValue ONE = getExact(SI.ONE, 1); + public static final LinearUnitValue ONE = getExact(Metric.ONE, 1); /** * Gets an exact {@code LinearUnitValue} diff --git a/src/main/java/sevenUnits/unit/SI.java b/src/main/java/sevenUnits/unit/Metric.java index 278fb5e..3c4d291 100644 --- a/src/main/java/sevenUnits/unit/SI.java +++ b/src/main/java/sevenUnits/unit/Metric.java @@ -36,7 +36,7 @@ import sevenUnits.utils.ObjectProduct; * @author Adrien Hopkins * @since 2019-10-16 */ -public final class SI { +public final class Metric { /// dimensions used by SI units // base dimensions, as BaseDimensions public static final class BaseDimensions { @@ -402,57 +402,57 @@ public final class SI { .withName(NameSymbol.of("exbi", "Ei")); // a few prefixed units - public static final LinearUnit MICROMETRE = SI.METRE.withPrefix(SI.MICRO); - public static final LinearUnit MILLIMETRE = SI.METRE.withPrefix(SI.MILLI); - public static final LinearUnit KILOMETRE = SI.METRE.withPrefix(SI.KILO); - public static final LinearUnit MEGAMETRE = SI.METRE.withPrefix(SI.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 = SI.LITRE.withPrefix(SI.MICRO); - public static final LinearUnit MILLILITRE = SI.LITRE.withPrefix(SI.MILLI); - public static final LinearUnit KILOLITRE = SI.LITRE.withPrefix(SI.KILO); - public static final LinearUnit MEGALITRE = SI.LITRE.withPrefix(SI.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 = SI.SECOND.withPrefix(SI.MICRO); - public static final LinearUnit MILLISECOND = SI.SECOND.withPrefix(SI.MILLI); - public static final LinearUnit KILOSECOND = SI.SECOND.withPrefix(SI.KILO); - public static final LinearUnit MEGASECOND = SI.SECOND.withPrefix(SI.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 = SI.GRAM.withPrefix(SI.MICRO); - public static final LinearUnit MILLIGRAM = SI.GRAM.withPrefix(SI.MILLI); - public static final LinearUnit MEGAGRAM = SI.GRAM.withPrefix(SI.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 = SI.NEWTON.withPrefix(SI.MICRO); - public static final LinearUnit MILLINEWTON = SI.NEWTON.withPrefix(SI.MILLI); - public static final LinearUnit KILONEWTON = SI.NEWTON.withPrefix(SI.KILO); - public static final LinearUnit MEGANEWTON = SI.NEWTON.withPrefix(SI.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 = SI.JOULE.withPrefix(SI.MICRO); - public static final LinearUnit MILLIJOULE = SI.JOULE.withPrefix(SI.MILLI); - public static final LinearUnit KILOJOULE = SI.JOULE.withPrefix(SI.KILO); - public static final LinearUnit MEGAJOULE = SI.JOULE.withPrefix(SI.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 = SI.WATT.withPrefix(SI.MICRO); - public static final LinearUnit MILLIWATT = SI.WATT.withPrefix(SI.MILLI); - public static final LinearUnit KILOWATT = SI.WATT.withPrefix(SI.KILO); - public static final LinearUnit MEGAWATT = SI.WATT.withPrefix(SI.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 = SI.COULOMB - .withPrefix(SI.MICRO); - public static final LinearUnit MILLICOULOMB = SI.COULOMB - .withPrefix(SI.MILLI); - public static final LinearUnit KILOCOULOMB = SI.COULOMB.withPrefix(SI.KILO); - public static final LinearUnit MEGACOULOMB = SI.COULOMB.withPrefix(SI.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 MICROAMPERE = SI.AMPERE.withPrefix(SI.MICRO); - public static final LinearUnit MILLIAMPERE = SI.AMPERE.withPrefix(SI.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 = SI.VOLT.withPrefix(SI.MICRO); - public static final LinearUnit MILLIVOLT = SI.VOLT.withPrefix(SI.MILLI); - public static final LinearUnit KILOVOLT = SI.VOLT.withPrefix(SI.KILO); - public static final LinearUnit MEGAVOLT = SI.VOLT.withPrefix(SI.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 = SI.OHM.withPrefix(SI.KILO); - public static final LinearUnit MEGAOHM = SI.OHM.withPrefix(SI.MEGA); + public static final LinearUnit KILOOHM = Metric.OHM.withPrefix(Metric.KILO); + public static final LinearUnit MEGAOHM = Metric.OHM.withPrefix(Metric.MEGA); // sets of prefixes public static final Set<UnitPrefix> ALL_PREFIXES = Set.of(DEKA, HECTO, KILO, @@ -473,7 +473,7 @@ public final class SI { MILLI, MICRO, NANO, PICO, FEMTO, ATTO, ZEPTO, YOCTO); // You may NOT get SI instances! - private SI() { + private Metric() { throw new AssertionError(); } } diff --git a/src/main/java/sevenUnits/unit/USCustomary.java b/src/main/java/sevenUnits/unit/USCustomary.java index 76356c0..459071f 100644 --- a/src/main/java/sevenUnits/unit/USCustomary.java +++ b/src/main/java/sevenUnits/unit/USCustomary.java @@ -52,7 +52,7 @@ public final class USCustomary { public static final LinearUnit YARD = BritishImperial.Length.YARD; public static final LinearUnit MILE = BritishImperial.Length.MILE; - public static final LinearUnit SURVEY_FOOT = SI.METRE.times(1200.0 / 3937.0); + public static final LinearUnit SURVEY_FOOT = Metric.METRE.times(1200.0 / 3937.0); public static final LinearUnit SURVEY_LINK = SURVEY_FOOT.times(33.0 / 50.0); public static final LinearUnit SURVEY_ROD = SURVEY_FOOT.times(16.5); public static final LinearUnit SURVEY_CHAIN = SURVEY_ROD.times(4); @@ -97,7 +97,7 @@ public final class USCustomary { public static final LinearUnit CUBIC_YARD = Length.YARD.toExponent(3); public static final LinearUnit ACRE_FOOT = Area.ACRE.times(Length.FOOT); - public static final LinearUnit MINIM = SI.LITRE.withPrefix(SI.MICRO).times(61.611519921875); + public static final LinearUnit MINIM = Metric.LITRE.withPrefix(Metric.MICRO).times(61.611519921875); public static final LinearUnit FLUID_DRAM = MINIM.times(60); public static final LinearUnit TEASPOON = MINIM.times(80); public static final LinearUnit TABLESPOON = TEASPOON.times(3); @@ -112,7 +112,7 @@ public final class USCustomary { public static final LinearUnit OIL_BARREL = GALLON.times(42); public static final LinearUnit HOGSHEAD = GALLON.times(63); - public static final LinearUnit DRY_PINT = SI.LITRE.times(0.5506104713575); + public static final LinearUnit DRY_PINT = Metric.LITRE.times(0.5506104713575); public static final LinearUnit DRY_QUART = DRY_PINT.times(2); public static final LinearUnit DRY_GALLON = DRY_QUART.times(4); public static final LinearUnit PECK = DRY_GALLON.times(2); @@ -128,7 +128,7 @@ public final class USCustomary { public static final LinearUnit KILOCALORIE = BritishImperial.KILOCALORIE; public static final LinearUnit FOOT_POUND = POUND_FORCE.times(Length.FOOT); - public static final LinearUnit HORSEPOWER = Length.FOOT.times(POUND_FORCE).dividedBy(SI.MINUTE).times(33000); + public static final LinearUnit HORSEPOWER = Length.FOOT.times(POUND_FORCE).dividedBy(Metric.MINUTE).times(33000); public static final LinearUnit POUND_PER_SQUARE_INCH = POUND_FORCE.dividedBy(Length.INCH.toExponent(2)); public static final Unit FAHRENHEIT = BritishImperial.FAHRENHEIT; diff --git a/src/main/java/sevenUnits/unit/Unit.java b/src/main/java/sevenUnits/unit/Unit.java index 8fcacb8..58b4e10 100644 --- a/src/main/java/sevenUnits/unit/Unit.java +++ b/src/main/java/sevenUnits/unit/Unit.java @@ -117,7 +117,7 @@ public abstract class Unit implements Nameable { * @since 2019-10-16 * @throws NullPointerException if unitBase or ns is null */ - Unit(ObjectProduct<BaseUnit> unitBase, NameSymbol ns) { + protected Unit(ObjectProduct<BaseUnit> unitBase, NameSymbol ns) { this.unitBase = Objects.requireNonNull(unitBase, "unitBase may not be null"); this.nameSymbol = Objects.requireNonNull(ns, "ns may not be null"); @@ -192,7 +192,7 @@ public abstract class Unit implements Nameable { * * @implSpec This method is used by {@link #convertTo}, and its behaviour * affects the behaviour of {@code convertTo}. - * + * * @param value value expressed in <b>base</b> unit * @return value expressed in <b>this</b> unit * @since 2018-12-22 @@ -208,7 +208,7 @@ public abstract class Unit implements Nameable { * {@code other.convertFromBase(this.convertToBase(value))}. * Therefore, overriding either of those methods will change the * output of this method. - * + * * @param other unit to convert to * @param value value to convert * @return converted value @@ -235,7 +235,7 @@ public abstract class Unit implements Nameable { * {@code other.convertFromBase(this.convertToBase(value))}. * Therefore, overriding either of those methods will change the * output of this method. - * + * * @param other unitlike form to convert to * @param value value to convert * @param <W> type of value to convert to @@ -270,7 +270,7 @@ public abstract class Unit implements Nameable { * * @implSpec This method is used by {@link #convertTo}, and its behaviour * affects the behaviour of {@code convertTo}. - * + * * @param value value expressed in <b>this</b> unit * @return value expressed in <b>base</b> unit * @since 2018-12-22 @@ -342,7 +342,7 @@ public abstract class Unit implements Nameable { // second condition - check that for (final BaseUnit b : linear.getBase().getBaseSet()) { - if (!SI.BaseUnits.BASE_UNITS.contains(b)) + if (!Metric.BaseUnits.BASE_UNITS.contains(b)) return false; } diff --git a/src/main/java/sevenUnits/unit/UnitDatabase.java b/src/main/java/sevenUnits/unit/UnitDatabase.java index a40f000..b45d9cf 100644 --- a/src/main/java/sevenUnits/unit/UnitDatabase.java +++ b/src/main/java/sevenUnits/unit/UnitDatabase.java @@ -1116,7 +1116,7 @@ public final class UnitDatabase { private static final LinearUnit exponentiateUnits(final LinearUnit base, final LinearUnit exponentUnit) { // exponent function - first check if o2 is a number, - if (exponentUnit.getBase().equals(SI.ONE.getBase())) { + if (exponentUnit.getBase().equals(Metric.ONE.getBase())) { // then check if it is an integer, final double exponent = exponentUnit.getConversionFactor(); if (DecimalComparison.equals(exponent % 1, 0)) @@ -1142,7 +1142,7 @@ public final class UnitDatabase { private static final LinearUnitValue exponentiateUnitValues( final LinearUnitValue base, final LinearUnitValue exponentValue) { // exponent function - first check if o2 is a number, - if (exponentValue.canConvertTo(SI.ONE)) { + if (exponentValue.canConvertTo(Metric.ONE)) { // then check if it is an integer, final double exponent = exponentValue.getValueExact(); if (DecimalComparison.equals(exponent % 1, 0)) @@ -1676,7 +1676,7 @@ public final class UnitDatabase { final BigDecimal number = new BigDecimal(name); final double uncertainty = Math.pow(10, -number.scale()); - return LinearUnitValue.of(SI.ONE, + return LinearUnitValue.of(Metric.ONE, UncertainDouble.of(number.doubleValue(), uncertainty)); } catch (final NumberFormatException e) { return LinearUnitValue.getExact(this.getLinearUnit(name), 1); @@ -1786,7 +1786,7 @@ public final class UnitDatabase { public Unit getUnit(final String name) { try { final double value = Double.parseDouble(name); - return SI.ONE.times(value); + return Metric.ONE.times(value); } catch (final NumberFormatException e) { final Unit unit = this.units.get(name); if (unit == null) |