@Override public void testSetDoubles() { Random random = new Random(621541L); T vector = createEmptyTuple(); for (int i = 0; i < ITERATIONS; i++) { // Test set(double x, double y, double z, double s); double x = random.nextDouble(); double y = random.nextDouble(); double z = random.nextDouble(); double s = random.nextDouble(); vector.set(x, y, z, s); assertEquals(vector.getX(), x, getEpsilon()); assertEquals(vector.getY(), y, getEpsilon()); assertEquals(vector.getZ(), z, getEpsilon()); assertEquals(vector.getS(), s, getEpsilon()); } }
T original = createRandomTuple(random); T expected = createEmptyTuple(); T actual = createEmptyTuple(); actual.set(original); actual.applyTransform(transform); EuclidCoreTestTools.assertTuple4DEquals(expected, actual, getEpsilon()); T original = createRandomTuple(random); T expected = createEmptyTuple(); T actual = createEmptyTuple(); actual.set(original); actual.applyTransform(transform); EuclidCoreTestTools.assertTuple4DEquals(expected, actual, getEpsilon()); T original = createRandomTuple(random); T expected = createEmptyTuple(); T actual = createEmptyTuple(); actual.set(original); actual.applyTransform(transform); EuclidCoreTestTools.assertTuple4DEquals(expected, actual, 10.0 * getEpsilon());
@Override @Test public void testGeometricallyEquals() throws Exception { super.testGeometricallyEquals(); Vector4D vectorA; Vector4D vectorB; Random random = new Random(621541L); for (int i = 0; i < 100; ++i) { vectorA = EuclidCoreRandomTools.nextVector4D(random); vectorB = EuclidCoreRandomTools.nextVector4D(random); if (((Vector4DReadOnly) vectorA).geometricallyEquals(vectorB, getEpsilon())) { assertTrue(vectorA.geometricallyEquals(vectorB, getEpsilon())); } else { assertFalse(vectorA.geometricallyEquals(vectorB, getEpsilon())); } } }
@Test public void testSetToZero() throws Exception { Random random = new Random(621541L); for (int i = 0; i < ITERATIONS; i++) { T tuple = createEmptyTuple(); tuple.setX(random.nextDouble()); tuple.setY(random.nextDouble()); tuple.setZ(random.nextDouble()); tuple.setS(random.nextDouble()); tuple.setToZero(); assertTrue(tuple.getX() == 0.0); assertTrue(tuple.getY() == 0.0); assertTrue(tuple.getZ() == 0.0); assertTrue(tuple.getS() == 0.0); } }
if (vectorA.epsilonEquals(vectorB, getEpsilon())) assertTrue(vectorA.geometricallyEquals(vectorB, Math.sqrt(3) * getEpsilon())); if (diff.norm() <= getEpsilon()) assertTrue(vectorA.geometricallyEquals(vectorB, getEpsilon())); assertFalse(vectorA.geometricallyEquals(vectorB, getEpsilon())); vectorB.set(vectorA.getX() + 0.9d * getEpsilon(), vectorA.getY(), vectorA.getZ(), vectorA.getS()); assertTrue(vectorA.geometricallyEquals(vectorB, getEpsilon())); vectorB.set(vectorA.getX() + 1.1d * getEpsilon(), vectorA.getY(), vectorA.getZ(), vectorA.getS()); assertFalse(vectorA.geometricallyEquals(vectorB, getEpsilon())); vectorB.set(vectorA.getX(), vectorA.getY() + 0.9d * getEpsilon(), vectorA.getZ(), vectorA.getS()); assertTrue(vectorA.geometricallyEquals(vectorB, getEpsilon())); vectorB.set(vectorA.getX(), vectorA.getY() + 1.1d * getEpsilon(), vectorA.getZ(), vectorA.getS()); assertFalse(vectorA.geometricallyEquals(vectorB, getEpsilon())); vectorB.set(vectorA.getX(), vectorA.getY(), vectorA.getZ() + 0.9d * getEpsilon(), vectorA.getS()); assertTrue(vectorA.geometricallyEquals(vectorB, getEpsilon()));
@Override @Test public void testGeometricallyEquals() throws Exception { super.testGeometricallyEquals(); Vector4D32 vectorA; Vector4D32 vectorB; Random random = new Random(621541L); for (int i = 0; i < 100; ++i) { vectorA = EuclidCoreRandomTools.nextVector4D32(random); vectorB = EuclidCoreRandomTools.nextVector4D32(random); if (((Vector4DReadOnly) vectorA).geometricallyEquals(vectorB, getEpsilon())) { assertTrue(vectorA.geometricallyEquals(vectorB, getEpsilon())); } else { assertFalse(vectorA.geometricallyEquals(vectorB, getEpsilon())); } } }
T tuple1 = createEmptyTuple(); T tuple2 = createEmptyTuple(); T tuple3 = createEmptyTuple(); assertEquals(tuple1.getX(), EuclidCoreTools.interpolate(xOld, tuple2.getX(), alpha), getEpsilon()); assertEquals(tuple1.getY(), EuclidCoreTools.interpolate(yOld, tuple2.getY(), alpha), getEpsilon()); assertEquals(tuple1.getZ(), EuclidCoreTools.interpolate(zOld, tuple2.getZ(), alpha), getEpsilon()); assertEquals(tuple1.getS(), EuclidCoreTools.interpolate(sOld, tuple2.getS(), alpha), getEpsilon()); assertEquals(tuple1.getX(), EuclidCoreTools.interpolate(tuple2.getX(), tuple3.getX(), alpha), getEpsilon()); assertEquals(tuple1.getY(), EuclidCoreTools.interpolate(tuple2.getY(), tuple3.getY(), alpha), getEpsilon()); assertEquals(tuple1.getZ(), EuclidCoreTools.interpolate(tuple2.getZ(), tuple3.getZ(), alpha), getEpsilon()); assertEquals(tuple1.getS(), EuclidCoreTools.interpolate(tuple2.getS(), tuple3.getS(), alpha), getEpsilon());
T original = createRandomTuple(random); T expected = createEmptyTuple(); T actual = createEmptyTuple(); actual.applyTransform(transform); actual.applyInverseTransform(transform); EuclidCoreTestTools.assertTuple4DEquals(expected, actual, getEpsilon()); T original = createRandomTuple(random); T expected = createEmptyTuple(); T actual = createEmptyTuple(); actual.applyTransform(transform); actual.applyInverseTransform(transform); EuclidCoreTestTools.assertTuple4DEquals(expected, actual, getEpsilon()); EuclidCoreRandomTools.nextDouble(random, 0.01, 10.0)), EuclidCoreRandomTools.nextPoint3D(random, 10.0)); T original = createRandomTuple(random); T expected = createEmptyTuple(); T actual = createEmptyTuple(); actual.applyTransform(transform); actual.applyInverseTransform(transform); EuclidCoreTestTools.assertTuple4DEquals(expected, actual, 10.0 * getEpsilon());
T tuple1 = createEmptyTuple(); T tuple2 = createEmptyTuple(); T tuple3 = createEmptyTuple(); assertEquals(tuple1.getX(), xOld - x, getEpsilon()); tuple1.subY(y); assertEquals(tuple1.getY(), yOld - y, getEpsilon()); tuple1.subZ(z); assertEquals(tuple1.getZ(), zOld - z, getEpsilon()); tuple1.subS(s); assertEquals(tuple1.getS(), sOld - s, getEpsilon()); assertEquals(tuple1.getX(), xOld - x, getEpsilon()); assertEquals(tuple1.getY(), yOld - y, getEpsilon()); assertEquals(tuple1.getZ(), zOld - z, getEpsilon()); assertEquals(tuple1.getS(), sOld - s, getEpsilon()); assertEquals(tuple1.getX(), xOld - tuple2.getX(), getEpsilon()); assertEquals(tuple1.getY(), yOld - tuple2.getY(), getEpsilon()); assertEquals(tuple1.getZ(), zOld - tuple2.getZ(), getEpsilon()); assertEquals(tuple1.getS(), sOld - tuple2.getS(), getEpsilon()); assertEquals(tuple1.getX(), tuple2.getX() - tuple3.getX(), getEpsilon()); assertEquals(tuple1.getY(), tuple2.getY() - tuple3.getY(), getEpsilon()); assertEquals(tuple1.getZ(), tuple2.getZ() - tuple3.getZ(), getEpsilon()); assertEquals(tuple1.getS(), tuple2.getS() - tuple3.getS(), getEpsilon());
@Test public void testTuple3DSetters() throws Exception { Random random = new Random(4325234L); for (int i = 0; i < ITERATIONS; i++) { T tuple = createEmptyTuple(); Point3D point3D = EuclidCoreRandomTools.nextPoint3D(random); tuple.set(point3D); for (int index = 0; index < 3; index++) assertEquals(tuple.getElement(index), point3D.getElement(index), getEpsilon()); assertTrue(tuple.getS() == 1.0); } for (int i = 0; i < ITERATIONS; i++) { T tuple = createEmptyTuple(); Vector3D vector3D = EuclidCoreRandomTools.nextVector3D(random); tuple.set(vector3D); for (int index = 0; index < 3; index++) assertEquals(tuple.getElement(index), vector3D.getElement(index), getEpsilon()); assertTrue(tuple.getS() == 0.0); } }
T vector = createEmptyTuple(); assertEquals(vector.getX(), x, getEpsilon()); assertEquals(vector.getY(), y, getEpsilon()); assertEquals(vector.getZ(), z, getEpsilon()); assertEquals(vector.getS(), s, getEpsilon()); vector.setElement(3, s); assertEquals(vector.getX(), x, getEpsilon()); assertEquals(vector.getY(), y, getEpsilon()); assertEquals(vector.getZ(), z, getEpsilon()); assertEquals(vector.getS(), s, getEpsilon());
T tuple1 = createEmptyTuple(); T tuple2 = createEmptyTuple(); T tuple3 = createEmptyTuple(); assertEquals(tuple1.getX(), xOld + x, getEpsilon()); tuple1.addY(y); assertEquals(tuple1.getY(), yOld + y, getEpsilon()); tuple1.addZ(z); assertEquals(tuple1.getZ(), zOld + z, getEpsilon()); tuple1.addS(s); assertEquals(tuple1.getS(), sOld + s, getEpsilon()); assertEquals(tuple1.getX(), xOld + x, getEpsilon()); assertEquals(tuple1.getY(), yOld + y, getEpsilon()); assertEquals(tuple1.getZ(), zOld + z, getEpsilon()); assertEquals(tuple1.getS(), sOld + s, getEpsilon()); assertEquals(tuple1.getX(), xOld + tuple2.getX(), getEpsilon()); assertEquals(tuple1.getY(), yOld + tuple2.getY(), getEpsilon()); assertEquals(tuple1.getZ(), zOld + tuple2.getZ(), getEpsilon()); assertEquals(tuple1.getS(), sOld + tuple2.getS(), getEpsilon()); assertEquals(tuple1.getX(), tuple2.getX() + tuple3.getX(), getEpsilon()); assertEquals(tuple1.getY(), tuple2.getY() + tuple3.getY(), getEpsilon()); assertEquals(tuple1.getZ(), tuple2.getZ() + tuple3.getZ(), getEpsilon()); assertEquals(tuple1.getS(), tuple2.getS() + tuple3.getS(), getEpsilon());
T tuple1 = createEmptyTuple(); T tuple2 = createEmptyTuple(); T tuple3 = createEmptyTuple(); assertEquals(tuple1.getX(), xOld * scale, getEpsilon()); assertEquals(tuple1.getY(), yOld * scale, getEpsilon()); assertEquals(tuple1.getZ(), zOld * scale, getEpsilon()); assertEquals(tuple1.getS(), sOld * scale, getEpsilon()); assertEquals(tuple1.getX(), xOld * scaleX, getEpsilon()); assertEquals(tuple1.getY(), yOld * scaleY, getEpsilon()); assertEquals(tuple1.getZ(), zOld * scaleZ, getEpsilon()); assertEquals(tuple1.getS(), sOld * scaleS, getEpsilon()); assertEquals(tuple1.getX(), tuple2.getX() * scale, getEpsilon()); assertEquals(tuple1.getY(), tuple2.getY() * scale, getEpsilon()); assertEquals(tuple1.getZ(), tuple2.getZ() * scale, getEpsilon()); assertEquals(tuple1.getS(), tuple2.getS() * scale, getEpsilon()); assertEquals(tuple1.getX(), xOld * scale + tuple2.getX(), getEpsilon()); assertEquals(tuple1.getY(), yOld * scale + tuple2.getY(), getEpsilon()); assertEquals(tuple1.getZ(), zOld * scale + tuple2.getZ(), getEpsilon()); assertEquals(tuple1.getS(), sOld * scale + tuple2.getS(), getEpsilon()); assertEquals(tuple1.getX(), tuple2.getX() * scale + tuple3.getX(), getEpsilon()); assertEquals(tuple1.getY(), tuple2.getY() * scale + tuple3.getY(), getEpsilon()); assertEquals(tuple1.getZ(), tuple2.getZ() * scale + tuple3.getZ(), getEpsilon()); assertEquals(tuple1.getS(), tuple2.getS() * scale + tuple3.getS(), getEpsilon());
T tuple1 = createEmptyTuple(); T tuple2 = createEmptyTuple(); tuple1.setS(max + random.nextDouble()); tuple1.clipToMax(max); assertEquals(tuple1.getX(), max, getEpsilon()); assertEquals(tuple1.getY(), max, getEpsilon()); assertEquals(tuple1.getZ(), max, getEpsilon()); assertEquals(tuple1.getS(), max, getEpsilon()); tuple2.setS(max + random.nextDouble()); tuple1.setAndClipToMax(max, tuple2); assertEquals(tuple1.getX(), max, getEpsilon()); assertEquals(tuple1.getY(), max, getEpsilon()); assertEquals(tuple1.getZ(), max, getEpsilon()); assertEquals(tuple1.getS(), max, getEpsilon()); tuple1.setS(min - random.nextDouble()); tuple1.clipToMin(min); assertEquals(tuple1.getX(), min, getEpsilon()); assertEquals(tuple1.getY(), min, getEpsilon()); assertEquals(tuple1.getZ(), min, getEpsilon()); assertEquals(tuple1.getS(), min, getEpsilon()); tuple2.setS(min - random.nextDouble()); tuple1.setAndClipToMin(min, tuple2); assertEquals(tuple1.getX(), min, getEpsilon()); assertEquals(tuple1.getY(), min, getEpsilon()); assertEquals(tuple1.getZ(), min, getEpsilon());