Kurzusok
/
C#
C#
/
Feladatok
/
Gyémánt
Gyémánt

Gyémánt

Nehéz

Utasítások

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.

Követelmények

  • Az első sorban egy 'A' áll.
  • Az utolsó sorban egy 'A' áll.
  • Az első és az utolsó sor kivételével minden sorban pontosan két azonos betű van.
  • Minden sorban annyi záró szóköz van, mint amennyi kezdő. (Ez 0 is lehet.)
  • A gyémánt vízszintesen szimmetrikus.
  • A gyémánt függőlegesen szimmetrikus.
  • A gyémánt négyzet alakú (a szélessége megegyezik a magasságával).
  • A betűk gyémánt alakot formálnak.
  • A felső felében a betűk növekvő sorrendben követik egymást.
  • Az alsó felében a betűk csökkenő sorrendben követik egymást.
  • A négy sarok (amelyek a szóközöket tartalmazzák) háromszög.

Példák

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

Tippek

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:

  1. A tulajdonságalapú teszt nem egyetlen bemeneti értékkel, hanem sok bemeneti értékkel dolgozik.
  2. A tulajdonságalapú teszt tulajdonságokat ellenőriz, nem konkrét értékeket.

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.


Forrás

Seb RoseA hivatkozás új ablakban vagy lapon nyílik meg
Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
C# Exercism

Készen állsz elkezdeni a(z) Gyémánt feladatot?

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.