### Question:
ParametricPlane { public boolean isOnPlane(Point3D p) { double[] para = this.getParameter(p); double v = this.base.getZ() + (this.directionX.getZ() * para[0]) + (this.directionY.getZ() * para[1]); if (!(Math.abs((p.getZ() - v)) < MathUtils.DISTANCE_DELTA)) { return false; } v = this.base.getY() + (this.directionX.getY() * para[0]) + (this.directionY.getY() * para[1]); if (!(Math.abs((p.getY() - v)) < MathUtils.DISTANCE_DELTA)) { return false; } v = this.base.getX() + (this.directionX.getX() * para[0]) + (this.directionY.getX() * para[1]); if (!(Math.abs((p.getX() - v)) < MathUtils.DISTANCE_DELTA)) { return false; } return true; } ParametricPlane(Point3D basePoint, Vector directionX,
        Vector directionY, Vector normal);  ParametricPlane(Point3D basePoint, Vector directionX, Vector directionY);  ParametricPlane(Point3D basePoint, Point3D b, Vector normal);  ParametricPlane(Point3D basePoint, Point3D b, Point3D c);  ParametricPlane(Extrusion e); Point3D getPoint(double x, double y); Point3D getPoint(Point3D point); double[] getParameter(Point3D p); boolean isOnPlane(Point3D p); Point3D getBasePoint(); void setBasePoint(Point3D base); Vector getDirectionX(); void setDirectionX(Vector directionX); Vector getDirectionY(); void setDirectionY(Vector directionY); Vector getNormal();  }### Answer:
@Test public void isOnPlane() { ParametricPlane plane = new ParametricPlane(new Point3D(0, 0, 0), new Point3D(1, 0, 0), new Vector(0, 0, 1)); Point3D p = new Point3D(2.0, 3.0, 0.0); assertTrue(plane.isOnPlane(p)); }
@Test public void isNotPlane() { ParametricPlane plane = new ParametricPlane(new Point3D(0, 0, 0), new Point3D(1, 0, 0), new Vector(0, 0, 1)); Point3D p = new Point3D(2.0, 3.0, -0.01); assertFalse(plane.isOnPlane(p)); }