@Test public void testGrouping() throws Exception { assertEquals("0.1", format(Coin.parseCoin("0.1"), 0, 1, 2, 3)); assertEquals("0.010", format(Coin.parseCoin("0.01"), 0, 1, 2, 3)); assertEquals("0.001", format(Coin.parseCoin("0.001"), 0, 1, 2, 3)); assertEquals("0.000100", format(Coin.parseCoin("0.0001"), 0, 1, 2, 3)); assertEquals("0.000010", format(Coin.parseCoin("0.00001"), 0, 1, 2, 3)); assertEquals("0.000001", format(Coin.parseCoin("0.000001"), 0, 1, 2, 3)); }
@Test public void repeatOptionalDecimals() { assertEquals("0.00000001", formatRepeat(SATOSHI, 2, 4)); assertEquals("0.00000010", formatRepeat(SATOSHI.multiply(10), 2, 4)); assertEquals("0.01", formatRepeat(CENT, 2, 4)); assertEquals("0.10", formatRepeat(CENT.multiply(10), 2, 4)); assertEquals("0", formatRepeat(SATOSHI, 2, 2)); assertEquals("0", formatRepeat(SATOSHI.multiply(10), 2, 2)); assertEquals("0.01", formatRepeat(CENT, 2, 2)); assertEquals("0.10", formatRepeat(CENT.multiply(10), 2, 2)); assertEquals("0", formatRepeat(CENT, 2, 0)); assertEquals("0", formatRepeat(CENT.multiply(10), 2, 0)); }
@Test public void uBtcRounding() throws Exception { assertEquals("0", format(ZERO, 6, 0)); assertEquals("0.00", format(ZERO, 6, 2)); assertEquals("1000000", format(COIN, 6, 0)); assertEquals("1000000", format(COIN, 6, 0, 2)); assertEquals("1000000.0", format(COIN, 6, 1)); assertEquals("1000000.00", format(COIN, 6, 2)); final Coin justNot = COIN.subtract(SATOSHI); assertEquals("1000000", format(justNot, 6, 0)); assertEquals("999999.99", format(justNot, 6, 0, 2)); assertEquals("1000000.0", format(justNot, 6, 1)); assertEquals("999999.99", format(justNot, 6, 2)); final Coin slightlyMore = COIN.add(SATOSHI); assertEquals("1000000", format(slightlyMore, 6, 0)); assertEquals("1000000.01", format(slightlyMore, 6, 0, 2)); assertEquals("1000000.0", format(slightlyMore, 6, 1)); assertEquals("1000000.01", format(slightlyMore, 6, 2)); final Coin pivot = COIN.add(SATOSHI.multiply(5)); assertEquals("1000000.05", format(pivot, 6, 2)); assertEquals("1000000.05", format(pivot, 6, 0, 2)); assertEquals("1000000.1", format(pivot, 6, 1)); assertEquals("1000000.1", format(pivot, 6, 0, 1)); final Coin value = Coin.valueOf(1122334455667788l); assertEquals("11223344556678", format(value, 6, 0)); assertEquals("11223344556677.88", format(value, 6, 2)); assertEquals("11223344556677.9", format(value, 6, 1)); assertEquals("11223344556677.88", format(value, 6, 2)); }
@Test public void btcRounding() throws Exception { assertEquals("0", format(ZERO, 0, 0)); assertEquals("0.00", format(ZERO, 0, 2)); assertEquals("1", format(COIN, 0, 0)); assertEquals("1.0", format(COIN, 0, 1)); assertEquals("1.00", format(COIN, 0, 2, 2)); assertEquals("1.00", format(COIN, 0, 2, 2, 2)); assertEquals("1.00", format(COIN, 0, 2, 2, 2, 2)); assertEquals("1.000", format(COIN, 0, 3)); assertEquals("1.0000", format(COIN, 0, 4)); assertEquals("1", format(justNot, 0, 0)); assertEquals("1.0", format(justNot, 0, 1)); assertEquals("1.00", format(justNot, 0, 2, 2)); assertEquals("1.00", format(justNot, 0, 2, 2, 2)); assertEquals("0.99999999", format(justNot, 0, 2, 2, 2, 2)); assertEquals("1.000", format(justNot, 0, 3)); assertEquals("1.0000", format(justNot, 0, 4)); assertEquals("1", format(slightlyMore, 0, 0)); assertEquals("1.0", format(slightlyMore, 0, 1)); assertEquals("1.00", format(slightlyMore, 0, 2, 2)); assertEquals("1.00", format(slightlyMore, 0, 2, 2, 2)); assertEquals("1.00000001", format(slightlyMore, 0, 2, 2, 2, 2)); assertEquals("1.000", format(slightlyMore, 0, 3)); assertEquals("1.0000", format(slightlyMore, 0, 4)); assertEquals("1.00000005", format(pivot, 0, 8));
@Test public void mBtcRounding() throws Exception { assertEquals("0", format(ZERO, 3, 0)); assertEquals("0.00", format(ZERO, 3, 2)); assertEquals("1000", format(COIN, 3, 0)); assertEquals("1000.0", format(COIN, 3, 1)); assertEquals("1000.00", format(COIN, 3, 2)); assertEquals("1000.00", format(COIN, 3, 2, 2)); assertEquals("1000.000", format(COIN, 3, 3)); assertEquals("1000.0000", format(COIN, 3, 4)); assertEquals("1000", format(justNot, 3, 0)); assertEquals("1000.0", format(justNot, 3, 1)); assertEquals("1000.00", format(justNot, 3, 2)); assertEquals("999.9999", format(justNot, 3, 2, 2)); assertEquals("1000.000", format(justNot, 3, 3)); assertEquals("999.9999", format(justNot, 3, 4)); assertEquals("1000", format(slightlyMore, 3, 0)); assertEquals("1000.0", format(slightlyMore, 3, 1)); assertEquals("1000.00", format(slightlyMore, 3, 2)); assertEquals("1000.000", format(slightlyMore, 3, 3)); assertEquals("1000.0001", format(slightlyMore, 3, 2, 2)); assertEquals("1000.0001", format(slightlyMore, 3, 4)); assertEquals("1000.0005", format(pivot, 3, 4)); assertEquals("1000.0005", format(pivot, 3, 3, 1)); assertEquals("1000.001", format(pivot, 3, 3));