def METHOD_NAME(self):
    # Given
    spline = BSpline(7, 2)
    spline.control_points = [
        120, 100, # P1
        270, 40,  # P2
        370, 490, # P3
        590, 40,  # P4
        570, 490, # P5
        420, 480, # P6
        220, 500  # P7
        ]
    knots = spline.uniform_knot_seq(100)
    # When
    frames = spline.compute_rmf(knots)
    # Then
    for i in range(len(knots)):
        frame = frames.at(i)
        knot = knots[i]
        pos = spline(knot).result_vec3().distance(frame.position)
        self.assertAlmostEqual(0, pos, delta=TS_POINT_EPSILON)
        tan = spline.derive()(knot).result_vec3().normalize().distance(frame.tangent)
        self.assertAlmostEqual(0, tan, delta=TS_POINT_EPSILON)
        self.assertOrthogonal(frame.normal, frame.tangent)
        self.assertOrthogonal(frame.normal, frame.binormal)
        self.assertOrthogonal(frame.binormal, frame.tangent)