diff --git a/irteus/irtutil.l b/irteus/irtutil.l index 2e909d56..7ce01ca1 100644 --- a/irteus/irtutil.l +++ b/irteus/irtutil.l @@ -264,7 +264,7 @@ position-list: list of control point time-list: list of time from start for each control point, time in first contrall point is zero, so length of this list is length of control point minus 1" (setq position-list pl) - (setq time-list tl) + (setq time-list (mapcar #'float tl)) ;; float conversion is for compiled eps> (see https://github.com/euslisp/EusLisp/issues/406) (if (/= (length position-list) (1+ (length time-list))) (warning-message 1 "length of position-list must be length of time-list + 1")) (setq time 0.0) diff --git a/irteus/test/interpolator.l b/irteus/test/interpolator.l index 51d23e06..1e128015 100644 --- a/irteus/test/interpolator.l +++ b/irteus/test/interpolator.l @@ -239,6 +239,15 @@ )) )) +;; https://github.com/euslisp/jskeus/pull/625 +(defun test-interpolators-625 + (&optional (ip-class linear-interpolator)) + (let ((ip (instance ip-class :init))) + (send ip :reset :position-list (list #f(1 2 3) #f(3 4 5) #f(1 2 3)) :time-list (list 1000 1800)) + (send ip :start-interpolation) + (send ip :pass-time 200) + (assert (send ip :interpolatingp)))) + (deftest test-linear-interpolator () (let ((res (test-interpolators linear-interpolator))))) @@ -257,6 +266,12 @@ (deftest test-minjerk-absolute-interpolator-457-0005 () (let ((res (test-interpolators-457 minjerk-interpolator 0.0005))))) +(deftest test-linear-interpolator-625 () + (let ((res (test-interpolators-625 linear-interpolator))))) + +(deftest test-minjerk-interpolator-625 () + (let ((res (test-interpolators-625 minjerk-interpolator))))) + #| (load "~/prog/euslib/jsk/gnuplotlib.l")