test_class.declarator: CLOCKWISE     = -1
test_class.modifier: private static
test_class.original_string: private static int CLOCKWISE     = -1;
test_class.type: int
test_class.var_name: CLOCKWISE
test_class.declarator: ANTICLOCKWISE = +1
test_class.modifier: private static
test_class.original_string: private static int ANTICLOCKWISE = +1;
test_class.type: int
test_class.var_name: ANTICLOCKWISE
test_class.file: tool/hash/src/test/java/org/openscience/cdk/hash/stereo/Tetrahedral3DParityTest.java
test_class.identifier: Tetrahedral3DParityTest
test_case.body: @Test
      public void testParity_Three_Clockwise() {
          Point3d[] coords = new Point3d[]{new Point3d(1.70, 0.98, -0.51), // -O
                  new Point3d(2.65, -0.83, 0.62), // -N
                  new Point3d(0.26, -0.33, 0.95), // -C
                  new Point3d(1.44, -0.33, -0.03), // C (centre)
          };
          assertThat(new Tetrahedral3DParity(coords).parity(), is(CLOCKWISE));
      }
test_case.class_method_signature: Tetrahedral3DParityTest.testParity_Three_Clockwise()
test_case.full_signature: @Test public void testParity_Three_Clockwise()
test_case.identifier: testParity_Three_Clockwise
test_case.invocations: assertThat parity is
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testParity_Three_Clockwise()
focal_class.declarator: coordinates
focal_class.modifier: private final
focal_class.original_string: private final Point3d[] coordinates;
focal_class.type: Point3d[]
focal_class.var_name: coordinates
focal_class.file: tool/hash/src/main/java/org/openscience/cdk/hash/stereo/Tetrahedral3DParity.java
focal_class.identifier: Tetrahedral3DParity
focal_class.class_method_signature: Tetrahedral3DParity.Tetrahedral3DParity(Point3d[] coordinates)
focal_class.full_signature: public  Tetrahedral3DParity(Point3d[] coordinates)
focal_class.identifier: Tetrahedral3DParity
focal_class.modifiers: public
focal_class.parameters: (Point3d[] coordinates)
focal_class.signature:  Tetrahedral3DParity(Point3d[] coordinates)
focal_class.class_method_signature: Tetrahedral3DParity.parity()
focal_class.full_signature: @Override public int parity()
focal_class.identifier: parity
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int parity()
focal_class.class_method_signature: Tetrahedral3DParity.det(double xa, double ya, double xb, double yb, double xc, double yc)
focal_class.full_signature: private static double det(double xa, double ya, double xb, double yb, double xc, double yc)
focal_class.identifier: det
focal_class.modifiers: private static
focal_class.parameters: (double xa, double ya, double xb, double yb, double xc, double yc)
focal_class.return: double
focal_class.signature: double det(double xa, double ya, double xb, double yb, double xc, double yc)
focal_class.superclass: extends GeometricParity
focal_method.body: @Override
      public int parity() {
  
          double x1 = coordinates[0].x;
          double x2 = coordinates[1].x;
          double x3 = coordinates[2].x;
          double x4 = coordinates[3].x;
  
          double y1 = coordinates[0].y;
          double y2 = coordinates[1].y;
          double y3 = coordinates[2].y;
          double y4 = coordinates[3].y;
  
          double z1 = coordinates[0].z;
          double z2 = coordinates[1].z;
          double z3 = coordinates[2].z;
          double z4 = coordinates[3].z;
  
          double det = (z1 * det(x2, y2, x3, y3, x4, y4)) - (z2 * det(x1, y1, x3, y3, x4, y4))
                  + (z3 * det(x1, y1, x2, y2, x4, y4)) - (z4 * det(x1, y1, x2, y2, x3, y3));
  
          return (int) Math.signum(det);
      }
focal_method.class_method_signature: Tetrahedral3DParity.parity()
focal_method.full_signature: @Override public int parity()
focal_method.identifier: parity
focal_method.invocations: det det det det signum
focal_method.modifiers: @Override public
focal_method.parameters: ()
focal_method.return: int
focal_method.signature: int parity()