### Question:
IntegerValue extends Value { @Override Value greaterThan (Value v) { if (v instanceof IntegerValue) { return new BooleanValue (intValue () > v.toIntegerValue ().intValue ()); } else { return toRealValue ().greaterThan (v); } } IntegerValue(int value);   IntegerValue(String value); @Override String toString();  }### Answer:
@Test public void testGreaterThan () { assertEquals ("false", mNegativeValue.greaterThan (mNegativeValue).toString ()); assertEquals ("true", mZeroValue.greaterThan (mNegativeValue).toString ()); assertEquals ("false", mZeroValue.greaterThan (mZeroValue).toString ()); assertEquals ("true", mPositiveValue.greaterThan (mNegativeValue).toString ()); assertEquals ("true", mPositiveValue.greaterThan (mZeroValue).toString ()); assertEquals ("false", mPositiveValue.greaterThan (mPositiveValue).toString ()); assertEquals ("true", mZeroValue.greaterThan (mRealMinusOneValue).toString ()); assertEquals ("false", mZeroValue.greaterThan (mRealOneValue).toString ()); }