45 lines
740 B
Common Lisp
45 lines
740 B
Common Lisp
(defun run-unit-test (unit-test)
|
|
(if (funcall unit-test)
|
|
(progn
|
|
(print (cons t unit-test))
|
|
t
|
|
)
|
|
(progn
|
|
(print (cons 'F unit-test))
|
|
nil
|
|
)
|
|
)
|
|
)
|
|
|
|
(defun run-test-suite (test-suite)
|
|
(if test-suite
|
|
(cons
|
|
(run-unit-test (car test-suite))
|
|
(run-test-suite (cdr test-suite))
|
|
)
|
|
)
|
|
)
|
|
|
|
(defun unit (test-suite)
|
|
(eval (cons 'and (run-test-suite test-suite)))
|
|
)
|
|
|
|
(defun assert (comparison expected actual)
|
|
(if (funcall comparison expected actual)
|
|
t
|
|
(progn
|
|
(print (list expected 'is 'not comparison actual))
|
|
nil
|
|
)
|
|
)
|
|
)
|
|
|
|
(defun assert= (expected actual)
|
|
(assert '= expected actual)
|
|
)
|
|
|
|
(defun assert-equal (expected actual)
|
|
(assert 'equal expected actual)
|
|
)
|
|
|