Corrections sur test-unitaire + paramètre optionnel fonction de test.

This commit is contained in:
Georges Dupéron 2010-11-01 15:57:19 +01:00
parent 9550ca53ce
commit b85138b05f
5 changed files with 16 additions and 7 deletions

View File

@ -20,6 +20,7 @@
;; Exemple de la structure env-stack après création de deux
;; environnements en plus du top-level et ajout de plusieurs laisons.
(load "test-unitaire")
(erase-tests environnement)
(deftestvar environnement exemple-env-stack
'(;; Environnement le plus bas (dernières définitions par ordre
;; chronologique).

View File

@ -203,6 +203,7 @@ et termine par la liste APPEND."
;; TODO : Faire deftestvar
;; TODO : Finir le test unitaire
(load "test-unitaire")
(erase-tests virtual-machine)
(deftestvar virtual-machine t-r0-value (+ 1 (random 42))) ;; r0 > 0 pour la division.
(deftestvar virtual-machine t-r1-value (random 42))
(deftestvar virtual-machine t-m-value (random 42))

View File

@ -68,7 +68,7 @@ par le compilateur et par linterpréteur"
;; Test unitaire
(load "test-unitaire")
;(erase-tests)
(erase-tests lisp2li)
(deftest lisp2li
(lisp2li '3 ())

View File

@ -19,6 +19,8 @@
(mapcar (lambda (x) (meval x env)) list))
;; Test unitaire
(load "test-unitaire")
(erase-tests meval)
(deftest meval
(meval '(:lit . 3) ())
3)

View File

@ -8,7 +8,10 @@
;(defun eval-in-env-2 (qexpr env)
; '(eval `(let ,env ,qexpr)))
(defmacro deftest (module test expected)
(defun booleq (a b)
(if a b (not b)))
(defmacro deftest (module test expected &optional (compare #'equal))
`(progn
(if (not (assoc ',module all-tests))
(setf all-tests (cons (list ',module nil nil) all-tests)))
@ -16,6 +19,7 @@
(let* ((vars (second (assoc ',module all-tests)))
(_test ',test)
(_expected ',expected)
(_compare ,compare)
;; Les "eval" ci-dessous exécutent :
;; (let ((var1 val1) (var2 val2) ...) ;; On définit les
;; ;; variables de deftestvar.
@ -26,14 +30,15 @@
;; ;; sont accessibles.
(res (eval `(let ,vars ,@(mapcar #'car vars) ,_test)))
(exp (eval `(let ,vars ,@(mapcar #'car vars) ,_expected))))
(if (equal res exp)
(if (funcall _compare res exp)
(progn
(format t "~& [SUCCESS] ~w~&" ',test)
t)
(progn
(format t "~& [FAILURE] Test : ~w~&" ',test)
(format t "~& got : ~w~&" (list res (random 10)))
(format t "~& expected : ~w~&" exp)
(format t "~& [FAILURE] Test : ~w~&" ',test)
(format t "~& got : ~w~&" res)
(format t "~& expected : ~w~&" exp)
(format t "~& comparison : ~w~&" _compare)
nil))))
(third (assoc ',module all-tests)))))
@ -68,7 +73,7 @@
(defun erase-tests-1 (module)
(if module
(setf (assoc module all-tests) nil)
(setf (cdr (assoc module all-tests)) (list nil nil))
(setf all-tests nil)))
(defmacro erase-tests (&optional module)