-
Notifications
You must be signed in to change notification settings - Fork 5
Pruebas
Freddy Román edited this page Jul 4, 2022
·
8 revisions
- En este paso, escribimos pruebas que verifiquen los casos de prueba. Puedes
escribir las pruebas en cualquier lenguaje aceptado por omegaUp.
- Sugerimos utilizar Python con libomegaup. Puedes revisar otros problemas de concursos pasados para ver cómo escribir las pruebas.
- El evaluador debe checar que la entrada sea válida y que sigue exactamente el formato descrito, cuidando en particular los espacios en blanco y saltos de línea.
- Las pruebas tienen que considerar los límites especiales que pueden existir para las distintas subtareas. Esto se logra dándole nombres de archivo a los casos conteniendo el identificador de su subtarea, para poder distinguir a qué subtarea pertenecen. Aquí hay un ejemplo.
- Te sugerimos que las pruebas tengan comentarios explicando qué condiciones de la entrada están validando, así como mensajes de error en las validaciones, para poder saber por qué un caso de prueba fue rechazado.
- Agrega el validador que creaste a
tests/tests.json
. Si tu validador se llamatest-validator.py
, el archivo se vería así:{ "inputs": { "filename": "test-validator.py" }, "max_score": 100 }
- Agrega casos inválidos para asegurarte que tu validador está funcionando
correctamente. Para hacer eso, crea la carpeta
tests/invalid-cases
y coloca casos que esperas que tu validador rechace. Es decir, agrega archivos.in
y.out
emparejados como los casos normales; el.out
puede ser vacío.- Cada caso inválido debe tener un string asociado a él en un archivo
.expected-failure
, conteniendo la razón por la que esperamos que el validador rechace ese caso. En general, este string es el mensaje asociado a la función de aserción que esperamos que falle para ese caso. - El evaluador verificará que los casos de prueba reciban
WA
(wrong answer) del validador de casos, y adicionalmente revisará que el flujo de error estándar (stderr) del validador contenga el string que está en el archivo.expected-failure
. El veredicto final esVE
(validator error) si no se encontró el string esperado en el flujo de error estándar del evaluador.
- Cada caso inválido debe tener un string asociado a él en un archivo