2011-12-08 176 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日