public static void runCoordinates( RayTracing rt, double[] setup, boolean expectCollide, boolean expectNotCollide, double stepsManhattan, boolean reverse, String tag) { if (reverse) { rt.set(setup[3], setup[4], setup[5], setup[0], setup[1], setup[2]); tag += "/reversed"; } else { rt.set(setup[0], setup[1], setup[2], setup[3], setup[4], setup[5]); } rt.loop(); if (rt.collides()) { if (expectNotCollide) { doFail("Expect not to collide, " + tag + ".", setup); } } else { if (expectCollide) { doFail("Expect to collide, " + tag + ".", setup); } } if (stepsManhattan > 0.0) { final double maxSteps = stepsManhattan * Math.max( 1.0, TrigUtil.manhattan(setup[0], setup[1], setup[2], setup[3], setup[4], setup[5])); if ((double) rt.getStepsDone() > maxSteps) { doFail("Expect less than " + maxSteps + " steps, " + tag + ".", setup); } } }