Example #1
0
 def verify(t, t_norm, res):
     v3cp1 = tpm.V3CP(**t)
     v3cp2 = tpm.V3CP(**t_norm)
     v3cp = v3cp1.cross(v3cp2)
     self.assertEqual(v3cp.ctype, tpm.CARTESIAN)
     self.assertEqual(v3cp.vtype, tpm.POS)
     self.assertAlmostEqual(v3cp.x, res['x'])
     self.assertAlmostEqual(v3cp.y, res['y'])
     self.assertAlmostEqual(v3cp.z, res['z'])
Example #2
0
 def verify(t, t_norm):
     v3cp1 = tpm.V3CP(**t)
     v3cp2 = tpm.V3CP(**t_norm)
     v3cp = v3cp2 - v3cp1
     self.assertEqual(type(v3cp), tpm.V3CP)
     self.assertEqual(v3cp.ctype, tpm.CARTESIAN)
     self.assertEqual(v3cp.vtype, tpm.POS)
     self.assertAlmostEqual(v3cp.x, t_norm['x'] - t['x'])
     self.assertAlmostEqual(v3cp.y, t_norm['y'] - t['y'])
     self.assertAlmostEqual(v3cp.z, t_norm['z'] - t['z'])
Example #3
0
    def testV3CSubtract(self):
        """V3CP.__sub__ => V3CP - V3CP."""
        import math

        def verify(t, t_norm):
            v3cp1 = tpm.V3CP(**t)
            v3cp2 = tpm.V3CP(**t_norm)
            v3cp = v3cp2 - v3cp1
            self.assertEqual(type(v3cp), tpm.V3CP)
            self.assertEqual(v3cp.ctype, tpm.CARTESIAN)
            self.assertEqual(v3cp.vtype, tpm.POS)
            self.assertAlmostEqual(v3cp.x, t_norm['x'] - t['x'])
            self.assertAlmostEqual(v3cp.y, t_norm['y'] - t['y'])
            self.assertAlmostEqual(v3cp.z, t_norm['z'] - t['z'])

        t = dict(x=1.0, y=2.0, z=3.0)
        t_norm = dict(x=10.0, y=20.0, z=-0.234)
        verify(t, t_norm)

        t = dict(x=1.0, y=2.0, z=3.0)
        t_norm = dict(x=10.0, y=20.0, z=-0.234)
        verify(t_norm, t)

        # TypeError must be rasied if one of the values is not V3CP.
        self.assertRaises(TypeError, lambda v1: v1 - 1.0, tpm.V3CP(**t))
Example #4
0
 def testSetGetInitValues(self):
     """V3CP(**vals) => set V3CP fields at init."""
     t = dict(x=-12.34, y=21345.0, z=-0.00001)
     v3cp = tpm.V3CP(**t)
     self.assertAlmostEqual(v3cp.x, t['x'])
     self.assertAlmostEqual(v3cp.y, t['y'])
     self.assertAlmostEqual(v3cp.z, t['z'])
Example #5
0
 def verify(t, t_norm):
     v3cp = tpm.V3CP(**t)
     v3sp = v3cp.c2s()
     self.assertEqual(type(v3sp), tpm.V3SP)
     self.assertEqual(v3sp.ctype, tpm.SPHERICAL)
     self.assertEqual(v3sp.vtype, tpm.POS)
     self.assertAlmostEqual(v3sp.r, t_norm['r'])
     self.assertAlmostEqual(v3sp.alpha, t_norm['alpha'])
     self.assertAlmostEqual(v3sp.delta, t_norm['delta'])
Example #6
0
 def verify(t, n):
     v3cp1 = tpm.V3CP(**t)
     v3cp = v3cp1 * n
     self.assertEqual(type(v3cp), tpm.V3CP)
     self.assertEqual(v3cp.ctype, tpm.CARTESIAN)
     self.assertEqual(v3cp.vtype, tpm.POS)
     self.assertAlmostEqual(v3cp.x, t['x'] * n)
     self.assertAlmostEqual(v3cp.y, t['y'] * n)
     self.assertAlmostEqual(v3cp.z, t['z'] * n)
