### Question:
Animation implements Distributable { public Animation removeFromAnimationSequence(ResourceName aName) { List<ResourceName> theNewSequence = ArrayUtils.asList(animationSequence); theNewSequence.remove(aName); return new Animation(uuid, name, theNewSequence.toArray(new ResourceName[theNewSequence.size()])); } Animation(String aName); private  Animation(String aUUID, String aName, ResourceName[] aAnimationSequence); String getName(); String getUuid(); Animation changeName(String aName); Animation addToAnimationSequence(ResourceName aName); Animation removeFromAnimationSequence(ResourceName aName); Animation removeFromAnimationSequence(int aIndex); int getSequenceSize(); ResourceName getResourceByIndex(int aIndex); ResourceName computeCurrentFrame(long aGameTime, Integer aSpeed); @Override Map<String, Object> serialize(); static Animation deserialize(Map<String, Object> aData);  }### Answer:
@Test public void testRemoveFromAnimationSequence() throws Exception { Animation theAnimation = new Animation("Test"); Animation theNewAnimation = theAnimation.addToAnimationSequence(new ResourceName("Res")); Animation theDeletedAnimation = theNewAnimation.removeFromAnimationSequence(new ResourceName("Res")); assertEquals(1, theNewAnimation.getSequenceSize()); assertEquals(0, theAnimation.getSequenceSize()); assertEquals(0, theDeletedAnimation.getSequenceSize()); assertNotSame(theAnimation, theNewAnimation); assertNotSame(theAnimation, theDeletedAnimation); assertNotSame(theNewAnimation, theDeletedAnimation); }