### Question:
IntegerValue extends Value { @Override Value multiply (Value v) { if (v instanceof IntegerValue) { return new IntegerValue (intValue () * v.toIntegerValue ().intValue ()); } else if (v instanceof RealValue) { return toRealValue ().multiply (v); } else { throw newOperandException ("*"); } } IntegerValue(int value);   IntegerValue(String value); @Override String toString();  }### Answer:
@Test public void testMultiply () { assertEquals ("0", mZeroValue.multiply (mPositiveValue).toString ()); assertEquals ("123", mOneValue.multiply (mPositiveValue).toString ()); assertEquals ("-123", mMinusOneValue.multiply (mPositiveValue).toString ()); assertEquals ("123", mMinusOneValue.multiply (mNegativeValue).toString ()); assertEquals ("0,5", mOneValue.multiply (mRealHalfValue).toString ()); try { mZeroValue.multiply (new BooleanValue (true)); fail ("no exception"); } catch (ExecutionException ee) { } }