summaryrefslogtreecommitdiff
path: root/src/tests,table.lisp
blob: 33d4e86690d50a99897d2a0e7f6cf5fee76c376a (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
(defpackage lizfcm/tests.table
  (:use :cl
        :fiveam
        :lizfcm.utils
        :lizfcm/tests)
  (:export :approx-suite))
(in-package :lizfcm/tests.table)

(def-suite table-suite
           :in lizfcm-test-suite)
(in-suite table-suite)

(defun fib (n)
  (cond ((< n 2) n)
        (t (+ (fib (- n 1)) (fib (- n 2))))))

(test table-of-fib-vals
      :description "table generates correctly"
      (let* ((headers '("n" "fib(n)"))
             (n-values '((1) (2) (3) (4)))
             (expected `(("n" "fib(n)")
                         (1 ,(fib 1))
                         (2 ,(fib 2))
                         (3 ,(fib 3))
                         (4 ,(fib 4))))
             (tabled (lizfcm.utils:table (:headers headers
                                                   :domain-order (n)
                                                   :domain-values n-values)
                                         (fib n))))
        (is (equal expected tabled))))