@Test
  public void computeDistance() {
    PlaneNormal3D_F64 plane = new PlaneNormal3D_F64(1, 1, 1, 0, 0, 1);
    PlaneGeneral3D_F64 model = UtilPlane3D_F64.convert(plane, null);
    Point3D_F64 point;

    DistancePlaneToPoint3D alg = new DistancePlaneToPoint3D();
    alg.setModel(model);

    // test above the plane
    point = new Point3D_F64(1, 1, 2);

    assertEquals(1, alg.computeDistance(point), 1e-8);

    // test below the plane
    point = new Point3D_F64(1, 1, 0);

    assertEquals(1, alg.computeDistance(point), 1e-8);
  }
  @Test
  public void computeDistance_list() {
    PlaneNormal3D_F64 plane = new PlaneNormal3D_F64(1, 1, 1, 0, 0, 1);
    PlaneGeneral3D_F64 model = UtilPlane3D_F64.convert(plane, null);

    DistancePlaneToPoint3D alg = new DistancePlaneToPoint3D();
    alg.setModel(model);

    Point3D_F64 pointA = new Point3D_F64(1, 1, 2);
    Point3D_F64 pointB = new Point3D_F64(1, 1, 0);

    List<Point3D_F64> pts = new ArrayList<Point3D_F64>();
    pts.add(pointA);
    pts.add(pointB);

    double scores[] = new double[2];

    alg.setModel(model);
    alg.computeDistance(pts, scores);
    for (int i = 0; i < 2; i++) {
      double expected = alg.computeDistance(pts.get(i));
      assertEquals(expected, scores[i], 1e-8);
    }
  }