diff --git a/src/dual_model_variables.jl b/src/dual_model_variables.jl index fe44042..384b667 100644 --- a/src/dual_model_variables.jl +++ b/src/dual_model_variables.jl @@ -80,6 +80,7 @@ function _add_dual_variable( # Add each vi to the dictionary func = MOI.get(primal_model, MOI.ConstraintFunction(), ci) set = MOI.get(primal_model, MOI.ConstraintSet(), ci) + is_unique_var = length(vis) == 1 for (i, vi) in enumerate(vis) if !(F <: MOI.VectorOfVariables) value = set_dot(i, set, T) * _get_normalized_constant(func, set, i) @@ -89,7 +90,8 @@ function _add_dual_variable( end if !is_empty(dual_names) && !isempty(ci_name) pre = dual_names.dual_variable_name_prefix - MOI.set(dual_model, MOI.VariableName(), vi, pre * ci_name * "_$i") + pos = is_unique_var ? "" : "_$i" + MOI.set(dual_model, MOI.VariableName(), vi, pre * ci_name * pos) end end return diff --git a/test/Tests/test_JuMP_dualize.jl b/test/Tests/test_JuMP_dualize.jl index 6d92b63..bb80506 100644 --- a/test/Tests/test_JuMP_dualize.jl +++ b/test/Tests/test_JuMP_dualize.jl @@ -64,7 +64,7 @@ end dual_model = dualize(model; dual_names = DualNames("dual", "")) - @test typeof(dual_model[:dualeqcon_1]) == VariableRef + @test typeof(dual_model[:dualeqcon]) == VariableRef @test !haskey(dual_model, Symbol("")) end @testset "JuMP_dualize_kwargs" begin diff --git a/test/Tests/test_dual_names.jl b/test/Tests/test_dual_names.jl index 9278846..87f9dc1 100644 --- a/test/Tests/test_dual_names.jl +++ b/test/Tests/test_dual_names.jl @@ -77,7 +77,7 @@ }( 1, )].dual_variables[1] - @test MOI.get(dual_model, MOI.VariableName(), vi_2) == "dualvar_lessthan_1" + @test MOI.get(dual_model, MOI.VariableName(), vi_2) == "dualvar_lessthan" # Query constraint names ci_1 = primal_dual_map.primal_variable_data[MOI.VariableIndex(