### Question:
MutableChar extends AbstractMutableInteger <MutableChar> { public MutableChar (final int cValue) { this ((char) cValue); } MutableChar(final int cValue);  MutableChar(@Nonnull final Character aValue);  MutableChar(final char cValue);  MutableChar(@Nonnull final MutableChar aOther); char charValue(); @Override float floatValue(); @Override double doubleValue(); @Override int intValue(); @Override long longValue(); int inc(); int inc(final int nDelta); int inc(@Nonnull final MutableChar aMC); int dec(); int dec(final int nDelta); int dec(@Nonnull final MutableChar aMC); @Nonnull EChange set(final int cValue); @Nonnull EChange set(@Nonnull final MutableChar aMC); @Nonnull EChange set(final char cValue); boolean is0(); boolean isLT0(); boolean isLE0(); boolean isGT0(); boolean isGE0(); boolean isEven(); int compareTo(@Nonnull final MutableChar rhs); @Nonnull MutableChar getClone(); @Override boolean equals(final Object o); @Override int hashCode(); @Override String toString();  }### Answer:
@Test public void testMutableChar () { final MutableChar x = new MutableChar ('\0'); assertEquals (0, x.charValue ()); assertEquals (Character.valueOf ((char) 0), x.getAsCharacter ()); assertFalse (x.isNot0 ()); assertTrue (x.is0 ()); x.inc (); assertEquals (1, x.charValue ()); assertNotEquals (x.hashCode (), x.charValue ()); x.inc (5); assertEquals (6, x.charValue ()); assertNotEquals (x.hashCode (), x.charValue ()); x.inc (-2); assertEquals (4, x.charValue ()); assertNotEquals (x.hashCode (), x.charValue ()); x.dec (); assertEquals (3, x.charValue ()); assertFalse (x.isEven ()); assertNotEquals (x.hashCode (), x.charValue ()); x.dec (2); assertEquals (1, x.charValue ()); assertTrue (x.isNot0 ()); assertFalse (x.is0 ()); assertFalse (x.isEven ()); assertNotEquals (x.hashCode (), x.charValue ()); assertTrue (x.set (65535).isChanged ()); assertFalse (x.set (65535).isChanged ()); assertFalse (x.isEven ()); assertEquals (65535, x.charValue ()); assertTrue (x.set (65536).isChanged ()); assertTrue (x.isEven ()); assertEquals (0, x.charValue ()); assertTrue (x.set (65537).isChanged ()); assertFalse (x.isEven ()); assertEquals (1, x.charValue ()); assertTrue (x.set (0).isChanged ()); assertEquals (0, x.charValue ()); assertTrue (x.set (1).isChanged ()); assertEquals (1, x.charValue ()); assertTrue (x.set (-1).isChanged ()); assertEquals (65535, x.charValue ()); assertTrue (x.set (-2).isChanged ()); assertEquals (65534, x.charValue ()); assertEquals (-1, new MutableChar (4).compareTo (new MutableChar (5))); assertEquals (0, new MutableChar (5).compareTo (new MutableChar (5))); assertEquals (+1, new MutableChar (6).compareTo (new MutableChar (5))); assertNotNull (x.toString ()); assertTrue (x.toString ().contains (Character.toString (x.charValue ()))); x.set (-1); assertTrue (x.isGT0 ()); x.set (0); assertFalse (x.isGT0 ()); x.set (1); assertTrue (x.isGT0 ()); CommonsTestHelper.testDefaultImplementationWithEqualContentObject (new MutableChar (-7), new MutableChar (-7)); CommonsTestHelper.testDefaultImplementationWithDifferentContentObject (new MutableChar (6), new MutableChar (7)); CommonsTestHelper.testGetClone (new MutableChar (Integer.MAX_VALUE)); }