application/octet-stream
•
1.37 KB
•
24 lines
;; Contains test cases for (hopefully) all examples from the LANGUAGE.md file, to make sure that these examples never break
[test/add 3 [eval [read/single "[+ 1 2]"]]]
[test/add 3 [eval [read/single "(+ 1 2)"]]]
[test/add 'b [eval [read/single "[cdr '[a . b]]"]]]
[test/add 4 [eval [read/single "(+ 1 #;2 3)"]]]
[test/add 4 [eval [read/single "(+ 1 #| 2 |# 3)"]]]
[test/add #nil [eval [read/single "[comment [exit 2]]"]]]
[test/add 9 [eval [read/single "9"]]]
[test/add 1000 [eval [read/single "100,0"]]]
[test/add 1000 [eval [read/single "1,000"]]]
[test/add 16 [eval [read/single "#b10000"]]]
[test/add 16 [eval [read/single "#b0001_0000"]]]
[test/add 4660 [eval [read/single "#x12_34"]]]
[test/add :read-error [try car [read/single "0x123"]]]
[test/add 'a [eval [read/single "'a"]]]
[test/add '[1 2 3] [eval [read/single "'[1 2 3]"]]]
[test/add '[1 2 3] [eval [read/single "`[1 2 ~[+ 1 1 1]]"]]]
[test/add :asd [eval [read/single ":asd"]]]
[test/add :asd [eval [read/single "asd:"]]]
[test/add #t [eval [read/single "[= asd: :asd]"]]]
[test/add #t [eval [read/single "[= :asd [symbol->keyword 'asd]]"]]]
[test/add 4 [eval [read/single "[do [defn double [α] [* α α]] [double 2]]"]]]
[test/add '[2 4 6] [eval [read/single "[do [defn multiply-vals [val . l] [map l [fn [v] [* v val]]]] [multiply-vals 2 1 2 3]]"]]]
[test/add '[1 2 3 4] [eval [read/single "[do [defn my-list l l] [my-list 1 2 3 4]]"]]]