Commit in GeomConverter/test/org/lcsim/detector on MAIN
CoordinateTransformation3DTest.java+94-381.4 -> 1.5
Good test cases for inversion and multiplication of transformations.

GeomConverter/test/org/lcsim/detector
CoordinateTransformation3DTest.java 1.4 -> 1.5
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);
         
     } 
     
CVSspam 0.2.8