Closed flbulgarelli closed 6 years ago
@mumuki/learning-experts
Segunda propuesta, con algunos recortes para simplificar la escritura y procesamiento de las reglas:
rules:
# Este mensaje se muestra cuando le estudiante envía una solución vacía
- type: content_empty
message: Ojo, tenés que mandar una solución zaraza
# Este mensaje se muestra cuando le estudiante envía una solución que no compila
- type: submission_errored
message: Ojo, ¡tu solución no compila!
# Este mensaje se muestra cuando le estudiante envía una solución que no compila
- type: submission_errored
message:
- 1: Ojo, ¡tu solución no compila (primer intento)!
- 2: Ojo, ¡tu solución no compila (segundo o tercer intento)!
- 4: Ojo, ¡tu solución no compila (cuarto a noveno intento)!
- 10: Ojo, ¡tu solución no compila (décimo intento en adelante)!
# Este mensaje se muestra cuando le estudiante envía una solución que no compila
# y tiene un cierto texto
- type: submission_errored
contains: 'missing method zaraza'
message: Ojo, no te olvides de que para que sean polimórficos tienen que...
# Este mensaje se muestra cuando le estudiante envía una solución que falla,
# independientemente de la falla
- type: submission_failed
message: Ojo, los tests no pasaron
# Este mensaje se muestra cuando le estudiante envía una solución que falla,
# y falla el conjunto de tests dados, independientemente de las demás fallas
- type: submission_failed
tests:
- 'f -2 should return 1'
- 'f -5 should return 1'
message: Ojo, tu solución debe funcionar con números negativos
# Este mensaje se muestra cuando le estudiante envía una solución que falla,
# y falla SOLO el conjunto de tests dados (los demás dan verde)
- type: submission_failed
tests:
- 'f -2 should return 1'
- 'f -5 should return 1'
exact: true
message: Ojo, tu solución debe funcionar con números negativos
Y propuesta para el feedback de las expectativas:
rules:
# Este mensaje se muestra cuando le estudiante envía una solución que pasa pero tiene
# inspecciones que fallan, y falla el conjunto de inspecciones dadas, independientemente
# de las demás
- type: submission_passed_with_warnings
expectations:
- 'Foo DeclaresMethod:getBar'
- 'Foo DeclareAttribute:bar'
- 'Foo.bar TypesAs:int'
- 'Foo.getBar TypesReturnAs:int'
message: Tu solución debe declarar el atributo bar, de tipo int, y el getter correspondiente.
Propuesta final, tal como se implementa en PR:
rules:
# Este mensaje se muestra cuando le estudiante envía una solución vacía
- when: content_empty
then: ojo, tenés que mandar una solución zaraza
# Este mensaje se muestra cuando le estudiante envía una solución que no compila
- when: submission_errored
then: ojo, ¡tu solución no compila!
# Este mensaje se muestra cuando le estudiante envía una solución que no compila
- when: submission_errored
then:
- Ojo, ¡tu solución no compila (primer a tercer intento)!
- Ojo, ¡tu solución no compila (cuarto a sexto intento)!
- Ojo, ¡tu solución no compila (séptimo intento o más)!
# Este mensaje se muestra cuando le estudiante envía una solución que no compila
# y tiene un cierto texto
- when:
error_contains: 'missing method zaraza'
then: ojo, no te olvides de que para que sean polimórficos tienen que...
# Este mensaje se muestra cuando le estudiante envía una solución que falla,
# independientemente de la falla
- when: submission_failed
then: ojo, los tests no pasaron
# Este mensaje se muestra cuando le estudiante envía una solución que falla,
# y falla el conjunto de tests dados, independientemente de las demás fallas
- when:
these_test_failed:
- 'f -2 should return 1'
- 'f -5 should return 1'
then: ojo, tu solución debe funcionar con números negativos
# Este mensaje se muestra cuando le estudiante envía una solución que falla,
# y falla SOLO el conjunto de tests dados (los demás dan verde)
- when:
only_these_tests_failed:
- 'f -2 should return 1'
- 'f -5 should return 1'
then: ojo, tu solución debe funcionar con números negativos
# Este mensaje se muestra cuando le estudiante envía una solución que pasa pero tiene
# expectativas que fallan
- when: submission_passed_with_warnings
then: rcordá que tu solución debe ser polimórica
# Este mensaje se muestra cuando le estudiante envía una solución que pasa pero tiene
# inspecciones que fallan, y falla el conjunto de inspecciones dadas, independientemente
# de las demás
- when:
these_expectations_failed:
- 'Foo DeclaresMethod:getBar'
- 'Foo DeclareAttribute:bar'
- 'Foo.bar TypesAs:int'
- 'Foo.getBar TypesReturnAs:int'
then: Tu solución debe declarar el atributo bar, de tipo int, y el getter correspondiente.
Relacionado con https://github.com/mumuki/mumuki-laboratory/issues/358 y https://github.com/mumuki/mumuki-laboratory/issues/952
Necesitamos una forma simple de configurar e ingresar en la herramienta de edición las sugerencias progresivas. Esta es mi propuesta:
Explicación:
rules
. Las reglas se evalúan todas (alla prolog, no hay prioridades)submission_failed
submission_errored
submission_passed_with_warnings
content_empty
message
si es un único mensajemessages
si son varios mensajes, que pueden variar en función de cuál es el número de intento:first_attemp
,second_attemp
, odefault
, para todo otro caso no especificado.