Better error message when using `test_scalar` for functions with multiple outputs
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 45/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- julia
- Área
- testing-qa
Línea de trabajo
La ruta que falla es ChainRulesTestUtils/src/testers.jl en la línea 154; empieza reproduciendo el caso mostrado test_scalar(simo, 3.0) e inspecciona cómo la salida de la tupla llega a one. Define un error informativo para múltiples salidas o confirma el límite del comportamiento admitido; después ejecuta la suite de pruebas existente y añade cobertura para este caso.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
When using test_scalar to test functions with multiple outputs the error messages are uninformative:
julia> simo(x) = (x, 2x)
julia> @scalar_rule simo(x) 1.0 2.0
julia> test_scalar(simo, 3.0)
Test Summary: | Pass Total
simo at 3.0, with tangent 1.0 | 3 3
ERROR: MethodError: no method matching one(::Tuple{Float64,Float64})
Closest candidates are:
one(::Type{Missing}) at missing.jl:103
one(::BitArray{2}) at bitarray.jl:400
one(::Missing) at missing.jl:100
...
Stacktrace:
[1] #test_scalar#26(::Float64, ::Float64, ::FiniteDifferences.FiniteDifferenceMethod{Array{Int64,1},Array{Float64,1},FiniteDifferences.var"#27#29"{FiniteDifferences.FiniteDifferenceMethod{Array{Int64,1},Array{Float64,1},FiniteDifferences.var"#default_bound_estimator#19"{Int64}}}}, ::NamedTuple{(),Tuple{}}, ::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}, ::typeof(test_scalar), ::typeof(simo), ::Float64) at /Users/mzgubic/Projects/ChainRules.jl/dev/ChainRulesTestUtils/src/testers.jl:154
[2] test_scalar(::Function, ::Float64) at /Users/mzgubic/Projects/ChainRules.jl/dev/ChainRulesTestUtils/src/testers.jl:125
[3] top-level scope at REPL[23]:1
We could also support multiple outputs though I don't think it is a priority given rrule_test and frule_test are available.
- Lenguaje dominante
- Julia
- Estrellas
- 50
- Forks
- 18
- Merge medio
- 1 h 54 min
- PR fusionados (30 d)
- 1
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 JuliaDiff/ChainRulesTestUtils.jl
-
code snippet in readmeAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
JuliaDiff/ChainRulesTestUtils.jl#148 · 1 reacción ·
-
use DocThemeIndigoAbiertodocumentation good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
-
more `test_approx` ambiguitiesAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 45/100
-
mutation
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
Todos los issues de JuliaDiff/ChainRulesTestUtils.jl
Issues similares
-
mul! with a Symmetric or Hermitian factor throws for a matrix view whose columns are not contiguousAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
JuliaLang/LinearAlgebra.jl#1829 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
MagneticResonanceImaging/MRIReco.jl#320 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
rfordatascience/tidytuesday#1098 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
ClapeyronThermo/Clapeyron.jl#662 · 2 comentarios ·
-
ci system:windows test
Dificultad 1/5 Menos de una hora Aptitud para principiantes 76/100
Los mantenedores suelen responder en 1 día