summaryrefslogtreecommitdiff
path: root/tests/algo2.lisp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/algo2.lisp')
-rw-r--r--tests/algo2.lisp92
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))))