Διαμάντι

Διαμάντι

Δύσκολο

Οδηγίες

Το kata diamond παίρνει ως είσοδο ένα γράμμα και το εμφανίζει σε σχήμα διαμαντιού. Δεδομένου ενός γράμματος, εκτυπώνει ένα διαμάντι που ξεκινά με το 'A', με το γράμμα που δίνεται στο φαρδύτερο σημείο.

Απαιτήσεις

  • Η πρώτη γραμμή περιέχει ένα 'A'.
  • Η τελευταία γραμμή περιέχει ένα 'A'.
  • Όλες οι γραμμές, εκτός από την πρώτη και την τελευταία, έχουν ακριβώς δύο ίδια γράμματα.
  • Όλες οι γραμμές έχουν τόσα κενά στο τέλος όσα και στην αρχή. (Μπορεί να είναι 0).
  • Το διαμάντι είναι οριζόντια συμμετρικό.
  • Το διαμάντι είναι κατακόρυφα συμμετρικό.
  • Το διαμάντι έχει τετράγωνο σχήμα (το πλάτος ισούται με το ύψος).
  • Τα γράμματα σχηματίζουν ένα διαμάντι.
  • Το πάνω μισό έχει τα γράμματα σε αύξουσα σειρά.
  • Το κάτω μισό έχει τα γράμματα σε φθίνουσα σειρά.
  • Οι τέσσερις γωνίες (αυτές που περιέχουν τα κενά) είναι τρίγωνα.

Παραδείγματα

Στα παρακάτω παραδείγματα, τα κενά σημειώνονται με τον χαρακτήρα ·.

Διαμάντι για το γράμμα '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····

Υποδείξεις

Οι δοκιμές σε αυτή την άσκηση είναι διαφορετικές από τις συνηθισμένες δοκιμές σου. Κανονικά, μια δοκιμή ελέγχει αν, για μια δεδομένη είσοδο, η έξοδος ταιριάζει με την αναμενόμενη τιμή. Αυτό ονομάζεται δοκιμή βασισμένη σε τιμές. Ωστόσο, αυτή η άσκηση χρησιμοποιεί δοκιμή βασισμένη σε ιδιότητες, όπου οι δοκιμές ελέγχουν αν, για ένα εύρος εισόδων, η έξοδος έχει μια συγκεκριμένη ιδιότητα. Οι δύο βασικές διαφορές που ξεχωρίζουν τη δοκιμή βασισμένη σε ιδιότητες από τη δοκιμή βασισμένη σε τιμές είναι:

  1. Μια δοκιμή βασισμένη σε ιδιότητες δεν λειτουργεί με μία μόνο τιμή εισόδου, αλλά με πολλές.
  2. Μια δοκιμή βασισμένη σε ιδιότητες επαληθεύει ιδιότητες, όχι συγκεκριμένες τιμές.

Για αυτή την άσκηση, όλες οι δοκιμές επαληθεύουν μια ιδιότητα του σχήματος ρόμβου που πρέπει να παράγει ο κώδικάς σου. Επιπλέον, όλες οι δοκιμές ελέγχουν αν η ιδιότητα που εξετάζουν ισχύει για όλα τα έγκυρα γράμματα εισόδου ('A' έως 'Z').

Για να διευκολυνθεί η δοκιμή βασισμένη σε ιδιότητες, οι δοκιμές σε αυτή την άσκηση αξιοποιούν τα πακέτα FsCheck και FsCheck.Xunit. Για να μάθεις περισσότερα για το FsCheck, μπορείς να βρεις την τεκμηρίωση του framework εδώ.

Αν θέλεις περισσότερες πληροφορίες για τη δοκιμή βασισμένη σε ιδιότητες, δες αυτό το άρθρο.


Πηγή

Seb RoseΟ σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα
Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα
C# Exercism

Έτοιμος να ξεκινήσεις την άσκηση Διαμάντι;

Γράψου στο Exercism για να μάθεις και να κατακτήσεις C# με 62 έννοιες178 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.