@Test
public void testLookAt() {

  final Vector3 direction = new Vector3(-1, 0, 0);
  final Quaternion quat = new Quaternion().lookAt(direction, Vector3.UNIT_Y);
  assertTrue(Math.abs(direction.distance(quat.apply(Vector3.UNIT_Z, null))) <= Quaternion.ALLOWED_DEVIANCE);
  direction.set(1, 1, 1).normalizeLocal();
  quat.lookAt(direction, Vector3.UNIT_Y);
  assertTrue(Math.abs(direction.distance(quat.apply(Vector3.UNIT_Z, null))) <= Quaternion.ALLOWED_DEVIANCE);
  direction.set(-1, 2, -1).normalizeLocal();
  quat.lookAt(direction, Vector3.UNIT_Y);
  assertTrue(Math.abs(direction.distance(quat.apply(Vector3.UNIT_Z, null))) <= Quaternion.ALLOWED_DEVIANCE);
}