- Organizarnos por parejas
- Trabajar en base a Pomodoros de 25 minutos, con 5 de descanso y retrospectiva
- Cambio de pareja para siguiente pomodoro
- Jorge Jiménez Pérez
- Amalia Hernández García
- José Luis Balmaseda Franco
- Alvaro Garcia Loaisa
- Javier Acero Guerra
- Francisco Pascual
- Eduardo Ferrández
KATA: STRING CALCULATOR
El problema a resolver es el siguiente: se parte de una cadena formada por número que están separados por comas o por nuevas
líneas (\n). Se trata de ir haciendo la suma de los números recibidos y devolver el valor total.
Dos cosas a tener en cuenta:
- Si la primera línea de la cadena es de la forma “//”, entonces es posible encontrar el delimitador *. Esto es válido para cualquier cadena.
- No se admiten números negativos.
Esta información está en la página:
http://blog.extracheese.org/2010/01/string-calculator-kata-in-python.html
Pero es que además la página de Osherove nos da toda una serie de pasos para ir desarrollando
la Kata (http://osherove.com/tdd-kata-1)
- Crear una calculadora sencilla con un método int Add (números de serie)
- El método puede tener 0, 1 ó 2 números, y devolverá su suma (para una cadena vacía devolverá 0) por ejemplo ” ” ó “1″ ó ” 1,2 “
- Comience con el caso más simple de prueba de una cadena vacía y luego pasar a 1 y 2 números
- Debes resolver las cosas de la manera mas sencilla posible, para forzarte a escribir los test que no habías pensado
- Hay que refactorizar después de pasar los test.
- Permitir que el metodo Add trabaje con una cantidad desconocida de números
- Permitir que el método Add trate con el carácter nueva línea, situado entre los números (en lugar de comas).
- la siguiente entrada está bien: “1 \ n2, 3″ (será igual a 6)
- la siguiente entrada NO se acepta: “1, \ n”
- Asegurar la prueba para las entradas correctas. No hay necesidad de probar para las entradas incorrectas.
- Permitir el método Add trabaje un delimitador diferente:
- Para cambiar un delimitador, el comienzo de la cadena contendrá una línea independiente que tiene este aspecto: ”/ / [delimitador] \ n [números ...]” por ejemplo “/ /; \ n1; 2″ debe devolver tres cuando el delimitadorpor defecto es ‘;’.
- La primera línea es opcional. Todos los escenarios deben estar soportados.
- Las llamadas al método Add con un número negativo deben lanzar una excepción “Números negativos no admitidos” - y mostrar el numero negativo. Si existen múltiples negativos, se muestran todas en el mensaje de excepción.
Hasta aquí, si eres un novato. Continúa si puede terminar los siguientes pasos en menos de 30 minutos. - Los números superiores a 1000 deben ser ignorados. La suma 2 + 1001 = 2
- Los delimitadores pueden ser de cualquier longitud con el siguiente formato: “/ / [delimitador] \ n”, por ejemplo: “//*** \ n1 *** 2 *** 3 “debe devolver 6
- Se pueden permitir delimitadores múltiples de esta manera: “/ / [delim1] [delim2] \ n”, por ejemplo “//[*][%] \ n1 * 2% 3 “debe devolver 6.
- Se pueden tratar delimitadores múltiples con una longitud superior a un char.
RESUMEN
En las refactorizaciones y en los descansos de los Pomodoros se discutió sobre el diseño que emergía a través del TDD y Edu nos abrió los ojos hacia el destino de la Kata: refactorizar y hacer test sobre los diferentes SUT( Subject Under Test) que aparecían ante nuestros ojos: la calculadora y el separador de números (Calculator y Splitter, respectivamente).
Y de prueba unas fotos que atestiguan lo bien que lo pasamos. De las cañas no hya pruebas gráficas pero las gambas estaban muy buenas: foto 1 y foto 2