Example #1
0
    def test_gn_f(self):
        alpha = F.gn_f(self.N_cur, F.assign_ub(self.points), self.points,
                       np.nan)
        fun_val = F.gn_f(self.N_cur, F.assign_ub(self.points), self.points,
                         alpha)

        r = len(self.points)
        n = len(self.N_cur.ctrlptsw)
        (rows, ) = np.shape(np.array(fun_val))
        self.assertTrue(rows == (2 * r + n))
        self.assertTrue(isinstance(alpha, float))
        self.assertTrue(isinstance(fun_val, list))
Example #2
0
    def test_gn_jacobi(self):
        J = F.gn_jacobi(self.N_cur, F.assign_ub(self.points), self.points, 1.0)

        r = len(self.points)
        n = len(self.N_cur.ctrlptsw)

        (rows, cols) = np.shape(np.array(J))
        self.assertTrue(rows == (2 * r + n))
        self.assertTrue(cols == (r + 3 * n))
        self.assertTrue(isinstance(J, list))
Example #3
0
    def test_update_curve(self):

        # Initialize x
        CP_list = list()
        for CP in self.N_cur.ctrlptsw:
            for each in CP[:-1]:
                CP_list.append(each)
        W = []
        for elem in self.N_cur.ctrlptsw:
            W.append(elem[-1])
        ub = F.assign_ub(self.points)  # Should be same as for the B-spline!

        x = ub + CP_list + W
        r = len(self.points)

        New_c = F.update_curve(self.N_cur, x, r)

        N_res = self.N_cur.evalpts
        N_new_res = New_c.evalpts

        W_fix = copy.deepcopy(W)  # Change the weights
        W_fix[0] = W_fix[0] + 2
        CP_list_fix = CP_list  # Change the controlpoints
        CP_list_fix[0] = CP_list_fix[3] * 3

        x_w = ub + CP_list + np.log(W_fix).tolist()
        x_p = ub + CP_list_fix + np.log(W).tolist()

        New_w = F.update_curve(self.N_cur, x_w, r)
        New_p = F.update_curve(self.N_cur, x_p, r)

        self.assertListAlmostEqual(N_res, N_new_res,
                                   3)  # nothing should be changed
        self.assertFalse(
            self.N_cur.ctrlptsw[0][-1] == New_w.ctrlptsw[0][-1])  # Changed
        self.assertTrue(
            self.N_cur.ctrlptsw[1][-1] == New_w.ctrlptsw[1][-1])  # Unchanged
        self.assertTrue(self.N_cur.ctrlptsw[2][-1] == New_w.ctrlptsw[2][-1])
        self.assertFalse(self.N_cur.ctrlptsw[0][0] == New_p.ctrlptsw[0][0])
        self.assertTrue(self.N_cur.ctrlptsw[0][-1] == New_p.ctrlptsw[0][-1])
Example #4
0
 def test_assign_ub(self):
     ub = F.assign_ub(self.points)
     # Just check if the output is correct (and that the functions actually works).
     self.assertTrue(isinstance(ub, list))
     self.assertTrue(
         isinstance(F.set_knots(4, 2, len(self.points), ub), np.ndarray))