To help with regression testing I recently added a test option to gfsage for batch-testing the system by reading dialog samples from a file.
The samples must be in a text file and consist in a sequence of dialogs which are sequences of query/responses to the Sage system. Notice that a dialog might carry a state in the form of assumptions that are asserted or variables that are assigned. In the same way, each dialog is completely independent of the others.
Each dialog starts with a BEGIN
or BEGIN language
line. It specifies the beginning of dialog triplets and the natural language for these triplets. The dialog runs until an END
line. The language specified becomes the current language. Dialogs with no given languages are assumed to be in the current language. At the start of a testing suite, the current language is English.
A triplet is a sequence of 3 lines:
BEGIN spanish calcula el factorial del nĂºmero octal 11.
362880 es 36280 . END BEGIN english let x be 4 .
compute the sum of x and 5 . 9 it is 9 . compute the sum of it and 5 . 14 it is 14 . END
Notice that blank lines are relevant: they mark that Sage responded nothing to the query. Therefore, it is not allowed to insert blank lines neither between triplets nor dialogs.
gfsage --test
will test the dialogs in and tell about the differences. You got a summary of the results:
Dialog 'compute Gamma....' failed 18 out of 19 dialogs successful.