### Question:
LaunchableModel extends FeatureModel implements Launchable { @Override public void launch() { for (int i = 0; i < listenable.size(); i++) { listenable.get(i).notifyFired(this); } } LaunchableModel(Services services, Setup setup); @Override void prepare(FeatureProvider provider); @Override void checkListener(Object listener); @Override void addListener(LaunchableListener listener); @Override void removeListener(LaunchableListener listener); @Override void launch(); @Override void update(double extrp); @Override void setLocation(double x, double y); @Override void setVector(Force force); @Override Direction getDirection();  }### Answer:
@Test void testLaunch() throws InterruptedException { launchable.launch(); assertEquals(0.0, transformable.getOldX()); assertEquals(0.0, transformable.getOldY()); assertEquals(0.0, transformable.getX()); assertEquals(0.0, transformable.getY()); assertEquals(0.0, launchable.getDirection().getDirectionHorizontal()); assertEquals(1.0, launchable.getDirection().getDirectionVertical()); launchable.update(1.0); assertEquals(0.0, transformable.getOldX()); assertEquals(0.0, transformable.getOldY()); assertEquals(0.0, transformable.getX()); assertEquals(1.0, transformable.getY()); assertEquals(0.0, launchable.getDirection().getDirectionHorizontal()); assertEquals(1.0, launchable.getDirection().getDirectionVertical()); UtilTests.pause(11); launchable.update(1.0); assertEquals(0.0, transformable.getOldX()); assertEquals(1.0, transformable.getOldY()); assertEquals(0.0, transformable.getX()); assertEquals(2.0, transformable.getY()); assertEquals(0.0, launchable.getDirection().getDirectionHorizontal()); assertEquals(1.0, launchable.getDirection().getDirectionVertical()); launchable.update(1.0); assertEquals(0.0, transformable.getOldX()); assertEquals(2.0, transformable.getOldY()); assertEquals(0.0, transformable.getX()); assertEquals(3.0, transformable.getY()); assertEquals(0.0, launchable.getDirection().getDirectionHorizontal()); assertEquals(1.0, launchable.getDirection().getDirectionVertical()); }