162 lines
5.2 KiB
C#
162 lines
5.2 KiB
C#
#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 |