1 package net.sf.openrocket.util;
4 import static org.junit.Assert.assertEquals;
7 public class QuaternionTest {
10 public void oldMainTest() {
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);
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);
23 Coordinate c = new Coordinate(148578428.914, 8126778.954, -607.741);
25 Coordinate r = q.rotate(c);
27 System.out.println("Rotated: " + q.rotate(c));
29 assertEquals( -42312599.537, r.x, 0.001);
30 assertEquals( -48162747.551, r.y, 0.001);
31 assertEquals( 134281904.197, r.z, 0.001);
33 c = new Coordinate(0,1,0);
34 Coordinate rot = new Coordinate(Math.PI/4,0,0);
36 System.out.println("Before: "+c);
37 c = Quaternion.rotation(rot).invRotate(c);
38 System.out.println("After: "+c);
40 assertEquals( 0.0, c.x, 0.001);
41 assertEquals( 0.707, c.y, 0.001);
42 assertEquals( -0.707, c.z, 0.001);