Skip to content

Commit

Permalink
198: Final deliverables
Browse files Browse the repository at this point in the history
  • Loading branch information
keilw committed Jul 7, 2019
1 parent 8316213 commit b23ba58
Show file tree
Hide file tree
Showing 4 changed files with 172 additions and 147 deletions.
11 changes: 10 additions & 1 deletion src/test/java/tech/units/indriya/format/EBNFFormatTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -47,10 +47,10 @@
import javax.measure.spi.ServiceProvider;

import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;

import tech.units.indriya.function.MultiplyConverter;
import tech.units.indriya.function.RationalNumber;
import tech.units.indriya.unit.TransformedUnit;
import tech.units.indriya.unit.Units;

Expand Down Expand Up @@ -144,4 +144,13 @@ public void parseHertz() {
Unit<?> anotherOnePerSecond = ServiceProvider.current().getFormatService().getUnitFormat().parse("one/s");
assertEquals(onePerSecond, anotherOnePerSecond);
}

@Test
@Disabled("We might revisit this for an update, see https://github.com/unitsofmeasurement/indriya/issues/141")
public void testParseM3() {
final UnitFormat unitFormat = ServiceProvider.current().getFormatService().getUnitFormat("EBNF");
Unit<?> u = unitFormat.parse("m3");
assertNotNull(u);
assertEquals(Units.CUBIC_METRE, u);
}
}
270 changes: 139 additions & 131 deletions src/test/java/tech/units/indriya/format/UnitFormatTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -57,135 +57,143 @@
*
*/
public class UnitFormatTest {
private Quantity<Length> sut;
private UnitFormat format;

@BeforeEach
public void init() {
// sut =
// DefaultQuantityFactoryService.getQuantityFactory(Length.class).create(10,
// METRE);
sut = Quantities.getQuantity(10, METRE);
format = SimpleUnitFormat.getInstance();
}

@Test
public void testFormat() {
Unit<Frequency> hz = HERTZ;
assertEquals("Hz", hz.toString());
}

@Test
public void testFormat2() {
Unit<Frequency> mhz = MEGA(HERTZ);
assertEquals("MHz", mhz.toString());
}

@Test
public void testFormat3() {
Unit<Frequency> khz = KILO(HERTZ);
assertEquals("kHz", khz.toString());
}

@Test
public void testFormat4() {
Unit<Speed> kph = Units.KILOMETRE_PER_HOUR;
assertEquals("km/h", kph.toString());
}

@Test
public void testFormatLocal() {
final UnitFormat localFormat = LocalUnitFormat.getInstance();
final Appendable a = new StringBuilder();
try {
localFormat.format(METRE, a);
} catch (IOException e) {
fail(e.getMessage());
}
assertEquals(METRE, sut.getUnit());
assertEquals("m", a.toString());

final Appendable a2 = new StringBuilder();
@SuppressWarnings("unchecked")
Unit<Speed> v = (Unit<Speed>) METRE.divide(SECOND);
try {
localFormat.format(v, a2);
} catch (IOException e) {
fail(e.getMessage());
}
assertEquals("m/s", a2.toString());
}

@Test
public void testParseSimple1() {
try {
Unit<?> u = format.parse("min");
// assertEquals("min", u.getSymbol());
assertEquals(MINUTE, u);
} catch (MeasurementParseException e) {
fail(e.getMessage());
}
}

@Test
public void testParseSimple2() {
try {
Unit<?> u = format.parse("m");
assertNotNull(u);
assertEquals("m", u.getSymbol());
assertEquals(METRE, u);
} catch (MeasurementParseException e) {
fail(e.getMessage());
}
}

@Test
public void testParseSimple3() {
try {
Unit<?> u = format.parse("kg");
assertEquals("kg", u.getSymbol());
assertEquals(KILOGRAM, u);
} catch (MeasurementParseException e) {
fail(e.getMessage());
}
}

@Test
public void testParseSimpleBlank() {
try {
Unit<?> u = format.parse("");
assertEquals(ONE, u);
} catch (MeasurementParseException e) {
fail(e.getMessage());
}
}

@Test
public void testParseSimpleONE() {
try {
Unit<?> u = format.parse("one");
assertEquals(ONE, u);
} catch (MeasurementParseException e) {
fail(e.getMessage());
}
}

@Test
public void testParseLocal() {
final UnitFormat localFormat = LocalUnitFormat.getInstance();
//assertThrows(UnsupportedOperationException.class, () -> {
try {
Unit<?> u = localFormat.parse("min");
assertEquals("min", u.getSymbol());
} catch (MeasurementParseException e) {
fail(e.getMessage());
}
//});
}

@Test
public void testParseIrregularStringSimple() {
final UnitFormat simpleFormat = SimpleUnitFormat.getInstance();
assertThrows(MeasurementParseException.class, () -> simpleFormat.parse("bl//^--1a"));
}
private Quantity<Length> sut;
private UnitFormat format;

@BeforeEach
public void init() {
// sut =
// DefaultQuantityFactoryService.getQuantityFactory(Length.class).create(10,
// METRE);
sut = Quantities.getQuantity(10, METRE);
format = SimpleUnitFormat.getInstance();
}

@Test
public void testFormat() {
Unit<Frequency> hz = HERTZ;
assertEquals("Hz", hz.toString());
}

@Test
public void testFormat2() {
Unit<Frequency> mhz = MEGA(HERTZ);
assertEquals("MHz", mhz.toString());
}

@Test
public void testFormat3() {
Unit<Frequency> khz = KILO(HERTZ);
assertEquals("kHz", khz.toString());
}

@Test
public void testFormat4() {
Unit<Speed> kph = Units.KILOMETRE_PER_HOUR;
assertEquals("km/h", kph.toString());
}

@Test
public void testFormatLocal() {
final UnitFormat localFormat = LocalUnitFormat.getInstance();
final Appendable a = new StringBuilder();
try {
localFormat.format(METRE, a);
} catch (IOException e) {
fail(e.getMessage());
}
assertEquals(METRE, sut.getUnit());
assertEquals("m", a.toString());

final Appendable a2 = new StringBuilder();
@SuppressWarnings("unchecked")
Unit<Speed> v = (Unit<Speed>) METRE.divide(SECOND);
try {
localFormat.format(v, a2);
} catch (IOException e) {
fail(e.getMessage());
}
assertEquals("m/s", a2.toString());
}

@Test
public void testParseSimple1() {
try {
Unit<?> u = format.parse("min");
// assertEquals("min", u.getSymbol());
assertEquals(MINUTE, u);
} catch (MeasurementParseException e) {
fail(e.getMessage());
}
}

@Test
public void testParseSimple2() {
try {
Unit<?> u = format.parse("m");
assertNotNull(u);
assertEquals("m", u.getSymbol());
assertEquals(METRE, u);
} catch (MeasurementParseException e) {
fail(e.getMessage());
}
}

@Test
public void testParseSimple3() {
try {
Unit<?> u = format.parse("kg");
assertEquals("kg", u.getSymbol());
assertEquals(KILOGRAM, u);
} catch (MeasurementParseException e) {
fail(e.getMessage());
}
}

@Test
public void testParseSimpleBlank() {
try {
Unit<?> u = format.parse("");
assertEquals(ONE, u);
} catch (MeasurementParseException e) {
fail(e.getMessage());
}
}

@Test
public void testParseSimpleONE() {
try {
Unit<?> u = format.parse("one");
assertEquals(ONE, u);
} catch (MeasurementParseException e) {
fail(e.getMessage());
}
}

@Test
public void testParseLocal() {
final UnitFormat localFormat = LocalUnitFormat.getInstance();
// assertThrows(UnsupportedOperationException.class, () -> {
try {
Unit<?> u = localFormat.parse("min");
assertEquals("min", u.getSymbol());
} catch (MeasurementParseException e) {
fail(e.getMessage());
}
// });
}

@Test
public void testParseIrregularStringSimple() {
final UnitFormat simpleFormat = SimpleUnitFormat.getInstance();
assertThrows(MeasurementParseException.class, () -> simpleFormat.parse("bl//^--1a"));
}

@Test
public void testParseM3() {
final UnitFormat simpleFormat = SimpleUnitFormat.getInstance(SimpleUnitFormat.Flavor.ASCII);
Unit<?> u = simpleFormat.parse("m^3");
assertNotNull(u);
assertEquals(Units.CUBIC_METRE, u);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,15 @@
*/
package tech.units.indriya.quantity;

import static javax.measure.Quantity.Scale.ABSOLUTE;
import static javax.measure.Quantity.Scale.RELATIVE;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static tech.units.indriya.NumberAssertions.assertNumberEquals;

import javax.measure.Quantity;
import javax.measure.quantity.Length;
import javax.measure.quantity.Time;

import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;

Expand All @@ -51,5 +57,13 @@ public void addRelativesTest() {
final Quantity<Length> combinedSeaLevel = utrechtSeaLevel.add(munichSeaLevel);
assertEquals(Quantity.Scale.RELATIVE, combinedSeaLevel.getScale());
}


@Test
void addingHoursToDays(){
Quantity<Time> relTime = Quantities.getQuantity(1d,Units.HOUR,RELATIVE);
Quantity<Time> absTime = Quantities.getQuantity(1d,Units.DAY,ABSOLUTE);
Quantity<Time> addedTime = relTime.add(absTime);
Quantity<Time> expectedTime = Quantities.getQuantity(25d,Units.HOUR,ABSOLUTE);
assertNumberEquals(expectedTime.getValue(), addedTime.getValue(), 1E-12);
}
}
22 changes: 8 additions & 14 deletions src/test/java/tech/units/indriya/quantity/TemperatureTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,8 @@

import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import tech.units.indriya.unit.Units;

import javax.measure.Quantity;
import javax.measure.quantity.Temperature;
import javax.measure.quantity.Time;
import java.math.BigDecimal;

import static javax.measure.Quantity.Scale.ABSOLUTE;
Expand Down Expand Up @@ -113,21 +110,19 @@ void addingRelativeTemperatures() {
Quantity<Temperature> relT2 = Quantities.getQuantity(0d, CELSIUS, RELATIVE);
assertEquals(0, relT.add(relT2).getValue());
}

@Test @Disabled("Currently not working")
void productOfAbsoluteTemperatures() {
@Test @Disabled("Currently not working, see https://github.com/unitsofmeasurement/indriya/issues/247")
void productOfRelativeTemperatures() {
Quantity<Temperature> relT = Quantities.getQuantity(0d, CELSIUS, RELATIVE);
Quantity<Temperature> relT2 = Quantities.getQuantity(0d, CELSIUS, RELATIVE);
assertEquals(74610.9225d, relT.multiply(relT2).getValue());
}

@Test
void addingHoursToDays(){
Quantity<Time> relTime = Quantities.getQuantity(1d,Units.HOUR,RELATIVE);
Quantity<Time> absTime = Quantities.getQuantity(1d,Units.DAY,ABSOLUTE);
Quantity<Time> addedTime = relTime.add(absTime);
Quantity<Time> expectedTime = Quantities.getQuantity(25d,Units.HOUR,ABSOLUTE);
assertNumberEquals(expectedTime.getValue(), addedTime.getValue(), 1E-12);
@Test @Disabled("Currently not working, see https://github.com/unitsofmeasurement/indriya/issues/247")
void productOfAbsoluteTemperatures() {
Quantity<Temperature> relT = Quantities.getQuantity(0d, CELSIUS, ABSOLUTE);
Quantity<Temperature> relT2 = Quantities.getQuantity(0d, CELSIUS, ABSOLUTE);
assertEquals(74610.9225d, relT.multiply(relT2).getValue());
}

@Test
Expand All @@ -136,5 +131,4 @@ void testToCelsius() {
Quantity<Temperature> t2 = t.to(CELSIUS);
assertNumberEquals(-271.15d, t2.getValue(), 1E-12);
}

}

0 comments on commit b23ba58

Please sign in to comment.