Το kata diamond παίρνει ως είσοδο ένα γράμμα και το εμφανίζει σε σχήμα διαμαντιού. Δεδομένου ενός γράμματος, εκτυπώνει ένα διαμάντι που ξεκινά με το '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, μπορείς να βρεις την τεκμηρίωση του framework εδώ.
Αν θέλεις περισσότερες πληροφορίες για τη δοκιμή βασισμένη σε ιδιότητες, δες αυτό το άρθρο.
Γράψου στο Exercism για να μάθεις και να κατακτήσεις C# με 62 έννοιες178 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.