扩展 DCG 测试用例

问题描述 投票:0回答:1

我正在寻找扩展 DCG 测试用例。方法 检查 DCG 是否正常运行的测试用例 处理器就结果的行为而言 转换后的规则,而不是其脱糖 能力。

我想我曾经在网上看到过一些这样的测试用例。 但我失去了他们的踪迹。现在我只找到以下内容 测试用例:

http://www.sju.edu/~jhodgson/wg17/Drafts/DCGs/test_cases
(同样在这里:http://www.sju.edu/~jhodgson/wg17/dcgs.pdf

但它们只是表面的和内涵的,即 他们测试脱糖、转化是否成功 或给出错误。他们甚至不显示转换是什么 结果应该是,这不会打扰我,因为我是 不管怎样,寻找扩展的 DCG 测试用例。

欢迎任何指点。

再见

附言: 这个显示了转换,但它仍然是内涵式的 而不是外延:
http://www.sju.edu/~jhodgson/wg17/GRIND.TXT
例如:

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 中的否定等。因此,扩展测试套件将 更得心应手。

unit-testing prolog grammar dcg
1个回答
1
投票

刚刚完成了几个扩展 DCG 测试用例。测试用例 请涵盖以下内容:

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

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

测试用例不涵盖 DCG 内的推回和元调用。 测试用例时不时地使用@/3,以便在使用listing/[0,1]时 看到的是原始的 DCG 代码,而不是它的扩展。 @/3 定义如下:

@(X) --> X.

测试用例的灵感来自于: 莫拉,P.编辑。 (2010):Prolog,第 3 部分:定句语法规则,草案,ISO/IEC DTR 13211 3:2006,2010 年 4 月 1 日

© www.soinside.com 2019 - 2024. All rights reserved.