public Quantity<U> add(Quantity<U> second) {
		if(unit == second.unit)
			return new Quantity<U>(value + second.value, unit);
		else {
			final double sum = value + second.in(unit).value;
			return new Quantity<U>(sum, unit);
		}
	}
@Test
    public void addQuantitiesGivenAsPrimitives() throws Exception {
        Quantity<Metrics> first = new Quantity<Metrics>(100, Metrics.cm);
        assertThat(first.add(2, Metrics.m)).isEqualTo(new Quantity<Metrics>(300, Metrics.cm));
    }