Example #7
0
 def verify(t, t_norm):
     v3cp1 = tpm.V3CP(**t)
     v3cp = v3cp1.unit()
     self.assertEqual(type(v3cp), tpm.V3CP)
     self.assertEqual(v3cp.ctype, tpm.CARTESIAN)
     self.assertEqual(v3cp.vtype, tpm.POS)
     self.assertAlmostEqual(v3cp.x, t_norm['x'])
     self.assertAlmostEqual(v3cp.y, t_norm['y'])
     self.assertAlmostEqual(v3cp.z, t_norm['z'])
     r = math.sqrt(v3cp.x**2 + v3cp.y**2 + v3cp.z**2)
     self.assertAlmostEqual(r, 1.0)
Example #8
0
 def testV6SetPOS(self):
     """V6C.pos = V3CP => set POS components of V6C, using V3CP."""
     t = dict(x=1123.4556, y=4556.1123, z=9876.1267)
     v3cp = tpm.V3CP(**t)
     v6cp = tpm.V6C()
     v6cp.pos = v3cp
     self.assertAlmostEqual(v6cp.x, t['x'])
     self.assertAlmostEqual(v6cp.x, v3cp.x)
     self.assertAlmostEqual(v6cp.y, t['y'])
     self.assertAlmostEqual(v6cp.y, v3cp.y)
     self.assertAlmostEqual(v6cp.z, t['z'])
     self.assertAlmostEqual(v6cp.z, v3cp.z)
Example #9
0
    def testV3CMultiply(self):
        """V3CP.__mul__ => V3CP * x; scale with a scalar."""
        def verify(t, n):
            v3cp1 = tpm.V3CP(**t)
            v3cp = v3cp1 * n
            self.assertEqual(type(v3cp), tpm.V3CP)
            self.assertEqual(v3cp.ctype, tpm.CARTESIAN)
            self.assertEqual(v3cp.vtype, tpm.POS)
            self.assertAlmostEqual(v3cp.x, t['x'] * n)
            self.assertAlmostEqual(v3cp.y, t['y'] * n)
            self.assertAlmostEqual(v3cp.z, t['z'] * n)

        t = dict(x=1.0, y=2.0, z=3.0)
        verify(t, 2.0)

        # This TypeError is raised by Cython. Cython doesn't have a
        # __rmul__ and hence the __mul__ of the right hand V3CP is
        # called. But then the types of self and n in __mul__ become
        # incompatible and TypeError is raised.
        self.assertRaises(TypeError, lambda v1: 3 * v1, tpm.V3CP(**t))
Example #10
0
    def testCreate(self):
        """V3CP() => create V3CP class."""
        v3cp = tpm.V3CP()
        self.assertEqual(type(v3cp), tpm.V3CP)

        # Access default init values.
        self.assertAlmostEqual(v3cp.ctype, tpm.CARTESIAN)
        self.assertAlmostEqual(v3cp.vtype, tpm.POS)
        self.assertAlmostEqual(v3cp.x, 0.0)
        self.assertAlmostEqual(v3cp.y, 0.0)
        self.assertAlmostEqual(v3cp.z, 0.0)

        # ctype and vtype are read only values.
        def f1(x):
            x.ctype = tpm.SPHERICAL

        def f2(x):
            x.vtype = tpm.VEL

        self.assertRaises(AttributeError, f1, v3cp)
        self.assertRaises(AttributeError, f2, v3cp)
Example #11
0
 def verify(t, t_norm, f):
     v3cp = tpm.V3CP(**t)
     s = f(v3cp)
     self.assertEqual(s, t_norm)
Example #12
0
 def verify(t, t_norm, res):
     v3cp1 = tpm.V3CP(**t)
     v3cp2 = tpm.V3CP(**t_norm)
     d = v3cp1.dot(v3cp2)
     self.assertAlmostEqual(d, res)
Example #13
0
 def verify(t, t_norm):
     v3cp = tpm.V3CP(**t)
     d = v3cp.mod()
     self.assertAlmostEqual(d, t_norm)