create changelog entry
[debian/openrocket] / core / test / net / sf / openrocket / util / QuaternionTest.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 QuaternionTest {
8
9         @Test
10         public void oldMainTest() {
11
12                 // This is normalized already
13                 Quaternion q = new Quaternion(0.237188, 0.570190, -0.514542, 0.594872);
14                 assertEquals( 1.0, q.norm(), 0.01);
15
16                 q.normalize();
17                 assertEquals( 0.237188, q.getW(), 0.00001);
18                 assertEquals( 0.570190, q.getX(), 0.00001);
19                 assertEquals( -0.514542, q.getY(), 0.00001);
20                 assertEquals( 0.594872, q.getZ(), 0.00001);
21                 assertEquals( 1.0, q.norm(), 0.01);
22
23                 Coordinate c = new Coordinate(148578428.914, 8126778.954, -607.741);
24
25                 Coordinate r = q.rotate(c);
26
27                 System.out.println("Rotated: " + q.rotate(c));
28
29                 assertEquals( -42312599.537, r.x, 0.001);
30                 assertEquals( -48162747.551, r.y, 0.001);
31                 assertEquals( 134281904.197, r.z, 0.001);
32
33                 c = new Coordinate(0,1,0);
34                 Coordinate rot = new Coordinate(Math.PI/4,0,0);
35
36                 System.out.println("Before: "+c);
37                 c = Quaternion.rotation(rot).invRotate(c);
38                 System.out.println("After: "+c);
39                 
40                 assertEquals( 0.0, c.x, 0.001);
41                 assertEquals( 0.707, c.y, 0.001);
42                 assertEquals( -0.707, c.z, 0.001);
43
44
45         }
46
47
48 }