|Did you know ...||Search Documentation:|
|Pack plammar -- test/README.md|
Definition of input/output tests for
plammar parser following the Test Anything Protocol (TAP).
The defined tests can be run using the following command from the project's root directory:
> swipl -q -g main -t halt -s test/test.pl
This produces a TAP compatible output like the following:
TAP version 13 1..4 ok 1 - integer_token < "123" ok 2 - integer_token > "123" ok 3 - integer_token < "00123" ok 4 - integer_token !< "12 34"
The identifier given first references the tested DCG Body (e.g.,
integer_token), the string the called input.
> denotes that from a given parse tree the correct input is created, and
< the other way around. `!>
and !<` denote tests designed to fail, e.g.,
"12 34" is no valid integer token.
Each file in the
parser directory specifies some tests. For simple input/output tests, we provide a term expansion to specify the tests in the following form:
DCGBody: ParseTree <=> String.
Tests which do not check the parse tree can be specified in a shorter form:
To define failing tests, i.e. to define inputs that should be recognized as no valid instances of the given DCG body, simply use
! instead of