O kata do diamante recebe uma letra como entrada e a exibe em formato de diamante. Dada uma letra, ele imprime um diamante começando com 'A', com a letra fornecida no ponto mais largo.
Nos exemplos a seguir, os espaços são indicados por caracteres ·.
Diamante para a letra 'A':
A
Diamante para a letra 'C':
··A··
·B·B·
C···C
·B·B·
··A··
Diamante para a letra 'E':
····A····
···B·B···
··C···C··
·D·····D·
E·······E
·D·····D·
··C···C··
···B·B···
····A····
Os testes deste exercício são diferentes dos testes comuns. Normalmente, um teste verifica se, para uma determinada entrada, a saída corresponde ao valor esperado. Isso se chama teste baseado em valores. No entanto, este exercício usa teste baseado em propriedades, em que os testes verificam se, para uma série de entradas, a saída tem uma propriedade específica. As duas principais diferenças que distinguem o teste baseado em propriedades do teste baseado em valores são:
Neste exercício, todos os testes verificam uma propriedade do formato de diamante que seu código deve produzir. Além disso, todos os testes verificam se a propriedade testada vale para todas as letras de entrada válidas ('A' a 'Z').
Para facilitar o teste baseado em propriedades, os testes deste exercício utilizam os pacotes FsCheck e FsCheck.Xunit. Para saber mais sobre o FsCheck, a documentação do framework está disponível aqui.
Se você quiser mais informações sobre teste baseado em propriedades, veja este artigo.
Crie sua conta no Exercism para aprender e dominar C# com 62 conceitos178 exercícios e mentoria humana de verdade, tudo de graça.