Module macro.assert
a simple testing framework.
Defines a single statment macro assert_ which has the following syntax:
- assert_ val1 == val2
- assert_ val1 > val2
- assert_ val1 < val2
- assert_ val1 matches val2 (using string matching)
- assert_ val1 throws val2 (ditto, on exception string)
The ==
case has some special forms. If val2
is (v1,v2,..)
then
it's assumed that the expression val1
returns multiple values. ==
will
also do value equality for plain tables. If val2
is a number given in
%f format (such as 3.14) then it will match vall
up to that specified
number of digits.
assert_ {one=1,two=2} == {two=2,one=1}
assert_ 'hello' matches '^hell'
assert_ 2 > 1
assert_ ('hello'):find 'll' == (3,4)
assert_ a.x throws 'attempt to index global'
Macros
assert_ | assert that two values match the desired relation. |