;;; cl-scopes/test/test-forge ;;;; testing facility for scopes/forge (defpackage :scopes/test-forge (:use :common-lisp) (:local-nicknames (:forge :scopes/forge) (:t :scopes/testing)) (:export #:run) (:import-from :scopes/testing #:deftest #:==)) (in-package :scopes/test-forge) (defun run () (let ((t:*test-suite* (t:test-suite "forge"))) (forge:init-forge-env) (test-iseq) (test-exec) ;(format t "~%data-stack ~a" (dstack)) (test-def) (t:show-result))) (deftest test-iseq () (let ((seq (forge:make-iseq))) (forge:isq-add seq 1) (forge:isq-add seq 2) (== (forge:isq-next seq) 1) (== (forge:isq-end seq) 2))) (deftest test-exec () (forge:exec-str "4 2 add") (== (car (forge:dstack)) 6)) (deftest test-def () (forge:exec-str "def square (dup mul)") (forge:exec-str "7 square") (== (car (forge:dstack)) 49))