Skip to content

Commit 5a67730

Browse files
parthkariaBankole Salako
authored andcommitted
BAEL-1106 Introduction to javax.measure (eugenp#2522)
* BAEL-243 Spring Batch using Partitioner * BAEL-1106 Introduction to javax.measure * Unnecessary Committed * BAEL-1106 Move code to libraries from core-java * BAEL-1106 Move code to libraries from core-java * Update pom.xml
1 parent 9ee9c2d commit 5a67730

3 files changed

Lines changed: 99 additions & 0 deletions

File tree

libraries/pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,11 @@
136136
<artifactId>commons-text</artifactId>
137137
<version>${commons-text.version}</version>
138138
</dependency>
139+
<dependency>
140+
<groupId>javax.measure</groupId>
141+
<artifactId>jsr-275</artifactId>
142+
<version>1.0.0</version>
143+
</dependency>
139144
<dependency>
140145
<groupId>org.apache.commons</groupId>
141146
<artifactId>commons-collections4</artifactId>
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package com.baeldung.javax.measure;
2+
3+
import javax.measure.Measure;
4+
import javax.measure.quantity.Volume;
5+
6+
public class WaterTank {
7+
8+
private Measure<Volume> capacityMeasure;
9+
private double capacityDouble;
10+
11+
public void setCapacityMeasure(Measure<Volume> capacityMeasure) {
12+
this.capacityMeasure = capacityMeasure;
13+
}
14+
15+
public void setCapacityDouble(double capacityDouble) {
16+
this.capacityDouble = capacityDouble;
17+
}
18+
19+
public Measure<Volume> getCapacityMeasure() {
20+
return capacityMeasure;
21+
}
22+
23+
public double getCapacityDouble() {
24+
return capacityDouble;
25+
}
26+
}
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
package com.baeldung.javax.measure;
2+
3+
import javax.measure.Measure;
4+
import javax.measure.converter.UnitConverter;
5+
import javax.measure.quantity.Duration;
6+
import javax.measure.quantity.Length;
7+
import javax.measure.quantity.Pressure;
8+
import javax.measure.quantity.Volume;
9+
import static javax.measure.unit.NonSI.HOUR;
10+
import static javax.measure.unit.NonSI.LITRE;
11+
import static javax.measure.unit.NonSI.MILE;
12+
import static javax.measure.unit.NonSI.MINUTE;
13+
import javax.measure.unit.SI;
14+
import static javax.measure.unit.SI.KILO;
15+
import static javax.measure.unit.SI.METER;
16+
import static javax.measure.unit.SI.NEWTON;
17+
import static javax.measure.unit.SI.SECOND;
18+
import javax.measure.unit.Unit;
19+
import static org.junit.Assert.assertEquals;
20+
import static org.junit.Assert.assertTrue;
21+
import org.junit.Test;
22+
23+
public class WaterTankTests {
24+
25+
@Test
26+
public void givenMeasure_whenGetUnitAndConvertValue_thenSuccess() {
27+
WaterTank waterTank = new WaterTank();
28+
waterTank.setCapacityMeasure(Measure.valueOf(9.2, LITRE));
29+
assertEquals(LITRE, waterTank.getCapacityMeasure().getUnit());
30+
31+
Measure<Volume> waterCapacity = waterTank.getCapacityMeasure();
32+
double volumeInLitre = waterCapacity.getValue().doubleValue();
33+
assertEquals(9.2, volumeInLitre, 0.0f);
34+
35+
double volumeInMilliLitre = waterCapacity.doubleValue(SI.MILLI(LITRE));
36+
assertEquals(9200.0, volumeInMilliLitre, 0.0f);
37+
38+
Unit<Length> Kilometer = SI.KILO(METER);
39+
Unit<Length> Centimeter = SI.CENTI(METER);
40+
}
41+
42+
@Test
43+
public void givenMeasure_whenAlternateMeasure_ThenGetAlternateMeasure() {
44+
Unit<Pressure> PASCAL = NEWTON.divide(METER.pow(2)).alternate("Pa");
45+
assertTrue(Unit.valueOf("Pa").equals(PASCAL));
46+
}
47+
48+
@Test
49+
public void givenMeasure_whenCompoundMeasure_ThenGetCompoundMeasure() {
50+
Unit<Duration> HOUR_MINUTE_SECOND = HOUR.compound(MINUTE).compound(SECOND);
51+
Measure<Duration> duration = Measure.valueOf(12345, SECOND);
52+
assertEquals("3h25min45s", duration.to(HOUR_MINUTE_SECOND).toString());
53+
}
54+
55+
@Test
56+
public void givenMiles_whenConvertToKilometer_ThenConverted() {
57+
double distanceInMiles = 50.0;
58+
UnitConverter mileToKilometer = MILE.getConverterTo(KILO(METER));
59+
double distanceInKilometers = mileToKilometer.convert(distanceInMiles);
60+
assertEquals(80.4672, distanceInKilometers, 0.00f);
61+
}
62+
63+
@Test
64+
public void givenSymbol_WhenCompareToSystemUnit_ThenSuccess() {
65+
assertTrue(Unit.valueOf("kW").equals(SI.KILO(SI.WATT)));
66+
assertTrue(Unit.valueOf("ms").equals(SI.SECOND.divide(1000)));
67+
}
68+
}

0 commit comments

Comments
 (0)