assertTrue(run instanceof List);
@SuppressWarnings("unchecked")
List<LoopObject> pair = (List<LoopObject>) run;
LoopObject frozen = pair.get(0);
LoopObject original = pair.get(1);
assertTrue(frozen.equals(original));
// Mutate original
original.put("name", "Stuff");
assertEquals("Star", frozen.getType().name);
assertEquals("Star", original.getType().name);
Map<Object, Object> map = new HashMap<Object, Object>();
map.put("name", "Proxima Centauri");
assertEquals(map, frozen);
map = new HashMap<Object, Object>();
map.put("name", "Stuff");
assertEquals(map, original);
// Attempt to mutate!
Exception ex = null;
try {
frozen.put("name", original.get("name"));
fail();
} catch (RuntimeException e) {
ex = e;
}