public void TestMultiplicationByUnitQuaternion()
{
// Choose quaternions whose vector portions (x, y, z) do not produce zeros
// when dotted or crossed. They should also have non-zero scalar (w) portions as well.
UnitQuaternion first = new UnitQuaternion(7.0, 2.0, 3.0, 6.0);
UnitQuaternion second = new UnitQuaternion(7.0, 2.0, 3.0, 6.0);
UnitQuaternion result = first.Multiply(second);
Assert.AreEqual(0.0 / 7.0, result.W, Constants.Epsilon15);
Assert.AreEqual(2.0 / 7.0, result.X, Constants.Epsilon15);
Assert.AreEqual(3.0 / 7.0, result.Y, Constants.Epsilon15);
Assert.AreEqual(6.0 / 7.0, result.Z, Constants.Epsilon15);
result = first * second;
Assert.AreEqual(0.0 / 7.0, result.W, Constants.Epsilon15);
Assert.AreEqual(2.0 / 7.0, result.X, Constants.Epsilon15);
Assert.AreEqual(3.0 / 7.0, result.Y, Constants.Epsilon15);
Assert.AreEqual(6.0 / 7.0, result.Z, Constants.Epsilon15);
}