首页 文章

在Prolog中测试 . 如何运行单元测试来检查我的输出文件是否与我的文本文件匹配?

提问于
浏览
0

我正在使用prolog(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

    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.
    

相关问题