String Calculator Kata

Este es un ejercicio incremental para simular una situación empresarial real: avanza paso a paso en orden, pero no leas el siguiente requisito antes de haber terminado el actual.

Paso 1

Crea una calculadora simple de cadenas con una firma de método:

int Add(string numbers)

El método puede recibir hasta dos números, separados por comas, y devolverá su suma.

Por ejemplo:

  • Para las entradas "" o “1” o “1,2”.
  • Para una cadena vacía, devolverá 0.

Paso 2

Permite que el método Add maneje una cantidad desconocida de números.

Paso 3

Permite que el método Add maneje saltos de línea entre números (en lugar de comas):

  • La siguiente entrada está bien: 1\n2,3 (será igual a 6)
  • La siguiente entrada NO está bien: 1,\n (no es necesario probarlo, solo por aclarar)

Paso 4

Soporta diferentes delimitadores.

Para cambiar un delimitador, al principio de la cadena habrá una línea separada que se verá así: //[delimitador]\n[números...] por ejemplo //;\n1;2 debería devolver tres, donde el delimitador predeterminado es ';'.

La primera línea es opcional. Todos los escenarios existentes aún deben ser compatibles.

Paso 5

Llamar a Add con un número negativo lanzará una excepción negativos no permitidos - y se mostrará el negativo que se pasó.

Si hay varios negativos, muéstralos todos en el mensaje de excepción.

Paso 6

Los números mayores que 1000 deben ignorarse, por lo que sumar 2 + 1001 = 2.

Paso 7

Los delimitadores pueden tener cualquier longitud con el siguiente formato: //[delimitador]\n por ejemplo: //[***]\n1***2***3 debería devolver 6.

Paso 8

Permite múltiples delimitadores de esta manera: //[delim1][delim2]\n por ejemplo //[*][%]\n1*2%3 debería devolver 6.

Paso 9

Asegúrate de que también puedas manejar múltiples delimitadores con una longitud mayor que un solo carácter.

Recursos

Fuente: https://osherove.com/tdd-kata-1/