def testQuaternionBSpline(): t,qa = geodesicQuaternionPath() yield checkQuaternionSpline, QuaternionBSpline, t, qa for i in range(10): validity = randomValidity(t) qb = invalidate(qa, validity) yield checkQuaternionSpline, PartialInputQuaternionBSpline, t, qb
def testVectorSpline(): for order in (1, 3, 5): for i in range(10): x = randomTimeSequence() y = randomPositionSequence(x) yield checkVectorSpline, UnivariateVectorSpline, x, y, order validity = randomValidity(x) yn = invalidate(y, validity) yield checkVectorSpline, PartialInputVectorSpline, x, yn, order
def testPartialInterpolatingSpline(): x = np.linspace(0,10,1000) x = invalidate(x, randomValidity(x)) y = x**3 yp = 3*x**2 ypp = 6*x spline = PartialInputSpline(x,y, order=3) valid = np.array( np.sum(((x >= spline.validFrom) & (x <= spline.validTo) for spline in spline.splines)), dtype=bool) assert_almost_equal(spline(x)[valid], y[valid]) assert_almost_equal(spline(x, 1)[valid], yp[valid]) assert_almost_equal(spline(x, 2)[valid], ypp[valid])
def testPartialInterpolatingSpline(): x = np.linspace(0, 10, 1000) x = invalidate(x, randomValidity(x)) y = x**3 yp = 3 * x**2 ypp = 6 * x spline = PartialInputSpline(x, y, order=3) valid = np.array(np.sum(((x >= spline.validFrom) & (x <= spline.validTo) for spline in spline.splines)), dtype=bool) assert_almost_equal(spline(x)[valid], y[valid]) assert_almost_equal(spline(x, 1)[valid], yp[valid]) assert_almost_equal(spline(x, 2)[valid], ypp[valid])