La kata del diamante recibe una letra y la muestra en forma de diamante. Dada una letra, imprime un diamante que empieza con 'A', con la letra proporcionada en el punto más ancho.
En los siguientes ejemplos, los espacios se indican con el carácter ·.
Diamante para la letra 'A':
A
Diamante para la letra 'C':
··A··
·B·B·
C···C
·B·B·
··A··
Diamante para la letra 'E':
····A····
···B·B···
··C···C··
·D·····D·
E·······E
·D·····D·
··C···C··
···B·B···
····A····
Las pruebas de este ejercicio son diferentes de las pruebas habituales. Normalmente, una prueba comprueba si, para una entrada dada, la salida coincide con el valor esperado. A esto se le llama pruebas basadas en valores. Sin embargo, este ejercicio usa pruebas basadas en propiedades, en las que las pruebas comprueban si, para un rango de entradas, la salida tiene una propiedad específica. Las dos diferencias clave que distinguen las pruebas basadas en propiedades de las pruebas basadas en valores son:
En este ejercicio, todas las pruebas verifican una propiedad de la forma de diamante que tu código debe producir. Además, todas las pruebas comprueban si la propiedad que verifican se cumple para todas las letras de entrada válidas ('A' a 'Z').
Para facilitar las pruebas basadas en propiedades, las pruebas de este ejercicio hacen uso de los paquetes FsCheck y FsCheck.Xunit. Para aprender más sobre FsCheck, puedes encontrar la documentación del framework aquí.
Si quieres más información sobre las pruebas basadas en propiedades, consulta este artículo.
Regístrate en Exercism para aprender y dominar C# con 62 conceptos178 ejercicios y mentoría humana real, todo gratis.