diff options
Diffstat (limited to 'res')
-rw-r--r-- | res/builtins.lisp | 3 | ||||
-rw-r--r-- | res/stdtest.lisp | 7 |
2 files changed, 10 insertions, 0 deletions
diff --git a/res/builtins.lisp b/res/builtins.lisp index 64c59d3..19bab1f 100644 --- a/res/builtins.lisp +++ b/res/builtins.lisp @@ -28,6 +28,9 @@ (defun gt (l r) (lt r l)) (export gt) +(comment "The absolute value returns the argument if it is non negative or (- 0 arg) if it is") +(defun abs (arg) (if (lt arg 0) (- 0 arg) arg)) +(export abs) (comment "if! a strict version of a regular if, meaning it evaluates both the falsy and the truthy case, instead of only one.") (defun if! (cond ifTrue ifFalse) (if cond ifTrue ifFalse)) diff --git a/res/stdtest.lisp b/res/stdtest.lisp index 42f9c94..b7553fa 100644 --- a/res/stdtest.lisp +++ b/res/stdtest.lisp @@ -20,3 +20,10 @@ (= actual expected) (stringify "Expected" expected "got" actual))) (export test.assert-eq) + +(comment "Assert that two number arguments are equal with some tolerance. Returns a closure") +(defun test.assert-eqd (actual expected tolerance) (seq + (test.assert + (lt (abs (- expected actual)) tolerance) + (stringify "Expected" expected "got" actual "with a tolerance of" tolerance)))) +(export test.assert-eqd) |