La kata del diamante prende in input una lettera e la dispone in output a forma di diamante. Data una lettera, stampa un diamante che inizia con 'A', con la lettera fornita nel punto più largo.
Nei seguenti esempi, gli spazi sono indicati con il carattere ·.
Diamante per la lettera 'A':
A
Diamante per la lettera 'C':
··A··
·B·B·
C···C
·B·B·
··A··
Diamante per la lettera 'E':
····A····
···B·B···
··C···C··
·D·····D·
E·······E
·D·····D·
··C···C··
···B·B···
····A····
I test di questo esercizio sono diversi da quelli a cui sei abituato. Normalmente un test verifica se, dato un certo input, l'output corrisponde al valore atteso. Questo si chiama test basato sui valori. Questo esercizio, invece, usa i test basati sulle proprietà, in cui i test verificano se, per una serie di input, l'output possiede una proprietà specifica. Le due differenze principali che distinguono i test basati sulle proprietà da quelli basati sui valori sono:
Per questo esercizio, i test verificano tutti una proprietà della forma a rombo che il codice dovrebbe produrre. Inoltre, tutti i test verificano se la proprietà che testano vale per tutte le lettere di input valide (da 'A' a 'Z').
Per facilitare i test basati sulle proprietà, i test di questo esercizio si avvalgono dei pacchetti FsCheck e FsCheck.Xunit. Per saperne di più su FsCheck, la documentazione del framework è disponibile qui.
Se vuoi maggiori informazioni sui test basati sulle proprietà, consulta questo articolo.
Iscriviti a Exercism per imparare e padroneggiare C# con 62 concetti178 esercizi e il mentoring di persone reali, tutto gratis.