Torsion torsion = new Torsion();
assertEquals(-115.17206338216852, torsion.getAngle(i,j,k,l), delta);
TorsionGradients gradients;
gradients = torsion.getGradients(i,j,k,l);
LOG.debug(gradients.getI());
LOG.debug(gradients.getJ());
LOG.debug(gradients.getK());
LOG.debug(gradients.getL());
// Correct Gradients
Vector3d a = new Vector3d(-0.427895, -0.383993, 0.458374 );
Vector3d b = new Vector3d( 0.305333, 0.615610, -0.638652 );
Vector3d c = new Vector3d( 0.801409, -0.417391, 0.178151 );
Vector3d d = new Vector3d(-0.678846, 0.185773, 0.002127 );
assertEquals(a.x, gradients.getI().x, delta );
assertEquals(a.y, gradients.getI().y, delta );
assertEquals(a.z, gradients.getI().z, delta );
assertEquals(b.x, gradients.getJ().x, delta );
assertEquals(b.y, gradients.getJ().y, delta );
assertEquals(b.z, gradients.getJ().z, delta );
assertEquals(c.x, gradients.getK().x, delta );
assertEquals(c.y, gradients.getK().y, delta );
assertEquals(c.z, gradients.getK().z, delta );
assertEquals(d.x, gradients.getL().x, delta );
assertEquals(d.y, gradients.getL().y, delta );
assertEquals(d.z, gradients.getL().z, delta );
}