25b8941bbdab039d556e9c345b3916db418c33a7
[debian/openrocket] / core / test / net / sf / openrocket / util / TransformationTest.java
1 package net.sf.openrocket.util;
2
3 import org.junit.Test;
4 import static org.junit.Assert.assertEquals;
5
6
7 public class TransformationTest {
8         @Test
9         public void oldMainTest() {
10                 Transformation t;
11
12                 t = new Transformation();
13                 {
14                         Coordinate a = t.transform( new Coordinate(1,0,0) );
15                         assertEquals( new Coordinate(1,0,0), a );
16                         a = t.transform( new Coordinate(0,1,0) );
17                         assertEquals( new Coordinate(0,1,0), a );
18                         a = t.transform( new Coordinate(0,0,1) );
19                         assertEquals( new Coordinate(0,0,1), a );
20                 }
21
22                 t = new Transformation(1,2,3);
23                 {
24                         Coordinate a = t.transform( new Coordinate(1,0,0) );
25                         assertEquals( new Coordinate(2,2,3), a );
26                         a = t.transform( new Coordinate(0,1,0) );
27                         assertEquals( new Coordinate(1,3,3), a );
28                         a = t.transform( new Coordinate(0,0,1) );
29                         assertEquals( new Coordinate(1,2,4), a );
30                 }
31                 
32                 
33                 t = new Transformation(new Coordinate(2,3,4));
34                 {
35                         Coordinate a = t.transform( new Coordinate(1,0,0) );
36                         assertEquals( new Coordinate(3,3,4), a );
37                         a = t.transform( new Coordinate(0,1,0) );
38                         assertEquals( new Coordinate(2,4,4), a );
39                         a = t.transform( new Coordinate(0,0,1) );
40                         assertEquals( new Coordinate(2,3,5), a );
41                 }
42
43                 // FIXME - is this correct?  shouldn't a rotation preserve coordinate length?
44                 t = Transformation.rotate_y(0.01);
45                 {
46                         Coordinate a = t.transform( new Coordinate(1,0,0) );
47                         // we need to test individual coordinates due to error.
48                         assertEquals( 1, a.x, .001);
49                         assertEquals( 0, a.y, .001);
50                         assertEquals( -.01, a.z, .001);
51                         a = t.transform( new Coordinate(0,1,0) );
52                         assertEquals( new Coordinate(0,1,0), a );
53                         a = t.transform( new Coordinate(0,0,1) );
54                         // we need to test individual coordinates due to error.
55                         assertEquals( .01, a.x, .001);
56                         assertEquals( 0, a.y, .001);
57                         assertEquals( 1, a.z, .001);
58                 }
59
60                 t = new Transformation(-1,0,0);
61                 t = t.applyTransformation(Transformation.rotate_y(0.01));
62                 t = t.applyTransformation(new Transformation(1,0,0));
63                 {
64                         Coordinate a = t.transform( new Coordinate(1,0,0) );
65                         // we need to test individual coordinates due to error.
66                         assertEquals( 1, a.x, .001);
67                         assertEquals( 0, a.y, .001);
68                         assertEquals( -.02, a.z, .001);
69                         a = t.transform( new Coordinate(0,1,0) );
70                         assertEquals( 0, a.x, .001);
71                         assertEquals( 1, a.y, .001);
72                         assertEquals( -.01, a.z, .001);
73                         a = t.transform( new Coordinate(0,0,1) );
74                         // we need to test individual coordinates due to error.
75                         assertEquals( .01, a.x, .001);
76                         assertEquals( 0, a.y, .001);
77                         assertEquals( .99, a.z, .001);
78                 }
79         }
80
81
82 }