A diamond kata bemenete egy betű, kimenete pedig egy gyémánt alakzat. A kapott betűből kiindulva egy gyémántot ír ki, amely 'A'-val kezdődik, és a legszélesebb pontján a kapott betű áll.
A következő példákban a szóközöket · karakterek jelölik.
Az 'A' betűhöz tartozó gyémánt:
A
A 'C' betűhöz tartozó gyémánt:
··A··
·B·B·
C···C
·B·B·
··A··
Az 'E' betűhöz tartozó gyémánt:
····A····
···B·B···
··C···C··
·D·····D·
E·······E
·D·····D·
··C···C··
···B·B···
····A····
Ebben a feladatban a tesztek eltérnek a megszokott tesztektől. Általában egy teszt azt ellenőrzi, hogy egy adott bemenetre a kimenet megegyezik-e az elvárt értékkel. Ezt értékalapú tesztelésnek nevezzük. Ez a feladat viszont tulajdonságalapú tesztelést használ, ahol a tesztek azt ellenőrzik, hogy egy sor bemenetre a kimenet rendelkezik-e egy adott tulajdonsággal. A két legfontosabb különbség a tulajdonságalapú és az értékalapú tesztelés között:
Ebben a feladatban a tesztek mindegyike a gyémánt alakjának egy tulajdonságát ellenőrzi, amelyet a kódodnak elő kell állítania. Ráadásul minden teszt azt ellenőrzi, hogy az általa vizsgált tulajdonság minden érvényes bemeneti betűre teljesül-e ('A'-tól 'Z'-ig).
A tulajdonságalapú tesztelés megkönnyítése érdekében a feladat tesztjei az FsCheck és az FsCheck.Xunit csomagokat használják. Ha többet szeretnél megtudni az FsCheck-ről, a keretrendszer dokumentációja itt található.
Ha több információt szeretnél a tulajdonságalapú tesztelésről, nézd meg ezt a cikket.
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) C# nyelvet 62 fogalom178 feladat segítségével, valódi emberi mentorálással, mindez ingyen.