O kata do diamante recebe uma letra como entrada e apresenta-a sob a forma de um diamante. Dada uma letra, imprime um diamante que começa com 'A' e tem a letra fornecida no ponto mais largo.
Nos exemplos seguintes, os espaços são representados por carateres ·.
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 que costumas ver. Normalmente, um teste verifica se, para um determinado valor de entrada, a saída corresponde ao valor esperado. A isto chama-se testes baseados em valores. No entanto, este exercício usa testes baseados em propriedades, em que os testes verificam se, para um intervalo de valores de entrada, a saída tem uma determinada propriedade. As duas diferenças principais que distinguem os testes baseados em propriedades dos testes baseados em valores são:
Neste exercício, todos os testes verificam uma propriedade da forma do diamante que o teu código deve produzir. Além disso, todos os testes verificam se a propriedade que testam se aplica a todas as letras de entrada válidas ('A' a 'Z').
Para facilitar os testes baseados em propriedades, os testes deste exercício recorrem aos pacotes FsCheck e FsCheck.Xunit. Para saberes mais sobre o FsCheck, podes consultar a documentação do framework aqui.
Se quiseres mais informações sobre testes baseados em propriedades, consulta este artigo.
Inscreve-te no Exercism para aprenderes e dominares C# com 62 conceitos178 exercícios, e mentoria humana real, tudo grátis.