Example #1
0
    def test_reverse(self):
        basis1 = BSplineBasis(4, [2, 2, 2, 2, 3, 6, 7, 7, 7, 7])
        basis2 = BSplineBasis(3, [-3, -3, -3, 20, 30, 31, 31, 31])
        surf = Surface(basis1, basis2)
        surf2 = Surface(basis1, basis2)
        surf3 = Surface(basis1, basis2)

        surf2.reverse('v')
        surf3.reverse('u')

        for i in range(6):
            # loop over surf forward, and surf2 backward (in 'v'-direction)
            for (cp1, cp2) in zip(surf[i, :, :], surf2[i, ::-1, :]):
                self.assertAlmostEqual(cp1[0], cp2[0])
                self.assertAlmostEqual(cp1[1], cp2[1])

        for j in range(5):
            # loop over surf forward, and surf3 backward (in 'u'-direction)
            for (cp1, cp2) in zip(surf[:, j, :], surf3[::-1, j, :]):
                self.assertAlmostEqual(cp1[0], cp2[0])
                self.assertAlmostEqual(cp1[1], cp2[1])