@Test
 public void testMoveVertical() {
   Worm worm = facade.createWorm(world, 1, 1.5, Math.PI / 2, 0.5, "Test");
   facade.move(worm);
   assertEquals(1, facade.getX(worm), EPS);
   assertEquals(2.0, facade.getY(worm), EPS);
 }
 @Test
 public void testMoveHorizontal() {
   Worm worm = facade.createWorm(world, 1, 2, 0, 1, "Test");
   facade.move(worm);
   assertEquals(2, facade.getX(worm), EPS);
   assertEquals(2, facade.getY(worm), EPS);
 }
 @Test
 public void testMoveVertical() {
   Worm worm = facade.createWorm(0, 0, Math.PI / 2, 1, "Test");
   facade.move(worm, 5);
   assertEquals(0, facade.getX(worm), EPS);
   assertEquals(5, facade.getY(worm), EPS);
 }
 @Test
 public void testMoveVerticalAlongTerrain() {
   // . . X
   // . w X
   World world =
       facade.createWorld(
           3.0, 2.0, new boolean[][] {{true, true, false}, {true, true, false}}, random);
   Worm worm = facade.createWorm(world, 1.5, 0.5, Math.PI / 2 - 10 * 0.0175, 0.5, "Test");
   facade.move(worm);
   assertEquals(1.5, facade.getX(worm), EPS);
   assertEquals(1.0, facade.getY(worm), EPS);
 }
 @Test
 public void testFall() {
   // . X .
   // . w .
   // . . .
   // X X X
   World world =
       facade.createWorld(
           3.0,
           4.0,
           new boolean[][] {
             {true, false, true}, {true, true, true},
             {true, true, true}, {false, false, false}
           },
           random);
   Worm worm = facade.createWorm(world, 1.5, 2.5, (3.0 * Math.PI) / 2.0, 0.5, "Test");
   assertFalse(facade.canFall(worm));
   facade.move(worm);
   assertTrue(facade.canFall(worm));
   facade.fall(worm);
   assertEquals(1.5, facade.getX(worm), EPS);
   assertTrue(1.5 <= facade.getY(worm) && facade.getY(worm) <= 1.55);
 }
 @Test
 public void testMaximumActionPoints() {
   Worm worm = facade.createWorm(world, 1, 2, 0, 1, "Test");
   assertEquals(4448, facade.getMaxActionPoints(worm));
 }
 @Test(expected = ModelException.class)
 public void testJumpException() {
   Worm worm = facade.createWorm(0, 0, 3 * Math.PI / 2, 1, "Test");
   facade.jump(worm);
 }