diff --git a/decons.lisp b/decons.lisp index 60a1d48..58c2409 100644 --- a/decons.lisp +++ b/decons.lisp @@ -37,4 +37,4 @@ ;;;; parameterized functions (defun line (x) - #'(lambda (w b) (+ b (* w x)))) + #'(lambda (theta) (+ (cadr theta) (* (car theta) x)))) diff --git a/test-decons.lisp b/test-decons.lisp index e7c89a6..89cfaee 100644 --- a/test-decons.lisp +++ b/test-decons.lisp @@ -11,7 +11,24 @@ (defun run () (let ((t:*test-suite* (t:test-suite "decons"))) (test-basic) + (test-line) (t:show-result))) (deftest test-basic () - (== decons:*pi* 3.14159)) + (== decons:*pi* 3.14159) + (let ((c (make-instance 'decons:circle :radius 2.0))) + (== (decons:area c) 12.56636)) + (== (funcall (decons:double #'1+) 7) 16) + (== (decons:absv 7) 7) + (== (decons:absv -7) 7) + (== (decons:remainder 7 4) 3) +) + +(deftest test-line () + (let ((p1 (decons:line 0.0)) + (p2 (decons:line 1.0)) + (ds1 '((2.0 1.0 4.0 3.0) + (1.8 1.2 4.2 3.3)))) + (== (funcall p1 '(0.5 2.0)) 2.0) + (== (funcall p2 '(0.5 2.0)) 2.5) +))