verify() raises ValueError comparing chained relations of different length
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 84/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- python
- Área
- backend, testing-qa
Línea de trabajo
Empieza en src/math_verify/grader.py, en sympy_compare_relational, cerca del strict zip que aparece en el traceback. Lee la lógica de comparación relacional circundante y luego ejecuta la reproducción con raise_on_error=True para cadenas de distintas longitudes. Se considera terminado cuando devuelve False sin lanzar una excepción y las pruebas pertinentes siguen cubriendo el comportamiento de comparación existente.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
verify(..., raise_on_error=True) raises ValueError when gold and prediction are both chained relations (And of relationals) with a different number of terms. Two chains of different length should compare as not equal.
Reproduce (math-verify 0.9.0, sympy 1.13.3):
from math_verify import parse, verify
verify(parse("$1<x<3$"), parse("$1<x<3<5$"), raise_on_error=True)
File ".../math_verify/grader.py", line 698, in sympy_expr_eq
return sympy_compare_relational(gold, pred, float_rounding, numeric_precision)
File ".../math_verify/grader.py", line 327, in sympy_compare_relational
return all(
File ".../math_verify/grader.py", line 329, in <genexpr>
for g, p in zip(gold._unsorted_args, pred._unsorted_args, strict=True)
ValueError: zip() argument 2 is longer than argument 1
Expected: False, which is what the default raise_on_error=False returns. With raise_on_error=True, a mismatch in the shape of the two answers is reported as an error instead of a non-match, so callers that use it to separate infrastructure failures from wrong answers crash on an ordinary wrong answer.
The strict zip is still on main: https://github.com/huggingface/Math-Verify/blob/ba3d3aaff23b3f4cac7a14672b4f6e293d97c98b/src/math_verify/grader.py#L329. Checking len(gold._unsorted_args) == len(pred._unsorted_args) before the zip would return False for this case.
- Lenguaje dominante
- Python
- Estrellas
- 1.2k
- Forks
- 65
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de huggingface/Math-Verify
-
A period inside the math delimiters (`$\frac{1}{3}.$`) makes correct answers fail and can make wrong ones passPosiblemente ocupada @MohammadHijjawi97 la tomó hace 25 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 90/100
huggingface/Math-Verify#85 ·
-
evaluate_model_outputs.py: rows whose gold cannot be extracted are dropped from the accuracy denominator, so the printed accuracy disagrees with the is_correct column the script writesPosiblemente ocupada @shaurya416 la tomó hace 31 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
huggingface/Math-Verify#83 ·
-
verify() rejects a not-equal written in the other orderPosiblemente ocupada @chetana1410 la tomó hace 2 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 35/100
huggingface/Math-Verify#100 ·
-
verify() rejects an absolute-value inequality that is the same intervalPosiblemente ocupada @chetana1410 la tomó hace 2 días. Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
huggingface/Math-Verify#98 ·
-
verify() rejects equivalent chained relations written in a different orderPosiblemente ocupada @chetana1410 la tomó hace 2 días. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
huggingface/Math-Verify#96 ·
Todos los issues de huggingface/Math-Verify
Issues similares
-
tests/strategies_test.py:174 goes uncovered on about 1 run in 100, failing the coverage ratchetAbiertoflaky-watch
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
btclib-org/btclib#2839 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
nion-software/nionswift#2018 ·
Los mantenedores suelen responder en 1 día
-
Deleting a member fails when another member's share transfer points to themPosiblemente ocupada @Beerlesklopfer la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
FoodCoopX/wirgarten-tapir#1336 ·
Los mantenedores suelen responder en 3 días
-
pydanty:is-working
Dificultad 2/5 1-3 horas Aptitud para principiantes 71/100
pydantic/pydantic-ai#11467 ·
Los mantenedores suelen responder en 1 día
-
Link Checker ReportAbiertoautomated issue linkchecker report
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
QuantEcon/lecture-python.myst#1098 ·
Los mantenedores suelen responder en 1 día