### Question:
CObject extends CValue { @Override public boolean equals(final Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; final CObject cObject = (CObject) o; if (data != null ? !data.equals(cObject.data) : cObject.data != null) return false; return true; } CObject(Map<String, CValue> data); Map<String, CValue> data(); @Override Set<String> referencedKeys(); @Override void replace(String key, String resolvedValue); @Override String toString(); @Override boolean equals(final Object o); @Override int hashCode();  }### Answer:
@Test public void testEquals() throws Exception { assertEquals(cObject, new CObject(values)); }