summaryrefslogtreecommitdiff
path: root/test.fnl
blob: cb268584ec1c5db465b9a17150d6d117d213af61 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
;; requires `eq?' from core.fnl to be available at runtime

(fn assert-eq [expr1 expr2 msg]
  `(let [left# ,expr1
         right# ,expr2
         view# (require :fennelview)]
     (assert (eq? left# right#) (or ,msg (.. "equality assertion failed
  Left: " (view# ,expr1) "
  Right: " (view# ,expr2) "\n")))))

(fn assert-ne [expr1 expr2 msg]
  `(let [left# ,expr1
         right# ,expr2
         view# (require :fennelview)]
     (assert (not (eq? left# right#)) (or ,msg (.. "unequality assertion failed
  Left: " (view# ,expr1) "
  Right: " (view# ,expr2) "\n")))))

(fn assert* [expr msg]
  `(assert ,expr (.. "assertion failed for " ,(or msg (tostring expr)))))

{: assert-eq
 : assert-ne
 : assert*}