我正在寻找扩展的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中。因此,扩展测试套件会更方便。
发布于 2012-01-05 21:46:24
刚刚完成了几个extensional DCG test cases。测试用例确实涵盖了以下内容:
谓词。/ 4:终端
谓词(-->) / 2:非终结符
谓词(,)/ 4:连接词
谓词(;) / 4:析取
谓词(->) / 4:含义
谓词(+) / 3:否定为失败
谓词!/ 2: Cut
谓词{} / 3:辅助条件
一些测试用例检查稳定性。测试用例总数为: 56。
测试用例不包括DCG内部的推送和元调用。测试用例在这里使用@/3,这样当使用listing/0,1时,可以看到原始的DCG代码,而不是它的扩展。@/3的定义如下:
@(X) --> X.测试用例的灵感来自: Moura,P. ed。(2010年):Prolog,第3部分:确定从句语法规则,草案,ISO/IEC DTR 13211 3:2006,2010年4月1
https://stackoverflow.com/questions/8434772
复制相似问题