Merge commit '42b2e5ca519766e37ce6941ba4faecc9691cc403' into upstream
[debian/openrocket] / core / test / net / sf / openrocket / util / TransformationTest.java
diff --git a/core/test/net/sf/openrocket/util/TransformationTest.java b/core/test/net/sf/openrocket/util/TransformationTest.java
new file mode 100644 (file)
index 0000000..cb63b3f
--- /dev/null
@@ -0,0 +1,81 @@
+package net.sf.openrocket.util;
+
+import org.junit.Test;
+import static org.junit.Assert.assertEquals;
+
+
+public class TransformationTest {
+       @Test
+       public void oldMainTest() {
+               Transformation t;
+
+               t = new Transformation();
+               {
+                       Coordinate a = t.transform( new Coordinate(1,0,0) );
+                       assertEquals( new Coordinate(1,0,0), a );
+                       a = t.transform( new Coordinate(0,1,0) );
+                       assertEquals( new Coordinate(0,1,0), a );
+                       a = t.transform( new Coordinate(0,0,1) );
+                       assertEquals( new Coordinate(0,0,1), a );
+               }
+
+               t = new Transformation(1,2,3);
+               {
+                       Coordinate a = t.transform( new Coordinate(1,0,0) );
+                       assertEquals( new Coordinate(2,2,3), a );
+                       a = t.transform( new Coordinate(0,1,0) );
+                       assertEquals( new Coordinate(1,3,3), a );
+                       a = t.transform( new Coordinate(0,0,1) );
+                       assertEquals( new Coordinate(1,2,4), a );
+               }
+               
+               
+               t = new Transformation(new Coordinate(2,3,4));
+               {
+                       Coordinate a = t.transform( new Coordinate(1,0,0) );
+                       assertEquals( new Coordinate(3,3,4), a );
+                       a = t.transform( new Coordinate(0,1,0) );
+                       assertEquals( new Coordinate(2,4,4), a );
+                       a = t.transform( new Coordinate(0,0,1) );
+                       assertEquals( new Coordinate(2,3,5), a );
+               }
+
+               t = Transformation.rotate_y(0.01);
+               {
+                       Coordinate a = t.transform( new Coordinate(1,0,0) );
+                       // we need to test individual coordinates due to error.
+                       assertEquals( 1, a.x, .001);
+                       assertEquals( 0, a.y, .001);
+                       assertEquals( -.01, a.z, .001);
+                       a = t.transform( new Coordinate(0,1,0) );
+                       assertEquals( new Coordinate(0,1,0), a );
+                       a = t.transform( new Coordinate(0,0,1) );
+                       // we need to test individual coordinates due to error.
+                       assertEquals( .01, a.x, .001);
+                       assertEquals( 0, a.y, .001);
+                       assertEquals( 1, a.z, .001);
+               }
+
+               t = new Transformation(-1,0,0);
+               t = t.applyTransformation(Transformation.rotate_y(0.01));
+               t = t.applyTransformation(new Transformation(1,0,0));
+               {
+                       Coordinate a = t.transform( new Coordinate(1,0,0) );
+                       // we need to test individual coordinates due to error.
+                       assertEquals( 1, a.x, .001);
+                       assertEquals( 0, a.y, .001);
+                       assertEquals( -.02, a.z, .001);
+                       a = t.transform( new Coordinate(0,1,0) );
+                       assertEquals( 0, a.x, .001);
+                       assertEquals( 1, a.y, .001);
+                       assertEquals( -.01, a.z, .001);
+                       a = t.transform( new Coordinate(0,0,1) );
+                       // we need to test individual coordinates due to error.
+                       assertEquals( .01, a.x, .001);
+                       assertEquals( 0, a.y, .001);
+                       assertEquals( .99, a.z, .001);
+               }
+       }
+
+
+}