Package mikera.vectorz

Source Code of mikera.vectorz.TestQuaternions

package mikera.vectorz;

import static org.junit.Assert.*;
import mikera.matrixx.Matrix33;
import mikera.matrixx.Matrixx;

import org.junit.Test;

public class TestQuaternions {
  @Test public void testInvert() {
    assertEquals(Vector4.of(0,0,0,1),Quaternions.invert(Vector4.of(0,0,0,1)));
   
    Vector4 a=Vector4.of(1,2,3,4);
    Vector4 b=Quaternions.invert(a);
   
    Vector4 r1=Quaternions.mul(a,b);
    // assertEquals(Vector4.of(0,0,0,1),r1);
    assertTrue(r1.epsilonEquals(Vector4.of(0,0,0,1)));
   
    Vector4 r2=Quaternions.mul(b,a);
    // assertEquals(Vector4.of(0,0,0,1),r2);
    assertTrue(r2.epsilonEquals(Vector4.of(0,0,0,1)));
  }
 
  @Test public void testRotate() {
    Vector3 axis=new Vector3(1,0,0);
    Vector3 v=new Vector3(0,1,0);
    double angle=0.5*Math.PI;
   
    Matrix33 rotM = Matrixx.createRotationMatrix(axis, angle);
    Vector4 rotQ = Quaternions.axisAngle(axis, angle);
   
    Vector3 mv=rotM.innerProduct(v);
    Vector3 qv=Quaternions.rotate(rotQ, v);
   
    assertEquals(mv,qv);
    assertTrue(mv.epsilonEquals(qv));
  }
}
TOP

Related Classes of mikera.vectorz.TestQuaternions

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.