/**
* Copyright (c) 2009, iPlant Collaborative, Texas Advanced Computing Center
* This software is licensed under the CC-GNU GPL version 2.0 or later.
* License: http://creativecommons.org/licenses/GPL/2.0/
*/
package org.iplantc.phyloviewer.shared.math;
import junit.framework.TestCase;
import org.iplantc.phyloviewer.shared.math.Matrix33;
import org.iplantc.phyloviewer.shared.math.Vector2;
import org.junit.Test;
public class TestMatrix33 extends TestCase {
@Test
public void testDefaultConstruction() {
Matrix33 matrix = new Matrix33();
assertTrue(1==matrix.get(0,0)); assertTrue(0==matrix.get(0,1)); assertTrue(0==matrix.get(0,2));
assertTrue(0==matrix.get(1,0)); assertTrue(1==matrix.get(1,1)); assertTrue(0==matrix.get(1,2));
assertTrue(0==matrix.get(2,0)); assertTrue(0==matrix.get(2,1)); assertTrue(1==matrix.get(2,2));
}
@Test
public void testSet() {
Matrix33 matrix = new Matrix33();
matrix.set(1,2,3,4,5,6,7,8,9);
assertTrue(1==matrix.get(0,0));
assertEquals(2.0,matrix.get(0,1),0.01);
assertTrue(3==matrix.get(0,2));
assertTrue(4==matrix.get(1,0)); assertTrue(5==matrix.get(1,1)); assertTrue(6==matrix.get(1,2));
assertTrue(7==matrix.get(2,0)); assertTrue(8==matrix.get(2,1)); assertTrue(9==matrix.get(2,2));
}
@Test
public void testTransformWithIdentity() {
Matrix33 matrix= new Matrix33();
Vector2 vector = new Vector2(3,4);
Vector2 v = matrix.transform(vector);
assertTrue(3==v.getX());
assertTrue(4==v.getY());
}
@Test
public void testTransform() {
Matrix33 matrix=Matrix33.makeTranslate(2, 5);
Vector2 vector = new Vector2(3,4);
Vector2 v = matrix.transform(vector);
assertTrue(5==v.getX());
assertTrue(9==v.getY());
}
@Test
public void testMultiply() {
Matrix33 S0=Matrix33.makeScale(5, 10);
Matrix33 S1=Matrix33.makeScale(5, 10);
Matrix33 result0=S0.multiply(S1);
assertTrue(25==result0.get(0,0));
assertTrue(100==result0.get(1,1));
}
@Test
public void testMakeTranslate() {
Matrix33 matrix=Matrix33.makeTranslate(5, 10);
assertTrue(5==matrix.getTranslationX());
assertTrue(10==matrix.getTranslationY());
}
@Test
public void testMakeScale() {
Matrix33 matrix=Matrix33.makeScale(5, 10);
assertTrue(5==matrix.get(0,0));
assertTrue(10==matrix.get(1,1));
}
@Test
public void testInverse() {
Matrix33 matrix=Matrix33.makeTranslate(3, 4).multiply(Matrix33.makeScale(10,3));
Matrix33 IM=matrix.inverse();
Matrix33 R=matrix.multiply(IM);
assertTrue(1==R.get(0,0)); assertTrue(0==R.get(0,1)); assertTrue(0==R.get(0,2));
assertTrue(0==R.get(1,0)); assertTrue(1==R.get(1,1)); assertTrue(0==R.get(1,2));
assertTrue(0==R.get(2,0)); assertTrue(0==R.get(2,1)); assertTrue(1==R.get(2,2));
}
}