### Question:
UInt32 implements UInt32Value<UInt32> { @Override public UInt32 multiply(UInt32 value) { return create(this.value.toInt() * value.value.toInt()); } private  UInt32(byte[] bytes); static UInt32 valueOf(int value); static UInt32 valueOf(BigInteger value); static UInt32 fromBytes(Bytes bytes); static UInt32 fromBytes(Bytes bytes, ByteOrder byteOrder); static UInt32 fromHexString(String str); @Override boolean isZero(); @Override UInt32 add(UInt32 value); @Override UInt32 add(int value); @Override UInt32 addMod(UInt32 value, UInt32 modulus); @Override UInt32 addMod(long value, UInt32 modulus); @Override UInt32 addMod(long value, long modulus); @Override UInt32 subtract(UInt32 value); @Override UInt32 subtract(int value); @Override UInt32 multiply(UInt32 value); @Override UInt32 multiply(int value); @Override UInt32 multiplyMod(UInt32 value, UInt32 modulus); @Override UInt32 multiplyMod(int value, UInt32 modulus); @Override UInt32 multiplyMod(int value, int modulus); @Override UInt32 divide(UInt32 value); @Override UInt32 divide(int value); @Override UInt32 pow(UInt32 exponent); @Override UInt32 pow(long exponent); @Override UInt32 mod(UInt32 modulus); @Override UInt32 mod(int modulus); UInt32 and(UInt32 value); UInt32 and(Bytes bytes); UInt32 or(UInt32 value); UInt32 or(Bytes bytes); UInt32 xor(UInt32 value); UInt32 xor(int value); UInt32 xor(Bytes bytes); UInt32 not(); UInt32 shiftRight(int distance); UInt32 shiftLeft(int distance); @Override boolean equals(Object object); @Override int hashCode(); @Override int compareTo(UInt32 other); @Override String toString(); @Override BigInteger toBigInteger(); @Override UInt32 toUInt32(); @Override Bytes toBytes(); @Override Bytes toMinimalBytes(); @Override int numberOfLeadingZeros(); @Override int bitLength(); final static UInt32 MIN_VALUE; final static UInt32 MAX_VALUE; final static UInt32 ZERO; final static UInt32 ONE; }### Answer:
@Test void shouldThrowForMultiplyLongOfNegative() { Throwable exception = assertThrows(ArithmeticException.class, () -> v(2).multiply(-5)); assertEquals("multiply unsigned by negative", exception.getMessage()); }