#if NUNIT using NUnit.Framework; using Passer.LinearAlgebra; namespace LinearAlgebraTest { public class AngleTest { [Test] public void Normalize() { float r = 0; r = Angle.Normalize(90); Assert.AreEqual(r, 90, "Normalize 90"); r = Angle.Normalize(-90); Assert.AreEqual(r, -90, "Normalize -90"); r = Angle.Normalize(270); Assert.AreEqual(r, -90, "Normalize 270"); r = Angle.Normalize(270 + 360); Assert.AreEqual(r, -90, "Normalize 270+360"); r = Angle.Normalize(-270); Assert.AreEqual(r, 90, "Normalize -270"); r = Angle.Normalize(-270 - 360); Assert.AreEqual(r, 90, "Normalize -270-360"); r = Angle.Normalize(0); Assert.AreEqual(r, 0, "Normalize 0"); r = Angle.Normalize(float.PositiveInfinity); Assert.AreEqual(r, float.PositiveInfinity, "Normalize INFINITY"); r = Angle.Normalize(float.NegativeInfinity); Assert.AreEqual(r, float.NegativeInfinity, "Normalize INFINITY"); } [Test] public void Clamp() { float r = 0; r = Angle.Clamp(1, 0, 2); Assert.AreEqual(r, 1, "Clamp 1 0 2"); r = Angle.Clamp(-1, 0, 2); Assert.AreEqual(r, 0, "Clamp -1 0 2"); r = Angle.Clamp(3, 0, 2); Assert.AreEqual(r, 2, "Clamp 3 0 2"); r = Angle.Clamp(1, 0, 0); Assert.AreEqual(r, 0, "Clamp 1 0 0"); r = Angle.Clamp(0, 0, 0); Assert.AreEqual(r, 0, "Clamp 0 0 0"); r = Angle.Clamp(0, 1, -1); Assert.AreEqual(r, 1, "Clamp 0 1 -1"); r = Angle.Clamp(1, 0, float.PositiveInfinity); Assert.AreEqual(r, 1, "Clamp 1 0 INFINITY"); r = Angle.Clamp(1, float.NegativeInfinity, 1); Assert.AreEqual(r, 1, "Clamp 1 -INFINITY 1"); } [Test] public void Difference() { float r = 0; r = Angle.Difference(0, 90); Assert.AreEqual(r, 90, "Difference 0 90"); r = Angle.Difference(0, -90); Assert.AreEqual(r, -90, "Difference 0 -90"); r = Angle.Difference(0, 270); Assert.AreEqual(r, -90, "Difference 0 270"); r = Angle.Difference(0, -270); Assert.AreEqual(r, 90, "Difference 0 -270"); r = Angle.Difference(90, 0); Assert.AreEqual(r, -90, "Difference 90 0"); r = Angle.Difference(-90, 0); Assert.AreEqual(r, 90, "Difference -90 0"); r = Angle.Difference(0, 0); Assert.AreEqual(r, 0, "Difference 0 0"); r = Angle.Difference(90, 90); Assert.AreEqual(r, 0, "Difference 90 90"); r = Angle.Difference(0, float.PositiveInfinity); Assert.AreEqual(r, float.PositiveInfinity, "Difference 0 INFINITY"); r = Angle.Difference(0, float.NegativeInfinity); Assert.AreEqual(r, float.NegativeInfinity, "Difference 0 -INFINITY"); r = Angle.Difference(float.NegativeInfinity, float.PositiveInfinity); Assert.AreEqual(r, float.PositiveInfinity, "Difference -INFINITY INFINITY"); } [Test] public void MoveTowards() { float r = 0; r = Angle.MoveTowards(0, 90, 30); Assert.AreEqual(r, 30, "MoveTowards 0 90 30"); r = Angle.MoveTowards(0, 90, 90); Assert.AreEqual(r, 90, "MoveTowards 0 90 90"); r = Angle.MoveTowards(0, 90, 180); Assert.AreEqual(r, 90, "MoveTowards 0 90 180"); r = Angle.MoveTowards(0, 90, 270); Assert.AreEqual(r, 90, "MoveTowrads 0 90 270"); r = Angle.MoveTowards(0, 90, -30); Assert.AreEqual(r, -30, "MoveTowards 0 90 -30"); r = Angle.MoveTowards(0, -90, -30); Assert.AreEqual(r, 30, "MoveTowards 0 -90 -30"); r = Angle.MoveTowards(0, -90, -90); Assert.AreEqual(r, 90, "MoveTowards 0 -90 -90"); r = Angle.MoveTowards(0, -90, -180); Assert.AreEqual(r, 180, "MoveTowards 0 -90 -180"); r = Angle.MoveTowards(0, -90, -270); Assert.AreEqual(r, 270, "MoveTowrads 0 -90 -270"); r = Angle.MoveTowards(0, 90, 0); Assert.AreEqual(r, 0, "MoveTowards 0 90 0"); r = Angle.MoveTowards(0, 0, 0); Assert.AreEqual(r, 0, "MoveTowards 0 0 0"); r = Angle.MoveTowards(0, 0, 30); Assert.AreEqual(r, 0, "MoveTowrads 0 0 30"); r = Angle.MoveTowards(0, 90, float.PositiveInfinity); Assert.AreEqual(r, 90, "MoveTowards 0 90 INFINITY"); r = Angle.MoveTowards(0, float.PositiveInfinity, 30); Assert.AreEqual(r, 30, "MoveTowrads 0 INFINITY 30"); r = Angle.MoveTowards(0, -90, float.NegativeInfinity); Assert.AreEqual(r, float.PositiveInfinity, "MoveTowards 0 -90 -INFINITY"); r = Angle.MoveTowards(0, float.NegativeInfinity, -30); Assert.AreEqual(r, 30, "MoveTowrads 0 -INFINITY -30"); } } } #endif