يأخذ كاتا الماسة حرفًا كمُدخل، ويُخرجه على شكل ماسة. عند إعطائه حرفًا، يطبع ماسة تبدأ بالحرف '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 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.