Skip to content

Commit

Permalink
#59: Added missing units and updated number of units in test
Browse files Browse the repository at this point in the history
  • Loading branch information
Magno Nascimento committed Mar 20, 2017
1 parent 5efea6f commit ecdacf9
Show file tree
Hide file tree
Showing 2 changed files with 126 additions and 7 deletions.
131 changes: 125 additions & 6 deletions ucum-java8/src/main/java/systems/uom/ucum/UCUM.java
Original file line number Diff line number Diff line change
Expand Up @@ -254,6 +254,8 @@ public static UCUM getInstance() {
/** As per <a href="http://unitsofmeasure.org/">UCUM</a> standard. */
public static final Unit<Time> YEAR = addUnit(Units.DAY.multiply(365.25));
/** As per <a href="http://unitsofmeasure.org/">UCUM</a> standard. */
public static final Unit<Time> WEEK = addUnit(Units.DAY.multiply(7));
/** As per <a href="http://unitsofmeasure.org/">UCUM</a> standard. */
public static final Unit<Time> MONTH_SYNODAL = addUnit(Units.DAY
.multiply(29.53059));
/** As per <a href="http://unitsofmeasure.org/">UCUM</a> standard. */
Expand Down Expand Up @@ -600,6 +602,14 @@ public static UCUM getInstance() {
/** As per <a href="http://unitsofmeasure.org/">UCUM</a> standard. */
public static final Unit<Volume> CUP_US = addUnit(TABLESPOON_US
.multiply(16));
/** As per <a href="http://unitsofmeasure.org/">UCUM</a> standard. */
public static final Unit<Volume> METRIC_FLUID_OUNCE_US = addUnit(MILLI(LITER).multiply(30));
/** As per <a href="http://unitsofmeasure.org/">UCUM</a> standard. */
public static final Unit<Volume> METRIC_CUP_US = addUnit(MILLI(LITER).multiply(240));
/** As per <a href="http://unitsofmeasure.org/">UCUM</a> standard. */
public static final Unit<Volume> METRIC_TEASPOON_CUP_US = addUnit(MILLI(LITER).multiply(5));
/** As per <a href="http://unitsofmeasure.org/">UCUM</a> standard. */
public static final Unit<Volume> METRIC_TABLESPOON_CUP_US = addUnit(MILLI(LITER).multiply(15));
// ///////////////////////////////////////////////
// BRITISH IMPERIAL VOLUME UNITS: UCUM 4.4 §38 //
// ///////////////////////////////////////////////
Expand Down Expand Up @@ -692,6 +702,9 @@ public static UCUM getInstance() {
/** As per <a href="http://unitsofmeasure.org/">UCUM</a> standard. */
public static final Unit<Mass> POUND_APOTHECARY = addUnit(OUNCE_APOTHECARY
.multiply(12));
/** As per <a href="http://unitsofmeasure.org/">UCUM</a> standard. */
public static final Unit<Mass> METRIC_OUNCE = addUnit(GRAM.multiply(28));

// ///////////////////////////////////////////
// TYPESETTER'S LENGTH UNITS: UCUM 4.4 §42 //
// ///////////////////////////////////////////
Expand Down Expand Up @@ -723,8 +736,11 @@ public static UCUM getInstance() {
// OTHER LEGACY UNITS: UCUM 4.5 §43 //
// ////////////////////////////////////
/** As per <a href="http://unitsofmeasure.org/">UCUM</a> standard. */
public static final Unit<Temperature> FAHRENHEIT = addUnit(KELVIN
.multiply(5).divide(9).shift(459.67));
public static final Unit<Temperature> FAHRENHEIT = addUnit(KELVIN.multiply(9).divide(5).shift(459.67));
/** As per <a href="http://unitsofmeasure.org/">UCUM</a> standard. */
public static final Unit<Temperature> RANKINE = addUnit(KELVIN.divide(9).multiply(5));
/** As per <a href="http://unitsofmeasure.org/">UCUM</a> standard. */
public static final Unit<Temperature> REAUMUR = addUnit(KELVIN.multiply(4).divide(5).shift(218.52));
/** As per <a href="http://unitsofmeasure.org/">UCUM</a> standard. */
public static final Unit<Energy> CALORIE_AT_15C = addUnit(JOULE.multiply(
41858).divide(10000));
Expand Down Expand Up @@ -768,9 +784,110 @@ public static UCUM getInstance() {
/** As per <a href="http://unitsofmeasure.org/">UCUM</a> standard. */
public static final Unit<Power> HORSEPOWER = addUnit(new ProductUnit<Power>(
FOOT_INTERNATIONAL.multiply(POUND_FORCE).divide(SECOND)));
// ///////////////////////////////////////////////////////
// SECTIONS §44-§46 skipped; implement later if needed //
// ///////////////////////////////////////////////////////

////////////////////////////////////////////
// CLINICAL MEDICINE UNITS: UCUM 4.5 §44 //
// /////////////////////////////////////////
/** As per <a href="http://unitsofmeasure.org/">UCUM</a> standard. */
public static final Unit<Pressure> METER_OF_WATER_COLUMN = addUnit(KILO(PASCAL).multiply(980665).divide(100000));
/** As per <a href="http://unitsofmeasure.org/">UCUM</a> standard. */
public static final Unit<Pressure> METER_OF_MERCURY_COLUMN = addUnit(KILO(PASCAL).multiply(1333220).divide(10000));
/** As per <a href="http://unitsofmeasure.org/">UCUM</a> standard. */
public static final Unit<Pressure> INCH_OF_WATER_COLUMN = addUnit(
new ProductUnit<Pressure>(METER_OF_WATER_COLUMN.multiply(INCH_INTERNATIONAL).divide(METER)));
/** As per <a href="http://unitsofmeasure.org/">UCUM</a> standard. */
public static final Unit<Pressure> INCH_OF_MERCURY_COLUMN = addUnit(
new ProductUnit<Pressure>(METER_OF_MERCURY_COLUMN.multiply(INCH_INTERNATIONAL).divide(METER)));

// public static final Unit PERIPHERAL_VASCULAR_RESISTANCE = addUnit(MILLI(METER_OF_MERCURY_COLUMN).multiply(SECOND).divide(MILLI(LITER)));
// public static final Unit WOOD = addUnit(MILLI(METER_OF_MERCURY_COLUMN).multiply(MINUTE).divide(LITER));
// public static final Unit DIOPTER = addUnit(ONE.divide(METER));
// public static final Unit PRISM_DIOPTER = addUnit(ONE.multiply(100).multiply(Math.tan(1)));
// public static final Unit PERCENT_OF_SLOPE = addUnit(ONE.multiply(100).multiply(Math.tan(1)));
// public static final Unit MESH = addUnit(ONE.divide(INCH_INTERNATIONAL));
// public static final Unit CHARRIERE = addUnit(MILLI(METER).divide(3));

/** As per <a href="http://unitsofmeasure.org/">UCUM</a> standard. */
public static final Unit<Volume> DROP = addUnit(MILLI(LITER).divide(20));

// public static final Unit HOUNSFIELD = addUnit(ONE);
// public static final Unit METABOLIC_EQUIVALENT = addUnit(MILLI(LITER).divide(MINUTE).divide(KILO(GRAM)));

// public static final Unit HOMEOPATHIC_POTENCY_OF_DECIMAL = addUnit(ONE.multiply(-1).multiply(Math.log10(1)));
// public static final Unit HOMEOPATHIC_POTENCY_OF_CENTESIMAL = addUnit(ONE.multiply(-1).multiply(Math.log(1)).divide(Math.log(100)));
// public static final Unit HOMEOPATHIC_POTENCY_OF_MILLESIMAL = addUnit(ONE.multiply(-1).multiply(Math.log(1)).divide(Math.log(1000)));
// public static final Unit HOMEOPATHIC_POTENCY_OF_QUINTALLESIMAL = addUnit(ONE.multiply(-1).multiply(Math.log(1)).divide(Math.log(50000)));

// public static final Unit HOMEOPATHIC_POTENCY_OF_DECIMAL_HAHNEMANNIAN = UNDEFINED;
// public static final Unit HOMEOPATHIC_POTENCY_OF_CENTESIMAL_HAHNEMANNIAN = UNDEFINED;
// public static final Unit HOMEOPATHIC_POTENCY_OF_MILLESIMAL_HAHNEMANNIAN = UNDEFINED;
// public static final Unit HOMEOPATHIC_POTENCY_OF_QUINTAMILLESIMAL_HAHNEMANNIAN = UNDEFINED;
// public static final Unit HOMEOPATHIC_POTENCY_OF_DECIMAL_KORSAKOVIAN = UNDEFINED;
// public static final Unit HOMEOPATHIC_POTENCY_OF_CENTESIMAL_KORSAKOVIAN = UNDEFINED;
// public static final Unit HOMEOPATHIC_POTENCY_OF_MILLESIMAL_KORSAKOVIAN = UNDEFINED;
// public static final Unit HOMEOPATHIC_POTENCY_OF_QUINTAMILLESIMAL_KORSAKOVIAN = UNDEFINED;

// ////////////////////////////////////////////////
// CHEMICAL AND BIOCHEMICAL UNITS: UCUM 4.5 §45 //
// ////////////////////////////////////////////////
// public static final Unit EQUIVALENTS = addUnit(MOLE);
// public static final Unit OSMOLE = addUnit(MOLE);
// public static final Unit PH = addUnit();
// public static final Unit GRAM_PERCENT = addUnit(GRAM.divide(DECI(LITER)));
// public static final Unit SVEDBERG = addUnit(SECOND.multiply(1E-13));
// public static final Unit HIGH_POWER_FIELD = addUnit(ONE);
// public static final Unit LOW_POWER_FIELD = addUnit(ONE);
// public static final Unit KATAL = addUnit(MOLE.divide(SECOND));
// public static final Unit UNIT = addUnit(MICRO(MOLE).divide(MINUTE));

// public static final Unit INTERNATIONAL_UNIT = UNDEFINED;
// public static final Unit ARBITRARY_UNIT = UNDEFINED;
// public static final Unit US_PHARMACOPEIA = UNDEFINED;
// public static final Unit GPL = UNDEFINED;
// public static final Unit MPL = UNDEFINED;
// public static final Unit APL = UNDEFINED;
// public static final Unit BETHESDA = UNDEFINED;
// public static final Unit ANTI_FACTOR_XA = UNDEFINED;
// public static final Unit TODD = UNDEFINED;
// public static final Unit DYE = UNDEFINED;
// public static final Unit SOMOGYI = UNDEFINED;
// public static final Unit BODANSKY = UNDEFINED;
// public static final Unit KING_ARMSTRONG = UNDEFINED;
// public static final Unit KUNKEL = UNDEFINED;
// public static final Unit MAC_LAGAN = UNDEFINED;
// public static final Unit TUBERCULIN = UNDEFINED;
// public static final Unit CELL_CULTURE_INFECTIOUS_50_PERCENT_DOSE = UNDEFINED;
// public static final Unit TISSUE_CULTURE_INFECTIOUS_50_PERCENT_DOSE = UNDEFINED;
// public static final Unit EMBRYO_CULTURE_INFECTIOUS_50_PERCENT_DOSE = UNDEFINED;
// public static final Unit PLAQUE_FORMING = UNDEFINED;
// public static final Unit FOCUS_FORMING = UNDEFINED;
// public static final Unit COLONY_FORMING = UNDEFINED;
// public static final Unit INDEX_OF_REACTIVITY = UNDEFINED;
// public static final Unit BIOEQUIVALENT_ALLERGEN = UNDEFINED;
// public static final Unit ALLERGEN = UNDEFINED;
// public static final Unit ALLERGEN_FOR_AMBROSIA_ARTEMISIIFOLIA = UNDEFINED;
// public static final Unit PROTEIN_NITROGEN = UNDEFINED;
// public static final Unit LIMIT_OF_FLOCCULATION = UNDEFINED;
// public static final Unit D_ANTIGEN = UNDEFINED;
// public static final Unit FIBRINOGEN_EQUIVALENT = UNDEFINED;
// public static final Unit ELISA = UNDEFINED;
// public static final Unit EHRLICH = UNDEFINED;
// public static final Unit CHEMICAL = UNDEFINED;

// ///////////////////////////////
// LEVELS UNITS: UCUM 4.5 §45 //
// //////////////////////////////
// public static final Unit<Level<?>> NEPER = addUnit(new ProductUnit<Level<?>>(ONE.multiply(Math.log(1))));
// public static final Unit<Level<?>> BEL = addUnit(new ProductUnit<Level<?>>(ONE.multiply(Math.log10(1))));

// public static final Unit<Level<Pressure>> BEL_SOUND = addUnit(new ProductUnit<Level<Pressure>>());
// public static final Unit<Level<ElectricPotential>> BEL_VOLT = addUnit(new ProductUnit<Level<ElectricPotential>>());
// public static final Unit<Level<ElectricPotential>> BEL_MILIVOLT = addUnit(new ProductUnit<Level<ElectricPotential>>());
// public static final Unit<Level<ElectricPotential>> BEL_MICROVOLT = addUnit(new ProductUnit<Level<ElectricPotential>>());
// public static final Unit<Level<ElectricPotential>> BEL_10_NANOVOLT = addUnit(new ProductUnit<Level<ElectricPotential>>());
// public static final Unit<Level<Power>> BEL_WATT = addUnit(new ProductUnit<Level<Power>>());
// public static final Unit<Level<Power>> BEL_KILOWATT = addUnit(new ProductUnit<Level<Power>>());

// /////////////////////////////////////
// MISCELLANEOUS UNITS: UCUM 4.5 §47 //
// /////////////////////////////////////
Expand Down Expand Up @@ -812,6 +929,8 @@ public static UCUM getInstance() {
/** As per <a href="http://unitsofmeasure.org/">UCUM</a> standard. */
public static final Unit<Dimensionless> CARAT_GOLD = addUnit(ONE
.divide(24));
/** As per <a href="http://unitsofmeasure.org/">UCUM</a> standard. */
public static final Unit<Length> SMOOT = addUnit(INCH_INTERNATIONAL.multiply(67));

// //////////////////////////////////////////////
// INFORMATION TECHNOLOGY UNITS: UCUM 4.6 §48 //
Expand Down Expand Up @@ -861,4 +980,4 @@ private static <U extends AbstractUnit<?>> U addUnit(U unit,
SimpleUnitFormat.getInstance().label(OUNCE, "oz");
SimpleUnitFormat.getInstance().label(POUND, "lb");
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@

public class SystemOfUnitsServiceTest {
private static final String EXPECTED_SYSTEM_NAME = "Unified Code for Units of Measure";
private static final int NUM_OF_UNITS = 212;
private static final int NUM_OF_UNITS = 226;

private static SystemOfUnitsService defaultService;

Expand Down

0 comments on commit ecdacf9

Please sign in to comment.