/*
* Rapid Beans Framework: LengthTest.java
*
* Copyright Martin Bluemel, 2008
*
* Nov 14, 2005
*/
package org.rapidbeans.domain.math;
import java.math.BigDecimal;
import junit.framework.TestCase;
import org.rapidbeans.core.type.TypeRapidQuantity;
/**
* Unit tests for class Length.
*
* @author Martin Bluemel
*/
public final class LengthTest extends TestCase {
/**
* test constructor with string.
*/
public void testLengthString() {
Length len = new Length("11 m");
assertSame(TypeRapidQuantity.forName("org.rapidbeans.domain.math.Length"), len.getType());
assertSame(Length.class, len.getType().getImplementingClass());
assertEquals(new BigDecimal("11"), len.getMagnitude());
assertSame(UnitLength.m, len.getUnit());
}
/**
* test constructor with decimal and unit.
*/
public void testLengthMagUnit() {
Length len = new Length(new BigDecimal("123"), UnitLength.pm);
assertSame(TypeRapidQuantity.forName("org.rapidbeans.domain.math.Length"), len.getType());
assertSame(Length.class, len.getType().getImplementingClass());
assertEquals(new BigDecimal("123"), len.getMagnitude());
assertSame(UnitLength.pm, len.getUnit());
}
/**
* test conversion.
*/
public void testLengthConvert() {
Length len = new Length(new BigDecimal("123"), UnitLength.um);
assertEquals(new Length("0.000000123 km"), len.convert(UnitLength.km));
assertEquals(new Length("0.000123 m"), len.convert(UnitLength.m));
assertEquals(new Length("123 um"), len.convert(UnitLength.um));
assertEquals(new Length("1.23E+5 nm"), len.convert(UnitLength.nm));
assertEquals(new Length("1.23E+8 pm"), len.convert(UnitLength.pm));
}
}