summaryrefslogtreecommitdiff
path: root/tests/algo1.lisp
blob: 5d5f3404914ec8521f48295dae45d62be4869c70 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
(defpackage ffnn/tests/algo1
  (:use :cl
	:ffnn
	:ffnn.algo1
	:rove))

(in-package :ffnn/tests/algo1)


(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.algo1::sum-one-row item input memory index)
		   expected))))))

(deftest check-sum-one-memory
  (testing "Sum one memory"
    (ok (equal (ffnn.algo1::sum-one-memory 'foo
		  '(((foo) (foo))
		    ((bar) (bar))) ;; Input
		  '(((foo) (foo))
		    ((bar) (bar))) ;; Memory
		  :rectified-polynomial (ffnn.algo1::make-rectified-polynomial 2)
		  :target-row 0 :target-col 0
		  :start-row 0 :start-col 0)
	       12))
    (ok (equal (ffnn.algo1::sum-one-memory 'foo
		  '(((foo) (foo))
		    ((baz) (baz)))
		  '(((foo) (foo))
		    ((foo) (foo)))
		  :rectified-polynomial (ffnn.algo1::make-rectified-polynomial 2)
		  :target-row 0 :target-col 0
		  :start-row 0 :start-col 0)
	       0))))

(deftest check-sum-memories
  (testing "Sum memories"
    (let ((memories '((((foo) (foo)) ((bar) (bar)))
		      (((baz) (baz)) ((foo) (foo)))
		      (((qux) (qux)) ((qux) (qux)))))
	  (poly-2 (ffnn.algo1::make-rectified-polynomial 2)))
      (ok (sum-memories 'foo
			'(((foo) (foo)) ((bar) (bar))) ;; Input
			memories ;; The Library of templates
			:rectified-polynomial poly-2
			:start-row 0  :start-col 0
			:target-row 0 :target-col 0))
      (ng (sum-memories 'foo
			'(((qux) (qux)) ((qux) (qux))) 
			memories
			:rectified-polynomial poly-2
			:start-row 0  :start-col 0
			:target-row 0 :target-col 0))
      (ng (sum-memories 'foo
			'(((baz) (baz)) ((foo) (foo))) 
			memories
			:rectified-polynomial poly-2
			:start-row 0  :start-col 0
			:target-row 0 :target-col 0))
      (ok (sum-memories 'foo
			'(((baz) (baz)) ((foo) (foo))) 
			memories
			:rectified-polynomial poly-2
			:start-row 0  :start-col 0
			:target-row 1 :target-col 0)))))