Unit testing 扩展DCG测试用例

Unit testing 扩展DCG测试用例,unit-testing,prolog,grammar,dcg,Unit Testing,Prolog,Grammar,Dcg,我正在寻找扩展DCG测试用例。方法 检查DCG正确运行的测试用例 处理器的行为方面的结果 转换的规则,而不是它的去糖化 能力 我想我曾经在网上看到过一些这样的测试用例。 但是我找不到他们了。现在我只发现以下几点 测试用例: (此处相同:) 但它们只是一种潜在的和内涵的,即。 他们测试脱糖(转换)是否成功 或给出一个错误。他们甚至没有显示什么转换 结果应该是,这不会困扰我,因为我是 无论如何,我正在寻找扩展DCG测试用例 欢迎指点 再见 附言: 这一个显示了转换,但它仍然是内涵的 而不是扩展的:

我正在寻找扩展DCG测试用例。方法 检查DCG正确运行的测试用例 处理器的行为方面的结果 转换的规则,而不是它的去糖化 能力

我想我曾经在网上看到过一些这样的测试用例。 但是我找不到他们了。现在我只发现以下几点 测试用例:


(此处相同:)

但它们只是一种潜在的和内涵的,即。 他们测试脱糖(转换)是否成功 或给出一个错误。他们甚至没有显示什么转换 结果应该是,这不会困扰我,因为我是 无论如何,我正在寻找扩展DCG测试用例

欢迎指点

再见

附言: 这一个显示了转换,但它仍然是内涵的 而不是扩展的:

例如:

expand(( a(4)-->[98] ),
   (a(4, S0, S1):- 'C'( S0,98, S1))).
expand(( a(28)--> \+b,c ),
   (a(28,_608,_609):-(b(_608,_619)->fail;_617=_608),c(_617,_609))).
但是许多Prolog系统对终端使用不同的方法, 否定等等。。在DCG中。因此,扩展测试套件将
更方便

刚刚完成了几项工作。测试用例 请务必涵盖以下内容:

谓词。/4:终端
谓词(->)/2:非终结符
谓词(,)/4:连词
谓词(;)/4:析取
谓词(->)/4:蕴涵
谓词(+)/3:否定为失败
谓词!/2:切割
谓词{}/3:辅助条件

一些测试用例检查稳定性。总数 测试用例的数量是:56

测试用例不包括DCG内部的回推和元调用。 测试用例在此处和之后使用@/3,因此在使用清单/[0,1]时 可以看到原始DCG代码,而不是它的扩展。三, 定义如下:

@(X) --> X.
测试用例的灵感来自: Moura,P.ed.(2010):序言,第3部分:定冠词语法规则,草案,ISO/IEC DTR 13211 3:2006,2010年4月1日