की सहायता से पारसी परीक्षण मैं एक पारसी पार्सर के लिए एक परीक्षण लिखना चाहता हूं।हास्केल - क्विक चेक
data Event = Event { keyEvent :: String }
deriving Show
parseKey :: Parser Event
parseKey = do
char '<'
k <- many1 (letter <|> digit <|> oneOf "_")
char '>'
return $ Event k
मैं जानता हूँ कि मैं parse = parse . pretty . parse
संपत्ति की जांच करने की जरूरत है कि: यहाँ पार्सर और डेटा संरचना का उदाहरण है। लेकिन मुझे सही और गलत परीक्षण मामलों को कैसे उत्पन्न करना चाहिए? आम तौर पर, मुझे BNF दिए गए परीक्षण मामलों को कैसे उत्पन्न करना चाहिए? मुझे instance Arbitrary
के बारे में पता है, लेकिन इससे बहुत मदद नहीं है।
यदि आप इस सरल पार्सर के लिए जनरेटर का एक अच्छी तरह से टिप्पणी उदाहरण प्रदान करते हैं तो मैं सराहना करता हूं।
सही परीक्षण-मामलों के लिए 'id = parse की जांच होगी। सुंदर 'काफी अच्छा हो? (इसके अलावा, 'oneOf "_" == char' _'') – huon
मुझे लगता है कि यह पर्याप्त होगा, हाँ! (इसके अलावा, पहला संस्करण कहीं अधिक अजीब था)। – m0nhawk
@dbaupp: मैंने इसके बारे में सोचा है और नहीं, सरल उदाहरण पर विचार करें जब 'स्पेस' या पार्सर में अन्य छोड़ने योग्य पात्र होते हैं, तो परिणाम उत्पन्न अलग होगा। और अतिरिक्त 'पार्स' मदद करेगा। – m0nhawk