डायमंड काटा इनपुट के रूप में एक अक्षर लेता है और उसे हीरे के आकार में छापता है। कोई अक्षर दिया जाए, तो यह 'A' से शुरू होने वाला हीरा छापता है। इसमें दिया गया अक्षर सबसे चौड़े हिस्से पर होता है।
आगे के उदाहरणों में स्पेस को · अक्षरों से दिखाया गया है।
'A' अक्षर के लिए हीरा:
A
'C' अक्षर के लिए हीरा:
··A··
·B·B·
C···C
·B·B·
··A··
'E' अक्षर के लिए हीरा:
····A····
···B·B···
··C···C··
·D·····D·
E·······E
·D·····D·
··C···C··
···B·B···
····A····
इस अभ्यास के टेस्ट आपके आम टेस्ट से अलग हैं। आम तौर पर एक टेस्ट यह देखता है कि दिए गए इनपुट के लिए आउटपुट अपेक्षित वैल्यू से मेल खाता है या नहीं। इसे वैल्यू-आधारित टेस्टिंग कहते हैं। लेकिन इस अभ्यास में प्रॉपर्टी-आधारित टेस्टिंग इस्तेमाल होती है, जिसमें टेस्ट यह देखते हैं कि इनपुट की कई वैल्यू के लिए आउटपुट में कोई खास प्रॉपर्टी रहती है या नहीं। प्रॉपर्टी-आधारित टेस्टिंग को वैल्यू-आधारित टेस्टिंग से अलग करने वाले दो मुख्य अंतर ये हैं:
इस अभ्यास में सभी टेस्ट यह जाँचते हैं कि आपके कोड से बनने वाले डायमंड में एक खास प्रॉपर्टी पूरी होती है या नहीं। इसके अलावा, सभी टेस्ट यह भी देखते हैं कि वे जिस प्रॉपर्टी की जाँच करते हैं, वह हर मान्य इनपुट अक्षर ('A' से 'Z' तक) के लिए पूरी होती है या नहीं।
प्रॉपर्टी-आधारित टेस्टिंग को संभव बनाने के लिए इस अभ्यास के टेस्ट FsCheck और FsCheck.Xunit पैकेजों का इस्तेमाल करते हैं। FsCheck के बारे में और जानने के लिए आप इस फ्रेमवर्क का डॉक्यूमेंटेशन यहाँ देख सकते हैं।
प्रॉपर्टी-आधारित टेस्टिंग के बारे में और जानकारी चाहिए, तो यह लेख देखिए।
Exercism पर साइन अप कीजिए और C# को 62 कॉन्सेप्ट178 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।