140 lines
4.0 KiB
Python

import unittest
from LinearAlgebra.Angle import *
class AngleTest(unittest.TestCase):
def test_Construct(self):
degrees: float = 0
a: Angle = Angle.Degrees(degrees)
assert(a.InDegrees() == degrees)
degrees = -180
a = Angle.Degrees(degrees)
assert(a.InDegrees() == degrees)
degrees = 270
a = Angle.Degrees(degrees)
assert(a.InDegrees() == -90.0)
def test_Negate(self):
angle = 0
a:Angle = Angle.Degrees(angle)
a = -a
assert(a.InDegrees() == angle)
angle = 90
a = Angle.Degrees(angle)
a = -a
assert(a.InDegrees() == -angle)
def test_Add(self):
a: Angle = Angle.Degrees(-45)
b: Angle = Angle.Degrees(45)
r: Angle = a + b
assert(r.InDegrees() == 0)
def test_Subtract(self):
a: Angle = Angle.Degrees(0)
b: Angle = Angle.Degrees(45)
r: Angle = a - b
assert(r.InDegrees() == -45)
def test_Compare(self):
a: Angle = Angle.Degrees(45)
r: bool = False
r = a > Angle.Degrees(0)
assert(r == True)
r = a > Angle.Degrees(90)
assert(r == False)
r = a > Angle.Degrees(-90)
assert(r == True)
def test_Normalize(self):
r = Angle()
r = Angle.Normalize(Angle.Degrees(90))
assert(r.InDegrees() == 90)
r = Angle.Normalize(Angle.Degrees(-90))
assert(r.InDegrees() == -90)
r = Angle.Normalize(Angle.Degrees(270))
assert(r.InDegrees() == -90)
r = Angle.Normalize(Angle.Degrees(270 + 360))
assert(r.InDegrees() == -90)
r = Angle.Normalize(Angle.Degrees(-270));
assert(r.InDegrees() == 90)
r = Angle.Normalize(Angle.Degrees(-270 - 360));
assert(r.InDegrees() == 90)
r = Angle.Normalize(Angle.Degrees(0));
assert(r.InDegrees() == 0)
def test_Clamp(self):
r = Angle()
r = Angle.Clamp(Angle.Degrees(1), Angle.Degrees(0), Angle.Degrees(2))
assert(r.InDegrees() == 1)
r = Angle.Clamp(Angle.Degrees(-1), Angle.Degrees(0), Angle.Degrees(2))
assert(r.InDegrees() == 0)
r = Angle.Clamp(Angle.Degrees(3), Angle.Degrees(0), Angle.Degrees(2))
assert(r.InDegrees() == 2)
r = Angle.Clamp(Angle.Degrees(1), Angle.Degrees(0), Angle.Degrees(0))
assert(r.InDegrees() == 0)
r = Angle.Clamp(Angle.Degrees(0), Angle.Degrees(0), Angle.Degrees(0))
assert(r.InDegrees() == 0)
r = Angle.Clamp(Angle.Degrees(0), Angle.Degrees(1), Angle.Degrees(-1))
assert(r.InDegrees() == 0)
def test_MoveTowards(self):
r = Angle();
r = Angle.MoveTowards(Angle.Degrees(0), Angle.Degrees(90), 30)
assert(r.InDegrees() == 30)
r = Angle.MoveTowards(Angle.Degrees(0), Angle.Degrees(90), 90)
assert(r.InDegrees() == 90)
r = Angle.MoveTowards(Angle.Degrees(0), Angle.Degrees(90), 180)
assert(r.InDegrees() == 90)
r = Angle.MoveTowards(Angle.Degrees(0), Angle.Degrees(90), 270)
assert(r.InDegrees() == 90)
r = Angle.MoveTowards(Angle.Degrees(0), Angle.Degrees(90), -30)
assert(r.InDegrees() == 0)
r = Angle.MoveTowards(Angle.Degrees(0), Angle.Degrees(-90), -30)
assert(r.InDegrees() == 0)
r = Angle.MoveTowards(Angle.Degrees(0), Angle.Degrees(-90), -90)
assert(r.InDegrees() == 0)
r = Angle.MoveTowards(Angle.Degrees(0), Angle.Degrees(-90), -180)
assert(r.InDegrees() == 0)
r = Angle.MoveTowards(Angle.Degrees(0), Angle.Degrees(-90), -270)
assert(r.InDegrees() == 0)
r = Angle.MoveTowards(Angle.Degrees(0), Angle.Degrees(90), 0)
assert(r.InDegrees() == 0)
r = Angle.MoveTowards(Angle.Degrees(0), Angle.Degrees(0), 0)
assert(r.InDegrees() == 0)
r = Angle.MoveTowards(Angle.Degrees(0), Angle.Degrees(0), 30)
assert(r.InDegrees() == 0)
if __name__ == '__main__':
unittest.main()