Scénario de test & Cas d'usage
Análisis de redes y algoritmos de grafos.
Descubrir todas las acciones de optNetworkCreación de datos con un auto-enlace (ServerA->ServerA) y componentes desconectados.
| 1 | DATA mycas.server_deps; |
| 2 | INPUT server_source $ server_target $; |
| 3 | DATALINES; |
| 4 | ServerA ServerA |
| 5 | ServerB ServerC |
| 6 | ServerC ServerD |
| 7 | ServerE ServerF |
| 8 | ; |
| 9 | RUN; |
| 1 | |
| 2 | PROC CAS; |
| 3 | |
| 4 | TABLE.loadTable / path="server_deps.csv" casout={name="server_deps"}; |
| 5 | |
| 6 | RUN; |
| 7 |
| 1 | PROC CAS; |
| 2 | optNetwork.connectedComponents / |
| 3 | links={name="server_deps", vars={from="server_source", to="server_target"}} |
| 4 | selfLinks=true |
| 5 | outNodes={name="ServerStatus", replace=true} |
| 6 | outLinks={name="DependencyFlow", replace=true}; |
| 7 | RUN; |
La ejecución debe completarse sin errores a pesar del bucle en ServerA. El resultado 'numComponents' debe reflejar correctamente el número de islas independientes (ej. ServerA es uno, el grupo B-C-D es otro, E-F es otro). La opción 'selfLinks=true' asegura que la dependencia de ServerA sobre sí mismo se incluya en el análisis del grafo.