tests.hex
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 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 |
0x0 "test-count" store
0x0 "successes" store
0x0 "failures" store
() "errors" store
(
"current-test" store
test-count 0x1 + "test-count" store
(
(current-test i)
(
"." print
successes 0x1 + "successes" store
)
(
"x" print
failures 0x1 + "failures" store
)
if
)
(
; Store error
errors " - Test #" test-count dec cat ": " cat error cat q cat "errors" store
"x" print
failures 0x1 + "failures" store
)
try
) "test" store
; --- Define tests
(
(0x1 "a" store a 0x1 ==)
("a" free 0x1)
("aaa" type "string" == 0x1 type "integer" == () type "quotation" == and and)
((0x1 0x2 +) i 0x3 ==)
;4
("0x2 0x2 -" eval 0x0 ==)
(0x4 0x5 + 0x9 ==)
(0x5 0x3 - 0x2 ==)
(0x5 0x2 * 0xa ==)
;8
(0x5 0x2 / 0x2 ==)
(0x4 0x2 % 0x0 ==)
(0x10101 0x01010 & 0x0 ==)
(0x10111 0x01000 | 0x11111 ==)
;12
(0x1 0x1 ^ 0x0 ==)
(0x1 ~ 0xfffffffe ==)
(0x1 0x4 << 0x10 ==)
(0x10 0x4 >> 0x1 ==)
;16
("10" int 0x10 ==)
(0x10 str "10" ==)
(0xa dec "10" ==)
("10" hex 0xa ==)
;20
("aaa" "aaa" ==)
(0x20 0x20 ==)
(0x21 0x22 !=)
("abba" "aaa" !=)
;24
(0x2 0x1 >)
(0x2 0x2 >=)
(0x2 0x3 <)
(0x3 0x3 <=)
;28
(0x2 0x3 and)
(0x1 0x0 or)
(0x1 0x0 xor)
(0x1 0x1 xor not)
;32
("hello" " world" cat "hello world" ==)
((0x1 "a") ("b") cat (0x1 "a" "b") ==)
((0x1 0x2 0x3) 0x1 0x2 slice (0x2 0x3) ==)
("hello" 0x0 0x3 slice "hell" ==)
;36
("aaaaa" len 0x5 ==)
((0x1 0x3 puts "aaa") len 0x4 ==)
((0x2 0x3 0x4) 0x2 get 0x4 ==)
("abcde" 0x1 get "b" ==)
;40
("abdef" "c" 0x2 insert "abcdef" ==)
("bcdef" "a" 0x0 insert "abcdef" ==)
("abcde" "f" 0x5 insert "abcdef" ==)
((0x1 0x2 0x3) 0x4 0x3 insert (0x1 0x2 0x3 0x4) ==)
;44
) "tests" store
; --- Run tests
tests (test i) each
; --- Report
"\nSuccessful Tests: " print successes dec print "/" print successes failures + dec puts
(errors len 0x0 >)
(
"Errors:" warn
errors (warn) each
)
when
; --- Cleanup
;"a" free
|