### Question:
CharacterProperties { public static CharacterProperties forHexString(String hexString) { return new CharacterProperties((byte) Integer.parseInt(hexString, 16)); } private  CharacterProperties(byte code);  CharacterProperties(boolean isAlpha, boolean isDigit,
            boolean isUpper, boolean isLower, boolean isPunctuation); static CharacterProperties forByteCode(byte code); static CharacterProperties forHexString(String hexString); static CharacterProperties forCharacter(char c); static CharacterProperties forString(String cs); boolean isAlpha(); boolean isLower(); boolean isUpper(); boolean isDigit(); boolean isPunctuation(); byte toByteCode(); String toHexString(); @Override String toString(); @Override int hashCode(); @Override boolean equals(Object obj);  }### Answer:
@Test public void testFromHexString() { assertEquals(CharacterProperties.forHexString("10"), semicolon); assertEquals(CharacterProperties.forHexString("3"), b); assertEquals(CharacterProperties.forHexString("5"), W); assertEquals(CharacterProperties.forHexString("8"), digit7); assertEquals(CharacterProperties.forHexString("0"), equalSign); }