TransformVariables.jl
TransformVariables.jl copied to clipboard
inverse of NamedTuple transformations from different ordering/superset
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).