2011-12-08 142 views
3

我在寻找扩展DCG测试用例。装置 测试用例检查DCG 处理器的右侧运作中的所得到的转换后 规则的行为方面,而不是在它的脱糖 能力方面。扩展DCG测试用例

我觉得我看到了一些这样的测试用例一旦上了网。 但我失去了他们的踪迹。现在我只找到以下 测试用例:(这里一样:http://www.sju.edu/~jhodgson/wg17/dcgs.pdf

http://www.sju.edu/~jhodgson/wg17/Drafts/DCGs/test_cases

但它们毕竟只是perpherically和内涵,即 他们测试是否脱糖,转化,成功 还是给出了一个错误。他们甚至不显示转换结果 应该是什么,这并不妨碍我,因为我是 无论如何寻找扩展DCG测试用例。

欢迎任何指针。

再见

PS: 这其中显示了转换,但它仍然是内涵 而不是伸展:
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中使用不同的终端方式, 否定等。所以扩展测试套件 会更方便。

回答

2

刚刚完成了几个extensional DCG test cases。测试用例 做涵盖以下内容:

谓语。/4:端子
谓词( - >)/ 2:非端子
谓词(,)/ 4:连词
谓词(;)/ 4:析取
谓词( - >)/ 4:蕴涵
谓词(+)/ 3:Negatio as Failure
谓词!/2:剪切
谓词{}/3:辅助条件

某些测试用例检查是否坚固。测试用例总数 为:56

测试用例不包括推回和内DCG元的电话。 测试用例利用@/3这里,然后,使用列表/ [0,1] 当原始代码DCG可见,而不是它的膨胀。在@/3 定义如下:

@(X) --> X. 

测试用例被启发: 莫拉,P.编(2010):Prolog,第3部分:确定条款语法规则,草案,ISO/IEC DTR 13211 3:2006,2010年4月1日