### Question:
ValueWrapper { public int numCompare(Object withValue) { return performOperation(value, withValue, Integer::compare, Double::compare).intValue(); } ValueWrapper(Object value); void add(Object incValue); void subtract(Object decValue); void multiply(Object mulValue); void divide(Object divValue); int numCompare(Object withValue); Object getValue(); void setValue(Object value); @Override String toString(); @Override boolean equals(Object o); @Override int hashCode();  }### Answer:
@Test void testNumCompareReturnValue() { assertEquals(Integer.compare(0, 0), new ValueWrapper(null).numCompare(null)); assertEquals(Integer.compare(1, 0), new ValueWrapper("1").numCompare(null)); assertEquals(Integer.compare(0, 2), new ValueWrapper(null).numCompare("2")); assertEquals(Double.compare(1.2, 0), new ValueWrapper("1.2").numCompare(null)); assertEquals(Double.compare(0, 2.1), new ValueWrapper(null).numCompare("2.1")); }