cs.put(new C(4));
assertTrue(cs.undo().equals(new C(4)));
assertTrue(cs.undo().equals(new C(3)));
assertTrue(cs.undo().equals(new C(2)));
assertTrue(cs.redo().equals(new C(2)));
assertTrue(cs.canRedo());
cs.put(new C(3));
assertTrue(!cs.canRedo());
assertTrue(cs.canUndo());
}