diff options
Diffstat (limited to 'tests/algo2.lisp')
| -rw-r--r-- | tests/algo2.lisp | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/tests/algo2.lisp b/tests/algo2.lisp new file mode 100644 index 0000000..66f7f55 --- /dev/null +++ b/tests/algo2.lisp @@ -0,0 +1,92 @@ +(defpackage ffnn/tests/algo2 + (:use :cl + :ffnn + :ffnn.algo2 + :rove)) + +(in-package :ffnn/tests/algo2) + + +(deftest check-sum-one-row + (testing "sum-one-row" + (dolist (case '((foo ((foo) () (bar)) ((foo) (foo) (bar)) 1 (3 1)) + (foo ((bar) () (bar)) ((bar) (bar) (foo)) 1 (-1 1)) + (foo ((bar) () (bar)) ((bar) (bar) (bar)) 1 (1 3)) + (foo ((foo) () (bar)) ((foo) (foo) (bar)) nil (1 1)))) + (destructuring-bind (item input memory index expected) case + (ok (equal (ffnn.algo2::sum-one-row item input memory index) + expected)))))) + +(deftest check-sum-one-memory + (testing "Sum one memory" + (ok (equal (ffnn.algo2::sum-one-memory 'foo + '(((foo) (foo)) + ((bar) (bar))) ;; Input + '(((foo) (foo)) + ((bar) (bar))) ;; Memory + :rectified-polynomial (ffnn.algo2::make-rectified-polynomial 2) + :target-row 0 :target-col 0 + :start-row 0 :start-col 0) + 12)) + (ok (equal (ffnn.algo2::sum-one-memory 'foo + '(((foo) (foo)) + ((baz) (baz))) + '(((foo) (foo)) + ((foo) (foo))) + :rectified-polynomial (ffnn.algo2::make-rectified-polynomial 2) + :target-row 0 :target-col 0 + :start-row 0 :start-col 0) + 0)))) + + +(deftest check-sum-all-memories + (let ((memories '((((foo) (foo) (foo)) + (() () ()) + (() () ())) + (((foo) () ()) + (() (foo) ()) + (() () (foo))) + (((foo) () ()) + ((foo) () ()) + ((foo) () ()))))) + (testing "Sum all memories" + (ok (equal + (sum-all-memories 'foo '((() (foo) (foo)) + ((bar) (bar) ()) + (() () ())) + memories 0 0) + 34)) + (ok (equal + (sum-all-memories 'foo '(((foo) (bar)) ((qux) (foo))) memories 0 0) + 12))))) + + +(deftest check-scan-all-memories + (let ((layer1-memories + '((((foo) (foo) (foo)) + (() () ()) + (() () ())) + (((foo) () ()) + (() (foo) ()) + (() () (foo))) + (((foo) () ()) + ((foo) () ()) + ((foo) () ())))) + (layer2-memories + '(((() () ()) + (() () ()) + (() () ())) + ((() () ()) + (() () ()) + (() () ())) + ((() () ()) + (() () ()) + (() () ()))))) + (ok (equal (scan-all-memories 'foo + (scan-all-memories 'foo + '((() (foo) (foo)) + ((bar) (bar) ()) + (() () ())) + *layer1-memories*) + *layer2-memories*) + 12)))) |
