tests/test.min
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
;; test module
(
'OK =ok
(" " print!) :padding
;; describe
(
:name
"Testing: [" print! name print! "]" puts!
padding
()
) :describe
;; assert
(
' :check ; save the check quotation to validate
' :results ; save the result symbol to update
(
(
(check -> true ==)
(format-error puts! false)
) try
)
(
ok results append quote @results
"." print!
)
(
check results append quote @results
"x" print!
)
if
results
) :assert
;; report
(
newline
' :results ; save the results collected so far
0 :total
0 :failed
results (
total succ @total
(ok !=) (failed succ @failed) () if
) map
padding total print! " tests executed - " print! failed print! " failed." puts!
(
=result
result
(ok !=)
(padding "FAILED: " print! result puts!)
()
if
)
map
pop ;Remove results accomulator from stack
) :report
) +test
|