हीरा

हीरा

कठिन

निर्देश

डायमंड काटा इनपुट के रूप में एक अक्षर लेता है और उसे हीरे के आकार में छापता है। कोई अक्षर दिया जाए, तो यह 'A' से शुरू होने वाला हीरा छापता है। इसमें दिया गया अक्षर सबसे चौड़े हिस्से पर होता है।

आवश्यकताएँ

  • पहली पंक्ति में एक 'A' होता है।
  • अंतिम पंक्ति में एक 'A' होता है।
  • पहली और अंतिम पंक्ति को छोड़कर बाकी सभी पंक्तियों में ठीक दो समान अक्षर होते हैं।
  • हर पंक्ति में जितने स्पेस शुरू में होते हैं, उतने ही स्पेस उसके अंत में भी होते हैं। (यह 0 भी हो सकता है।)
  • हीरा आड़ी दिशा में सममित होता है।
  • हीरा खड़ी दिशा में सममित होता है।
  • हीरे का आकार वर्ग जैसा होता है (चौड़ाई और ऊँचाई बराबर)।
  • अक्षर मिलकर हीरे का आकार बनाते हैं।
  • ऊपरी आधे हिस्से में अक्षर बढ़ते क्रम में होते हैं।
  • निचले आधे हिस्से में अक्षर घटते क्रम में होते हैं।
  • चारों कोने (जिनमें स्पेस होते हैं) त्रिभुज होते हैं।

उदाहरण

आगे के उदाहरणों में स्पेस को · अक्षरों से दिखाया गया है।

'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····

संकेत

इस अभ्यास के टेस्ट आपके आम टेस्ट से अलग हैं। आम तौर पर एक टेस्ट यह देखता है कि दिए गए इनपुट के लिए आउटपुट अपेक्षित वैल्यू से मेल खाता है या नहीं। इसे वैल्यू-आधारित टेस्टिंग कहते हैं। लेकिन इस अभ्यास में प्रॉपर्टी-आधारित टेस्टिंग इस्तेमाल होती है, जिसमें टेस्ट यह देखते हैं कि इनपुट की कई वैल्यू के लिए आउटपुट में कोई खास प्रॉपर्टी रहती है या नहीं। प्रॉपर्टी-आधारित टेस्टिंग को वैल्यू-आधारित टेस्टिंग से अलग करने वाले दो मुख्य अंतर ये हैं:

  1. प्रॉपर्टी-आधारित टेस्ट एक ही इनपुट वैल्यू के साथ नहीं, बल्कि कई इनपुट वैल्यू के साथ काम करता है।
  2. प्रॉपर्टी-आधारित टेस्ट ठोस वैल्यू की नहीं, प्रॉपर्टी की जाँच करता है।

इस अभ्यास में सभी टेस्ट यह जाँचते हैं कि आपके कोड से बनने वाले डायमंड में एक खास प्रॉपर्टी पूरी होती है या नहीं। इसके अलावा, सभी टेस्ट यह भी देखते हैं कि वे जिस प्रॉपर्टी की जाँच करते हैं, वह हर मान्य इनपुट अक्षर ('A' से 'Z' तक) के लिए पूरी होती है या नहीं।

प्रॉपर्टी-आधारित टेस्टिंग को संभव बनाने के लिए इस अभ्यास के टेस्ट FsCheck और FsCheck.Xunit पैकेजों का इस्तेमाल करते हैं। FsCheck के बारे में और जानने के लिए आप इस फ्रेमवर्क का डॉक्यूमेंटेशन यहाँ देख सकते हैं।

प्रॉपर्टी-आधारित टेस्टिंग के बारे में और जानकारी चाहिए, तो यह लेख देखिए।


स्रोत

Seb Roseयह लिंक एक नई विंडो या टैब में खुलता है
GitHub के ज़रिए संपादित करें यह लिंक एक नई विंडो या टैब में खुलता है
C# Exercism

हीरा शुरू करने के लिए तैयार हैं?

Exercism पर साइन अप कीजिए और C# को 62 कॉन्सेप्ट178 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।