summaryrefslogtreecommitdiff
path: root/deprecated-cl/tests,vector.lisp
diff options
context:
space:
mode:
authorElizabeth Hunt <elizabeth.hunt@simponic.xyz>2023-10-11 10:04:04 -0600
committerElizabeth Hunt <elizabeth.hunt@simponic.xyz>2023-10-11 10:04:04 -0600
commit43f06890e2689af2ef54c4480fe5790692a24f65 (patch)
treeb933f3e05aad81d780c0c94646676efa1bbad22d /deprecated-cl/tests,vector.lisp
parenta74a732b27fb610133190e89a91b2d42d0cf78b3 (diff)
downloadcmath-43f06890e2689af2ef54c4480fe5790692a24f65.tar.gz
cmath-43f06890e2689af2ef54c4480fe5790692a24f65.zip
deprecate common lisp solutions and write c; it's too much effort to keep up with the requirements for an archive.
Diffstat (limited to 'deprecated-cl/tests,vector.lisp')
-rw-r--r--deprecated-cl/tests,vector.lisp42
1 files changed, 42 insertions, 0 deletions
diff --git a/deprecated-cl/tests,vector.lisp b/deprecated-cl/tests,vector.lisp
new file mode 100644
index 0000000..6edb1ac
--- /dev/null
+++ b/deprecated-cl/tests,vector.lisp
@@ -0,0 +1,42 @@
+(defpackage lizfcm/tests.vector
+ (:use :cl
+ :fiveam
+ :lizfcm.vector
+ :lizfcm.utils
+ :lizfcm/tests)
+ (:export :vector-suite))
+(in-package :lizfcm/tests.vector)
+
+(def-suite vector-suite
+ :in lizfcm-test-suite)
+(in-suite vector-suite)
+
+(test p-norm
+ :description "computes p-norm"
+ (let ((v '(1 1))
+ (length (sqrt 2))
+ (2-norm (p-norm 2)))
+ (is (within-range-p (funcall 2-norm v)
+ length
+ 0.00001))))
+
+(test vector-distance
+ :description "computes distance via norm"
+ (let ((v1 '(0 0))
+ (v2 '(1 1))
+ (dist (sqrt 2)))
+ (is (within-range-p (distance v1 v2 (p-norm 2))
+ dist
+ 0.00001))))
+
+(test least-squares
+ :description "least squares is correct enough"
+ (let ((x '(0 1 2 3 4))
+ (y '(1 2 3 4 5)))
+ (destructuring-bind (m b) (lizfcm.vector:least-squares-reg x y)
+ (is (within-range-p m 1 0.00001))
+ (is (within-range-p b 1 0.00001))))
+ (let ((x '(1 2 3 4 5 6 7))
+ (y '(0.5 3 2 3.5 5 6 7.5)))
+ (destructuring-bind (m b) (lizfcm.vector:least-squares-reg x y)
+ (is (within-range-p m 1 0.3))))) ;; just a guestimate for best fit