### Question:
BitcoinUtils { public static BigDecimal convertSatoshiToUsd(BigInteger satoshi, BigDecimal USDperBTC) { try { return BitcoinUnitConverter.convert(satoshi, BitcoinUnit.SATOSHI, BitcoinUnit.COIN) .multiply(USDperBTC); } catch (BitcoinUnitConversionNotImplementedException e) { throw new RuntimeException(e); } }  static BigDecimal convertSatoshiToUsd(BigInteger satoshi, BigDecimal USDperBTC); static BigInteger convertUsdToSatoshi(BigDecimal usd, BigDecimal USDperBTC);  }### Answer:
@Test public void testSatoshiToUsdConversion() { BigDecimal usdPerBtc = new BigDecimal("6010"); BigInteger satoshi = BigInteger.valueOf(522_222_222L); BigDecimal usd = BitcoinUtils.convertSatoshiToUsd(satoshi, usdPerBtc); assertEquals(0, usd.compareTo(new BigDecimal("31385.5555422"))); }