package hep.physics.vec;
import hep.physics.matrix.MatrixOp;
import java.util.Random;
import junit.framework.TestCase;
/**
*
* @author tonyj
*/
public class VecOpTest extends TestCase
{
public VecOpTest(String testName)
{
super(testName);
}
/**
* Test of add method, of class hep.physics.vec.VecOp.
*/
public void testAdd()
{
Hep3Vector v = new BasicHep3Vector(1,2,3);
Hep3Vector w = new BasicHep3Vector(6,5,4);
Hep3Vector result = VecOp.add(v, w);
assertEquals(7, result.x(),1e-16);
assertEquals(7, result.y(),1e-16);
assertEquals(7, result.z(),1e-16);
}
/**
* Test of sub method, of class hep.physics.vec.VecOp.
*/
public void testSub()
{
Hep3Vector v = new BasicHep3Vector(1,2,3);
Hep3Vector w = new BasicHep3Vector(6,5,4);
Hep3Vector result = VecOp.sub(v, w);
assertEquals(-5, result.x(),1e-16);
assertEquals(-3, result.y(),1e-16);
assertEquals(-1, result.z(),1e-16);
}
/**
* Test of invert method, of class hep.physics.vec.VecOp.
*/
public void testInvert()
{
Random r = new Random(1234567);
Hep3Matrix m1 = new BasicHep3Matrix(r.nextDouble(),r.nextDouble(),r.nextDouble(),r.nextDouble(),r.nextDouble(),r.nextDouble(),r.nextDouble(),r.nextDouble(),r.nextDouble());
Hep3Matrix m2 = VecOp.inverse(m1);
Hep3Matrix m3 = VecOp.mult(m1,m2);
double det = m3.det();
assertEquals(1, det, 1e-14);
double det2 = MatrixOp.det(m3);
assertEquals(1, det, 1e-14);
}
public void testTranspose()
{
BasicHep3Matrix m1 = new BasicHep3Matrix();
m1.setActiveEuler(.5,2,1);
assertEquals(1.0,m1.det(),1e-14);
Hep3Matrix m2 = VecOp.transposed(m1);
Hep3Matrix m3 = VecOp.inverse(m1);
m1.transpose();
assertEquals(1.0,m1.det(),1e-14);
assertEquals(1.0,m2.det(),1e-14);
assertEquals(1.0,m3.det(),1e-14);
for (int i=0; i<3; i++)
{
for (int j=0; j<3; j++)
{
assertEquals(m1.e(i,j),m2.e(i,j),1e-14);
assertEquals(m2.e(i,j),m3.e(i,j),1e-14);
}
}
}
}