Skip to content

Commit

Permalink
Add unit "calorie"
Browse files Browse the repository at this point in the history
Signed-off-by: Jan N. Klug <[email protected]>
  • Loading branch information
J-N-K committed Jul 3, 2023
1 parent 6b91416 commit eb75ce8
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
*/
package org.openhab.core.library.unit;

import java.math.BigDecimal;
import java.math.BigInteger;

import javax.measure.Quantity;
Expand Down Expand Up @@ -122,6 +123,8 @@ public final class Units extends CustomUnits {
public static final Unit<ElectricPotential> VOLT = addUnit(tech.units.indriya.unit.Units.VOLT);
public static final Unit<ElectricResistance> OHM = addUnit(tech.units.indriya.unit.Units.OHM);
public static final Unit<Energy> JOULE = addUnit(tech.units.indriya.unit.Units.JOULE);
public static final Unit<Energy> CALORIE = addUnit(JOULE.multiply(new BigDecimal("4.184")));
public static final Unit<Energy> KILO_CALORIE = addUnit(MetricPrefix.KILO(CALORIE));
public static final Unit<Energy> WATT_SECOND = addUnit(
new ProductUnit<>(tech.units.indriya.unit.Units.WATT.multiply(tech.units.indriya.unit.Units.SECOND)));
public static final Unit<Energy> WATT_HOUR = addUnit(
Expand Down Expand Up @@ -241,6 +244,8 @@ public final class Units extends CustomUnits {
SimpleUnitFormat.getInstance().label(BIT_PER_SECOND, "bit/s");
SimpleUnitFormat.getInstance().label(BYTE, "B");
SimpleUnitFormat.getInstance().alias(BYTE, "o");
SimpleUnitFormat.getInstance().label(CALORIE, "cal");
SimpleUnitFormat.getInstance().label(KILO_CALORIE, "kcal");
SimpleUnitFormat.getInstance().label(CURIE, "Ci");
SimpleUnitFormat.getInstance().label(MILLI_CURIE, "mCi");
SimpleUnitFormat.getInstance().label(MICRO_CURIE, "µCi");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -401,6 +401,20 @@ public void testRpm() {
assertThat(converted.doubleValue(), is(closeTo(1.00, DEFAULT_ERROR)));
}

@Test
public void testCalorie() {
QuantityType<?> oneCalorie = QuantityType.valueOf("1 cal");
QuantityType<?> converted = oneCalorie.toUnit("J");
assertThat(converted.doubleValue(), is(closeTo(4.184, DEFAULT_ERROR)));
}

@Test
public void testKiloCalorie() {
QuantityType<?> oneKiloCalorie = QuantityType.valueOf("1 kcal");
QuantityType<?> converted = oneKiloCalorie.toUnit("J");
assertThat(converted.doubleValue(), is(closeTo(4184.0, DEFAULT_ERROR)));
}

private static class QuantityEquals extends IsEqual<Quantity<?>> {
private Quantity<?> quantity;

Expand Down

0 comments on commit eb75ce8

Please sign in to comment.