@Test
public void testDeepClone() {
DefineList dl1 = new DefineList(NUM_DEFINES);
DefineList dl2 = dl1.deepClone();
assertNotSame(dl1, dl2);
assertEquals(dl1, dl2);
assertEquals(dl1.hashCode(), dl2.hashCode());
dl1.set(BOOL_VAR, true);
dl2 = dl1.deepClone();
assertEquals(dl1, dl2);
assertEquals(dl1.hashCode(), dl2.hashCode());
dl1.set(BOOL_VAR, false);
dl2 = dl1.deepClone();
assertEquals(dl1, dl2);
assertEquals(dl1.hashCode(), dl2.hashCode());
dl1.set(INT_VAR, 123);
assertNotEquals(dl1, dl2);
assertNotEquals(dl1.hashCode(), dl2.hashCode());
dl2 = dl1.deepClone();
assertEquals(dl1, dl2);
assertEquals(dl1.hashCode(), dl2.hashCode());
}