#t and #f added to language, datetime fixes

This commit is contained in:
2021-10-12 13:26:38 +02:00
parent adca8a452b
commit 4359012190
13 changed files with 90 additions and 55 deletions

View File

@@ -1,5 +1,5 @@
; not a bool
(defun not (x) (if x nil 1))
(defun not (x) (if x nil #t))
(defun is-pos? (n) (> n nil))
(defun is-neg? (n) (< n nil))
@@ -70,13 +70,13 @@
(while (and (< i lst_len) (= found_index -1))
(if (= itm (index lst i))
(define found_index i)
(define i (+ i 1))
(set! found_index i)
(set! i (+ i 1))
))
; TODO when nil will be implemented itm / nil
(if (!= -1 found_index)
1
#t
nil)
))

View File

@@ -3,16 +3,15 @@
(defun ut::assert-equal (expected form) (do
(define returned (eval form))
(if (= expected returned)
(list 1 expected returned)
(list #t expected returned)
(list nil expected returned))
))
(defun ut::assert-true (test) (ut::assert-equal 1 test))
(defun ut::assert-true (test) (ut::assert-equal #t test))
(defun ut::assert-false (test) (ut::assert-equal nil test))
(defun ut::assert-nil (test) (ut::assert-false test))
(defun ut::define-test (name exp_list)
(set! ut::tests_list (push ut::tests_list (list name exp_list))))
@@ -20,14 +19,14 @@
(define oks 0)
(define errs 0)
(for t ut::tests_list
(define test_name (index t 0))
(define test_result (eval (index t 1)))
(define test_name (first t))
(define test_result (eval (second t)))
(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))
))
(do (set! errs (+ errs 1))
(print (+ (term-red "ERR") " -> " test_name))
(print " " (second test_result) " <> " (third test_result))
))
)
(if (= errs 0)
(print (term-green (+ (string oks) " test(s) OK")))