Diamant

Diamant

Difficile

Instructions

Le kata du diamant prend une lettre en entrée et la représente sous la forme d’un diamant. Pour une lettre donnée, il affiche un diamant commençant par « A », la lettre fournie se trouvant au point le plus large.

Exigences

  • La première ligne contient un seul « A ».
  • La dernière ligne contient un seul « A ».
  • Toutes les lignes, sauf la première et la dernière, contiennent exactement deux lettres identiques.
  • Toutes les lignes ont autant d’espaces en fin de ligne qu’en début de ligne. (Cela peut être 0).
  • Le diamant est symétrique horizontalement.
  • Le diamant est symétrique verticalement.
  • Le diamant a une forme carrée (la largeur est égale à la hauteur).
  • Les lettres forment une forme de diamant.
  • La moitié supérieure contient les lettres dans l’ordre croissant.
  • La moitié inférieure contient les lettres dans l’ordre décroissant.
  • Les quatre coins (qui contiennent les espaces) sont des triangles.

Exemples

Dans les exemples suivants, les espaces sont indiqués par des caractères ·.

Diamant pour la lettre « A » :

A

Diamant pour la lettre « C » :

··A··
·B·B·
C···C
·B·B·
··A··

Diamant pour la lettre « E » :

····A····
···B·B···
··C···C··
·D·····D·
E·······E
·D·····D·
··C···C··
···B·B···
····A····

Indices

Les tests de cet exercice sont différents de ceux dont tu as l'habitude. Normalement, un test vérifie que, pour une entrée donnée, la sortie correspond à la valeur attendue. C'est ce qu'on appelle les tests basés sur les valeurs. Or cet exercice utilise les tests basés sur les propriétés, où les tests vérifient que, pour un ensemble d'entrées, la sortie possède une propriété particulière. Les deux différences essentielles entre ces deux approches sont les suivantes : 

  1. Un test basé sur les propriétés ne travaille pas avec une seule valeur d'entrée, mais avec un grand nombre d'entre elles.
  2. Un test basé sur les propriétés vérifie des propriétés, et non des valeurs concrètes.

Pour cet exercice, tous les tests vérifient une propriété de la forme de losange que ton code doit produire. De plus, tous les tests vérifient que la propriété testée est vraie pour toutes les lettres d'entrée valides ('A' à 'Z').

Pour faciliter les tests basés sur les propriétés, les tests de cet exercice s'appuient sur les paquets FsCheck et FsCheck.Xunit. Pour en savoir plus sur FsCheck, la documentation du framework est disponible ici.

Si tu veux plus d'informations sur les tests basés sur les propriétés, consulte cet article.


Source

Seb RoseLe lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet
Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet
C# Exercism

Prêt à commencer Diamant ?

Inscris-toi sur Exercism pour apprendre et maîtriser C# avec 62 concepts178 exercices, et un vrai mentorat humain, le tout gratuitement.