small bit better unit testing

This commit is contained in:
VaclavT 2021-05-15 13:29:15 +02:00
parent d04ef88b80
commit 1670ba9a9f
1 changed files with 15 additions and 11 deletions

View File

@ -1,17 +1,17 @@
(include "/usr/local/var/mlisp/terminal.lsp") (include "/usr/local/var/mlisp/terminal.lsp")
(defun ut::assert-equal (value form) (do (defun ut::assert-equal (expected form) (do
(define fvalue (eval form)) (define returned (eval form))
(if (= value fvalue) (if (= expected returned)
1 (list 1 expected returned)
nil) (list nil expected returned))
)) ))
(defun ut::assert-true (test) (ut::assert-equal 1 test)) (defun ut::assert-true (test) (ut::assert-equal 1 test))
(defun ut::assert-false (test) (ut::assert-equal nil test)) (defun ut::assert-false (test) (ut::assert-equal nil test))
(defun ut::assert-nil (test) (ut::assert-equal nil test)) (defun ut::assert-nil (test) (ut::assert-false test))
(defun ut::define-test (name exp_list) (defun ut::define-test (name exp_list)
(set! ut::tests_list (push ut::tests_list (list name exp_list)))) (set! ut::tests_list (push ut::tests_list (list name exp_list))))
@ -19,10 +19,15 @@
(defun ut::run-tests () (do (defun ut::run-tests () (do
(define oks 0) (define oks 0)
(define errs 0) (define errs 0)
(for t ut::tests_list (for t ut::tests_list
(if (eval (index t 1)) (define test_name (index t 0))
(do (set! oks (+ oks 1)) (print (+ (term-green "OK") " -> " (index t 0)))) (define test_result (eval (index t 1)))
(do (set! errs (+ errs 1)) (print (+ (term-red "ERR") " -> " (index t 0))))) (if (index test_result 0)
(do (set! oks (+ oks 1)) (print (+ (term-green "OK") " -> " test_name)))
(do (set! errs (+ errs 1))
(print (+ (term-red "ERR") " -> " test_name))
(print " " (index test_result 1) " <> " (index test_result 2))
))
) )
(if (= errs 0) (if (= errs 0)
(print (term-green (+ (string oks) " test(s) OK"))) (print (term-green (+ (string oks) " test(s) OK")))
@ -37,4 +42,3 @@
;; (ut::define-test "its number 2" '(ut::assert-equal 2 (+ 1 1))) ;; (ut::define-test "its number 2" '(ut::assert-equal 2 (+ 1 1)))
;; (ut::define-test "tis number 3" '(ut::assert-equal 3 (+ 1 1))) ;; (ut::define-test "tis number 3" '(ut::assert-equal 3 (+ 1 1)))
;; (ut::run-tests) ;; (ut::run-tests)