diff --git a/src/Bridges/Constraint/functionize.jl b/src/Bridges/Constraint/functionize.jl index 97f135b121..956dd05dc3 100644 --- a/src/Bridges/Constraint/functionize.jl +++ b/src/Bridges/Constraint/functionize.jl @@ -87,13 +87,20 @@ function MOI.set( return end +function MOI.get( + model::MOI.ModelLike, + attr::MOI.CanonicalConstraintFunction, + b::ScalarFunctionizeBridge, +) + return convert(MOI.SingleVariable, MOI.get(model, attr, b.constraint)) +end + function MOI.get( model::MOI.ModelLike, attr::MOI.ConstraintFunction, b::ScalarFunctionizeBridge, ) - f = MOIU.canonical(MOI.get(model, attr, b.constraint)) - return convert(MOI.SingleVariable, f) + return convert(MOI.SingleVariable, MOI.get(model, attr, b.constraint)) end # vector version @@ -199,6 +206,15 @@ function MOI.set( return end +function MOI.get( + model::MOI.ModelLike, + attr::MOI.CanonicalConstraintFunction, + b::VectorFunctionizeBridge, +) + f = MOI.get(model, attr, b.constraint) + return MOIU.convert_approx(MOI.VectorOfVariables, f) +end + function MOI.get( model::MOI.ModelLike, attr::MOI.ConstraintFunction, diff --git a/src/Test/test_basic_constraint.jl b/src/Test/test_basic_constraint.jl index ed5ce276f6..9bab161480 100644 --- a/src/Test/test_basic_constraint.jl +++ b/src/Test/test_basic_constraint.jl @@ -164,6 +164,8 @@ function _basic_constraint_test_helper( ### if _supports(config, MOI.ConstraintFunction) @test MOI.get(model, MOI.ConstraintFunction(), c) ≈ constraint_function + @test MOI.get(model, MOI.CanonicalConstraintFunction(), c) ≈ + constraint_function end ### ### Test MOI.ConstraintSet