GeomConverter/test/org/lcsim/detector
diff -u -r1.4 -r1.5
--- CoordinateTransformation3DTest.java 27 Feb 2007 19:56:49 -0000 1.4
+++ CoordinateTransformation3DTest.java 28 Feb 2007 21:41:19 -0000 1.5
@@ -31,10 +31,10 @@
CoordinateTransformation3D transformation = new CoordinateTransformation3D();
Hep3Vector point = new BasicHep3Vector(1.0,2.0,3.0);
- Hep3Vector transformed_point = transformation.transform(point);
- assert(transformed_point.x() == point.x());
- assert(transformed_point.y() == point.y());
- assert(transformed_point.z() == point.z());
+ Hep3Vector transformed_point = transformation.transformed(point);
+ assertEquals(transformed_point.x(),point.x());
+ assertEquals(transformed_point.y(),point.y());
+ assertEquals(transformed_point.z(),point.z());
}
public void testSimpleTranslationXYZ()
@@ -49,12 +49,19 @@
CoordinateTransformation3D transformation = new CoordinateTransformation3D(new BasicHep3Vector(random_x,random_y,random_z));
Hep3Vector point = new BasicHep3Vector(1.0,2.0,3.0);
- Hep3Vector transformed_point = transformation.transform(point);
- assert(transformed_point.x() == point.x()+random_x);
- assert(transformed_point.y() == point.y()+random_y);
- assert(transformed_point.z() == point.z()+random_z);
+ Hep3Vector transformed_point = transformation.transformed(point);
+
+// System.out.println("x_1: "+(point.x()+random_x)+" x_2: "+transformed_point.x());
+// System.out.println("y_1: "+(point.y()+random_y)+" y_2: "+transformed_point.y());
+// System.out.println("z_1: "+(point.z()+random_z)+" z_2: "+transformed_point.z());
+
+ assertEquals(transformed_point.x(),point.x()+random_x);
+ assertEquals(transformed_point.y(),point.y()+random_y);
+ assertEquals(transformed_point.z(),point.z()+random_z);
+
}
+
public void testSimpleRotationX()
{
System.out.println("CoordinateTransformation3DTest.testSimpleRotationX");
@@ -65,11 +72,11 @@
CoordinateTransformation3D transformation = new CoordinateTransformation3D(rotateX);
Hep3Vector point = new BasicHep3Vector(0.0,0.0,1.0);
- Hep3Vector result = transformation.rotate(point);
+ Hep3Vector result = transformation.transformed(point);
- System.out.println("Transform");
+// System.out.println("Transform");
transformation.getRotation().printOut(System.out);
- System.out.printf("new point = ( %.4f %.4f %.4f )\n",result.x(),result.y(),result.z());
+// System.out.printf("new point = ( %.4f %.4f %.4f )\n",result.x(),result.y(),result.z());
//CoordinateTransformation3D.mult(point, transform);
//Hep3Rotation rotation = result.getRotation();
@@ -83,39 +90,80 @@
}
- public void testMultiplication()
+ public void testMultiply()
{
- System.out.println("CoordinateTransformation3DTest.testMultiplication");
+ System.out.println("CoordinateTransformation3DTest.testMultiply");
Random random = new Random();
-
+
Rotation3D rotation_1 = new Rotation3D();
rotation_1.setPassiveXYZ(random.nextDouble(),random.nextDouble(),random.nextDouble());
Hep3Vector translation_1 = new BasicHep3Vector(random.nextDouble(),random.nextDouble(),random.nextDouble());
-
+
Rotation3D rotation_2 = new Rotation3D();
rotation_2.setPassiveXYZ(random.nextDouble(),random.nextDouble(),random.nextDouble());
Hep3Vector translation_2 = new BasicHep3Vector(random.nextDouble(),random.nextDouble(),random.nextDouble());
CoordinateTransformation3D transformation_1 = new CoordinateTransformation3D(translation_1,rotation_1);
CoordinateTransformation3D transformation_2 = new CoordinateTransformation3D(translation_2,rotation_2);
+
+ Hep3Vector point = new BasicHep3Vector(1.0,2.0,3.0);
- CoordinateTransformation3D transformation_product = CoordinateTransformation3D.mult(transformation_2,transformation_1);
+ Hep3Vector transformed_point_1 = transformation_1.transformed(point);
+ transformed_point_1 = transformation_2.transformed(transformed_point_1);
+
+ CoordinateTransformation3D transformation_product = CoordinateTransformation3D.multiply(transformation_2,transformation_1);
+ Hep3Vector transformed_point_2 = transformation_product.transformed(point);
+
+// System.out.println("x_1: "+transformed_point_1.x()+" x_2: "+transformed_point_2.x());
+// System.out.println("y_1: "+transformed_point_1.y()+" y_2: "+transformed_point_2.y());
+// System.out.println("z_1: "+transformed_point_1.z()+" z_2: "+transformed_point_2.z());
+
+ assertTrue(Math.abs(transformed_point_2.x()/transformed_point_1.x()-1) < 1E-12);
+ assertTrue(Math.abs(transformed_point_2.y()/transformed_point_1.y()-1) < 1E-12);
+ assertTrue(Math.abs(transformed_point_2.z()/transformed_point_1.z()-1) < 1E-12);
- Hep3Vector point = new BasicHep3Vector(1.0,2.0,3.0);
+ }
+
+
+ public void testMultiplyBy()
+ {
- Hep3Vector transformed_point_1 = transformation_1.transform(point);
- transformed_point_1 = transformation_2.transform(transformed_point_1);
+ System.out.println("CoordinateTransformation3DTest.testMultiplyBy");
+
+ Random random = new Random();
+
+ Rotation3D rotation_1 = new Rotation3D();
+ rotation_1.setPassiveXYZ(random.nextDouble(),random.nextDouble(),random.nextDouble());
+ Hep3Vector translation_1 = new BasicHep3Vector(random.nextDouble(),random.nextDouble(),random.nextDouble());
- Hep3Vector transformed_point_2 = transformation_product.transform(point);
+ Rotation3D rotation_2 = new Rotation3D();
+ rotation_2.setPassiveXYZ(random.nextDouble(),random.nextDouble(),random.nextDouble());
+ Hep3Vector translation_2 = new BasicHep3Vector(random.nextDouble(),random.nextDouble(),random.nextDouble());
+
+ CoordinateTransformation3D transformation_1 = new CoordinateTransformation3D(translation_1,rotation_1);
+ CoordinateTransformation3D transformation_2 = new CoordinateTransformation3D(translation_2,rotation_2);
- assert(transformed_point_2.x() == transformed_point_1.x());
- assert(transformed_point_2.y() == transformed_point_1.y());
- assert(transformed_point_2.z() == transformed_point_1.z());
+ Hep3Vector point_1 = new BasicHep3Vector(1.0,2.0,3.0);
+ Hep3Vector point_2 = new BasicHep3Vector(1.0,2.0,3.0);
+
+ transformation_1.transform(point_1);
+ transformation_2.transform(point_1);
+
+ transformation_2.multiplyBy(transformation_1);
+ transformation_2.transform(point_2);
+
+// System.out.println("x_1: "+point_1.x()+" x_2: "+point_2.x());
+// System.out.println("y_1: "+point_1.y()+" y_2: "+point_2.y());
+// System.out.println("z_1: "+point_1.z()+" z_2: "+point_2.z());
+
+ assertTrue(Math.abs(point_2.x()/point_1.x()-1) < 1E-12);
+ assertTrue(Math.abs(point_2.y()/point_1.y()-1) < 1E-12);
+ assertTrue(Math.abs(point_2.z()/point_1.z()-1) < 1E-12);
}
-
+
public void testInvert()
{
@@ -127,17 +175,21 @@
Rotation3D rotation = new Rotation3D();
rotation.setPassiveXYZ(random.nextDouble(),random.nextDouble(),random.nextDouble());
Hep3Vector translation = new BasicHep3Vector(random.nextDouble(),random.nextDouble(),random.nextDouble());
-
- CoordinateTransformation3D transformation = new CoordinateTransformation3D(translation,rotation);
- Hep3Vector point = new BasicHep3Vector(1.0,2.0,3.0);
- Hep3Vector transformed_point = transformation.transform(point);
+ CoordinateTransformation3D transformation = new CoordinateTransformation3D(translation,rotation);
- transformation.invert();
- transformed_point = transformation.transform(transformed_point);
+ Hep3Vector point = new BasicHep3Vector(1.0,2.0,3.0);
+ Hep3Vector transformed_point = transformation.transformed(point);
- assert(transformed_point.x() == point.x());
- assert(transformed_point.y() == point.y());
- assert(transformed_point.z() == point.z());
+ transformation.invert();
+ transformed_point = transformation.transformed(transformed_point);
+
+// System.out.println("x ratio: "+transformed_point.x()/point.x());
+// System.out.println("y ratio: "+transformed_point.y()/point.y());
+// System.out.println("z ratio: "+transformed_point.z()/point.z());
+
+ assertTrue(Math.abs(transformed_point.x()/point.x()-1) < 1E-12);
+ assertTrue(Math.abs(transformed_point.y()/point.y()-1) < 1E-12);
+ assertTrue(Math.abs(transformed_point.z()/point.z()-1) < 1E-12);
}
@@ -155,14 +207,18 @@
CoordinateTransformation3D transformation = new CoordinateTransformation3D(translation,rotation);
Hep3Vector point = new BasicHep3Vector(1.0,2.0,3.0);
- Hep3Vector transformed_point = transformation.transform(point);
+ Hep3Vector transformed_point = transformation.transformed(point);
CoordinateTransformation3D transformation_inverted = transformation.inverse();
- transformed_point = transformation_inverted.transform(transformed_point);
+ transformed_point = transformation_inverted.transformed(transformed_point);
- assert(transformed_point.x() == point.x());
- assert(transformed_point.y() == point.y());
- assert(transformed_point.z() == point.z());
+// System.out.println("x ratio: "+transformed_point.x()/point.x());
+// System.out.println("y ratio: "+transformed_point.y()/point.y());
+// System.out.println("z ratio: "+transformed_point.z()/point.z());
+
+ assertTrue(Math.abs(transformed_point.x()/point.x()-1) < 1E-12);
+ assertTrue(Math.abs(transformed_point.y()/point.y()-1) < 1E-12);
+ assertTrue(Math.abs(transformed_point.z()/point.z()-1) < 1E-12);
}