Skip to content

Refuerzo de verificacion: propiedades, escala e integracion continua - #3

Closed
Miqueas7 wants to merge 3 commits into
feature/v0.2-multinorma-red-clifrom
test/robustez-property-based
Closed

Refuerzo de verificacion: propiedades, escala e integracion continua#3
Miqueas7 wants to merge 3 commits into
feature/v0.2-multinorma-red-clifrom
test/robustez-property-based

Conversation

@Miqueas7

Copy link
Copy Markdown
Owner

Refuerzo de verificacion sobre la rama de la version 0.2.0. Tres frentes que hasta ahora no existian.

Pruebas basadas en propiedades

Los tests actuales son casos puntuales elegidos a mano. Aqui se declaran invariantes que deben cumplirse para cualquier entrada del dominio fisico y se deja que Hypothesis busque contraejemplos: monotonias (mas trabajadores o mas altitud nunca reducen el caudal; subir la resistencia de una rama no aumenta su caudal), conservacion de Kirchhoff en redes generadas al azar, escalado dimensional de Atkinson (R proporcional a la longitud, inversa al cubo del area), cota del redondeo de seguridad, interpolacion acotada de la curva de ventilador, determinismo y rechazo de valores no finitos.

Escala y condicionamiento

Redes de mina por niveles de 50, 200 y 500 ramales, mas una red con resistencias separadas doce ordenes de magnitud. Resultado: 500 ramales convergen en decimas de segundo con balance exacto en todos los nodos.

Integracion continua

El flujo existente solo construye ruedas al etiquetar una version: las pruebas nunca corrian de forma automatica. Se agrega un flujo que en cada propuesta de cambio ejecuta:

  • ctest en Linux, macOS y Windows, en Debug y Release por separado (la optimizacion puede alterar el comportamiento en coma flotante, y varias pruebas verifican fronteras normativas exactas).
  • AddressSanitizer y UndefinedBehaviorSanitizer en Linux: el unico lugar donde se detecta comportamiento indefinido, ya que el compilador de Windows no ofrece UBSan.
  • Cobertura de lineas y ramas del nucleo con umbral minimo.
  • Suite de Python contra la extension compilada en las tres plataformas, incluidas las pruebas de escala y una comprobacion de la interfaz de linea de comandos.

Nota

El primer invariante ejecutado descubrio un defecto real (una resistencia infinita se aceptaba y el balance devolvia caudales invalidos marcados como convergidos). La correccion se llevo a la rama de la version 0.2.0 para que no salga con ese hueco; aqui quedan las pruebas que lo detectan.

Los tests existentes son casos puntuales elegidos a mano y la red mas
grande verificada tenia cinco ramales. Se agregan dos frentes:

- Invariantes con Hypothesis: monotonias fisicas (mas trabajadores o mas
  altitud nunca reducen el caudal; mas resistencia no aumenta el caudal de
  esa rama), conservacion de Kirchhoff en redes generadas aleatoriamente,
  escalado dimensional de Atkinson, cota del redondeo de seguridad,
  interpolacion acotada de la curva de ventilador, determinismo y rechazo
  de valores no finitos.
- Escala y condicionamiento: redes de mina por niveles de 50, 200 y 500
  ramales, y una red con resistencias separadas doce ordenes de magnitud.
  Quinientos ramales convergen en decimas de segundo con balance exacto.

El invariante de red sin ventilador se expresa como cota en funcion de la
tolerancia pedida: el solver converge cuando la correccion de malla cae
por debajo del umbral, de modo que el caudal residual escala con el.
El flujo existente solo construye ruedas al etiquetar una version: las
pruebas nunca se ejecutaban de forma automatica. Se agrega un flujo que
corre en cada propuesta de cambio:

- ctest en Linux, macOS y Windows, en Debug y en Release por separado
  (la optimizacion puede alterar el comportamiento en coma flotante y
  varias pruebas verifican fronteras normativas exactas).
- AddressSanitizer y UndefinedBehaviorSanitizer en Linux, unico lugar
  donde se detecta comportamiento indefinido.
- Cobertura de lineas y ramas del nucleo con umbral minimo.
- Suite de Python contra la extension compilada en las tres plataformas,
  incluidas las pruebas de escala y una comprobacion de la interfaz de
  linea de comandos.
@Miqueas7
Miqueas7 deleted the branch feature/v0.2-multinorma-red-cli August 20, 2026 21:49
@Miqueas7 Miqueas7 closed this Aug 20, 2026
@Miqueas7
Miqueas7 deleted the test/robustez-property-based branch August 20, 2026 21:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant