100 lines
3.6 KiB
Python
100 lines
3.6 KiB
Python
import unittest
|
|
import sys
|
|
from pathlib import Path
|
|
# Add the project root to sys.path
|
|
sys.path.append(str(Path(__file__).resolve().parent.parent))
|
|
|
|
from SwingTwist import *
|
|
|
|
class SwingTwistTest(unittest.TestCase):
|
|
def test_Constructor(self):
|
|
s = SwingTwist.Degrees(0, 0, 0)
|
|
assert(s == SwingTwist.Degrees(0, 0, 0))
|
|
|
|
s = SwingTwist.Degrees(0, 180, 0)
|
|
assert(s == SwingTwist.Degrees(180, 0, 180))
|
|
|
|
s = SwingTwist.Degrees(0, 180, 180)
|
|
assert(s == SwingTwist.Degrees(180, 0, 0))
|
|
|
|
s = SwingTwist.Degrees(270, 90, 0)
|
|
assert(s == SwingTwist.Degrees(-90, 90, 0))
|
|
|
|
s = SwingTwist.Degrees(270, 270, 0)
|
|
assert(s == SwingTwist.Degrees(-90, -90, 0))
|
|
|
|
s = SwingTwist.Degrees(270, 225, 0)
|
|
assert(s == SwingTwist.Degrees(90, -45, -180))
|
|
|
|
s = SwingTwist.Degrees(270, 0, 225)
|
|
assert(s == SwingTwist.Degrees(-90, 0, -135))
|
|
|
|
def test_FromQuaternion(self):
|
|
q = Quaternion.identity
|
|
r = SwingTwist.FromQuaternion(q)
|
|
assert(r == SwingTwist.Degrees(0, 0, 0))
|
|
|
|
q = Quaternion.Degrees(90, 0, 0)
|
|
r = SwingTwist.FromQuaternion(q)
|
|
assert(r == SwingTwist.Degrees(90, 0, 0))
|
|
|
|
q = Quaternion.Degrees(0, 90, 0)
|
|
r = SwingTwist.FromQuaternion(q)
|
|
assert(r == SwingTwist.Degrees(0, 90, 0))
|
|
|
|
q = Quaternion.Degrees(0, 0, 90)
|
|
r = SwingTwist.FromQuaternion(q)
|
|
assert(r == SwingTwist.Degrees(0, 0, 90))
|
|
|
|
q = Quaternion.Degrees(0, 180, 0)
|
|
r = SwingTwist.FromQuaternion(q)
|
|
assert(r == SwingTwist.Degrees(0, 180, 0))
|
|
|
|
q = Quaternion.Degrees(0, 135, 0)
|
|
r = SwingTwist.FromQuaternion(q)
|
|
assert(r == SwingTwist.Degrees(0, 135, 0))
|
|
|
|
def test_FromAngleAxis(self):
|
|
r = SwingTwist.FromAngleAxis(Angle.zero, Direction.up)
|
|
assert(r == SwingTwist.Degrees(0, 0, 0))
|
|
|
|
r = SwingTwist.FromAngleAxis(Angle.Degrees(90), Direction.up)
|
|
angle = SwingTwist.Angle(r, SwingTwist.Degrees(90, 0, 0))
|
|
assert(angle.InDegrees() == 0)
|
|
|
|
r = SwingTwist.FromAngleAxis(Angle.Degrees(180), Direction.up)
|
|
angle = SwingTwist.Angle(r, SwingTwist.Degrees(180, 0, 0))
|
|
assert(angle.InDegrees() == 0)
|
|
|
|
r = SwingTwist.FromAngleAxis(Angle.Degrees(270), Direction.up);
|
|
angle = SwingTwist.Angle(r, SwingTwist.Degrees(-90, 0, 0))
|
|
assert(angle.InDegrees() == 0)
|
|
|
|
r = SwingTwist.FromAngleAxis(Angle.Degrees(90), Direction.right)
|
|
angle = SwingTwist.Angle(r, SwingTwist.Degrees(0, 90, 0))
|
|
assert(angle.InDegrees() == 0)
|
|
|
|
r = SwingTwist.FromAngleAxis(Angle.Degrees(180), Direction.right)
|
|
angle = SwingTwist.Angle(r, SwingTwist.Degrees(0, 180, 0))
|
|
assert(angle.InDegrees() == 0)
|
|
|
|
r = SwingTwist.FromAngleAxis(Angle.Degrees(270), Direction.right)
|
|
angle = SwingTwist.Angle(r, SwingTwist.Degrees(0, -90, 0))
|
|
assert(angle.InDegrees() == 0)
|
|
|
|
r = SwingTwist.FromAngleAxis(Angle.Degrees(90), Direction.forward)
|
|
angle = SwingTwist.Angle(r, SwingTwist.Degrees(0, 0, 90))
|
|
assert(angle.InDegrees() == 0)
|
|
|
|
r = SwingTwist.FromAngleAxis(Angle.Degrees(180), Direction.forward)
|
|
angle = SwingTwist.Angle(r, SwingTwist.Degrees(0, 0, 180))
|
|
assert(angle.InDegrees() == 0)
|
|
|
|
r = SwingTwist.FromAngleAxis(Angle.Degrees(270), Direction.forward)
|
|
angle = SwingTwist.Angle(r, SwingTwist.Degrees(0, 0, -90))
|
|
assert(angle.InDegrees() == 0)
|
|
|
|
# auto r16 = SwingTwist16::AngleAxis(13, Direction16::down);
|
|
# auto s16 = SwingTwist16::Degrees(-13, 0, 0);
|
|
# assert(SwingTwist16::Angle(r16, s16), Angle16::Degrees(0))
|