RatioNumber extends Number implements Comparable<RatioNumber> { @Override public double doubleValue() { return ratio; } RatioNumber(double value, double ratio); static RatioNumber valueOf(String valueString); @Override int intValue(); @Override long longValue(); @Override float floatValue(); @Override double doubleValue(); @Override int compareTo(RatioNumber other); RatioNumber add(RatioNumber other); double value(); @Override boolean equals(Object o); @Override int hashCode(); @Override String toString(); static final RatioNumber ZERO; }
@Test public void testDoubleValue() throws Exception { assertEquals(0.1, new RatioNumber(10, 0.1).doubleValue(), 0.0); assertEquals(0.1, new RatioNumber(1, 0.1).doubleValue(), 0.0); assertEquals(0.0, new RatioNumber(10, 0).doubleValue(), 0.0); assertEquals(0.5, new RatioNumber(1, 0.5).doubleValue(), 0.0); assertEquals(0.1, new RatioNumber(11, 0.1).doubleValue(), 0.0); assertEquals(1.0, new RatioNumber(0, 1.0).doubleValue(), 0.0); }