コード例 #1
0
    def test_map_section(self):
        v1 = Volume()
        v2 = Volume()

        v2.swap('u', 'v')
        v2.reverse('v')
        v2.swap('u', 'w')
        ori = Orientation.compute(v1, v2)
        self.assertEqual(ori.map_section((-1, 0, -1)), (-1, -1, -1))
        self.assertEqual(ori.map_section((0, 0, None)), (-1, None, 0))
コード例 #2
0
    def test_permute_and_flip(self):
        v1 = Volume()
        v2 = Volume()

        v2.swap('u', 'v')
        v2.reverse('v')
        v2.swap('u', 'w')
        ori = Orientation.compute(v1, v2)
        self.assertEqual(ori.perm, (1, 2, 0))
        self.assertEqual(ori.flip, (True, False, False))
コード例 #3
0
    def test_map_array(self):
        v1 = Volume()
        v2 = Volume()

        v2.swap('u', 'v')
        v2.reverse('v')
        v2.swap('u', 'w')
        ori = Orientation.compute(v1, v2)
        self.assertTrue((ori.map_array(
            np.reshape(np.arange(8, dtype=int),
                       (2, 2, 2))) == np.reshape([2, 6, 3, 7, 0, 4, 1, 5],
                                                 (2, 2, 2))).all())
コード例 #4
0
    def test_flip(self):
        v1 = Volume()
        v2 = Volume()

        v2.reverse('u')
        ori = Orientation.compute(v1, v2)
        self.assertEqual(ori.perm, (0, 1, 2))
        self.assertEqual(ori.flip, (True, False, False))

        v2.reverse('w')
        ori = Orientation.compute(v1, v2)
        self.assertEqual(ori.perm, (0, 1, 2))
        self.assertEqual(ori.flip, (True, False, True))
コード例 #5
0
ファイル: volume_test.py プロジェクト: SINTEF/Splipy
    def test_reverse(self):
        # identity mapping, control points generated from knot vector
        basis1 = BSplineBasis(4, [2, 2, 2, 2, 3, 6, 12, 12, 12, 12])
        basis2 = BSplineBasis(3, [-3, -3, -3, 20, 30, 33, 33, 33])
        basis3 = BSplineBasis(5, [0, 0, 0, 0, 0, 8, 8, 8, 8, 8])
        vol = Volume(basis1, basis2, basis3)

        u = np.linspace(2, 12, 5)
        v = np.linspace(-3, 33, 5)
        w = np.linspace(0, 8, 5)

        pt = vol(u, v, w)

        vol.reverse('v')
        pt2 = vol(u, v[::-1], w)
        self.assertAlmostEqual(np.linalg.norm(pt - pt2), 0.0)
        self.assertAlmostEqual(vol.start('v'), -3)
        self.assertAlmostEqual(vol.end('v'), 33)

        vol.reverse(2)
        pt2 = vol(u, v[::-1], w[::-1])
        self.assertAlmostEqual(np.linalg.norm(pt - pt2), 0.0)
        self.assertAlmostEqual(vol.start('w'), 0)
        self.assertAlmostEqual(vol.end('w'), 8)
コード例 #6
0
ファイル: volume_test.py プロジェクト: sintefmath/Splipy
    def test_reverse(self):
        # identity mapping, control points generated from knot vector
        basis1 = BSplineBasis(4, [2,2,2,2,3,6,12,12,12,12])
        basis2 = BSplineBasis(3, [-3,-3,-3,20,30,33,33,33])
        basis3 = BSplineBasis(5, [0,0,0,0,0,8,8,8,8,8])
        vol = Volume(basis1, basis2, basis3)
        
        u = np.linspace( 2,12,5)
        v = np.linspace(-3,33,5)
        w = np.linspace( 0, 8,5)

        pt = vol(u,v,w)

        vol.reverse('v')
        pt2 = vol(u,v[::-1],w)
        self.assertAlmostEqual(np.linalg.norm(pt-pt2), 0.0)
        self.assertAlmostEqual(vol.start('v'),  -3)
        self.assertAlmostEqual(vol.end('v'),    33)

        vol.reverse(2)
        pt2 = vol(u,v[::-1],w[::-1])
        self.assertAlmostEqual(np.linalg.norm(pt-pt2), 0.0)
        self.assertAlmostEqual(vol.start('w'),   0)
        self.assertAlmostEqual(vol.end('w'),     8)