TransformVariables.jl icon indicating copy to clipboard operation
TransformVariables.jl copied to clipboard

inverse of NamedTuple transformations from different ordering/superset

Open tpapp opened this issue 3 years ago • 0 comments

Currrently inverse for NamedTuple aggregators does not accept different orderings or supersets. Eg

julia> using TransformVariables
    
julia> t = as((a = asℝ, b = asℝ));

julia> inverse(t, (a = 1.0, b = 2.0))
2-element Vector{Float64}:
 1.0
 2.0

julia> inverse(t, (b = 1.0, a = 2.0))
ERROR: ArgumentError: keys(transformations) == keys(y) must hold. Got
keys(transformations) => (:a, :b)
keys(y) => (:b, :a)

julia> inverse(t, (a = 1.0, b = 2.0, c = 3.0))
ERROR: ArgumentError: keys(transformations) == keys(y) must hold. Got
keys(transformations) => (:a, :b)
keys(y) => (:a, :b, :c)

This is OK, but the user should be provided with a method to "regularize" NamedTuples (eg user input may mix up ordering).

tpapp avatar Sep 07 '22 08:09 tpapp