public void Normalize() { Vector4F v, n1, n2; float magnitude; v = new Vector4F(3.0f, 4.0f, 0.0f, 0.0f); n1 = v.Normalize(); n2 = v.Normalize(out magnitude); Assert.AreEqual(1.0f, n1.Magnitude, 1e-14); Assert.AreEqual(1.0f, n2.Magnitude, 1e-14); Assert.AreEqual(5.0f, magnitude, 1e-14); v = new Vector4F(3.0f, 0.0f, 4.0f, 0.0f); n1 = v.Normalize(); n2 = v.Normalize(out magnitude); Assert.AreEqual(1.0f, n1.Magnitude, 1e-14); Assert.AreEqual(1.0f, n2.Magnitude, 1e-14); Assert.AreEqual(5.0f, magnitude, 1e-14); v = new Vector4F(0.0f, 3.0f, 4.0f, 0.0f); n1 = v.Normalize(); n2 = v.Normalize(out magnitude); Assert.AreEqual(1.0f, n1.Magnitude, 1e-14); Assert.AreEqual(1.0f, n2.Magnitude, 1e-14); Assert.AreEqual(5.0f, magnitude, 1e-14); v = new Vector4F(0.0f, 0.0f, 3.0f, 4.0f); n1 = v.Normalize(); n2 = v.Normalize(out magnitude); Assert.AreEqual(1.0f, n1.Magnitude, 1e-14); Assert.AreEqual(1.0f, n2.Magnitude, 1e-14); Assert.AreEqual(5.0f, magnitude, 1e-14); }
public void NormalizeZeroVector() { Vector4F v = new Vector4F(0.0f, 0.0f, 0.0f, 0.0f); Vector4F n1 = v.Normalize(); Assert.IsNaN(n1.X); Assert.IsNaN(n1.Y); Assert.IsNaN(n1.Z); Assert.IsTrue(n1.IsUndefined); float magnitude; Vector4F n2 = v.Normalize(out magnitude); Assert.IsNaN(n2.X); Assert.IsNaN(n2.Y); Assert.IsNaN(n2.Z); Assert.IsTrue(n2.IsUndefined); Assert.AreEqual(0.0f, magnitude); }