@ContinuousIntegrationTest(estimatedDuration = 0.0) @Test(timeout = 30000) public void testGenerateRandomAngle() { Random random = new Random(0); for (int i = 0; i < 25; i++) { double randomAngle = AngleTools.generateRandomAngle(random); assertTrue(randomAngle <= 2.0 * Math.PI); assertTrue(randomAngle >= -2.0 * Math.PI); } }
@ContinuousIntegrationTest(estimatedDuration = 0.0) @Test(timeout = 30000) public void testAxisAngleEpsilonEqualsIgnoreCompleteRotations() { AxisAngleComparisonMode mode = AxisAngleComparisonMode.IGNORE_FLIPPED_AXES_ROTATION_DIRECTION_AND_COMPLETE_ROTATIONS; for (int i = 0; i < 100; i++) { double randomAngle = AngleTools.generateRandomAngle(random); Vector3D randomAxis = RandomGeometry.nextVector3D(random, 1.0); double randomAngleCompleteRotations = random.nextInt(2) * (2.0 * Math.PI); AxisAngle axisAngleA = new AxisAngle(randomAxis, randomAngle); AxisAngle axisAngleB = new AxisAngle(randomAxis, randomAngle + randomAngleCompleteRotations); assertTrue(axisAngleA + "\n should equal:\n" + axisAngleB + "!", RotationTools.axisAngleEpsilonEquals(axisAngleA, axisAngleB, EPSILON, mode)); } for (int i = 0; i < 100; i++) { double randomAngle = AngleTools.generateRandomAngle(random); Vector3D randomAxis = RandomGeometry.nextVector3D(random, 1.0); double randomAngleNotCompleteRotations = random.nextInt(2) * (2.0 * Math.PI) + 0.25 * AngleTools.generateRandomAngle(random); AxisAngle axisAngleA = new AxisAngle(randomAxis, randomAngle); AxisAngle axisAngleB = new AxisAngle(randomAxis, randomAngle + randomAngleNotCompleteRotations); assertTrue(axisAngleA + "\n should *NOT* equal:\n" + axisAngleB + "!", !RotationTools.axisAngleEpsilonEquals(axisAngleA, axisAngleB, EPSILON, mode)); } }
@ContinuousIntegrationTest(estimatedDuration = 0.0) @Test(timeout = 30000) public void testAxisAngleEpsilonEqualsIgnoreFlippedAxes() { for (int i = 0; i < 100; i++) { double randomAngle = AngleTools.generateRandomAngle(random); Vector3D randomAxisA = RandomGeometry.nextVector3D(random, 1.0); Vector3D randomAxisA_flipped = new Vector3D(randomAxisA); randomAxisA_flipped.negate(); AxisAngle axisAngleA = new AxisAngle(randomAxisA, randomAngle); AxisAngle axisAngleB = new AxisAngle(randomAxisA_flipped, -randomAngle); assertTrue(axisAngleA + "\n should equal:\n" + axisAngleB + "!", RotationTools.axisAngleEpsilonEqualsIgnoreFlippedAxes(axisAngleA, axisAngleB, EPSILON)); } for (int i = 0; i < 100; i++) { double randomAngle = AngleTools.generateRandomAngle(random); Vector3D randomAxisA = RandomGeometry.nextVector3D(random, 1.0); Vector3D randomAxisA_flipped = new Vector3D(randomAxisA); randomAxisA_flipped.negate(); AxisAngle axisAngleA = new AxisAngle(randomAxisA, randomAngle); AxisAngle axisAngleB = new AxisAngle(randomAxisA_flipped, randomAngle); assertTrue(axisAngleA + "\n should *NOT* equal:\n" + axisAngleB + "!", !RotationTools.axisAngleEpsilonEqualsIgnoreFlippedAxes(axisAngleA, axisAngleB, EPSILON)); } }