Тест в Прологе.Как запустить модульный тест, который проверяет, совпадает ли мой выходной файл с моим текстовым файлом? - PullRequest
0 голосов
/ 10 декабря 2018

Я реализую генератор естественного языка, используя пролог (swipl).

У меня есть тестовый файл .txt с некоторыми фразами, которые я смогу сгенерировать в следующем формате:

[goal,identify,type_object,animal,object,cat,event,ran away,when,[last,mont],where,[]]
[which,cats,ran away,last,month,?]

[goal,identify,type_object,animal,object,dog,event,ran,when,[last,mont],where,[]]
[which,dogs,ran away,last,year,?]

и т. Д. *

Какя могу использовать plunit (или что-то еще?), чтобы проверить, все ли элементы моего тестового файла в моем выходном файле возвращают true / false?

1 Ответ

0 голосов
/ 10 декабря 2018

read/1 может быть то, что вы ищете:

Предположим, я определил факт p/1:

p([a,b,c]).

, тогда я могу прочитать термин из стандартного ввода и сравнить (строки, начинающиеся с |:, SWI Prolog обозначает как пользовательский ввод, ваша реализация может отличаться):

?- read(X), p(X).
|: [a,b,c].

X = [a, b, c].

?- read(X), p(X).
|: [].

false.
...