prolog中的代码验证

时间:2015-02-26 16:36:19

标签: prolog swi-prolog plunit

我如何为此Prolog规则编写测试?

rule(5,jasmine_tea):- symptom(high_cholesterol),symptom(delicate_fragrance).

高绩效标记 - 这就是我所拥有的。

FACTS:
question('Do you suffer from anxiety?',anxiety).
symptom(anxiety).
reply(chamomile_tea,'Drink 3 cups of Chamomile tea everyday for a week.').

RULES:
rule(1,chamomile_tea):- symptom(anxiety),symptom(no_sleep).

希望能让事情变得更加清晰。

1 个答案:

答案 0 :(得分:0)

您可以使用多种单元测试工具。在SWI-Prolog中,你有" plunit":

http://www.swi-prolog.org/pldoc/doc_for?object=section('packages/plunit.html')

Logtalk为您提供了一个替代(和便携)工具,可以与SWI-Prolog和其他Prolog系统一起使用:

https://github.com/LogtalkDotOrg/logtalk3/blob/master/tools/lgtunit/NOTES.md

在这两种情况下,都有丰富的文档和关于如何编写单元测试的示例。简而言之,您指定了测试目标和预期结果(预期绑定,失败,错误和预期异常项的成功)。您还可以(隐式或显式)指定测试运行的环境(例如,设置和清理目标或数据库内容)。