Tests unitarios para el plugin de Redes
Qué tipo de tests vamos a implementar para asegurarnos de que al cambiar algo no perdemos funcionalidad y/o velocidad de proceso.
Este es un listado de los tests que considero debería pasar automáticamente el plugin de redes, y así asegurar (en la medida de lo posible) que al cambiar otras partes del desarrollo no perdemos funcionalidades.
Además de comprobar que la cosa funciona, los tests también nos servirán para evaluar la corrección y facilidad de uso de los interfaces que vamos definiendo.
De manera genérica, TODOS los tests deben contener una cabecera con Javadoc que explica qué pretendemos comprobar y una explicación pequeñita de lo que hace, si el programador lo considera conveniente.
Debemos procurar que los tests no sean obvios. Probar cosas útiles y que sean críticas para el correcto funcionamiento del plugin. Las pruebas las vamos a hacer con el shape de vías de Madrid, que tiene el tamaño adecuado para que los tests sean rápidos y a la vez podamos detectar posibles problemas de pérdida de velocidad.
- Generar una red. Usar una red simple con casos conocidos de tolerancia, intersección y campo de sentido. WriteNetwork
- Cargar una red. A partir de la capa de vías, cargar la red asociada. Comprobar que coinciden el nº de nodos y el de arcos, así como los datos del primer arco y del último. LoadNetwork
- Calcular un camino mínimo entre 2 nodos conocidos. Aquí se prueban realmnete varias cosas: cargar red, ubicar unos puntos sobre la red, calcular el camino mínimo y generar el shape y el informe de ruta. ShortestPahtSolver
- Calcular una matriz de distancias y tiempos. OneToManySolver
- Calcular un área de influencia. OneToManySolver + EdgeExtractor
- Crear unos polígonos concéntricos a partir de una lista de features con un campo cost. PolygonBuilder
- Partiendo de una red de tuberías, encontrar el nodo más cercano "aguas arriba" que cumpla una condición. NetWalker