Class QuickHull3DTest

java.lang.Object
ffx.utilities.FFXTest
ffx.numerics.quickhull.QuickHull3DTest

public class QuickHull3DTest extends FFXTest
Testing class for QuickHull3D. Running the command
   java com.github.quickhull3d.QuickHull3DTest
 
will cause QuickHull3D to be tested on a number of randomly choosen input sets, with degenerate points added near the edges and vertics of the convex hull.

The command

   java com.github.quickhull3d.QuickHull3DTest -timing
 
will cause timing information to be produced instead.
Author:
John E. Lloyd, Fall 2004
  • Field Summary

    Fields inherited from class ffx.utilities.FFXTest

    ffxCI, ffxOpenMM, logger
  • Constructor Summary

    Constructors
    Constructor
    Description
    Creates a testing object.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
     
    void
    Runs a set of explicit and random tests on QuickHull3D, and prints Passed to System.out if all is well.
    boolean
    faceIndicesEqual(int[] indices1, int[] indices2)
    Returns true if two face index sets are equal, modulo a cyclical permuation.
    static void
    main(String[] args)
    Runs a set of tests on the QuickHull3D class, and prints Passed if all is well.
    double[]
    randomCubedPoints(int num, double range, double max)
    Returns the coordinates for num points whose x, y, and z values are each randomly chosen to lie within a specified range, and then clipped to a maximum absolute value.
    double[]
    randomDegeneratePoints(int num, int dimen)
    Returns the coordinates for num randomly chosen points which are degenerate which respect to the specified dimensionality.
    double[]
    randomGridPoints(int gridSize, double width)
    Returns randomly shuffled coordinates for points on a three-dimensional grid, with a presecribed width between each point.
    double[]
    randomPoints(int num, double range)
    Returns the coordinates for num points whose x, y, and z values are randomly chosen within a given range.
    double[]
    randomSphericalPoints(int num, double radius)
    Returns the coordinates for num points whose x, y, and z values are randomly chosen to lie within a sphere.
    void
    Runs timing tests on QuickHull3D, and prints the results to System.out.

    Methods inherited from class ffx.utilities.FFXTest

    afterClass, afterTest, beforeClass, beforeTest, registerTemporaryDirectory

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • QuickHull3DTest

      public QuickHull3DTest()
      Creates a testing object.
  • Method Details

    • faceIndicesEqual

      public boolean faceIndicesEqual(int[] indices1, int[] indices2)
      Returns true if two face index sets are equal, modulo a cyclical permuation.
      Parameters:
      indices1 - index set for first face
      indices2 - index set for second face
      Returns:
      true if the index sets are equivalent
    • randomPoints

      public double[] randomPoints(int num, double range)
      Returns the coordinates for num points whose x, y, and z values are randomly chosen within a given range.
      Parameters:
      num - number of points to produce
      range - coordinate values will lie between -range and range
      Returns:
      array of coordinate values
    • randomDegeneratePoints

      public double[] randomDegeneratePoints(int num, int dimen)
      Returns the coordinates for num randomly chosen points which are degenerate which respect to the specified dimensionality.
      Parameters:
      num - number of points to produce
      dimen - dimensionality of degeneracy: 0 = coincident, 1 = colinear, 2 = coplaner.
      Returns:
      array of coordinate values
    • randomSphericalPoints

      public double[] randomSphericalPoints(int num, double radius)
      Returns the coordinates for num points whose x, y, and z values are randomly chosen to lie within a sphere.
      Parameters:
      num - number of points to produce
      radius - radius of the sphere
      Returns:
      array of coordinate values
    • randomCubedPoints

      public double[] randomCubedPoints(int num, double range, double max)
      Returns the coordinates for num points whose x, y, and z values are each randomly chosen to lie within a specified range, and then clipped to a maximum absolute value. This means a large number of points may lie on the surface of cube, which is useful for creating degenerate convex hull situations.
      Parameters:
      num - number of points to produce
      range - coordinate values will lie between -range and range, before clipping
      max - maximum absolute value to which the coordinates are clipped
      Returns:
      array of coordinate values
    • randomGridPoints

      public double[] randomGridPoints(int gridSize, double width)
      Returns randomly shuffled coordinates for points on a three-dimensional grid, with a presecribed width between each point.
      Parameters:
      gridSize - number of points in each direction, so that the total number of points produced is the cube of gridSize.
      width - distance between each point along a particular direction
      Returns:
      array of coordinate values
    • explicitAndRandomTests

      public void explicitAndRandomTests()
      Runs a set of explicit and random tests on QuickHull3D, and prints Passed to System.out if all is well.
    • timingTests

      public void timingTests()
      Runs timing tests on QuickHull3D, and prints the results to System.out.
    • main

      public static void main(String[] args)
      Runs a set of tests on the QuickHull3D class, and prints Passed if all is well. Otherwise, an error message and stack trace are printed.

      If the option -timing is supplied, then timing information is produced instead.

    • doTest

      public void doTest()