### Question:
BytesValues { public static BigInteger asUnsignedBigInteger(BytesValue bytes) { return new BigInteger(1, bytes.getArrayUnsafe()); } private  BytesValues(); static int countZeros(BytesValue value); static BytesValue trimLeadingZeros(BytesValue value); static BytesValue toMinimalBytes(long l); static BytesValue ofUnsignedByte(int v); static BytesValue ofUnsignedShort(int v); static BytesValue ofUnsignedInt(long v); static BytesValue ofUnsignedIntLittleEndian(long v); static int extractInt(BytesValue value); static int extractIntLittleEndian(BytesValue value); static long extractLong(BytesValue value); static BytesValue concatenate(BytesValue... values); static BigInteger asUnsignedBigInteger(BytesValue bytes); static String asString(BytesValue bytes); static BigInteger asSignedBigInteger(BytesValue bytes); static BytesValue and(BytesValue b1, BytesValue b2); static BytesValue or(BytesValue b1, BytesValue b2);  }### Answer:
@Test public void unsignedBigInteger() { assertEquals(bi("0"), asUnsignedBigInteger(BytesValue.EMPTY)); assertEquals(bi("1"), asUnsignedBigInteger(BytesValue.of(1))); assertEquals(bi("255"), asUnsignedBigInteger(h("0xFF"))); BigInteger expected = BigInteger.valueOf(2).pow(100).add(BigInteger.valueOf(Long.MAX_VALUE)); MutableBytesValue v = MutableBytesValue.create(13); v.set(0, (byte) 16); v.setLong(v.size() - 8, Long.MAX_VALUE); assertEquals(expected, asUnsignedBigInteger(v)); }