ডায়মন্ড কাটা ইনপুট হিসেবে একটি বর্ণ নেয় এবং সেটিকে হীরার আকারে আউটপুট দেয়। একটি বর্ণ দেওয়া হলে এটি '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টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।