### Question:
DecimalValueDecoder { public static Serializable decodeNewDecimal(final int meta, final ByteBuf in) { DecimalMetaData metaData = new DecimalMetaData(meta); return toDecimal(metaData, DataTypesCodec.readBytes(metaData.getTotalByteLength(), in)); }  static Serializable decodeNewDecimal(final int meta, final ByteBuf in);  }### Answer:
@Test public void assertDecodePositiveNewDecimal() { byte[] newDecimalBytes = ByteBufUtil.decodeHexDump("810DFB38D204D2"); ByteBuf newDecimalByteBuf = Unpooled.buffer(newDecimalBytes.length); newDecimalByteBuf.writeBytes(newDecimalBytes); BigDecimal actual = (BigDecimal) DecimalValueDecoder.decodeNewDecimal(meta, newDecimalByteBuf); assertThat(actual.toString(), is("1234567890.1234")); }
@Test public void assertDecodeNegativeNewDecimal() { byte[] newDecimalBytes = ByteBufUtil.decodeHexDump("7EF204C72DFB2D"); ByteBuf newDecimalByteBuf = Unpooled.buffer(newDecimalBytes.length); newDecimalByteBuf.writeBytes(newDecimalBytes); BigDecimal actual = (BigDecimal) DecimalValueDecoder.decodeNewDecimal(meta, newDecimalByteBuf); assertThat(actual.toString(), is("-1234567890.1234")); newDecimalBytes = ByteBufUtil.decodeHexDump("7DFEFDB5CC2741EFDEBE4154FD52E7"); newDecimalByteBuf = Unpooled.buffer(newDecimalBytes.length); newDecimalByteBuf.writeBytes(newDecimalBytes); actual = (BigDecimal) DecimalValueDecoder.decodeNewDecimal(32 << 8 | 6, newDecimalByteBuf); assertThat(actual.toString(), is("-33620554869842448557956779.175384")); }