| 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:
DCGBody: String.
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 :.