}
@Test
public void pReadBigDecimal_int() throws Exception {
try {
Stream stream = new Stream();
stream.writeBit(1);
List<BigDecimal> numbers = new ArrayList<BigDecimal>();
for (NumWithInfo nwi : genNumWithInfos(128)) {
BigInteger unscaled = nwi.getNumber();
int scale = new Random(System.currentTimeMillis()).nextInt(0xffff);
numbers.add(new BigDecimal(unscaled, scale));
}
for (BigDecimal number : numbers) {
stream.writeBigDecimal(number, number.unscaledValue().bitLength() + 1);
}
stream.writeBit(1);
stream.readBit();
for (BigDecimal number : numbers) {
assertEquals(number, stream.readBigDecimal(number.unscaledValue().bitLength() + 1));
}
assertEquals(1, stream.getData().readable());
} finally {
}
}