public Bandwidth add(Bandwidth value) {
        if (value instanceof LongBandwidth) {
            return Bandwidth.bps(this.bps + ((LongBandwidth) value).bps);
        }
        return Bandwidth.bps(this.bps + value.bps());
    }
@Test
    public void testAdd() {
        final long add = billion + one;
        Bandwidth expected = Bandwidth.kbps(add);

        assertThat(big.add(small), is(expected));

        final double notLongAdd = 1001.0;
        Bandwidth notLongExpected = Bandwidth.kbps(notLongAdd);

        assertThat(notLongSmall.add(notLongBig), is(notLongExpected));
    }