private static void assertEquals(Matrix44 e, Matrix44 a) { double[] em = e.m; double[] am = a.m; for (int i=0; i<16; ++i) assertEquals(em[i],am[i],TOLERANCE); }
private static void assertEquals(Tuple4 e, Tuple4 a) { assertEquals(e.x,a.x,TOLERANCE); assertEquals(e.y,a.y,TOLERANCE); assertEquals(e.z,a.z,TOLERANCE); assertEquals(e.w,a.w,TOLERANCE); }
private static void assertEquals(Tuple3 e, Tuple3 a) { assertEquals(e.x,a.x,TOLERANCE); assertEquals(e.y,a.y,TOLERANCE); assertEquals(e.z,a.z,TOLERANCE); }
private static void assertEquals(double e, double a) { assertEquals(e,a,TOLERANCE); } }
public void testVector() { int ntrial = 10; for (int itrial=0; itrial<ntrial; ++itrial) { Vector3 u = randomVector3(); Vector3 v = randomVector3(); Vector3 vc = new Vector3(v); assertEquals(v,v.negate().negate()); assertEquals(v,vc.negateEquals().negateEquals()); assertEquals(1.0,v.normalize().length()); assertEquals(1.0,vc.normalizeEquals().length()); assertEquals(1.0,v.normalize().lengthSquared()); assertEquals(v.dot(v),v.lengthSquared()); assertEquals(0.0,u.cross(v).dot(u)); assertEquals(0.0,u.cross(v).dot(v)); } }
public void testMatrix() { int ntrial = 10; for (int itrial=0; itrial<ntrial; ++itrial) { Matrix44 i = Matrix44.identity(); Matrix44 a = randomMatrix44(); Matrix44 at = a.transpose(); assertEquals(a,at.transpose()); Matrix44 ai = a.inverse(); assertEquals(a,ai.inverse()); assertEquals(i,a.times(ai)); assertEquals(i,a.transpose().timesTranspose(ai)); assertEquals(i,a.transposeTimes(ai.transpose())); Matrix44 ac = new Matrix44(a); assertEquals(i,ac.timesEquals(ai)); ac = new Matrix44(a); assertEquals(i,ac.transposeEquals().timesTranspose(ai)); ac = new Matrix44(a); assertEquals(i,ac.transposeTimesEquals(ai.transpose())); } }
public void testPoint() { int ntrial = 10; for (int itrial=0; itrial<ntrial; ++itrial) { Point3 p = randomPoint3(); Point3 pc = new Point3(p); Vector3 v = randomVector3(); assertEquals(p,p.plus(v).minus(v)); assertEquals(p,pc.plusEquals(v).minusEquals(v)); Point3 q = p.minus(v); assertEquals(q.distanceTo(p),v.length()); } }
public void testMatrixVector() { int ntrial = 10; for (int itrial=0; itrial<ntrial; ++itrial) { Vector3 v = randomVector3(); Matrix44 a = randomMatrix33(); Matrix44 ata = a.transposeTimes(a); assertEquals(ata.times(v),a.transposeTimes(a.times(v))); Matrix44 aat = a.timesTranspose(a); assertEquals(aat.times(v),a.times(a.transposeTimes(v))); } }
public void testMatrixPoint() { int ntrial = 10; for (int itrial=0; itrial<ntrial; ++itrial) { Matrix44 a,ata,aat; a = randomMatrix33(); ata = a.transposeTimes(a); aat = a.timesTranspose(a); Point3 p3 = randomPoint3(); assertEquals(ata.times(p3),a.transposeTimes(a.times(p3))); assertEquals(aat.times(p3),a.times(a.transposeTimes(p3))); a = randomMatrix44(); ata = a.transposeTimes(a); aat = a.timesTranspose(a); Point4 p4 = randomPoint4(); assertEquals(ata.times(p4),a.transposeTimes(a.times(p4))); assertEquals(aat.times(p4),a.times(a.transposeTimes(p4))); } }