def testInv1(self): for i in range(100): x, y, z = randnums(3, -5, 5) v = vec3(x, y, z) y, p, r = randnums(3, -math.pi * 2, math.pi * 2) r1 = rotator(y, p, r) self.assertEqual(r1 * (r1 / v), v)
def testMatrix3(self): for i in range(100): y, p, r = randnums(3, -math.pi * 2, math.pi * 2) r1 = rotator(y, p, r) y, p, r = randnums(3, -math.pi * 2, math.pi * 2) r2 = rotator(y, p, r) m1 = r1.toMatrix() m2 = r2.toMatrix() m = np.asarray(m1).dot(np.asarray(m2)).flat eqas_(listSum((r1 * r2).toMatrix()), m)
def testEulers2(self): for i in range(100): y, p, r = randnums(3, -math.pi * 2, math.pi * 2) r1 = rotator(y, p, r) self.assertEqual( r1, rotator(0, 0, r) * rotator(y, 0, 0) * rotator(0, p, 0))
def testIdent1(self): '''Test the default rotator which should represent the identity transformation.''' for i in range(100): x, y, z = randnums(3, -5, 5) v = vec3(x, y, z) r = rotator() self.assertEqual(r * v, v)
def testFromTo2(self): for i in range(100): x, y, z = randnums(3, -5, 5) v = vec3(x, y, z) r = rotator(v, -v) self.assertEqual(r, rotator( vec3(1, 0, 0).cross(v), 0)) # TODO: wanted to actually test 180 degree rotators
def testMembers(self): '''Test members assigned to a vec3 are returned correctly.''' x, y, z = randnums(3, -5, 5) v = vec3(x, y, z) self.assertEqual(v.x(), x) self.assertEqual(v.y(), y) self.assertEqual(v.z(), z) self.assertAlmostEqual(v.len(), math.sqrt(x * x + y * y + z * z))
def testPlaneXiFunc(self): '''Tests the getPlaneXi function directly.''' v = vec3(*randnums(3, -5, 5)) r = rotator(*randnums(4, -1, 1)) self.assertEqual(vec3(0), getPlaneXi(v, v, r, vec3(1)))
def testLineDist(self): x, y = randnums(2, -5, 5) v = vec3(x, y, 0.5) self.assertAlmostEqual(v.lineDist(vec3(), vec3.Z()), (v * vec3(1, 1, 0)).len())
def testCylindrical(self): x, y, z = randnums(3, -5, 5) v = vec3(x, y, z) self.assertEqual(v.toCylindrical().fromCylindrical(), v)
def testPolar(self): x, y, z = randnums(3, -5, 5) v = vec3(x, y, z) self.assertEqual(v.toPolar().fromPolar(), v)
def testEulers1(self): for i in range(100): y, p, r = randnums(3, -math.pi * 2, math.pi * 2) r1 = rotator(y, p, r) self.assertEqual(r1, rotator(*r1.getEulers()))