131 lines
3.5 KiB
Java
131 lines
3.5 KiB
Java
|
|
||
|
import algebra.*;
|
||
|
|
||
|
public class TestAlgebra {
|
||
|
|
||
|
public static void test() throws Exception {
|
||
|
|
||
|
System.out.println ("Algebra\n# Test Start");
|
||
|
|
||
|
Vector v = new Vector (3);
|
||
|
Vector v1 = new Vector (1);
|
||
|
v1.setName ("up");
|
||
|
try {
|
||
|
Vector v0 = new Vector (0);
|
||
|
} catch (Exception e) {
|
||
|
System.out.println ("Wrong size exception caught OK");
|
||
|
}
|
||
|
try {
|
||
|
Vector v0 = new Vector ("named", 0);
|
||
|
} catch (Exception e) {
|
||
|
System.out.println ("Wrong size exception caught OK");
|
||
|
}
|
||
|
|
||
|
System.out.println (v);
|
||
|
System.out.println (v1);
|
||
|
|
||
|
Vector u1 = new Vector ("u1", 3);
|
||
|
u1.set(0, 1.0);
|
||
|
u1.set(1, 2.0);
|
||
|
u1.set(2, 3.0);
|
||
|
Vector u2 = new Vector (3);
|
||
|
u2.set (new double[3]);
|
||
|
u2.set(1, 2.0);
|
||
|
|
||
|
System.out.println (u1);
|
||
|
System.out.println ("norm(u1) = " + u1.norm());
|
||
|
System.out.println (u2);
|
||
|
System.out.println ("u1.u2 = " + u1.dot (u2));
|
||
|
|
||
|
try {
|
||
|
u1 = new Vector ("u1", 3);
|
||
|
u2 = new Vector ("u2", 4);
|
||
|
u1.dot (u2);
|
||
|
} catch (SizeMismatchException e) {
|
||
|
System.out.println ("Caught exception: " + e);
|
||
|
}
|
||
|
|
||
|
Vector3 r1 = new Vector3 ("u1", 1.0, 2.0, 3.0);
|
||
|
Vector3 r2 = new Vector3 ("u2", 1.0, 3.0, 0.0);
|
||
|
|
||
|
Vector3 r = r1.cross (r2);
|
||
|
|
||
|
System.out.println (r1);
|
||
|
System.out.println (r2);
|
||
|
System.out.println ("r1.r2 = " + r1.dot (r2));
|
||
|
System.out.println ("r1.r2 = " + r1.dot ((Vector) r2) + " (as Vector)");
|
||
|
System.out.println ("r1 x r2 = " + r);
|
||
|
System.out.println ("norm(" + r.getName() + ") = " + r.norm());
|
||
|
r.normalize ();
|
||
|
System.out.println ("norm(" + r.getName() + ") (after ::normalize()) = " + r.norm());
|
||
|
|
||
|
|
||
|
//-------------------------------------
|
||
|
System.out.println ("--\n-- Matrix tests\n--");
|
||
|
|
||
|
Matrix M = new Matrix (3,5);
|
||
|
System.out.println (M);
|
||
|
Matrix M1 = new Matrix ("M1", 2, 5);
|
||
|
M1.set (0, 0, 2.0);
|
||
|
M1.set (1, 4, -8.0);
|
||
|
M1.set (1, 2, 5.0);
|
||
|
|
||
|
try {
|
||
|
Matrix M2 = new Matrix ("M2", 0, 2);
|
||
|
} catch (Exception e) {
|
||
|
System.out.println ("Wrong size exception caught OK");
|
||
|
}
|
||
|
|
||
|
try {
|
||
|
M.multiply (M1);
|
||
|
} catch (SizeMismatchException e) {
|
||
|
System.out.println ("Caught exception: " + e);
|
||
|
}
|
||
|
|
||
|
|
||
|
Matrix M2 = Matrix.createIdentity (5);
|
||
|
System.out.println (M2);
|
||
|
|
||
|
M = M1.multiply (M2);
|
||
|
System.out.println (M1);
|
||
|
System.out.println (M2);
|
||
|
System.out.println (M);
|
||
|
|
||
|
M1 = M1.transpose();
|
||
|
M1.name = "M1'";
|
||
|
System.out.println (M1);
|
||
|
|
||
|
Vector u = new Vector ("u", 5);
|
||
|
u.ones();
|
||
|
v = M.multiply (u);
|
||
|
System.out.println (M);
|
||
|
System.out.println (u);
|
||
|
System.out.println ("M.u = " + v);
|
||
|
|
||
|
try {
|
||
|
u = new Vector ("u", 3);
|
||
|
v = M.multiply (u);
|
||
|
} catch (SizeMismatchException e) {
|
||
|
System.out.println ("Caught exception: " + e);
|
||
|
}
|
||
|
|
||
|
Matrix I = Matrix.createIdentity (5);
|
||
|
Matrix S = I.getSubMatrix (0, 2, 3, 3);
|
||
|
System.out.println (I);
|
||
|
System.out.println ("submatrix:\n" + S);
|
||
|
|
||
|
}
|
||
|
|
||
|
public static void main(String[] args) {
|
||
|
|
||
|
try {
|
||
|
test() ;
|
||
|
System.out.println ("SUCCESS.") ;
|
||
|
} catch (Exception e) {
|
||
|
System.out.println ("FAIL: " + e) ;
|
||
|
e.printStackTrace () ;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
}
|