package org.geotools.referencing.operation.matrix;
import static org.junit.Assert.*;
import org.junit.Test;
public class MatrixTest {
@Test
public void testMatrix1() {
Matrix1 z = new Matrix1(0);
XMatrix Z = new GeneralMatrix( z );
assertEquals( Z.determinate(), z.determinate(), 0 );
assertEquals( Z.isAffine(), z.isAffine() );
assertEquals( Z.isIdentity(), z.isIdentity());
Matrix1 u = new Matrix1(1);
XMatrix U = new GeneralMatrix( u );
assertEquals( U.determinate(), u.determinate(), 0 );
assertEquals( U.isAffine(), u.isAffine() );
assertEquals( U.isIdentity(), u.isIdentity());
Matrix1 m = new Matrix1(3);
XMatrix M = new GeneralMatrix( m );
assertEquals( M.determinate(), m.determinate(), 0 );
assertEquals( M.isAffine(), m.isAffine() );
assertEquals( M.isIdentity(), m.isIdentity());
Matrix1 a = new Matrix1();
a.add(2, m );
assertEquals( 5, a.m00, 0 );
a.sub(1, m );
assertEquals( -2, a.m00, 0 );
a.mul(2, m );
assertEquals( 6, a.m00, 0 );
}
@Test
public void testMatrix2() {
Matrix2 z = new Matrix2( 0.0, 0.0, 0.0, 0.0);
XMatrix Z = new GeneralMatrix( z );
assertEquals( Z.determinate(), z.determinate(), 0 );
assertEquals( Z.isAffine(), z.isAffine() );
assertEquals( Z.isIdentity(), z.isIdentity());
Matrix2 u = new Matrix2();
XMatrix U = new GeneralMatrix( u );
assertEquals( U.determinate(), u.determinate(), 0 );
assertEquals( U.isAffine(), u.isAffine() );
assertEquals( U.isIdentity(), u.isIdentity());
Matrix2 m = new Matrix2(1,2,3,4);
XMatrix M = new GeneralMatrix( m );
assertEquals( M.determinate(), m.determinate(), 0 );
assertEquals( M.isAffine(), m.isAffine() );
assertEquals( M.isIdentity(), m.isIdentity());
Matrix2 a = new Matrix2();
a.add(2, m );
assertEquals( 3, a.m00, 0 );
a.sub(1, m );
assertEquals( 0, a.m00, 0 );
a.mul(2, m );
assertEquals( 2, a.m00, 0 );
double array[] = new double[2];
m.getColumn(0, array);
assertArrayEquals(array, new double[]{1,3},0);
m.getRow(1, array);
assertArrayEquals(array, new double[]{3,4},0);
}
@Test
public void testMatrix3() {
Matrix3 z = new Matrix3(
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0);
XMatrix Z = new GeneralMatrix( z );
assertEquals( Z.determinate(), z.determinate(), 0 );
assertEquals( Z.isAffine(), z.isAffine() );
assertEquals( Z.isIdentity(), z.isIdentity());
Matrix3 u = new Matrix3();
XMatrix U = new GeneralMatrix( u );
assertEquals( U.determinate(), u.determinate(), 0 );
assertEquals( U.isAffine(), u.isAffine() );
assertEquals( U.isIdentity(), u.isIdentity());
Matrix3 m = new Matrix3(
1,2,3,
4,5,6,
7,8,0);
XMatrix M = new GeneralMatrix( m );
assertEquals( M.determinate(), m.determinate(), 0 );
assertEquals( M.isAffine(), m.isAffine() );
assertEquals( M.isIdentity(), m.isIdentity());
Matrix3 a = new Matrix3();
a.add(2, m );
assertEquals( 3, a.mat.a11, 0 );
a.sub(1, m );
assertEquals( 0, a.mat.a11, 0 );
a.mul(2, m );
assertEquals( 2, a.mat.a11, 0 );
double array[] = new double[3];
m.getColumn(0, array);
assertArrayEquals(array, new double[]{1,4,7},0);
m.getRow(1, array);
assertArrayEquals(array, new double[]{4,5,6},0);
}
}