@Test
 public void testRoom() {
   FakeBlockCache bc = new FakeBlockCache();
   bc.room(-1, 64, -1, 1, 66, 1, Material.STONE);
   double[] middle = new double[] {0.5, 65.5, 0.5}; // Free spot.
   PassableRayTracing rt = new PassableRayTracing();
   rt.setBlockCache(bc);
   boolean intense = BuildParameters.testLevel > 1;
   for (double x = -0.5; x < 1.0; x += 0.5) {
     for (double y = -0.5; y < 1.0; y += 0.5) {
       for (double z = -0.5; z < 1.0; z += 0.5) {
         double add = Math.abs(x) + Math.abs(y) + Math.abs(z);
         TestRayTracing.runCenterRays(
             rt,
             middle[0] + x,
             middle[1] + y,
             middle[2] + z,
             2.0 + add,
             intense ? 10000 : 1000,
             true,
             false,
             true);
       }
     }
   }
   rt.cleanup();
   bc.cleanup();
 }
 @Test
 public void testRoom() {
   // TODO: Test for differing middle points (negative to positive range, random, selected rays).
   FakeBlockCache bc = new FakeBlockCache();
   bc.room(-1, 64, -1, 1, 66, 1, Material.STONE);
   // Note that reversed checks are slightly different with the centered version, but start + end
   // blocks are air anyway.
   double[] middle = new double[] {0.5, 65.5, 0.5}; // Free spot.
   // TODO: Must work with strict set to false.
   CenteredInteractRayTracing rt = new CenteredInteractRayTracing(false, 0, 65, 0);
   // CenteredInteractRayTracing rt = new CenteredInteractRayTracing(true, 0, 65, 0);
   rt.setBlockCache(bc);
   double[][] pastFailures =
       new double[][] {
         {2.1393379885667643, 67.18197661625649, 1.7065201483677281, 0.0, 65.0, 0.0},
         {2.7915547712543676, 66.65545738305906, 1.310222428430474, 0.0, 65.0, 0.0},
         {0.0, 65.0, 4.5, 0.0, 65.0, 1.0}, // strict is false.
         {-3.5, 61.5, -3.5, 0.0, 65.0, 0.0} // strict is false.
       };
   TestRayTracing.runCoordinates(rt, pastFailures, true, false, 3, true);
   boolean intense = BuildParameters.testLevel > 1;
   for (double x = -0.5; x < 1.0; x += 0.5) {
     for (double y = -0.5; y < 1.0; y += 0.5) {
       for (double z = -0.5; z < 1.0; z += 0.5) {
         double add = Math.abs(x) + Math.abs(y) + Math.abs(z);
         TestRayTracing.runCenterRays(
             rt,
             middle[0] + x,
             middle[1] + y,
             middle[2] + z,
             2.0 + add,
             intense ? 10000 : 1000,
             true,
             false,
             true);
       }
     }
   }
   rt.cleanup();
   bc.cleanup();
 }