Esempio n. 1
0
class TransformCase(unittest.TestCase):
    def setUp(self):
        self.s = Spheroid(distance=2., direction=(1, 3, 4.),
                          angles=(.3, .2, .1))

    def test_offset(self):
        nptest.assert_allclose(self.s.offset,
                               self.s.distance*self.s.direction)

    def test_from_to_axis(self, n=10):
        x = np.random.randn(n, 3)
        x1 = self.s.to_axis(x)
        x2 = self.s.from_axis(x1)
        nptest.assert_allclose(x, x2)

    def test_from_to_normal(self, n=10):
        x = np.random.randn(n, 3)
        x1 = self.s.to_normal(x)
        x2 = self.s.from_normal(x1)
        nptest.assert_allclose(x, x2)

    def test_rot(self):
        self.s.angles = 0, 0, 0
        x = np.array([0., 0, 3])
        x1 = self.s.from_normal(x)
        nptest.assert_allclose(x1, self.s.direction*3)
        self.s.direction = 0, 0, 1.
        self.s.angles = .1, 0, 0
        x1 = self.s.from_normal(x)
        nptest.assert_allclose(x1, (0, 3*np.sin(.1), 3*np.cos(.1)))
Esempio n. 2
0
class TransformCase(unittest.TestCase):
    def setUp(self):
        self.s = Spheroid(distance=2.,
                          direction=(1, 3, 4.),
                          angles=(.3, .2, .1))

    def test_offset(self):
        nptest.assert_allclose(self.s.offset,
                               self.s.distance * self.s.direction)

    def test_from_to_axis(self, n=10):
        x = np.random.randn(n, 3)
        x1 = self.s.to_axis(x)
        x2 = self.s.from_axis(x1)
        nptest.assert_allclose(x, x2)

    def test_from_to_normal(self, n=10):
        x = np.random.randn(n, 3)
        x1 = self.s.to_normal(x)
        x2 = self.s.from_normal(x1)
        nptest.assert_allclose(x, x2)

    def test_rot(self):
        self.s.angles = 0, 0, 0
        x = np.array([0., 0, 3])
        x1 = self.s.from_normal(x)
        nptest.assert_allclose(x1, self.s.direction * 3)
        self.s.direction = 0, 0, 1.
        self.s.angles = .1, 0, 0
        x1 = self.s.from_normal(x)
        nptest.assert_allclose(x1, (0, 3 * np.sin(.1), 3 * np.cos(.1)))